Commit graph

1325 commits

Author SHA1 Message Date
gambas
7ad56a4adb Fix panic message displayed when a JIT method is not found.
[INTERPRETER]
* BUG: Fix panic message displayed when a JIT method is not found.
2020-09-17 23:51:13 +02:00
gambas
2d1d307455 If no language environment variable is defined, use "C" locale instead of "en_US".
[INTERPRETER]
* NEW: Add process id in warning messages.
* BUG: If no language environment variable is defined, use "C" locale instead of "en_US".
2020-09-17 09:52:38 +02:00
gambas
f0606b61c3 Disable jit compiler if no compiler is found.
[INTERPRETER]
* NEW: Disable jit compiler if no compiler is found.

[GB.JIT]
* NEW: Don't crash if no compiler is found, but just tell the interpreter.
2020-09-14 21:15:20 +02:00
gambas
ed0f467b63 Some fixes in translation support.
[INTERPRETER]
* BUG: Fix possible buffer overflow on localisation environment variables.
* BUG: Always define LC_ALL and LANG with the effective language chosen.
* BUG: Use the current language to load translations, not what setlocale() returns.
2020-09-11 00:39:00 +02:00
gambas
ccf354c19a The interpreter can compile without 'libffi' again.
[INTERPRETER]
* BUG: The interpreter can compile without 'libffi' again.
2020-08-01 23:35:37 +02:00
gambas
0e4f68da94 Really really fix '&=' operator optimization.
[INTERPRETER]
* BUG: Really really fix '&=' operator optimization.
2020-07-27 20:39:21 +02:00
gambas
95ea5cd72c Better fix for '&=' operator optimization.
[INTERPRETER]
* BUG: Better fix for '&=' operator optimization.
2020-07-13 16:00:17 +02:00
gambas
5004f20609 Move 'gb.test' sources in '/main/lib'.
[INTERPRETER]
* NEW: Remove the now useless testing specific code.
* NEW: 'gbx3 -T' now just loads the 'gb.test' component and calls Test.Main() passing it the '-T' option argument.

[GB.TEST]
* NEW: Move 'gb.test' sources in '/main/lib'.
* NEW: 'gb.test' has now a part written in C that allows him to load project classes on demand.
2020-05-25 21:24:28 +02:00
gambas
3737b08904 Classes passed to 'gbx3 -T' that are not test modules are silently ignored.
[INTERPRETER]
* NEW: Classes passed to 'gbx3 -T' that are not test modules are silently ignored.
2020-05-25 11:50:12 +02:00
gambas
f3850aad1b Redesign the interface between the interpreter and 'gb.test'.
[INTERPRETER]
* NEW: Redesign the interface between the interpreter and 'gb.test'.
2020-05-23 04:31:33 +02:00
gambas
d8f4c5a7cf Redesign the interface between the interpreter and 'gb.test' component.
[INTERPRETER]
* NEW: Now '-T' option with no argument calls Test._List() method.
* NEW: If '-T' gets an argument, the Test._Run() method is used.
* NEW: If '-T' argument is '*', then the Test._RunAll() method is called.
2020-05-22 16:02:48 +02:00
gambas
7c7029aed8 Make a public function static.
[INTERPRETER]
* BUG: Make a public function static.
2020-05-17 08:26:14 +02:00
gambas
8395b972b8 Make READ and INPUT return void strings instead of NULL, otherwise JIT compiler fails.
[INTERPRETER]
* BUG: Make READ and INPUT return void strings instead of NULL, otherwise JIT compiler fails.
2020-05-12 01:13:43 +02:00
gambas
986ca05fc4 Automatically load 'gb.test' component when the '-T' option is used.
[INTERPRETER]
* NEW: Automatically load 'gb.test' component when the '-T' option is used.
2020-05-07 15:15:13 +02:00
gambas
1cd23bb578 Interpreter options now accept a void argument.
[INTERPRETER]
* BUG: Interpreter options now accept a void argument.
2020-05-07 10:18:33 +02:00
gambas
368165ff2f Add '-T' option to run test modules.
[INTERPRETER]
* NEW: Add '-T' option to run test modules.
* NEW: Update help message and display options in alphabetic order.
* BUG: Use '-r' option now to redirect standard error output. No conflict anymore with '-t'.
2020-05-07 08:18:48 +02:00
gambas
b0eb952028 '&=' on variants is not incorrectly optimized anymore.
[INTERPRETER]
* BUG: '&=' on variants is not incorrectly optimized anymore.

