Commit graph

431 commits

Author SHA1 Message Date
gambas
c1d255d35c Fix signature of GB.GetProperty() API.
[INTERPRETER]
* BUG: Fix signature of GB.GetProperty() API.
2021-10-27 18:39:30 +02:00
gambas
85cbb94625 Support for debugging a process not run by the IDE.
[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.
2021-10-20 02:28:22 +02:00
gambas
165e680dce Fix generation of floating point constants whose value is an integer.
[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.
2021-10-17 01:08:30 +02:00
gambas
bc806a189b The parser now does not store integer numbers in its global symbol table anymore. Compile is now about 5% faster.
[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.
2021-10-14 03:01:14 +02:00
gambas
d651287c43 Now integer constants can be simple integer expressions in array, constant and enumeration declarations.
[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.
2021-10-12 13:33:45 +02:00
gambas
d5105c8349 Remove an extra newline at the end of the "non freed allocation" warning message.
[INTERPRETER]
* BUG: Remove an extra newline at the end of the "non freed allocation" warning message.
2021-06-16 01:54:12 +02:00
gambas
67d266d79b Call an optional fork helper in each loaded component libraries before starting a task.
[INTERPRETER]
* NEW: Call an optional fork helper in each loaded component libraries before starting a task.
2021-06-05 03:11:54 +02:00
gambas
5a273a8494 Disable debugging messages.
[COMPILER]
* BUG: Disable debugging messages.
2021-06-01 23:49:31 +02:00
gambas
8a8b470c5a 'STATIC' keyword can be used instead of 'DIM' for declaring local static variables.
[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.
2021-06-01 23:12:55 +02:00
gambas
0e78042e07 Initial implementation of class namespaces.
[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.
2021-05-18 02:12:33 +02:00
gambas
77654d842f Add GB.DateFromString() API.
[INTERPRETER]
* NEW: Add GB.DateFromString() API.
2021-04-10 23:05:09 +02:00
gambas
171b46c2f3 Tells the database driver if the connection has already been closed when releasing a query result.
[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.
2021-04-10 16:15:34 +02:00
gambas
d5c59c123c Change the GB_FUNCTION structure so that it stores the index of the method instead of its description pointer.
[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.
2021-03-07 23:51:12 +01:00
gambas
50db463077 Support for '#Script' preprocessor keyword.
[COMPILER]
* NEW: Support for '#Script' preprocessor keyword.

[GB.EVAL]
* NEW: Support for '#Script' preprocessor keyword.
2021-03-06 22:18:15 +01:00
gambas
1662aec5f2 Add an API to set the read-only flag of an array.
[INTERPRETER]
* NEW: Add an API to set the read-only flag of an array.
2021-03-06 13:17:35 +01:00
gambas
5e6644409e Timers are not inherited anymore by background tasks.
[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.
2021-03-06 13:17:35 +01:00
gambas
e23fca2ecc The enumerator object now can register a free function that is called when the enumeration ends or is aborted.
[INTERPRETER]
* NEW: The enumerator object now can register a free function that is called when the enumeration ends or is aborted.
2021-03-06 13:17:35 +01:00
gambas
69623f1eea Fix how highlighting deals with spaces.
[GB.EVAL]
* BUG: Fix how highlighting deals with spaces.
2021-02-15 03:20:41 +01:00
gambas
e7898916e9 Replace the Array.Sorted property by explicit FindSorted(), ExistSorted()... methods.
[INTERPRETER]
* BUG: Replace the Array.Sorted property by explicit FindSorted(), ExistSorted()... methods.
2021-02-09 23:36:09 +01:00
gambas
991695e493 Array access is now about 15% faster.
[INTERPRETER]
* OPT: Array access is now about 15% faster.
2021-02-08 21:45:29 +01:00
gambas
47a9a6679b '#Include" is a new preprocessor reserved identifier. Fix preprocessor lines highlighting.
[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.
2021-02-06 17:47:32 +01:00
gambas
1249ebd2f9 System.Cores is a new property that returns the number of cores.
[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.
2021-02-01 01:21:08 +01:00
gambas
1e22281d4d Add GB.String.Split() API. GB.Array.Get() does not check array bounds anymore.
[INTERPRETER]
* NEW: Add GB.String.Split() API.
* OPT: GB.Array.Get() does not check array bounds anymore.
2021-01-21 02:32:06 +01:00
gambas
1c3e02257c Signal handlers are now checked only if requested explicitly by a component.
[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.
2021-01-21 01:49:38 +01:00
gambas
6bec59fc15 File.DefaultDirAuth is a new property that defines the default authorizations used when using MkDir.
[INTERPRETER]
* NEW: File.DefaultDirAuth is a new property that defines the default authorizations used when using MkDir.
2021-01-14 01:09:30 +01:00
gambas
26024e57bd Stat().Device is a new property that return the device containing the file as a string.
[INTERPRETER]
* NEW: Stat().Device is a new property that return the device containing the file as a string.
2020-12-19 17:37:31 +01:00
gambas
9b3d7b4f17 Undef PACKAGE_* preprocessor constants from 'gambas.h', if they are defined.
[INTERPRETER]
* BUG: Undef PACKAGE_* preprocessor constants from 'gambas.h', if they are defined.
2020-11-24 21:43:10 +01:00
gambas
3ad3e9a42d Errors cannot be propagated outside of an event handler.
[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).
2020-11-14 03:33:12 +01:00
gambas
1239f45687 Redesign internal file constants.
[INTERPRETER]
* NEW: Redesign internal file constants.
* BUG: Opening a file for creation in direct mode now implies the write flag.
2020-11-09 17:38:28 +01:00
gambas
fd5ec670e1 Add man pages.
[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.
2020-06-20 04:56:22 +02:00
gambas
08c5fc95c7 '&=' operator optimization.
[COMPILER]
* OPT: Support for '&=' operator optimization.

[INTERPRETER]
* OPT: '&=' operator optimization.
2020-04-04 16:18:10 +02:00
gambas
2cd257be5b PEEK is a new instruction that peek some bytes from a stream without removing them.
[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.
2020-02-11 01:45:10 +01:00
gambas
63000a27fe WAIT NEXT is a new instruction that waits for the next event and process it.
[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.
2020-01-02 13:08:45 +01:00
gambas
a4ec3990e7 Memory-mapped component archives file descritors are now automatically closed when a child process is executed.
[INTERPRETER]
* BUG: Memory-mapped component archives file descritors are now automatically closed when a child process is executed.
2019-12-30 19:41:33 +01:00
gambas
b09ab39338 Function names can be put between parenthesis to disable possible warnings on them.
[COMPILER]
* NEW: Function names can be put between parenthesis to disable possible warnings on them.
2019-12-22 20:48:58 +01:00
gambas
20a345cec4 Fix compilation of function calls with variable arguments passing.
[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.
2019-11-09 11:58:57 +01:00
gambas
e8ae38e098 Forgot to commit common header files.
[INTERPRETER]
* BUG: Forgot to commit common header files.
2019-10-07 22:04:56 +02:00
gambas
abf4dfb110 PROPERTY...USE... is a new syntax to declare a property automatically associated with a private global variable.
[COMPILER]
* NEW: PROPERTY...USE... is a new syntax to declare a property automatically associated with a private global variable.
2019-08-22 03:13:58 +02:00
gambas
f6f7f85f8b Add ByRef annotations to the ".info" files generated by the compiler.
[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.
2019-07-15 15:38:52 +02:00
gambas
9f2da35cbe Emit column position in almost all error messages.
[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.
2019-05-08 06:20:35 +02:00
gambas
3dd1fd493e Fix the JIT compiler: '_init' method, Lock instruction, Object datatype, and DO / REPEAT loops at the beginning of a function now work correctly.
[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.
2019-04-04 22:58:06 +02:00
gambas
6c9df4c423 Cosmetic changes in debugger code.
[INTERPRETER]
* NEW: Cosmetic changes in debugger code.

[GB.DEBUG]
* NEW: Cosmetic changes in debugger code.
2019-03-21 23:14:22 +01:00
gambas
7c808bbba3 Define a new limit constant, that is the maximum length of the System.Language variable. It is 16 bytes.
[INTERPRETER]
* NEW: Define a new limit constant, that is the maximum length of the System.Language variable. It is 16 bytes.
2019-02-26 21:01:18 +01:00
gambas
245d3d7429 Do not add an extra decimal digit to floating point numbers, it introduces rounding errors.
[INTERPRETER]
* BUG: Do not add an extra decimal digit to floating point numbers, it introduces rounding errors.
2019-01-26 15:24:46 +01:00
gambas
912d804daa Raise the maximum number of decimal digit of a Float value to 16.
[INTERPRETER]
* NEW: Raise the maximum number of decimal digit of a Float value to 16.
2019-01-19 01:06:38 +01:00
gambas
ced4594599 Take care of components that modifiy the 'environ' variable. Using 'gb.httpd' does not crash anymore.
[INTERPRETER]
* BUG: Take care of components that modifiy the 'environ' variable. Using 'gb.httpd' does not crash anymore.
2019-01-11 15:23:50 +01:00
gambas
628aa30e54 Take the other requested GUI components into account to choose the toolkit.
[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.
2019-01-05 03:57:08 +01:00
gambas
245427b08e * Get rid of many gcc warnings. 2019-01-02 00:48:58 +01:00
gambas
d91451cf1e Assert is an new instruction that raises an error as soon as its boolean argument is FALSE.
[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.
2018-12-16 00:35:46 +01:00
gambas
26117d0fc9 [COMPILER]
* BUG: Compiler messages are prefixed with 'gbc3:', not just 'gbc:'.
* NEW: Make loop variable errors more accurate.
2018-12-14 05:16:24 +01:00