Commit graph

422 commits

Author SHA1 Message Date
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
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
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
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
e0434b8814 Fix compilation of local static identifier access.
[COMPILER]
* BUG: Fix compilation of local static identifier access.
2021-06-02 09:59:11 +02:00
gambas
912d228f44 Remove a debugging message.
[COMPILER]
* BUG: Remove a debugging message.
2021-06-02 02:33:40 +02:00
gambas
fdf445042b Fix initialization of static local variables.
[COMPILER]
* BUG: Fix initialization of static local variables.
2021-06-02 00:04:15 +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
3c64df79b7 Namespace support continued.
[COMPILER]
* NEW: Add the '-n' option that defines a default namespace for exported classes.
* BUG: The generation of '.info' file now uses the exported name of classes.
* NEW: 'EXPORT TO <Namespace>' exports the class as '<NameSpace>:<class name>'.
* NEW: 'EXPORT TO DEFAULT' now exports to the global namespace.
2021-05-21 16:48:59 +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
da94bbabf3 'h' can be the prefix of any object datatype, even those which already has a prefix.
[COMPILER]
* NEW: 'h' can be the prefix of any object datatype, even those which already has a prefix.
2021-05-07 22:26:53 +02:00
gambas
fbff4a7ee9 New compilation option to check variable prefixes against their datatype, and print a warning if they do not match.
[COMPILER]
* NEW: Set compilation flags with the '-f' generic option now.
* NEW: New compilation option to check variable prefixes against their datatype, and print a warning if they do not match.
2021-05-07 19:20:30 +02:00
gambas
1beaf47ca7 Merge branch 'master' of gitlab.com:gambas/gambas 2021-04-03 13:15:10 +02:00
gambas
41cb5cbfe0 Use a lock file to prevent background task output on standard error from mixing.
[COMPILER]
* BUG: Use a lock file to prevent background task output on standard error from mixing.
2021-04-03 12:45:19 +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
98fffa60a1 When compiling forms, errors at the end of the class file are not associated with the form anymore.
[COMPILER]
* BUG: When compiling forms, errors at the end of the class file are not associated with the form anymore.
2021-03-25 01:14:37 +01:00
gambas
fd7160b617 Allow ON ... GOTO / GOSUB to span on multiple lines.
[COMPILER]
* NEW: Allow ON ... GOTO / GOSUB to span on multiple lines.
2021-03-06 13:17:35 +01:00
gambas
69623f1eea Fix how highlighting deals with spaces.
[GB.EVAL]
* BUG: Fix how highlighting deals with spaces.
2021-02-15 03:20:41 +01:00
gambas
47a9a6679b '#Include" is a new preprocessor reserved identifier. Fix preprocessor lines highlighting.
[COMPILER]
* NEW: '#Include" is a new preprocessor reserved identifier.
* BUG: Always raise a syntax error if a preprocessor line starts with an unknown reserved identifier.

[GB.EVAL]
* BUG: Fix preprocessor lines highlighting.
2021-02-06 17:47:32 +01:00
gambas
7bcdef0ad5 Do not crash when using '("")' as value for a string constant.
[COMPILER]
* BUG: Do not crash when using '("")' as value for a string constant.
* NEW: Better support for background jobs crashes.
2021-02-04 04:04:23 +01:00
gambas
74f6f1e781 Wait for remaining background jobs after a compilation error has been reported.
[COMPILER]
* BUG: Wait for remaining background jobs after a compilation error has been reported.
2021-02-02 23:46:00 +01:00
gambas
ee50e97948 If the "class" word follows the "End" keyword, it is recognized as a keyword.
[COMPILER]
* NEW: If the "class" word follows the "End" keyword, it is recognized as a keyword.

[GB.EVAL]
* NEW: If the "class" word follows the "End" keyword, it is recognized as a keyword.
2021-02-01 04:04:46 +01:00
gambas
84c5ac08dd By default, the number of jobs is the number of cores plus one.
[COMPILER]
* NEW: By default, the number of jobs is the number of cores plus one.
* NEW: -j0 option means the number of cores plus one.
2021-02-01 04:04:08 +01:00
gambas
1249ebd2f9 System.Cores is a new property that returns the number of cores.
[COMPILER]
* NEW: By default, the compiler now use a number of background tasks equal to the number of cores.