[GB.JIT]
* BUG: '&=' on variants is not incorrectly optimized anymore.
2020-04-16 09:47:59 +02:00
gambas
68c503bc2e Enabling an already enabled timer has no effect anymore.
[INTERPRETER]
* BUG: Enabling an already enabled timer has no effect anymore.
2020-04-08 21:27:27 +02:00
gambas
2165ececd5 JIT optimization of '&=' has been implemented.
[INTERPRETER]
* NEW: Support for JIT '&=' optimization.
* BUG: Fix '&=' optimization on argument variables.
* OPT: Strings greater than 4096 bytes are allocated by 4096 bytes steps.

[GB.JIT]
* NEW: JIT optimization of '&=' has been implemented.
2020-04-06 04:43:12 +02:00
gambas
08c5fc95c7 '&=' operator optimization.
[COMPILER]
* OPT: Support for '&=' operator optimization.

[INTERPRETER]
* OPT: '&=' operator optimization.
2020-04-04 16:18:10 +02:00
gambas
fd2794612b Call the event loop just after the JIT compiler has aborted, so that its processes are correctly freed.
[INTERPRETER]
* BUG: Call the event loop just after the JIT compiler has aborted, so that its processes are correctly freed.
2020-03-02 14:20:49 +01:00
gambas
131653ab1f Converting a string to a pointer returns a pointer pointing at the beginning of the string.
[INTERPRETER]
* NEW: Converting a string to a pointer returns a pointer pointing at the beginning of the string.
2020-02-18 23:03:24 +01:00
gambas
7bedc9af65 Fix VarPtr() behaviour.
[INTERPRETER]
* BUG: VarPtr() on local strings are forbidden again.
* BUG: VarPtr() on variants now returns a pointer to the variant contents.
2020-02-18 20:36:45 +01:00
gambas
2cd257be5b PEEK is a new instruction that peek some bytes from a stream without removing them.
[COMPILER]
* NEW: Support for the new PEEK instruction.

[INTERPRETER]
* NEW: PEEK is a new instruction that peek some bytes from a stream without removing them, so that they are available to the next READ instruction.
* OPT: IsAscii(), IsLower(), IsPunct()... instructions are now a bit faster.
2020-02-11 01:45:10 +01:00
gambas
d4860710c0 Running a process without an event name does not reference its observer for nothing anymore.
[INTERPRETER]
* BUG: Running a process without an event name does not reference its observer for nothing anymore.
2020-02-04 10:32:55 +01:00
gambas
f0b3762ec1 JIT compiler can compile libraries now.
[INTERPRETER]
* NEW: Internal name of libraries uses a point now between vendor and library name, not a slash anymore.

[GB.DEBUG]
* BUG: Undo "make debugger output writes more robust". Apparently it does not work.

