Commit graph

1414 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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