[INTERPRETER]
* BUG: Fix array and allocation management, so that allocating a byte array with a number of elements near the greatest integer does not crash anymore.
[INTERPRETER]
* NEW: Support for "remote" debugging, i.e. debugging a process not run by the IDE.
It is activated by the existence of a symbolic link named '/tmp/gambas-<project name>.debug'
pointing at the IDE temporary directory. The symbolic link is destroyed by the debuggee, so that
no other process of the same project can use it.
* BUG: Remove support of two deprecated parameters in '.startup' file.
* NEW: The internal common string buffer size is now equal to 'PATH_MAX'.
[GB.DEBUG]
* NEW: Support for "remote" debugging.
* OPT: The debugger process now opens the output fifo in blocking mode when needed, and the
debugged process opens the output fifo for reading when needed too.
[COMPILER]
* BUG: Fix generation of floating point constants whose value is an integer.
* BUG: Fix a possible memory corruption after the end of the compilation of the first class.
[COMPILER]
* OPT: The parser now does not store integer numbers in its global symbol table anymore.
* OPT: Some other little optimizations here and here. The compiler is now about 5% faster.
[ARCHIVER]
* NEW: Compile with '-O3' optimization flag.
[INFORMER]
* NEW: Compile with '-O3' optimization flag.
[GB.EVAL]
* OPT: The parser now does not store integer numbers in its global symbol table anymore.
[COMPILER]
* NEW: Shr, Shl, Asr, Asl, Lsl, Lsr, Rol and Ror can now be used as operators.
* NEW: Now integer constants can be simple integer expressions in array, constant and enumeration declarations.
[GB.EVAL]
* BUG: Fix a compiler warning.
[COMPILER]
* NEW: 'STATIC' keyword can be used instead of 'DIM' for declaring local static variables.
[INTERPRETER]
* NEW: Support for local static variables.
[GB.DEBUG]
* NEW: Support for local static variables.
[DEVELOPMENT ENVIRONMENT]
* NEW: Update French translation.
* NEW: Support of the new '.list' file format.
* NEW: Support of the new EXPORT AS syntax.
* NEW: Update error messages.
[COMPILER]
* NEW: EXPORT AS is a new syntax for exporting a class with a specific name that can include a namespace.
* NEW: New header file to start sharing reader code with the 'gb.eval' component.
* NEW: Class names can include a colon. The part before the colon is assumed to be a namespace.
[INTERPRETER]
* NEW: Classes exported in a namespace are now declared both in the global symbol table and in the local symbol table of their component.
* NEW: Class names are now allocated inside the symbol tables, and not in the class objects anymore.
[GB.EVAL]
* NEW: Share some reader code with the compiler.
[INTERPRETER]
* NEW: Add an API to know if a native error has already been raised.
[GB.DB]
* NEW: The Result.Release() driver API now tells if the connection has been closed.
* NEW: Raise an error when retrieving the primary key fails, if the driver has not already raised it.
[INTERPRETER]
* NEW: Change the GB_FUNCTION structure so that it stores the index of the method instead of its description pointer.
[GB.DATA]
* OPT: The new GB_FUNCTION structure allows to reduce the size of the GRAPH_DESC structure.
[INTERPRETER]
* NEW: Timers are not inherited anymore by background tasks. They are actually inherited, but immediately disabled the first time they trigger inside the background task.
[COMPILER]
* NEW: '#Include" is a new preprocessor reserved identifier.
* BUG: Always raise a syntax error if a preprocessor line starts with an unknown reserved identifier.
[GB.EVAL]
* BUG: Fix preprocessor lines highlighting.
[COMPILER]
* NEW: By default, the compiler now use a number of background tasks equal to the number of cores.
[INTERPRETER]
* NEW: System.Cores is a new property that returns the number of cores.
[INTERPRETER]
* OPT: Signal handlers are now checked only if requested explicitly by a component.
[GB.GTK]
* NEW: Request SIGCHLD handler check.
[GB.GTK3]
* NEW: Request SIGCHLD handler check.
[INTERPRETER]
* NEW: GB.IsLocked() is a new API that tells if an object is locked.
* NEW: GB.IsRaiseLocked() is a new API that tells if raising an event is useless because no observer will receive it.
* BUG: Errors cannot be propagated outside of an event handler, because the event may result from a library signal that do not support exceptions (like the glib library).
[CONFIGURATION]
* NEW: Add man pages.
[INTERPRETER]
* NEW: Use 'time_t' in GB.MakeDateFromTime API.
[WIKI CGI SCRIPT]
* NEW: Add a command-line option to print the package table.
[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.
[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.
[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.
[COMPILER]
* NEW: Add ByRef annotations to the ".info" files generated by the compiler. The name of "ByRef" method arguments is now prefixed with a '&' character.
[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.
[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.