[GB.JIT]
* BUG: Compiling libraries works now.
2020-01-26 07:09:36 +01:00
gambas
ad3ce9b21e Fix VarPtr() error message.
[INTERPRETER]
* BUG: Fix VarPtr() error message.
2020-01-18 05:39:33 +01:00
gambas
3829c3b9cb VarPtr() now works on variant variables, but the returned pointer may become valid if the variant datatype changes.
[INTERPRETER]
* NEW: VarPtr() now works on variant variables, but the returned pointer may become valid if the variant datatype changes.
2020-01-18 05:33:47 +01:00
gambas
ba221177da Fix call of special methods _read() and _write().
[INTERPRETER]
* BUG: Fix call of special methods _read() and _write().
2020-01-14 03:49:03 +01:00
gambas
507f48ca61 Fix a possible memory leak when reading an object on a stream through its special _read() method fails.
[INTERPRETER]
* BUG: Fix a possible memory leak when reading an object on a stream through its special _read() method fails.
2020-01-09 18:31:56 +01:00
gambas
85ded796c9 Fix release of return value of JIT methods called from non-JIT methods.
[INTERPRETER]
* BUG: Fix release of return value of JIT methods called from non-JIT methods.
2020-01-09 04:48:22 +01:00
gambas
46b3b16630 Application.ParentHandle is a new property that returns the parent process id.
[INTERPRETER]
* NEW: Application.ParentHandle is a new property that returns the parent process id.
2020-01-08 13:54:03 +01:00
gambas
2429cff72b Fix possible memory leaks when reading objects or variants with the READ instruction.
[INTERPRETER]
* BUG: Fix possible memory leaks when reading objects or variants with the READ instruction.
2020-01-07 02:34:40 +01:00
gambas
f0290255fe Opening a pipe for reading does not block anymore if the pipe has not been opened for writing yet.
[INTERPRETER]
* NEW: Add class name in 'incorrect symbol declaration' error message.
* NEW: Opening a pipe for reading does not block anymore if the pipe has not been opened for writing yet. It help synchronizing applications using the same pipe a lot!
2020-01-06 23:02:33 +01:00
gambas
87100b744a Check special methods return value datatype. Add '_invalid' special variable.
[INTERPRETER]
* NEW: Check special methods return value datatype and raise a dedicated error if it is incorrect.
* NEW: Error.Text, Error.Where and Error.Backtrace are now available inside the Application_Error handler.
* BUG: 'gbx3 -L' now displays the same Gambas version as 'gbx3 -V'.
* NEW: A class can declare a public '_invalid' boolean variable. The value of that variable will indicates if the object is invalid.
2020-01-04 22:11:29 +01:00
gambas
c797862f43 Object.Count() does not fail anymore if the object is invalid.
[INTERPRETER]
* NEW: Object.Count() does not fail anymore if the object is invalid.
2020-01-04 22:09:56 +01:00
gambas
ca0a224f6a Signals are now correctly unregistered if the program exits during a signal handler.
[INTERPRETER]
* BUG: Signals are now correctly unregistered if the program exits during a signal handler.
2020-01-04 22:09:13 +01:00
gambas
63000a27fe WAIT NEXT is a new instruction that waits for the next event and process it.
[INTERPRETER]
* NEW: WAIT NEXT is a new instruction that waits for the next event and process it.

[COMPILER]
* NEW: Support for the new WAIT NEXT instruction.

[GB.GTK]
* NEW: Support for the new WAIT NEXT instruction.

[GB.GTK3]
* NEW: Support for the new WAIT NEXT instruction.

[GB.QT4]
* NEW: Support for the new WAIT NEXT instruction.

[GB.QT5]
* NEW: Support for the new WAIT NEXT instruction.
2020-01-02 13:08:45 +01:00
gambas
15a7a7f4f3 Fix objet serialization.
[INTERPRETER]
* BUG: Fix objet serialization.
* NEW: Use one byte for writing the class name length when serializing objects.
2019-12-21 20:54:13 +01:00
gambas
f39ed34592 Serializing an object is not ambiguous anymore.
[INTERPRETER]
* BUG: Serializing an object is not ambiguous anymore.
2019-12-21 17:35:30 +01:00
gambas
3d956c269c '_read' and '_write' are two new special methods that allow to make any object serializable by the READ and WRITE instructions.
[INTERPRETER]
* NEW: '_read' and '_write' are two new special methods that allow to make any object serializable by the READ and WRITE instructions.
* NEW: Rename macro that convert a Gambas stream object to the internal stream structure and add a macro that does the reverse conversion.
2019-12-21 17:03:42 +01:00
gambas
64be06797e Reading strings with the READ instruction when the NullTerminatedString property is set now works correctly on all streams.
[INTERPRETER]
* BUG: Reading strings with the READ instruction when the NullTerminatedString property is set now works correctly on all streams.
2019-12-20 00:29:07 +01:00
gambas
05cc5ee6e4 Forgot the new source file.
[INTERPRETER]
* BUG: Forgot the new source file.
2019-12-18 07:01:09 +01:00
gambas
3e0398dbd1 OPEN NULL is a new syntax that opens a null stream.
[INTERPRETER]
* NEW: OPEN NULL is a new syntax that opens a null stream. Reading always returns end of file, and writing does nothing except advancing the file pointer, allowing to know how many bytes were written.