[INTERPRETER]
* NEW: System.Cores is a new property that returns the number of cores.
2021-02-01 01:21:08 +01:00
gambas
85fad8f9da The compile now creates its own process group, so that background tasks can join it when everything is run from a shell.
[COMPILER]
* BUG: The compile now creates its own process group, so that background tasks can join it when everything is run from a shell.
2021-01-30 15:25:08 +01:00
gambas
f7c783f536 Add a '-j' option to run multiple jobs in background to speed-up compilation.
[COMPILER]
* OPT: Add a '-j' option to run multiple jobs in background to speed-up compilation.
2021-01-30 14:06:09 +01:00
gambas
b62f461c49 Running the informer for all components will not analyze the 'gb' component.
[INFORMER]
* NEW: Running the informer for all components will not analyze the 'gb' component. The metadata of 'gb' must be generated explicitly.
2020-11-28 00:40:52 +01:00
gambas
8c4f6d8a84 Fix a warning message.
[INFORMER]
* BUG: Fix a warning message.
2020-11-24 21:45:17 +01:00
gambas
aefc635d54 Ignore CVS and CVSROOT directories when searching for source files to compile.
[COMPILER]
* BUG: Ignore CVS and CVSROOT directories when searching for source files to compile.
2020-10-01 23:22:30 +02:00
gambas
4ed2905929 The informer now can deal with missing components whose information is included in other ones.
[INFORMER]
* BUG: If a component includes the information of one component among many, do not fail if the first one does not exist. Try the other ones.
2020-06-28 01:03:21 +02:00
gambas
68af5ed6c4 Remove now useless structure fields.
[COMPILER]
* OPT: Remove now useless structure fields.
2020-06-11 01:44:23 +02:00
gambas
2d2cfc1bd6 Fix compilation of OPEN STRING instruction that sometimes failed.
[COMPILER]
* BUG: Fix compilation of OPEN STRING instruction that sometimes failed.
2020-06-03 14:53:43 +02:00
gambas
9022603257 Output a class flag for test modules. Do not generate the '.test' file anymore.
[COMPILER]
* NEW: Do not generate the '.test' file anymore.
* NEW: Output a class flag for test modules.
2020-05-22 16:00:40 +02:00
gambas
fffa4e5b51 Order options in displayed help.
[COMPILER]
* NEW: Order options in displayed help.

[ARCHIVER]
* NEW: Order options in displayed help.

[INFORMER]
* NEW: Order options in displayed help.
2020-05-17 08:24:58 +02:00
gambas
524f65cdaa Redesign verbose messages.
[INFORMER]
* NEW: Redesign verbose messages. Do not print anything if verbose mode is off, except warning messages.
2020-05-17 01:25:13 +02:00
gambas
ac5068e9c2 Automatically add 'gb.test' component information when a project includes a test module.
[COMPILER]
* BUG: Automatically add 'gb.test' component information when a project includes a test module.
2020-05-09 20:55:04 +02:00
gambas
08c5fc95c7 '&=' operator optimization.
[COMPILER]
* OPT: Support for '&=' operator optimization.

[INTERPRETER]
* OPT: '&=' operator optimization.
2020-04-04 16:18:10 +02:00
gambas
bc7d0fc7df Do not crash anymore by looking for help comments in form files when controls are public.
[COMPILER]
* BUG: Do not crash anymore by looking for help comments in form files when controls are public.
2020-03-04 01:37:29 +01:00
gambas
fd778d20c8 Fix an uninitialized local variable.
[COMPILER]
* BUG: Fix an uninitialized local variable.
2020-02-22 22:43:11 +01:00
gambas
e584ba6713 Add support for test modules.
[COMPILER]
* NEW: Support for test modules.

[ARCHIVER]
* NEW: Support for test modules.
2020-02-22 15:57:46 +01:00
gambas
2cd257be5b PEEK is a new instruction that peek some bytes from a stream without removing them.
[COMPILER]
* NEW: Support for the new PEEK instruction.

[INTERPRETER]
* NEW: PEEK is a new instruction that peek some bytes from a stream without removing them, so that they are available to the next READ instruction.
* OPT: IsAscii(), IsLower(), IsPunct()... instructions are now a bit faster.
2020-02-11 01:45:10 +01:00
gambas
a7965ccee2 Fix a comment typo.
[COMPILER]
* BUG: Fix a comment typo.
2020-01-09 18:31:23 +01:00
gambas
e4a8ff5738 Workaround a gcc 8 compiler optimization bug.
[COMPILER]
* BUG: Workaround a gcc 8 compiler optimization bug.
2020-01-08 22:15:45 +01:00
gambas
63000a27fe WAIT NEXT is a new instruction that waits for the next event and process it.
[INTERPRETER]
* NEW: WAIT NEXT is a new instruction that waits for the next event and process it.

[COMPILER]
* NEW: Support for the new WAIT NEXT instruction.

[GB.GTK]
* NEW: Support for the new WAIT NEXT instruction.

[GB.GTK3]
* NEW: Support for the new WAIT NEXT instruction.

[GB.QT4]
* NEW: Support for the new WAIT NEXT instruction.

[GB.QT5]
* NEW: Support for the new WAIT NEXT instruction.
2020-01-02 13:08:45 +01:00
gambas
b09ab39338 Function names can be put between parenthesis to disable possible warnings on them.
[COMPILER]
* NEW: Function names can be put between parenthesis to disable possible warnings on them.
2019-12-22 20:48:58 +01:00
gambas
3e0398dbd1 OPEN NULL is a new syntax that opens a null stream.
[INTERPRETER]
* NEW: OPEN NULL is a new syntax that opens a null stream. Reading always returns end of file, and writing does nothing except advancing the file pointer, allowing to know how many bytes were written.

[COMPILER]
* NEW: OPEN NULL is a new syntax that opens a null stream.
2019-12-18 06:59:21 +01:00
gambas
b092a95132 Fix static array management.
[COMPILER]
* BUG: Allow static arrays to be used with the point operator.

[INTERPRETER]
* BUG: Fix static array management. They are not read-only anymore. Only methods that want to modify the size of the array are forbidden, as well as the ReadOnly property.
2019-11-30 06:29:17 +01:00
gambas
55d7f20d80 Allow initialization of variables associated with property declaration.
[COMPILER]
* NEW: Allow initialization of variables associated with property declaration.
* BUG: Correctly detect help comments in all cases.
2019-11-13 20:06:41 +01:00