[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.
[INTERPRETER]
* NEW: Add a API to know if a native component exists on the disk.
[GB.GUI]
* BUG: Take the other requested GUI components into account to choose the toolkit.
[GB.GUI.QT]
* BUG: Take the other requested GUI components into account to choose the toolkit.
[COMPILER]
* NEW: Assert is an new instruction that raises an error as soon as its boolean argument is FALSE. The associated bytecode is not emitted if the '-x' option is specified.
[INTERPRETER]
* NEW: Assert is an new instruction that raises an error as soon as its boolean argument is FALSE.
[GB.DEBUG]
* BUG: Fix a potential array overflow.
[COMPILER]
* NEW: Rename a macro constant to avoid a symbol clash when compiling the interpreter.
[INTERPRETER]
* NEW: Get rid of a macro trick in 'gbx_eval.h' header.
[GB.EVAL]
* NEW: Highlight: Add three new color constants for syntax highlighting: Escape, Label and Constant.
* NEW: Rename some source files.
* NEW: Rename some constants.
* NEW: Gambas syntax highlighter now use the three new contants for escape characters in strings, for labels, and for language contants (True, False, Null, +Inf and -Inf).
[GB.EVAL.HIGHLIGHT]
* NEW: Support for the new syntax highlighting color constants.
[GB.FORM.EDITOR]
* NEW: Support for the new syntax highlighting color constants.
* NEW: UNSAFE is a new keyword used in conjunction with FAST. It tells the JIT compiler not to do any safety check (null objects, division by zero, out of array bounds...). It makes the code a bit faster, but prone to segmentation fault.
[INTERPRETER]
* NEW: Support for the UNSAFE keyword.
[GB.JIT]
* NEW: Support for the UNSAFE keyword.
* NEW: Check validity of objects that can be invalid.
[INTERPRETER]
* NEW: Support for error management in JIT methods.
[COMPILER]
* BUG: Fix Error() function metadata.
[GB.JIT]
* NEW: Support for error management.
* NEW: TRY instruction.
* BUG: Correct support of NULL.
[INTERPRETER]
* OPT: String routines are now compiled with -O3.
* NEW: Don't display JIT debugging message unless GB_JIT_DEBUG is set to something different from zero.
* NEW: String whose length is greater than 256 now have a growth step of 256 bytes instead of 16.
[GB.JIT]
* NEW: Do many global optimizations as now the class metadata is fully available.
* NEW: Support for optional argument. Still buggy at the moment.
[INTERPRETER]
* NEW: Implement return value of JIT methods.
* NEW: Support for calling '.' operator from a JIT method.
[COMPILER]
* BUG: JIT: Fix detection of native arrays.
* BUG: JIT: Delete translated file if a class has no fast method anymore.
* BUG: JIT: Prefix JIT method with "jit_" to avoid possible conflicts.
* BUG: JIT: Fix variable initialization.
* NEW: JIT: Complete datatype support.
* NEW: JIT: Support for SWAP.
* NEW: JIT: Support for array operators.
* BUG: JIT: Fix arithmetic operators.
* NEW: JIT: Implement ME and "." operator.
* NEW: JIT: Complete GOSUB / RETURN support.
* NEW: JIT: Support for DIV and MOD operators. Not optimized yet.
[ARCHIVER]
* NEW: Put JIT translation in the archive.
[GB.JIT]
* NEW: Complete datatype support. Variant is not supported yet.
* NEW: Complete GOSUB / RETURN support.
* NEW: Support for ME and '.' operator.
[CONFIGURATION]
* NEW: Add '.jit' directory to '.gitignore'.
[COMPILER]
* NEW: New '-j' option that disables just in time compilation.
* NEW: JIT: Support for private functions calls.
* NEW: JIT: Support for native arrays accessors.
* BUG: JIT: Fix loop support.
* NEW: JIT: Support for GOSUB.
[GB.JIT]
* NEW: GB_JIT_DEBUG is an environment variable that defines if JIT compilation debugging messages are printed.
* NEW: GB_JIT_CFLAGS is an environment variable that defines the JIT compilation flags. The default is "-O3".
* NEW: Support for native arrays accessors.
[COMPILER]
* BUG: JIT: Fix local variable referencing.
* NEW: JIT: Implement NEW operator and array accessors.
[INTERPRETER]
* NEW: Support for JIT NEW operator and array accessors.
[GB.JIT]
* NEW: Support for object datatypes.
* NEW: Implement NEW operator and array accessors.
[COMPILER]
* NEW: JIT: Support for FOR...TO...NEXT loops.
* NEW: JIT: Support for Len(), Left$(), Mid$(), and Right$().
* NEW: JIT: Subroutines return values are now hadled correctly.
[GB.JIT]
* NEW: Compile JIT code with -O3.
[COMPILER]
* NEW: Internal initialization functions now can be JIT translated.
* NEW: Support of subroutine calling completed. Interpreter subroutines are called if there is no optimization implemented in the JIT translation.
[INTERPRETER]
* NEW: Remove old JIT stuff.
[GB.JIT]
* NEW: Use 'gambas.h' and 'gb.jit.h' to compile translated code.
* NEW: Work on JIT continues...
* NEW: Better panic errors.
[INTERPRETER]
* NEW: Remove the old JIT stuff.
* NEW: Calls gb.jit at runtime if needed. If a fast function has no jit implementation, the bytecode version is used.
* NEW: Start defining the JIT interface needed by the JIT functions.
* NEW: The common static character buffer is now twice the size of the maximum symbol length, to avoid possible overflows.
[GB.JIT]
* NEW: Compilation starts to work.
* NEW: Debugging messages.
[COMPILER]
* NEW: Work continues on new JIT system.
[INTERPRETER]
* NEW: Make comparison operator true functions so that they can be called by the JIT code.
[INTERPRETER]
* NEW: New API for reference a Gambas string.
[GB.DB]
* NEW: Result.GetAll() is a new method that returns an array of the values of a specific field from each record. It is about twice faster than the equivalent code written in Gambas.
[COMPILER]
* NEW: Oct$() is a new functions that converts an integer to its octal representation.
[INTERPRETER]
* NEW: Oct$() is a new functions that converts an integer to its octal representation.
* OPT: RDir() now does less stat() system calls, by assuming that the number of hard links of a directory is its number of sub-directories plus two.
Scanning my home directory calls stat() about 640,000 times instead of 715,000 before. About a 10% gain.
* OPT: Editor: Some optimizations in identifier completion.
* NEW: Image editor: Add an opacity effect.
* NEW: Update backround images.
[WEBSITE MAKER]
* NEW: Update to 3.10 version.
[WIKI]
* NEW: The '{@classes}' command can take arguments to add custom classes to the list of classes.
git-svn-id: svn://localhost/gambas/trunk@8175 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Add an API that allows to create an array class before instanciating it.
[GB.DBUS]
* BUG: When marshalling from DBus to Gambas, create the array classes before instanciating them.
git-svn-id: svn://localhost/gambas/trunk@8173 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Switch version to 3.10.90.
[GB.DB]
* NEW: Connection.TimeZone is new property that will allow to define the default timezone of dates stored in the database we are connected to. Not implemented yet.
git-svn-id: svn://localhost/gambas/trunk@8168 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Add a autoconf check for monotonic clock.
[INTERPRETER]
* BUG: Use a monotonic clock (if possible) to implement the WAIT instruction.
git-svn-id: svn://localhost/gambas/trunk@8138 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: New instruction MOVE ... DOWNTO ... that renames a file and erase the destination atomically.
[INTERPRETER]
* NEW: New instruction MOVE ... DOWNTO ... that renames a file and erase the destination atomically.
* BUG: The signal handler now loops until the signal pipe is void.
git-svn-id: svn://localhost/gambas/trunk@8129 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Make component compile with gcc 6.
[INTERPRETER]
* BUG: Include <cmath> instead of <math.h> for components written in C++, so that they compile with gcc 6.
[GB.GTK]
* BUG: Make component compile with gcc 6.
[GB.GTK3]
* BUG: Make component compile with gcc 6.
[GB.QT4]
* BUG: Make component compile with gcc 6.
[GB.QT5]
* BUG: Make component compile with gcc 6.
git-svn-id: svn://localhost/gambas/trunk@8088 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Automatically restart mkfifo() and open() system calls when executing the PIPE instruction.
git-svn-id: svn://localhost/gambas/trunk@8053 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Update french translation.
* NEW: Support for the new gb.term component.
[INTERPRETER]
* NEW: Add an API that returns the file descriptor associated with a specific stream.
[GB.TERM]
* NEW: New component for terminal management with an API very close to the one provided by the operating system.
git-svn-id: svn://localhost/gambas/trunk@8043 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Timer delay is now stored in 31 bits, and so can now be up to 2^31 - 1 milliseconds, i.e. about 24 days, 20 hours and 31 seconds.
git-svn-id: svn://localhost/gambas/trunk@7925 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Define "__STDC_FORMAT_MACROS" macro in 'gb_common.h', so that C++ source files using '<inttypes.h>' compile even with old gcc versions.
git-svn-id: svn://localhost/gambas/trunk@7891 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: MenuButton: Take foreground color into account correctly.
* BUG: MenuButton: Clip text so that arrow is always clearly visible.
* BUG: MenuButton: Take the Design property into account correctly.
git-svn-id: svn://localhost/gambas/trunk@7864 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: When searching a relative path inside an archive, ignore trailing slashes: "foo/bar/" and "/foo/bar//" are now the same as "foo/bar".
git-svn-id: svn://localhost/gambas/trunk@7837 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Finish the redesign of the debug panel.
[INTERPRETER]
* BUG: Fix a stack mismatch leading to a crash in Eval() when an "Unknown symbol" error occurs.
[GB.FORM]
* BUG: SidePanel: The Hide event is now raised after the SidePanel has been actually hidden.
git-svn-id: svn://localhost/gambas/trunk@7754 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: GB.GetArrayType() is a new API that returns the datatype of the elements of an array class.
git-svn-id: svn://localhost/gambas/trunk@7746 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Add a symbol table optimization that is disabled because it's not worth it.
* OPT: Force inlining of functions in symbol tables routines.
* OPT: A little optimization on routine string argument extraction.
git-svn-id: svn://localhost/gambas/trunk@7650 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Work on internal expression datatype analyze has continued.
* OPT: Compiling syntax trees is faster now.
[INTERPRETER]
* OPT: Analyzing objects a method or a property applies to is faster now.
* NEW: Remove an unused method in table symbol implementation.
git-svn-id: svn://localhost/gambas/trunk@7647 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: Compile is now compiled with -O3 optimizations.
* OPT: Reserved words built-in symbol table is faster now.
* NEW: Initial support for expression datatype analyze. Some new errors are raised at compilation time, like using a string with the AND operator for example. The datatype analyzer is rougher than the IDE one because it is local to the compile class.
* OPT: Symbol table search is a bit faster.
git-svn-id: svn://localhost/gambas/trunk@7632 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Detect the fstatat() system function.
[INTERPRETER]
* OPT: Dir() and RDir() are now 10-30% faster by using fstatat() and assuming that directories with just two hard links have no child directories (each sub-directory having one hard-link to its parent directory through the ".." entry).
git-svn-id: svn://localhost/gambas/trunk@7610 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Support for custom expression evaluators.
[GB.EVAL]
* NEW: You can now inheriting the Expression class to create a custom expression evaluator. You have to reimplement three methods: IsSubr(), that returns if a Gambas subroutine is allowed;
IsIdentifier() that returns if a specific identifier is known; GetValue() that returns the value of an identifier. All other methods you add to the class become your specific subroutine,
provided that you allow it in the IsIdentifier() method.
git-svn-id: svn://localhost/gambas/trunk@7545 867c0c6c-44f3-4631-809d-bfa615b0a4ec