[COMPILER]
* NEW: OPEN NULL is a new syntax that opens a null stream.
2019-12-18 06:59:21 +01:00
gambas
2a6eaf8c8c Merge branch 'master' of gitlab.com:gambas/gambas 2019-12-18 06:34:42 +01:00
Benoît Minisini
53f83fb014 Forgot a semicolon.
[INTERPRETER]
* BUG: Forgot a semicolon.
2019-12-18 05:33:55 +00:00
gambas
4bca597638 Stream.NullTerminatedString is a new property that tells if writing a string on the stream emits the string length first, or a null terminated zero byte. This property is TRUE by default on memory streams.
[INTERPRETER]
* NEW: Stream.NullTerminatedString is a new property that tells if writing a string on the stream emits the string length first, or a null terminated zero byte. This property is TRUE by default on memory streams.
2019-12-18 06:29:33 +01:00
Benoît Minisini
6c1b9d6858 Really fix serialization of NULL values.
[INTERPRETER]
* BUG: Really fix serialization of NULL values.
2019-12-18 05:29:03 +00:00
gambas
c4b61aea83 Remove an old debugging message displayed when writing a pointer to a stream.
[INTERPRETER]
* BUG: Remove an old debugging message displayed when writing a pointer to a stream.
2019-12-18 06:22:26 +01:00
gambas
b98ca797e4 Fix serialization of NULL values.
[INTERPRETER]
* BUG: Fix serialization of NULL values.
2019-12-18 05:46:26 +01:00
gambas
b8ca134643 Reading a string on a memory stream now correctly skip the terminating null byte.
[INTERPRETER]
* BUG: Reading a string on a memory stream now correctly skip the terminating null byte.
2019-12-16 13:32:49 +01:00
gambas
b092a95132 Fix static array management.
[COMPILER]
* BUG: Allow static arrays to be used with the point operator.

[INTERPRETER]
* BUG: Fix static array management. They are not read-only anymore. Only methods that want to modify the size of the array are forbidden, as well as the ReadOnly property.
2019-11-30 06:29:17 +01:00
gambas
61af540536 Disable some compiler warnings and remove unnecessary PACKED directives.
[INTERPRETER]
* BUG: Disable some compiler warnings that generate false positives.

[GB.GEOM]
* BUG: Remove unnecessary PACKED directives.
2019-11-15 23:53:25 +01:00
gambas
20a345cec4 Fix compilation of function calls with variable arguments passing.
[COMPILER]
* BUG: Fix compilation of function calls with variable arguments passing.
* BUG: Remove some useless structure packing directives.

[INTERPRETER]
* BUG: Fix compilation of function calls with variable arguments passing.
2019-11-09 11:58:57 +01:00
gambas
b02810d025 Fix Find() method on Float, Single, and Long arrays.
[INTERPRETER]
* BUG: Fix Find() method on Float, Single, and Long arrays.
2019-11-09 11:34:43 +01:00
gambas
d8abac4cce Fix exponent sign printed twice in float to string conversion.
[INTERPRETER]
* BUG: Fix exponent sign printed twice in float to string conversion.
2019-10-29 09:20:41 +01:00
gambas
8d8c8a71f8 Remove a useless global variable.
[INTERPRETER]
* BUG: Remove a useless global variable.
2019-10-21 09:44:52 +02:00
gambas
8c6f234cf4 Do JIT compilation after class loading. Otherwise the JIT compiler may want to load the class that triggers the compilation again.
[INTERPRETER]
* BUG: Do JIT compilation after class loading. Otherwise the JIT compiler may want to load the class that triggers the compilation again.
2019-10-12 13:06:01 +02:00
gambas
719f7967ad System.Trace is a new property that toggles the dump of the position of each executed line.
[INTERPRETER]
* NEW: Add command-line help for the '-t' option.
* NEW: The '-t' command-line option has a '--trace' long version.
* NEW: System.Trace is a new property that toggles the dump of the position of each executed line.
2019-10-05 04:03:32 +02:00
gambas
b73b47aca6 Floating-point number to string conversion is now 1.7 times faster.
[INTEPRETER]
* OPT: Floating-point number to string conversion is now 1.7 times faster.
2019-09-28 21:15:59 +02:00
gambas
28df313554 Add a '-t' option that dumps to the standard error the position of each executed line of code.
[INTERPRETER]
* NEW: Add a '-t' option that dumps to the standard error the position of each executed line of code.
2019-09-28 16:53:48 +02:00
gambas
f08ce22cdc Fix support of read-only arrays.
[INTERPRETER]
* BUG: Read-only arrays are now really read-only.

