[INTERPRETER]
* NEW: Implementation of computed Goto and GoSub.
[COMPILER]
* NEW: Implementation of computed Goto and GoSub.
* NEW: There is a maximum of 255 labels by function now. This limit may be removed.
[INTERPRETER]
* OPT: Optimize object release for native integer and float arrays accessors.
* OPT: Shortcut path for adding a small integer or float constant number.
[COMPILER]
* OPT: Shortcut path for adding a small integer or float constant number.
[GB.JIT]
* NEW: Support for new bytecodes.
[CONFIGURATION]
* BUG: Do not use the default CFLAGS forces by autotools. Either use the CFLAGS provided on the command-line, or the default ones of the project.
[INTERPRETER]
* OPT: Don't use '-O3'. It makes benchmarks sometimes slower than using '-O2'.
[COMPILER]
* OPT: Optimize variable initialization.
[COMPILER]
* OPT: Optimization of conditional jumps based on values known to be Boolean.
* BUG: Jump optimization is effective when debugging information is generated.
* BUG: The '/' operator correctly returns a Float if its arguments are Float.
[INTERPRETER]
* OPT: Optimization of conditional jumps based on values known to be Boolean.
[GB.JIT]
* NEW: Support for conditional jumps optimization.
[COMPILER]
* OPT: Optimization of small integer floating point constants.
[INTEGER]
* OPT: Optimization of small integer floating point constants.
[GB.JIT]
* OPT: Optimization of small integer floating point constants.
[INTERPRETER]
* BUG: Fix backward-compatibility with previous bytecode.
* OPT: Optimizations of local variables and argument assignements.
* BUG: NULL can be serialized on streams correctly now.
[COMPILER]
* OPT: Support for local variable manipulation optimization.
[INTERPRETER]
* OPT: Avoid unneeded type conversion swhen manipulating local variables.
* OPT: Various optimizations of the interpreter execution loop. Apparently a smaller execution loop has a big impact on speed. I guess this is related to the size of the various CPU caches.
[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.
[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.
[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.
[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]
* 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]
* NEW: String value can be used like object.
* NEW: String[X] returns the X-th character of the string, 0 being the first one.
* NEW: String[X, N] returns N characters from the position X, 0 being the first one. IF N is strictly negative, then all characters from the position X, except the last N characters are returned.
* NEW: String.Len returns the length of the string.
[COMPILER]
* NEW: Allow the [] operator to be applied to a string.
[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.
[COMPILER]
* NEW: Don't raise an error when analyzing the AND, OR or XOR operator.
* NEW: Print a warning if the AND, OR or XOR operator mix Boolean and Integer datatypes.
* BUG: Fix internal datatype analyze. The compiler should not crash anymore on ARM.
[GB.DB.ODBC]
* BUG: Fix a 32-bits 'sprintf' format bug.
[GB.IMAGE.IO]
* BUG: Fix a 32-bits 'sprintf' format bug.
[GB.XML]
* BUG: Fix a 32-bits 'sprintf' format bug.
git-svn-id: svn://localhost/gambas/trunk@7887 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: gb.qt5 component.
[EXAMPLES]
* BUG: Fix WebBrowser example.
[INTERPRETER]
* NEW: Fix compilation of EXEC and SHELL for older bytecode versions.
[GB.DB.FORM]
* NEW: Display the busy mouse cursor while loading SQL data.
[GB.QT4]
* NEW: Support for QT5.
[GB.QT5]
* NEW: Initial version of the QT5 component. Not everything is working.
There is no Embedder and TrayIcon controls.
git-svn-id: svn://localhost/gambas/trunk@7062 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: A symbol followed by a point is never interpreted as a function if
it is used as a function name in the current class.
git-svn-id: svn://localhost/gambas/trunk@6856 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: The process child errors raised before the exec() system call are
now catched in a separate function called by the compiler explicitly
after a SHELL or EXEC assignment.
[COMPILER]
* NEW: SHELL and EXEC assignments now call an hidden subroutine just after
the assignment to immediately check for a possible child error.
git-svn-id: svn://localhost/gambas/trunk@6681 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Support for the new USE instruction.
[COMPILER]
* NEW: A class header now can include USE "xxxx" declarations, where "xxxx"
is a component name. It means that the specified component will be loaded
when the class is initialized, the first time it is loaded.
git-svn-id: svn://localhost/gambas/trunk@6648 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: Write in the bytecode file if a function uses the IsMissing() native
routine.
[INTERPRETER]
* OPT: Don't use a stack slot for missing arguments if the IsMissing()
function is not used.
git-svn-id: svn://localhost/gambas/trunk@6274 867c0c6c-44f3-4631-809d-bfa615b0a4ec