Commit graph

2449 commits

Author SHA1 Message Date
Benoît Minisini
dc2d102a95 Move some code outside of 'gbx_exec_loop.c' source file.
[INTERPRETER]
* OPT: Move some code outside of 'gbx_exec_loop.c' source file. Apparently if the result of the compilation of this source file is too big, the interpreter can be about 150% slower.
2022-10-08 22:39:44 +02:00
Benoît Minisini
09adb643df Bool@(), Byte@()... functions can be the target of an affectation now.
[INTERPRETER]
* NEW: Bool@(), Byte@()... functions can be the target of an affectation now.

[COMPILER]
* NEW: Bool@(), Byte@()... functions can be the target of an affectation now.

[GB.JIT]
* NEW: Bool@(), Byte@()... functions can be the target of an affectation now.
2022-10-08 10:26:50 +02:00
Benoît Minisini
1004b39078 Optimization of small integer floating point constants.
[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.
2022-10-07 13:10:22 +02:00
Benoît Minisini
f749ce2030 Save 'errno' before running the debugger, and restore it after.
[GB.DEBUG]
* BUG: Save 'errno' before running the debugger, and restore it after.
2022-10-06 17:45:06 +02:00
Benoît Minisini
56cc729fe0 Fix backward-compatibility with previous bytecode.
[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.
2022-10-04 22:49:01 +02:00
Benoît Minisini
50893e77cb Various optimizations of the interpreter execution loop.
[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.
2022-10-04 01:04:15 +02:00
Benoît Minisini
dba45b1fed Don't use 3.18 multiply and divide optimization if current bytecode version is lower than 3.18.
[INTERPRETER]
* BUG: Don't use 3.18 multiply and divide optimization if current bytecode version is lower than 3.18.
2022-10-03 19:10:42 +02:00
Benoît Minisini
d7e373c633 Always check bytecode version when the current class changes during interpreter execution loop.
[INTERPRETER]
* BUG: Always check bytecode version when the current class changes during interpreter execution loop.
2022-10-03 13:46:20 +02:00
Benoît Minisini
df270cbbc0 Fix optimization of dynamic variable writing.
[INTERPRETER]
* BUG: Fix optimization of dynamic variable writing.
2022-10-01 20:04:20 +02:00
Benoît Minisini
5d1db11ab3 Fix optimization of dynamic variable reading.
[INTERPRETER]
* BUG: Fix optimization of dynamic variable reading.
2022-10-01 20:03:37 +02:00
Benoît Minisini
fd66b99f32 Some optimizations of the main interpreter loop.
[INTERPRETER]
* OPT: Some optimizations of the main interpreter loop.
2022-10-01 16:26:08 +02:00
Benoît Minisini
558360ab97 Fix compilation on non-C99 compiler.
[INTERPRETER]
* BUG: Fix compilation on non-C99 compiler.
2022-10-01 01:31:15 +02:00
Benoît Minisini
13aa1311d7 Optimize array access and basic arithmetic operator on integer and floats.
[INTERPRETER]
* OPT: Optimize array access and basic arithmetic operator on integer and floats.
2022-10-01 00:54:05 +02:00
Benoît Minisini
59051975ec Make 'gb.hash' compile on 32 bits architectures.
[GB.HASH]
* BUG: Make 'gb.hash' compile on 32 bits architectures.
2022-09-24 11:50:31 +02:00
Benoît Minisini
1c64c42ada Make 'gb.hash' compile on non-64 bits architectures.
[GB.HASH]
* BUG: Make 'gb.hash' compile on non-64 bits architectures.
2022-09-20 15:06:35 +02:00
Benoît Minisini
7c42524ecd Connection: It's now possible to specify the password in the connection URL.
[GB.DB]
* NEW: Connection: The URL argument of the Connection constructor is now handled by the Gambas part.
* NEW: Connection: It's now possible to specify the password in the connection URL.
2022-09-20 12:54:14 +02:00
Benoît Minisini
219507b53e Forgot to commit two source files.
[GB.HASH]
* BUG: Forgot to commit two source files.
2022-09-18 00:37:54 +02:00
Benoît Minisini
580a51b659 Replace hash native functions by static methods in a 'Hash' class implemented in the 'gb.hash' component.
[COMPILER]
* NEW: Remove Md5() and other hash native functions.

[INTERPRETER]
* NEW: Remove Md5() and other hash native functions.

[GB.HASH]
* NEW: 'Hash' is a new static class with methods that implement The 'Md5', 'Sha1', 'Sha256' and 'Sha512' hash functions.
2022-09-17 22:41:29 +02:00
Benoît Minisini
0b7c342e8e Add Md5(), Sha1(), Sha256() and Sha512() functions.
[CONFIGURATION]
* NEW: Update 'README' and 'README.md' files.

[COMPILER]
* NEW: Add Md5(), Sha1(), Sha256() and Sha512() functions.

[INTERPRETER]
* NEW: Add Md5(), Sha1(), Sha256() and Sha512() functions.

[GB.HASH]
* NEW: This is a new component that implements the Md5(), Sha1(), Sha256() and Sha512() functions.
  The code comes from BusyBox.
2022-09-13 02:48:11 +02:00
Benoît Minisini
0111231df9 Fix compilation.
[GB.EVAL]
* BUG: Fix compilation.
2022-09-12 15:17:22 +02:00
Benoît Minisini
6a793ddeb7 Replace my old depracted gmail mail by the new one.
[CONFIGURATION]
* NEW: Replace my old depracted gmail mail by the new one.
2022-09-12 15:13:13 +02:00
Benoît Minisini
1cec6f118b Free 14 bytecode slots by using 'ADD QUICK' for numbers between -255 and 255 only.
[COMPILER]
* NEW: Free 14 bytecode slots by using 'ADD QUICK' for numbers between -255 and 255 only.
2022-09-12 15:02:39 +02:00
Benoît Minisini
c2005ad919 Forbid "PROPERTY WRITE" when compiled bytecode version is strictly lower than 3.18.
[COMPILER]
* NEW: Forbid "PROPERTY WRITE" when compiled bytecode version is strictly lower than 3.18.
2022-09-12 15:01:00 +02:00
Benoît Minisini
ec3633e5a6 Forgot to remove some uses of deprecated LIKELY() macros.
[GB.DATA]
* BUG: Forgot to remove some uses of deprecated LIKELY() macros.
2022-09-08 00:56:45 +02:00
Benoît Minisini
f3cfc51374 Connection: Request substitution methods now support "[&1]" and "&1" quoting syntax to quote a table name or a column name.
[INTERPRETER]
* NEW: Enhance 'GB.SubstStringAdd()' and add 'GB.SubstStringUnquote()' API to support custom quoting in 'gb.db'.

[GB.DB]
* NEW: Connection: Request substitution methods now support "[&1]" and "`&1`" quoting syntax to quote a table name or a column name.
2022-09-05 00:59:44 +02:00
Benoît Minisini
aff3103b07 Remove uses of deprecated LIKELY() macros.
[GB.DATA]
* BUG: Remove uses of deprecated LIKELY() macros.
2022-09-04 22:02:39 +02:00
Benoît Minisini
0ec57295b7 Remove useless LIKELY() and UNLIKELY() macros. Add a class flag for bytecode strictly older than 3.18.
[COMPILER]
* NEW: Remove useless LIKELY() and UNLIKELY() macros.

[INTERPRETER]
* NEW: Remove useless LIKELY() and UNLIKELY() macros.
* NEW: Add a class flag for bytecode strictly older than 3.18.

[GB.DEBUG]
* BUG: Fix incorrect 'printf' format on 32-bits architectures.
2022-09-03 14:20:13 +02:00
Benoît Minisini
415de7b257 Update configuration files to autoconf 2.71.
[CONFIGURATION]
* NEW: Update configuration files to autoconf 2.71.
2022-09-03 13:24:51 +02:00
Benoît Minisini
93764b1c37 Add 'ALIGN_MAKE()' macro in 'gb.geom.h'.
[GB.GEOM]
* NEW: Add 'ALIGN_MAKE()' macro in 'gb.geom.h'.
2022-08-25 23:56:54 +02:00
Benoît Minisini
4f9e724d76 Paint: Add 'LineDash' and 'LineDashOffset' synonymous properties.
[GB.DRAW]
* NEW: Paint: 'LineDash' is now a synonymous for the 'Dash' property.
* NEW: Paint: 'LineDashOffset' is now a synonymous for the 'DashOffset' property.
2022-08-10 00:00:26 +02:00
Benoît Minisini
438b41f7e1 Make the component visible.
[GB.GEOM]
* NEW: Make the component visible.
2022-08-09 02:49:52 +02:00
Benoît Minisini
1b2d3d2a51 Add a command to remove all breakpoints in one shot.
[GB.DEBUG]
* NEW: Add a command to remove all breakpoints in one shot.
2022-08-08 17:26:41 +02:00
Benoît Minisini
6548c75a0e Does not crash anymore when a negative integer is used for the value of a floating point constant.
[COMPILER]
* BUG: Does not crash anymore when a negative integer is used for the value of a floating point constant.
2022-08-06 18:56:24 +02:00
Benoît Minisini
56e9129f85 PROPERTY WRITE now declares a write-only property.
[INTERPRETER]
* NEW: Support for write-only properties.

[COMPILER]
* NEW: PROPERTY WRITE now declares a write-only property.
2022-08-01 22:03:54 +02:00
Benoît Minisini
cfd42c7186 Support for breakpoints inside project components.
[INTERPRETER]
* NEW: Support for breakpoints inside project components.

[GB.DEBUG]
* NEW: Support for breakpoints inside project components.
2022-07-27 01:04:31 +02:00
Benoît Minisini
0ef05fa1e9 Do not display class name '^' prefix in backtraces.
[GB.DEBUG]
* NEW: Do not display class name '^' prefix in backtraces.
2022-07-26 01:55:08 +02:00
Benoît Minisini
daa9c38517 Remove a now useless flag in the internal class structure. The exported name of a class does not overwrite the name field of the class structure anymore.
[INTERPRETER]
* NEW: Remove a now useless flag in the internal class structure.
* NEW: The exported name of a class does not overwrite the name field of the class structure anymore, fixing the stack backtrace.
2022-07-25 22:26:00 +02:00
Benoît Minisini
0c06ea3dc6 Adapt Assert.Ok() method to the new backtrace format.
[GB.TEST]
* BUG: Adapt Assert.Ok() method to the new backtrace format.
2022-07-23 23:26:58 +02:00
Benoît Minisini
d053ced083 Add an API to retrieve the last error message.
[INTERPRETER]
* NEW: Add an API to retrieve the last error message.
2022-07-23 15:40:08 +02:00
Benoît Minisini
21d9bd178e Display bytecode statistics in verbose, no background task mode.
[COMPILER]
* NEW: Display bytecode statistics in verbose, no background task mode.
2022-07-22 20:40:20 +02:00
Benoît Minisini
c78d7fb496 Add component name in debugger positions.
[INTERPRETER]
* NEW: Add component name in debugger positions.

[GB.DEBUG]
* NEW: Add component name in debugger positions.
2022-07-22 20:31:51 +02:00
Benoît Minisini
f0d3f2e8c3 'Signal[].Send()' is a new method for sending a signal.
[GB.SIGNAL]
* NEW: 'Signal[].Send()' is a new method for sending a signal. It's an alternative syntax to the 'Signal.Send()' method.
2022-06-20 01:37:54 +02:00
Benoît Minisini
7f182bff2f Replace a global variable by a function argument in CLASS_look() and CLASS_find() functions.
[INTERPRETER]
* NEW: Replace a global variable by a function argument in CLASS_look() and CLASS_find() functions.
2022-06-20 01:37:03 +02:00
Benoît Minisini
b9ec608cde Fix 'String[].FindSorted()' and 'String[].ExistSorted()' when using 'gb.Like' or 'gb.Match' comparison methods.
[INTERPRETER]
* BUG: Fix 'String[].FindSorted()' and 'String[].ExistSorted()' when using 'gb.Like' or 'gb.Match' comparison methods.
2022-06-14 02:24:32 +02:00
Benoît Minisini
178c665461 In 'gb.openssl', use the API instead of directly including interpreter header files.
[INTERPRETER]
* NEW: Add all comparison constants to 'gambas.h' API header file.

[GB.OPENSSL]
* BUG: Use the API instead of directly including interpreter header files. It breaks compilation on Ubuntu 22.10.1.
2022-05-28 18:51:48 +02:00
Benoît Minisini
33ec6b88e3 'GB.Every()' API now creates a timer that is ignored by the event loop.
[INTERPRETER]
* NEW: 'GB.Every()' API now creates a timer that is ignored by the event loop.
2022-05-26 20:47:52 +02:00
Benoît Minisini
d27cbb5d1f Application.Task is a new property that returns if we are executing a Task object.
[INTERPRETER]
* NEW: Application.Task is a new property that returns if we are executing a Task object.
2022-05-24 11:55:48 +02:00
Benoît Minisini
d92eeb618c Always flush buffered streams at exit even if the exit is immediate.
[INTERPRETER]
* BUG: Always flush buffered streams at exit even if the exit is immediate.
2022-05-24 11:54:46 +02:00
Benoît Minisini
c17f5a58f8 Add the branch to the version number when it comes from a 'VERSION' file.
[COMPILER]
* BUG: Add the branch to the version number when it comes from a 'VERSION' file.
2022-05-02 15:06:32 +02:00
Benoît Minisini
c771d1d316 QUIT now ends the process brutally. C++ static exit routines from unloaded shared libraries are not called anymore, avoiding the crash.
[INTERPRETER]
* BUG: QUIT now ends the process brutally. C++ static exit routines from unloaded shared libraries are not called anymore, avoiding the crash.
2022-04-28 23:39:42 +02:00
gambas
e07eb9b22f Allow errors to propagate from event handlers when the event is internally raised by the interpreter.
[INTERPRETER]
* NEW: Allow errors to propagate from event handlers when the event is internally raised by the interpreter.
  All events raised from a component written in Gambas through the Gambas API still do not propagate errors.
2022-04-15 16:33:13 +02:00
gambas
7d38878e70 Fix GB_Wait() calls as the meaning of its argument changed.
[INTERPRETER]
* BUG: Fix GB_Wait() calls as the meaning of its argument changed.
2022-04-13 02:24:55 +02:00
gambas
fe43102071 Program exit now can be hold by the debugger to workaround a missing feature of the Gnome terminal.
[INTERPRETER]
* NEW: Program exit now can be hold by the debugger to workaround a missing feature of the Gnome terminal.

[GB.DEBUG]
* NEW: Program exit now can be hold by the debugger to workaround a missing feature of the Gnome terminal.
2022-04-13 01:23:19 +02:00
gambas
b224cd3436 "Wait 0" is now an equivalent of "Wait" alone, but with processing of input events.
[INTERPRETER]
* NEW: "Wait 0" is now an equivalent of "Wait" alone, but with processing of input events.
2022-04-09 19:08:02 +02:00
gambas
740cff77aa 'Collection.Options' is a new property that allows to define the specific options of a connection.
[GB.DB]
* NEW: 'Collection.Options' is a new property that allows to define the specific options of a connection.
2022-04-09 13:30:01 +02:00
gambas
b744c7e193 Allow to ignore up to 8 processes in extern debugging mode.
[INTERPRETER]
* NEW: Allow to ignore up to 8 processes in extern debugging mode.
2022-04-08 03:21:32 +02:00
gambas
891edceeea The 'VERSION' file is taken into account again.
[COMPILER]
* BUG: The 'VERSION' file is taken into account again.
2022-04-08 02:31:22 +02:00
Christof Thalhofer
9689fa13f2 Tests for error handling
[DEVELOPMENT ENVIRONMENT]
*NEW: Tests for error handling
2022-03-27 12:44:45 +02:00
gambas
bee8cacf59 Line number in error message should now be correct when the faulty code spans on multiple lines.
[COMPILER]
* BUG: Line number in error message should now be correct when the faulty code spans on multiple lines.
2022-03-10 00:48:06 +01:00
Christof Thalhofer
280aa1a52f Merge branch 'master' of https://gitlab.com/gambas/gambas 2022-03-09 22:56:00 +01:00
Christof Thalhofer
48fc9bcbc3 Tests for local static variables
[DEVELOPMENT ENVIRONMENT]
*NEW: Tests for local static variables
2022-03-09 22:54:25 +01:00
gambas
7457b4de3f Fix Task.Wait() so that it restores SIGCHLD handler for GTK+ libraries, like Process.Wait().
[INTERPRETER]
* BUG: Fix Task.Wait() so that it restores SIGCHLD handler for GTK+ libraries, like Process.Wait().
* NEW: Task.Wait() now can take an optional timeout argument.
2022-03-09 14:25:22 +01:00
gambas
1794f4e072 Add <stdio.h> include to 'gb_system_temp.h', when there is no support for returning the number of CPUs.
[INTERPRETER]
* BUG: Add <stdio.h> include to 'gb_system_temp.h', when there is no support for returning the number of CPUs.
2022-02-21 16:14:31 +01:00
gambas
2d681e7fa8 Type analysis of bit operators now works correctly.
[COMPILER]
* BUG: Type analysis of bit operators now works correctly.
2022-02-19 11:30:28 +01:00
gambas
aa2ce32c41 Add ALIGN_IS_NORMAL() macro for alignment constants.
[GB.GEOM]
* NEW: Add ALIGN_IS_NORMAL() macro for alignment constants.
2022-02-18 09:06:35 +01:00
gambas
f677aef95c Fix backward-compatibility of serialization format.
[INTERPRETER]
* BUG: Fix backward-compatibility of serialization format.
2022-02-12 14:29:43 +01:00
gambas
dbd1091373 Try to make the new serialization format backward-compatible with the old one.
[INTERPRETER]
* BUG: Try to make the new serialization format backward-compatible with the old one.
2022-02-11 18:59:31 +01:00
gambas
5d1716aa0f Serialization now does not duplicate objects anymore. Fix Task.Wait().
[INTERPRETER]
* NEW: Serialization now does not duplicate objects anymore. Once an object
  is serialized, if it is encounter again, then it is seralized as a five
  bytes reference.
* BUG: Fix Task.Wait() that incorrectly used 'sleep' instead of 'usleep'.
2022-02-08 22:48:06 +01:00
gambas
9f39e674c2 Print constants (Null, True, False) with only the first letter in upper case.
[GB.DEBUG]
* NEW: Print constants (Null, True, False) with only the first letter in upper case.
2022-02-07 21:51:18 +01:00
gambas
e5a66e553e Add a '-F' option that converts a piece of form data into Gambas code.
[INTERPRETER]
* NEW: Update help text layout.

[COMPILER]
* NEW: Add a '-F' option that converts a piece of form data into Gambas code.
* NEW: Update help text layout.

[ARCHIVER]
* NEW: Update help text layout.

[INFORMER]
* NEW: Update help text layout.
2022-02-05 18:41:36 +01:00
gambas
d2eebaf136 The debugger and the profiler now can act inside components.
[INTERPRETER]
* NEW: Add a debugger API to allows debugging inside components.

[GB.DEBUG]
* NEW: New debugger command to toggle  debugging inside components.
* NEW: Support for profiling inside components.
2022-02-05 00:11:10 +01:00
gambas
0e5e63b678 '_lang' is a new static public special method that is called when 'System.Language' changes.
[INTERPRETER]
* NEW: '_lang' is a new static public special method that is called when
  'System.Language' changes. It allows you to reload the translations of
  the class.
2022-02-04 04:29:04 +01:00
gambas
9280365122 Debug.Signal() is a new method that signals a debugged gambas process with SIGUSR2 to ask him to pause.
[GB.DEBUG]
* NEW: Debug.Signal() is a new method that signals a debugged gambas
  process with SIGUSR2 to ask him to pause.
2022-02-02 20:57:31 +01:00
gambas
c1c14d0f8a Avoid race conditions with actual reads, when we need to PEEK all the bytes of a stream.
[INTERPRETER]
* BUG: If some data have been peeked on a stream, then the next reads will
  only return the peeked data until they all have been exhausted, and the
  Lof() function will return the number of peeked bytes yet to read.
2022-02-01 02:37:09 +01:00
gambas
691144bba9 Observer.Detach() is a new method that disconnects the observer from the observed object.
[INTERPRETER]
* NEW: Observer.Detach() is a new method that disconnects the observer from the observed object.
2022-02-01 02:05:19 +01:00
gambas
2a90e5f081 Fix a warning message.
[GB.DEBUG]
* BUG: Fix a warning message.
2022-02-01 01:22:02 +01:00
gambas
c26d257e9e Fix a possible crash in the child process termination handler.
[INTERPRETER]
* BUG: Fix a possible crash in the child process termination handler.
2022-02-01 01:21:13 +01:00
gambas
f75b23a834 The NEW operator now raises an error if the class following it is unknown.
[COMPILER]
* BUG: The NEW operator now raises an error if the class following it is unknown.
2022-01-29 18:46:36 +01:00
gambas
fc49ac6148 Forgot to commit a file. 2022-01-14 22:02:29 +01:00
gambas
05f9f95c1a 'Timer.Ignore' is a new property that tells the interpreter not to wait for the timer's end when exiting.
[INTERPRETER]
* NEW: 'Timer.Ignore' is a new property that tells the interpreter not to
  wait for the timer's end when exiting.
2022-01-14 21:29:55 +01:00
gambas
8ae88c2d04 Automatically disable timers when raising the 'Timer' event is impossible because the parent object is invalid.
[INTERPRETER]
* BUG: Automatically disable timers when raising the 'Timer' event is impossible because the parent object is invalid.
2022-01-14 19:16:11 +01:00
gambas
1cc4d42742 Add an API that returns if there is at least one active timer.
[INTERPRETER]
* NEW: Add an API that returns if there is at least one active timer.
2022-01-14 12:34:02 +01:00
gambas
3752a6acba 'Env.Copy()' is a new method that returns a copy of the environment as a string array.
[INTERPRETER]
* NEW: 'Args.Copy()' is a new method that is a synonymous of 'Args.All'.
* NEW: 'Env.Copy()' is a new method that returns a copy of the environment as a string array.
2022-01-12 22:13:02 +01:00
gambas
4cd61da44e Fix Component.Version for libraries.
[INTERPRETER]
* BUG: Fix Component.Version for libraries.
2022-01-12 13:21:41 +01:00
gambas
135e54e7ab A task does not close its standard outputs anymore when its 'Read' or 'Error' events are not handled.
[INTERPRETER]
* NEW: A task does not close its standard outputs anymore when its 'Read' or 'Error' events are not handled.
2022-01-07 12:41:34 +01:00
gambas
52c5823669 Fix compilation of 'share/gb_system_temp.h' on non-Linux/BSD systems.
[INTERPRETER]
* BUG: Fix compilation of 'share/gb_system_temp.h' on non-Linux/BSD systems.
2022-01-07 11:38:46 +01:00
gambas
558f05fe21 Fix array and allocation management, so that allocating a byte array with a number of elements near the greatest integer does not crash anymore.
[INTERPRETER]
* BUG: Fix array and allocation management, so that allocating a byte array with a number of elements near the greatest integer does not crash anymore.
2021-12-09 23:50:41 +01:00
gambas
82301c82f9 Subroutine arguments that expect an Integer value now accept a Long without raising a type mismatch error.
[INTERPRETER]
* BUG: Subroutine arguments that expect an Integer value now accept a Long without raising a type mismatch error.
2021-12-09 02:18:12 +01:00
Benoît Minisini
f3ec57aa2b Merge branch 'master' into 'master'
Call get_nprocs on Cygwin like on Linux

See merge request gambas/gambas!249
2021-12-06 17:29:39 +00:00
gambas
c5174e185d The previous commit broke the the bit manipulation functions. Fix it.
[INTERPRETER]
* BUG: The previous commit broke the the bit manipulation functions. Fix it.
2021-11-09 00:10:54 +01:00
gambas
0ff81df085 AND, OR and XOR operators now work correctly when one of its argument is a Long and the other is not.
[INTERPRETER]
* BUG: AND, OR and XOR operators now work correctly when one of its argument is a Long and the other is not.
2021-11-08 23:54:28 +01:00
gambas
1f93b3723c Array classes can be used with the IS operator without being declared elsewhere first.
[COMPILER]
* BUG: Array classes can be used with the IS operator without being declared elsewhere first.
2021-11-08 12:25:58 +01:00
gambas
fa133a3c78 The output of 'msgfmt' executions is stored in log files, one by translation.
[COMPILER]
* NEW: The output of 'msgfmt' executions is stored in log files, one by translation.
2021-11-08 01:43:27 +01:00
gambas
35d87a91c1 Fix a memory leak when stopping a triggered timer.
[INTERPRETER]
* BUG: Fix a memory leak when stopping a triggered timer.
2021-11-06 15:17:38 +01:00
gambas
168b00a5d5 AvlTree: Clearing the tree now correctly frees all nodes.
[GB.DATA]
* BUG: AvlTree: Clearing the tree now correctly frees all nodes.
2021-11-05 20:11:24 +01:00
gambas
84e4bc2c71 Timer.Stop() now cancels a call to Timer.Trigger().
[INTERPRETER]
* NEW: Timer.Stop() now cancels a call to Timer.Trigger().
2021-11-05 18:39:35 +01:00
gambas
0f80f22530 The Highlight constants now follow the order defined by the new 'gb.eval.highlight' design.
[GB.EVAL]
* NEW: The Highlight constants now follow the order defined by the new 'gb.eval.highlight' design.
2021-11-05 16:46:35 +01:00
gambas
c0345b99ab Raise an error if point or rectangle constructor take an incorrect number of arguments.
[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.
2021-11-02 12:20:07 +01:00
gambas
adf03f0862 Remove the String.Capitalize() synonymous. That function should instead capitalize each word of a string, not just the first character.
[INTERPRETER]
* BUG: Remove the String.Capitalize() synonymous. That function should instead capitalize each word of a string, not just the first character.
2021-11-01 23:09:38 +01:00
gambas
01a1df3b33 Move 'gb.form.htmlview' source code directory at the top, so it is compiled after the components its project requires.
[CONFIGURATION]
* BUG: Move 'gb.form.htmlview' source code directory at the top, so it is compiled after the components its project requires.
2021-10-31 17:55:55 +01:00
gambas
7b456ffc0b Do not make the project depends on 'gb.form', it break compilation.
[GB.FORM.HTMLVIEW]
* BUG: Do not make the project depends on 'gb.form', it break compilation.
2021-10-31 02:11:15 +02:00
gambas
bfddf7d407 HtmlView: The control can get focus now, and react to arrow keys.
[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.
2021-10-30 22:22:47 +02:00
gambas
1ceadb3c28 'String.Capitalize()' is now a synonymous and better name for 'String.UCaseFirst()'.
[INTERPRETER]
* NEW: 'String.Capitalize()' is now a synonymous and better name for 'String.UCaseFirst()'.
2021-10-30 20:39:28 +02:00
gambas
d8a203f83a HtmlView: The control is now usable.
[GB.FORM.HTMLVIEW]
* NEW: HtmlView: The control is now usable.
2021-10-30 20:37:44 +02:00
gambas
fa3921b056 Work continues...
[GB.FORM.HTMLVIEW]
* NEW: Work continues...
2021-10-30 02:15:43 +02:00
gambas
ed430b5656 Try to fix compilation.
[GB.FORM.HTMLVIEW]
* BUG: Try to fix compilation.
2021-10-29 03:33:44 +02:00
gambas
894e73d1c6 Work continues on the new HtmlView control.
[GB.FORM.HTMLVIEW]
* NEW: Work continues on the new HtmlView control.
2021-10-29 02:51:00 +02:00
gambas
c2052e42f3 Add two API for translating and scaling the current painter.
[GB.DRAW]
* NEW: Add two API for translating and scaling the current painter.
2021-10-29 02:49:34 +02:00
gambas
fe27af0ddb Add an API to set the current paint background color.
[GB.DRAW]
* NEW: Add an API to set the current paint background color.
2021-10-28 03:29:13 +02:00
gambas
57916c60c3 Use '-std=c99' for compilation of 'gumbo'.
[GB.FORM.HTMLVIEW]
* BUG: Use '-std=c99' for compilation of 'gumbo'.
2021-10-28 03:07:33 +02:00
gambas
58f47d68ad Use the C compiler for compiling 'gumbo'.
[GB.FORM.HTMLVIEW]
* BUG: Use the C compiler for compiling 'gumbo'.
2021-10-28 02:26:36 +02:00
gambas
5c8b49b601 Add gcc flag for c++11 standard.
[GB.FORM.HTMLVIEW]
* BUG: Add gcc flag for c++11 standard.
2021-10-28 02:08:31 +02:00
gambas
f5db84f9a2 Integrate 'gumbo' library inside the component.
[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.
2021-10-28 01:27:55 +02:00
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
fdc47c8744 Some debugger fixes.
[GB.DEBUG]
* BUG: Fix debugger fifo opening process.
* BUG: The result of an evaluated expression is not truncated anymore.
2021-10-25 02:57:04 +02:00
gambas
4681142810 If remote debugging is activated, lock a file to tell the IDE we are alive.
[INTERPRETER]
* NEW: If remote debugging is activated, lock a file to tell the IDE we are alive.
2021-10-21 01:02:07 +02:00
gambas
e138b8f0e5 'EXEC / SHELL ... TO ... WITH ERROR' is a new syntax that redirects both the standard output and the standard error of a process to a string.
[COMPILER]
* NEW: 'EXEC / SHELL ... TO ... WITH ERROR' is a new syntax that redirects
  both the standard output and the standard error of a process to a string.
  The support for that feature was already present inside the interpreter!
2021-10-20 17:39:52 +02:00
gambas
438deab9da The '!' command does not write on the standard output anymore, but now works like the '?' command.
[GB.DEBUG]
* NEW: The '!' command does not write on the standard output anymore, but now works like the '?' command.
2021-10-20 14:17:22 +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
95e6d4a9bb Collection.Keys is a new property that returns a string array of all collection keys.
[INTERPRETER]
* NEW: Collection.Keys is a new property that returns a string array of all collection keys.
2021-10-08 14:29:51 +02:00
gambas
4729b9e60b JIT implementation of Left$(), Mid$() and Right$(). They are now twice faster.
[GB.JIT]
* NEW: JIT implementation of Left$(), Mid$() and Right$(). They are now twice faster.
2021-09-18 23:41:47 +02:00
gambas
34b543e555 Standard stream objects (File.In, File.Out, File.Err) are now created on demand.
[INTERPRETER]
* NEW: Standard stream objects (File.In, File.Out, File.Err) are now created on demand.
2021-09-18 14:50:39 +02:00
gambas
a62007de37 Class overriding is not retroactive anymore when the class already has instances.
[INTERPRETER]
* BUG: Class overriding is not retroactive anymore when the class already has instances.
* NEW: In tracing mode, indent the interpreter output according to the current stack depth.
2021-09-18 01:09:05 +02:00
Bastian Germann
695c24646f Call get_nprocs on Cygwin like on Linux 2021-09-15 16:15:19 +02:00
gambas
8ee4db628d Buffered streams read and write methods now correctly handle errors.
[INTERPRETER]
* BUG: Buffered streams read and write methods now correctly handle errors.
2021-09-13 19:52:24 +02:00
gambas
ea04ca6e6a Rollback the previous commit, it breaks too many things.
[INTERPRETER]
* BUG: Rollback the previous commit, it breaks too many things.
2021-08-30 02:05:38 +02:00
gambas
742b65afc7 Locked objects now can receive events. Beware, this a test, as that change is not backward-compatible!
[INTERPRETER]
* NEW: Locked objects now can receive events. Beware, this a test, as that change is not backward-compatible!
2021-08-30 02:02:18 +02:00
gambas
3e0eb272a3 Restore the end-of-file detection for buffered streams whose read ahead is allowed.
[INTERPRETER]
* BUG: Standard input does not use read ahead anymore in all cases.
* BUG: Restore the end-of-file detection for buffered streams whose read ahead is allowed.
2021-08-11 22:57:15 +02:00
gambas
10c2829207 Now only standard input, output, error, pipes and process streams are automatically unwatched.
[INTERPRETER]
* BUG: Now only standard input, output, error, pipes and process streams are automatically unwatched.
2021-08-10 18:23:18 +02:00
gambas
3f5234be7e Read watches are not automatically disabled anymore for non-regular files.
[INTERPRETER]
* NEW: Read watches are not automatically disabled anymore for non-regular files.
2021-08-10 07:27:21 +02:00
gambas
a7a249543e Fix how 'Lof()' behaves on special files, and how read watches are automatically disabled or not. Add a new "Unknown stream size" error.
[INTERPRETER]
* NEW: New "Unknown stream size" error when 'Lof()' cannot know the size of a stream.
* BUG: If we can't know the size of a stream watched for reading, then we don't unwatch it automatically anymore.
* BUG: Streams based on non-regular file descriptors (devices for example) opened in direct mode now never use 'fstat()' for getting the file length.
2021-07-31 00:46:51 +02:00
gambas
1943dbfcf9 Some fixes in stream management.
[INTERPRETER]
* NEW: Read watches are automatically disabled when stream is closed in all cases.
* BUG: Buffered stream end-of-file function has been fixed.
2021-07-27 02:56:59 +02:00
gambas
41bb91b512 Remove the 'glib' workaround of commit 'c8fe917e', it breaks 'gb.web.gui', that needs true read-only pipes.
[INTERPRETER]
* BUG: Remove the 'glib' workaround of commit 'c8fe917e', it breaks 'gb.web.gui', that needs true read-only pipes.
2021-07-21 18:57:40 +02:00
gambas
cba7b18844 Fix the behaviour of standard input, end of file and stream read watches.
[INTERPRETER]
* NEW: Standard input is not supposed to be always available for reading.
* NEW: Watching a stream for reading is stopped as soon as reading ahead returns end of file.
* NEW: Eof() now immediately returns TRUE if a previous read ahead has reached end of file.
2021-07-16 04:00:29 +02:00
gambas
c8fe917e97 Pipes are now always internally opened for writing, to workaround a 'glib' behaviour, that eats 100% CPU when there is no writer anymore on a pipe watched for reading.
[INTERPRETER]
* BUG: Pipes are now always internally opened for writing, to workaround a 'glib' behaviour, that eats 100% CPU when there is no writer anymore on a pipe watched for reading.
2021-07-14 02:08:01 +02:00
gambas
e08d47dd02 When using SHELL, call 'setpgrp()' after the possible 'setsid()' call. Otherwise the shell i/o are not visible to the Gambas process.
[INTERPRETER]
* BUG: When using SHELL, call 'setpgrp()' after the possible 'setsid()' call. Otherwise the shell i/o are not visible to the Gambas process.
2021-07-10 23:02:04 +02:00
gambas
792c7bec6f Remove an incorrectly committed debug test.
[INTERPRETER]
* BUG: Remove an incorrectly committed debug test.
2021-07-07 22:57:59 +02:00
gambas
bfbc55e4c7 Fix number formatting when the format include escaped characters.
[INTERPRETER]
* BUG: Fix number formatting when the format include escaped characters.
2021-07-07 00:39:11 +02:00
gambas
eba9622d5e Date formatting with escaped characters works correctly again.
[INTERPRETER]
* BUG: Date formatting with escaped characters works correctly again.
2021-07-06 23:22:24 +02:00
gambas
f6247616ca The '-e' option works correctly again.
[INTERPRETER]
* BUG: The '-e' option works correctly again.
2021-07-06 22:53:56 +02:00
gambas
e2c15bd10b Fix highlighting and rewriting of lines having comments with more than one space before them.
[GB.EVAL]
* BUG: Fix highlighting and rewriting of lines having comments with more than one space before them.
2021-07-05 18:52:07 +02:00
gambas
9072d7c9de Connection.Collations correctly returns the collation list now.
[GB.DB]
* BUG: Connection.Collations correctly returns the collation list now.
2021-06-29 23:21:44 +02:00
gambas
b94176c704 Don't handle VERSION file in the compiler. Only the IDE supports that feature now.
[COMPILER]
* NEW: Don't handle VERSION file in the compiler. Only the IDE supports that feature now.
2021-06-23 18:51:44 +02:00
gambas
51068e17bd Class.Symbols and Class[] now correctly ignore symbol table entries overriden by inheritance.
[INTERPRETER]
* BUG: Class.Symbols and Class[] now correctly ignore symbol table entries overriden by inheritance.
2021-06-20 00:09:36 +02:00
gambas
6e5c42939a Fix some memory leaks introduced by the last commit.
[GB.JIT]
* BUG: Fix some memory leaks introduced by the last commit.
2021-06-18 14:33:40 +02:00
gambas
78ad25231b JIT compiler support for embedded array and structures variables.
[INTERPRETER]
* NEW: JIT compiler support for embedded array and structures variables.

[GB.JIT]
* NEW: JIT compiler support for embedded array and structures variables.
2021-06-18 04:33:42 +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