[GB.JIT]
* BUG: Support for read-only arrays.
2019-09-26 14:25:37 +02:00
gambas
7a49f039b5 Uncatched errors raised from an event handler can be ignored now.
[INTERPRETER]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.GTK]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.GTK3]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.QT4]
* NEW: Uncatched errors raised from an event handler can be ignored now.

[GB.QT5]
* NEW: Uncatched errors raised from an event handler can be ignored now.
2019-09-17 10:10:36 +02:00
gambas
d3fdd6fdda Error.Clear() now clears the error flag returned by the ERROR function.
[INTERPRETER]
* NEW: Error.Clear() now clears the error flag returned by the ERROR function.
2019-09-09 23:58:11 +02:00
gambas
234c2c690a [GB.DB]
* NEW: Add a driver API that handles debugging messages.
* NEW: Print the current date/time before any debugging message.

[GB.DB.MYSQL]
* NEW: Use the new driver API to print debugging messages.

[GB.DB.ODBC]
* NEW: Use the new driver API to print debugging messages.

[GB.DB.POSTGRESQL]
* NEW: Use the new driver API to print debugging messages.

[GB.DB.SQLITE2]
* NEW: Use the new driver API to print debugging messages.

[GB.DB.SQLITE3]
* NEW: Use the new driver API to print debugging messages.
2019-08-30 09:09:16 +02:00
gambas
56b7b9e322 Forgot a comma in the error message list, making the raise of the last error message crash.
[INTERPRETER]
* BUG: Forgot a comma in the error message list, making the raise of the last error message crash.
2019-08-24 01:57:16 +02:00
gambas
51e271f107 Fix '&/' operator.
[INTERPRETER]
* BUG: Fix '&/' operator.
2019-08-22 12:36:52 +02:00
gambas
7b74fec6cc '&/' operator now automatically converts its arguments to strings.
[INTERPRETER]
* NEW: '&/' operator now automatically converts its arguments to strings.
2019-08-21 22:36:54 +02:00
gambas
411ee75e7d Fix JIT compilation when there are a lot of functions.
[INTERPRETER]
* BUG: Fix JIT compilation when there are a lot of functions.
2019-08-21 22:08:45 +02:00
gambas
db50637bf4 Static class initializer are now always correctly run in the context of their component.
[INTERPRETER]
* BUG: Static class initializer are now always correctly run in the context of their component.
2019-08-03 00:13:56 +02:00
gambas
b11d422c14 Array.ReadOnly is a new property that make an array read-only. Once set, the property cannot be unset.
[INTERPRETER]
* NEW: Array.ReadOnly is a new property that make an array read-only. Once set, the property cannot be unset.
* NEW: The "Embedded array" error message has been rewritten as "Read-only array".
* NEW: Add two new standard errors: "Multidimensional array" and "Unknown class".
* NEW: Replace some specific error messages by standard errors.
2019-07-31 00:20:13 +02:00
gambas
23c426857f Don't crash anymore when searching into an archive that failed to load.
[INTERPRETER]
* BUG: Don't crash anymore when searching into an archive that failed to load.
* BUG: The archive path is now a dynamic string.
2019-06-27 12:59:32 +02:00
gambas
bc8223e240 If the current translation does not exist, try to use the first available translation of the same language in another country.
[INTERPRETER]
* NEW: If the current translation does not exist, try to use the first available translation of the same language in another country.
2019-06-22 01:20:38 +02:00
gambas
8d76cc99ba Component.Load() can load a component located at an absolute path now.
[INTERPRETER]
* NEW: Component.Load() can load a component located at an absolute path now.
2019-06-14 01:26:12 +02:00
gambas
ce37d6ff67 Ignore errors when loading a class for the JIT compiler.
[INTERPRETER]
* BUG: Ignore errors when loading a class for the JIT compiler.

