Commit graph

1393 commits

Author SHA1 Message Date
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
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
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
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
78191ced69 Remove the new Size, DataSize and StaticSize properties of the Class class. Use SizeOf() instead of DataSize.
[INTERPRETER]
* NEW: Remove the new Size, DataSize and StaticSize properties of the Class class. Use SizeOf() instead of DataSize.
2021-06-14 22:37:53 +02:00
gambas
0c30eda13f The SizeOf() function now can return the data size of a class or a structure.
[INTERPRETER]
* NEW: The SizeOf() function now can return the data size of a class or a structure.
2021-06-14 22:36:57 +02:00
gambas
d99609f2d9 Add Class.DataSize property, and make Class.Size returns the full size of an object of that class.
[INTERPRETER]
* NEW: Class.Size now returns the full size allocated for an object of that class.
* NEW: Class.DataSize is a new property that returns the size of the dynamic data allocated for that class.
2021-06-14 19:30:15 +02:00
gambas
a7d7135112 Class.Size and Class.StaticSize are two new properties that return the size of the dynamic and static data of a class.
[INTERPRETER]
* NEW: Class.Size and Class.StaticSize are two new properties that return the size of the dynamic and static data of a class.
2021-06-14 19:20:36 +02:00
gambas
3d41de69d4 Fix Eval() and fix error management on disabled fast functions.
[INTERPRETER]
* BUG: Fix Eval().
* BUG: Fix error management on disabled fast functions.
2021-06-12 12:02:39 +02:00
gambas
b24029f722 Object.SizeOf() on embedded arrays now returns the size of the array, and not the size of the temporary object created for accessing the array.
[INTERPRETER]
* NEW: Object.SizeOf() on embedded arrays now returns the size of the array, and not the size of the temporary object created for accessing the array.
2021-06-12 02:02:44 +02:00
gambas
06e2373dd5 Fix memory leaks in debugger expression evaluation routines.
[INTERPRETER]
* BUG: Fix memory leaks in debugger expression evaluation routines.

[GB.DEBUG]
* BUG: Fix memory leaks in debugger expression evaluation routines.
* NEW: The debugger now prints the reference count next to object references.
* BUG: A null pointer is printed as "NULL" now.
2021-06-12 01:39:52 +02:00
gambas
cb8c0a3f43 Implement and fix assignation of structures and embedded arrays.
[INTERPRETER]
* NEW: Implement and fix assignation of structures and embedded arrays.
2021-06-11 19:25:50 +02:00