Commit graph

2236 commits

Author SHA1 Message Date
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
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
gambas
e6d9faad0a Allow local static variables to declare embedded arrays or structures like global variables.
[COMPILER]
* NEW: Allow local static variables to declare embedded arrays or structures like global variables.
2021-06-15 17:06:57 +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