[GB.JIT]
* BUG: Loading a class during JIT compilation can fail. Take that into account.
2019-06-11 22:32:12 +02:00
gambas
609e3348dd Stream.Eof is a new property that returns if end of stream has been reached.
[INTERPRETER]
* NEW: Stream.Eof is a new property that returns if end of stream has been reached. It's the same thing as Eof(Stream).
2019-05-20 16:14:17 +02:00
gambas
19b83e535d Fix 'gb.Scientific' number format.
[INTERPRETER]
* BUG: Fix 'gb.Scientific' number format.
2019-05-09 00:04:18 +02:00
gambas
9f2da35cbe Emit column position in almost all error messages.
[COMPILER]
* OPT: Some optimizations in symbol table routines.
* NEW: Emit column position in almost all error messages. It makes the compiler 2.5% slower, even with the optimizations.
2019-05-08 06:20:35 +02:00
gambas
f23228638b Fix Url$() escaping characters.
[INTERPRETER]
* BUG: Fix Url$() escaping characters.
2019-04-04 23:12:07 +02:00
gambas
3dd1fd493e Fix the JIT compiler: '_init' method, Lock instruction, Object datatype, and DO / REPEAT loops at the beginning of a function now work correctly.
[INTERPRETER]
* BUG: JIT compiler does not run static initializers anymore when loading a class. Otherwise bytecode can be modified before being compiled, leading to a JIT compiler crash.

[COMPILER]
* BUG: Fix LOCK subroutine meta-information.

[GB.JIT]
* NEW: Don't display abortion debugging message if there is no compilation to abort.
* BUG: Object variables are correctly managed now.
* BUG: DO...LOOP and REPEAT...UNTIL at the beginning of the function now is correctly compiled in all cases.
2019-04-04 22:58:06 +02:00
gambas
2bb7d795b7 Fix Array.Shuffle() on String, Long and Object arrays.
[INTERPRETER]
* BUG: Fix Array.Shuffle() on String, Long and Object arrays.
2019-03-20 19:39:56 +01:00
gambas
a6eb422756 Array.Shuffle() is a new method that randomly shuffles an array using Fisher–Yates algorithm.
[INTERPRETER]
* NEW: Array.Shuffle() is a new method that randomly shuffles an array using Fisher–Yates algorithm.
2019-03-20 15:08:16 +01:00
gambas
faa54caf02 Tasks work again.
[INTERPRETER]
* BUG: Tasks work again.
2019-03-15 19:44:48 +01:00
gambas
63d9d81bd2 Disabling JIT compiler works correctly again.
[INTERPRETER]
* BUG: Disabling JIT compiler works correctly again.
2019-03-13 12:59:14 +01:00
gambas
a0bcf85bd4 Active file descriptor watches and active timers are now automatically transferred to the component declaring a custom event loop.
[INTERPRETER]
* BUG: Active file descriptor watches and active timers are now automatically transferred to the component declaring a custom event loop. Consequently, a process started before the declaration of the event loop will have its termination signal correctly catched.
* NEW: Use waitpid() instead of wait4().

[GB.GTK]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.

[GB.GTK3]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.

[GB.QT4]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.

