[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.