Commit graph

1374 commits

Author SHA1 Message Date
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
gambas
e1202bad7e Array.Read() and Array.Write() now check their stream argument instead of crashing if it is NULL.
[INTERPRETER]
* BUG: Array.Read() and Array.Write() now check their stream argument instead of crashing if it is NULL.
2021-06-10 02:27:09 +02:00
gambas
c42a80d20f Don't try to call the "before fork" library handler if the library is not yet loaded.
[INTERPRETER]
* BUG: Don't try to call the "before fork" library handler if the library is not yet loaded.
2021-06-07 23:53:16 +02:00
gambas
49dc9b051b Fix JIT function calls and add Jit.Enabled property.
[INTERPRETER]
* BUG: Calling a JIT function from a class having a ':' in its name works correctly now.
* NEW: Jit.Enabled is a new property that allows to temporarily deactivate the JIT compiler.
2021-06-05 14:29:58 +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
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
e4dffc8ae8 And, Or and Xor operators now correctly raise an error if they deal with Single or Float values.
[INTERPRETER]
* BUG: And, Or and Xor operators now correctly raise an error if they deal with Single or Float values.
* OPT: And, Or and Xor operators should be a bit faster.
2021-05-31 23:25:03 +02:00
gambas
65eff9e732 The debugger now can watch expressions, and stop when their value changes.
[INTERPRETER]
* NEW: Support for expression watches.

[GB.DEBUG]
* NEW: Add new command for watching expressions, i.e. stopping the debugger when the value of an expressions changes.
2021-05-24 15:34:37 +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
ae3ff60eef Fix compilation on BSD.
[INTERPRETER]
* BUG: Fix compilation on BSD systems.

[GB.FORM]
* NEW: Search for icon themes in '/usr/local' for BSD systems.
2021-05-01 00:28:19 +02:00
gambas
f970a37ed8 Fix a string memory leak in error management.
[INTERPRETER]
* BUG: Fix a string memory leak in error management.
2021-04-30 21:01:14 +02:00
gambas
b3cbe0e4a0 Abort JIT compilation before executing the QUIT instruction.
[INTERPRETER]
* BUG: Abort JIT compilation before executing the QUIT instruction.
2021-04-30 00:34:50 +02:00
gambas
4ef3334245 WAIT with a positive value should not block anymore in some case.
[INTERPRETER]
* BUG: WAIT with a positive value should not block anymore in some case.
2021-04-28 23:44:16 +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
5fea1897fb Url$() does not encode spaces with the '+' character anymore, as this is deprecated, and works only inside query part of the URL.
[INTERPRETER]
* BUG: Url$() does not encode spaces with the '+' character anymore, as this is deprecated, and works only inside query part of the URL.
2021-04-09 03:41:02 +02:00
Benoît Minisini
14dff78d3f Merge branch 'kill_trunk_h' into 'master'
Detect git/svn version with a macro instead of creating a header file

See merge request gambas/gambas!216
2021-04-03 10:41:04 +00:00
gambas
3ccbc7281e * Backward-compatible change when using date or time separators for date or time elements having none.
[INTERPRETER]
* NEW: If the current localization uses the same separator for all date elements having a separator,
  then the element having no separator will use that same element if the "/" format character
  is used in the Format() function. Same change for the time separators.
2021-04-02 17:07:41 +02:00
Laurent Carlier
82fbda28e8
Detect git/svn version with a macro instead of creating a header file 2021-03-31 09:26:49 +02:00
gambas
8668ed5a69 GB.Call() API now works correctly again when calling static methods.
[INTERPRETER]
* NEW: Task.Kill() method is now a synonymous of Task.Stop().
* BUG: GB.Call() API now works correctly again when calling static methods.
2021-03-09 23:01:22 +01:00