[GB.QT5]
* BUG: Declare the event loop hook last so that active file descriptor watches and active transfer are automatically transferred.
2019-03-12 03:46:30 +01:00
gambas
eb8c871740 Don't try to abort JIT compilation if the JIT component is not loaded.
[INTERPRETER]
* BUG: Don't try to abort JIT compilation if the JIT component is not loaded.
2019-03-11 17:53:18 +01:00
gambas
3f7095bbd9 Run JIT compilation in the background to make programs start faster.
[INTERPRETER]
* OPT: JIT compilation is run in two steps.

[GB.JIT]
* OPT: Run JIT compilation in the background.
* NEW: JIT.Debug is a new property that allows to enable JIT debugging messages at runtime.
2019-03-11 16:34:50 +01:00
gambas
209a8faacf Fix SortUsing() methods public declaration.
[INTERPRETER]
* BUG: Fix SortUsing() methods public declaration.
2019-03-08 21:51:27 +01:00
gambas
f38f1b1657 Variant[].Sort() and Variant[].SortUsing() methods have been added and SortUsing() methods now take an optional sort mode as second argument.
[INTERPRETER]
* NEW: Variant[].Sort() and Variant[].SortUsing() methods have been added.
* NEW: SortUsing() methods now take an optional sort mode as second argument.
2019-03-08 21:42:33 +01:00
gambas
c7d6ddd31f String.Right() does not crash anymore on invalid UTF-8 strings.
[INTERPRETER]
* BUG: String.Right() does not crash anymore on invalid UTF-8 strings.
2019-03-08 12:28:41 +01:00
gambas
d668dadcf5 Array.SortUsing() is a new method that sorts an array according to the sort order defined by another array.
[INTERPRETER]
* NEW: Array.SortUsing() is a new method that sorts an array according to the sort order defined by another array.
2019-03-06 03:55:48 +01:00
gambas
b257119380 String.Code() now returns -1 on incorrect UTF-8 string.
[INTERPRETER]
* BUG: String.Code() now returns -1 on incorrect UTF-8 string.
2019-03-04 01:35:33 +01:00
gambas
fd7ae28ac9 File.RealPath() is a new statis method that returns the the canonicalized absolute pathname of path, with no symbolic links inside.
[INTERPRETER]
* NEW: File.RealPath() is a new statis method that returns the the canonicalized absolute pathname of path, with no symbolic links inside.
2019-02-28 02:57:25 +01:00
gambas
3cd80f118d Allocate custom language environment variables statically, because environment is accessed by shared library exit routines, after the interpreter memory allocations have been freed.
[INTERPRETER]
* BUG: Allocate custom language environment variables statically, because environment is accessed by shared library exit routines, after the interpreter memory allocations have been freed.
2019-02-26 20:59:03 +01:00
gambas
b4a8adf222 Fix string to floating point conversion routine.
[INTERPRETER]
* BUG: Fix string to floating point conversion routine.
2019-02-16 02:00:17 +01:00
gambas
c0eab6b4c4 Don't crash if a component use NULL as error message argument. Replace it by a void string.
[INTERPRETER]
* BUG: Don't crash if a component use NULL as error message argument. Replace it by a void string.
2019-02-06 23:23:18 +01:00
gambas
69d864f1d4 Ignore trailing zeros in the decimal part of floating point number constants.
[INTERPRETER]
* NEW: Allow one more decimal digit in floating point number constants.
* BUG: Ignore trailing zeros in the decimal part of floating point number constants. It may introduce rounding differences.
2019-01-16 04:32:44 +01:00
gambas
b97b82133a Make the "./" path equivalent to "." as before, and not a prefix for a component with a null name.
[INTERPRETER]
* BUG: Make the "./" path equivalent to "." as before, and not a prefix for a component with a null name.
2019-01-11 16:02:02 +01:00
gambas
ced4594599 Take care of components that modifiy the 'environ' variable. Using 'gb.httpd' does not crash anymore.
[INTERPRETER]
* BUG: Take care of components that modifiy the 'environ' variable. Using 'gb.httpd' does not crash anymore.
2019-01-11 15:23:50 +01:00
gambas
634b5c4168 Really fix the loop optimization.
[INTERPRETER]
* BUG: Really fix the loop optimization.
2019-01-11 01:14:42 +01:00