[GB.GEOM]
* BUG: Raise an error if the rectangle constructor does not take zero or four arguments.
* BUG: Raise an error if the point constructor does not take zero or two arguments.
[GB.FORM.HTMLVIEW]
* NEW: HtmlView: The control can get focus now, and react to arrow keys.
* NEW: HtmlView: Fix litehtml instead of patching it for string and conversion functions that must ignore the current locale.
[GB.FORM.HTMLVIEW]
* NEW: Integrate 'gumbo' library inside the component, so that the component has no depency anymore and compile on all systems.
Consequently, the component source code moved to the '/main/lib' directory.
[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]
* 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.
[INTERPRETER]
* NEW: JIT compiler support for embedded array and structures variables.
[GB.JIT]
* NEW: JIT compiler support for embedded array and structures variables.
[INTERPRETER]
* BUG: Fix memory leaks in debugger expression evaluation routines.
[GB.DEBUG]
* BUG: Fix memory leaks in debugger expression evaluation routines.
* NEW: The debugger now prints the reference count next to object references.
* BUG: A null pointer is printed as "NULL" now.
[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.
[INTERPRETER]
* NEW: Support for expression watches.
[GB.DEBUG]
* NEW: Add new command for watching expressions, i.e. stopping the debugger when the value of an expressions changes.
[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.
[GB.DB]
* BUG: Don't call the collation driver routine if the 'no_collation' flag is set by the database driver.
* BUG: Do not try to seek anywhere in the Result object if the 'no_seek' flag is set, even if the row count is positive.
* BUG: Result.Delete() never removes a row from the result set if its row count is negative (i.e. if it is forward-only).
[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.
[GB.EVAL]
* NEW: Keywords and subroutines are now returned by two different properties of the System class.
* NEW: System properties Keywords, Subroutines and Datatypes now return a read-only array.
[GB.EVAL.HIGHLIGHT]
* NEW: Support for the new System Keywords and Subroutines properties.
[GB.GUI.TRAYICON]
* NEW: TrayIcon: The Picture property kind is now "Picture:NoCache" so that the trayicon icon is not modified when the current theme is dark.
[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: If the "class" word follows the "End" keyword, it is recognized as a keyword.
[GB.EVAL]
* NEW: If the "class" word follows the "End" keyword, it is recognized as a keyword.
[GB.DRAW]
* NEW: Add PaintExtents W and H properties as synonymous of Width and Height.
[GB.GUI.BASE]
* NEW: PictureBox now uses the new UserControl Draw pseudo-event.
* NEW: Frame container in now implemented in Gambas.
[GB.GTK]
* NEW: Frame container in now implemented in Gambas.
* BUG: Style drawing routines now work correctly on UserControl.
[GB.GTK3]
* NEW: Frame container in now implemented in Gambas.
[GB.QT4]
* NEW: Frame container in now implemented in Gambas.
[GB.QT5]
* NEW: Frame container in now implemented in Gambas.
* BUG: Do not activate windows on Wayland, this is not supported.
[GB.GUI]
* BUG: Use "$XDG_CURRENT_DESKTOP" before "$KDE_FULL_SESSION" to know if we are running KDE.
[GB.GUI.QT]
* BUG: Use "$XDG_CURRENT_DESKTOP" before "$KDE_FULL_SESSION" to know if we are running KDE.
[INTERPRETER]
* NEW: Add a debug API that returns the current error message, and remove the API that printed it.
[GB.DEBUG]
* BUG: The debugger now correctly saves and prints the current error message.
[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.
[GB.TEST]
* NEW: TapParser can now parse subtests. Consequently, TestRunner assembles a tree of TestAssertions.
* BUG: Remove trailing '\r' characters from TapStream lines.
By our convention a subtest is opened by a "Test ..." line and closed by
its summarizing "ok" / "not ok" assertion.
This commit regresses on TInternals's reflection tests because I added
tests for the parser and runner which need event handlers to do their
testing. These are unintentionally detected as test methods.
[GB.TEST]
* NEW: 'gb.util' and 'gb.settings' are not required anymore.
* NEW: Add an Helper module that implements the functions replacing what was used in 'gb.util' and 'gb.settings'.
* BUG: Rewrite the GetTestSuiteByName() method without 'gb.settings', and fix it. It was completely broken.