Commit graph

2477 commits

Author SHA1 Message Date
Benoît Minisini
637879db26 Put the project name inside the profile file.
[GB.DEBUG]
* NEW: Put the project name inside the profile file.
2023-11-09 23:35:13 +01:00
Benoît Minisini
e1fd4f9e78 Fix 'Highlight.LengthBefore' when strings have non-ASCII characters.
[GB.EVAL]
* BUG: Fix 'Highlight.LengthBefore' when strings have non-ASCII characters.
2023-11-03 17:53:54 +01:00
Benoît Minisini
b891f3a81e Add a new process objet to the internal process object list after signals have been checked.
[INTERPRETER]
* BUG: Add a new process objet to the internal process object list after signals have been checked.
2023-10-31 13:26:18 +01:00
Benoît Minisini
d15b8726cb Fix compilation of numbers added (or substracted) to dates.
[COMPILER]
* BUG: Fix compilation of numbers added (or substracted) to dates.
2023-10-29 22:46:41 +01:00
Benoît Minisini
87dec4871e Fix compilation of short or byte constants.
[COMPILER]
* BUG: Fix compilation of short or byte constants.
2023-10-29 22:36:41 +01:00
Benoît Minisini
1608babe38 Enhance the Gambas code analyzer to speed up the new highlighting component.
[COMPILER]
* BUG: Synchronize reserved words enumeration with reserved words table.

[GB.EVAL]
* NEW: Highlight: 'Analyze()' got a new optional boolean parameter that stops the analyze when the "%>" token is encountered.
* NEW: Highlight: 'IsFunction' is a new property that returns if 'Highlight.Analyze()' got a function declaration.
* NEW: Highlight: 'LengthBefore' is a new property that returns the number of analyzed characters before the possible rewrite.
2023-10-28 23:36:10 +02:00
Benoît Minisini
489ee69382 Fix a bad optimization in fast array accessors.
[INTERPRETER]
* BUG: Fix a bad optimization in fast array accessors.
2023-10-28 02:01:41 +02:00
Benoît Minisini
d8cba912af Fix optimization of '+' and '-' operators.
[COMPILER]
* BUG: Fix optimization of '+' and '-' operators.
2023-10-26 03:05:13 +02:00
Benoît Minisini
4248a5c43d INPUT ignores leading spaces characters now.
[INTERPRETER]
* NEW: INPUT ignores leading spaces characters now.
2023-10-26 02:39:00 +02:00
Benoît Minisini
9d0cdd8e20 Raise the maximum number of labels by function from 255 to 1023.
[COMPILER]
* NEW: Raise the maximum number of labels by function from 255 to 1023.
2023-10-25 11:53:28 +02:00
Benoît Minisini
ac0f2ba85e Make "%>" a keyword for syntax analyze of gambas code embedded into a WebPage. Some other fixes in the interpreter and the compiler.
[INTERPRETER]
* BUG: A global class find does now a global class lookup. It seems more logical.
* BUG: When loading a class fails, display an accurate error message.

[COMPILER]
* BUG: Embedded arrays do not raise warnings on being uninitialized anymore.
* NEW: Make "%>" a keyword for syntax analyze of gambas code embedded into a WebPage.
2023-10-24 04:29:01 +02:00
Benoît Minisini
b610a6a2d1 FromURL() does not decode '+' into a space before having encountered the '?' query delimiter character.
[INTERPRETER]
* BUG: FromURL() does not decode '+' into a space before having encountered the '?' query delimiter character.
2023-10-18 21:33:06 +02:00
Benoît Minisini
292383c047 Handle the new bytecode of the Pi() function.
[GB.JIT]
* BUG: Handle the new bytecode of the Pi() function.
2023-10-18 18:46:09 +02:00
Benoît Minisini
8a1d604e32 Support for computed Goto or GoSub in JIT compiler.
[INTERPRETER]
* BUG: Correctly initialize functions without computed Goto or GoSub.

[GB.JIT]
* NEW: Support for computed Goto or GoSub.
2023-10-06 03:31:20 +02:00
Benoît Minisini
bdea5c8a7c Fix compilation on Ubuntu Trusty.
[INTERPRETER]
* BUG: Fix compilation on Ubuntu Trusty.
2023-10-05 22:44:36 +02:00
Benoît Minisini
0f54fe9ccd Optimize object creation when there is no special method to call ('_new', '_ready', global variable initialization) and no inheritance.
[INTERPRETER]
* OPT: Optimize object creation when there is no special method to call ('_new', '_ready', global variable initialization) and no inheritance.
2023-10-05 18:09:48 +02:00
Benoît Minisini
c6ef469966 Optimize stack pointer manipulations in the main interpreter loop.
[INTERPRETER]
* OPT: Optimize stack pointer manipulations in the main interpreter loop. About 10% speed gain according to the benchmarks!
2023-10-04 12:17:31 +02:00
Benoît Minisini
ee81ba602a Big optimization of the interpreter loop by using a local program counter.
[INTERPRETER]
* OPT: Big optimization of the interpreter loop by using a local program counter.
* NEW: Use one short integer less in the bytecode files for each function using computed Goto.

[COMPILER]
* NEW: Use one short integer less in the bytecode files for each function using computed Goto.
2023-10-01 09:14:13 +02:00
Benoît Minisini
56ed08af02 Fix initial detection of labels when compiling a function.
[COMPILER]
* BUG: Fix initial detection of labels when compiling a function.
2023-09-30 23:19:17 +02:00
Benoît Minisini
c600f69be3 Implementation of computed Goto and GoSub.
[INTERPRETER]
* NEW: Implementation of computed Goto and GoSub.

[COMPILER]
* NEW: Implementation of computed Goto and GoSub.
* NEW: There is a maximum of 255 labels by function now. This limit may be removed.
2023-09-30 22:00:00 +02:00
Benoît Minisini
798d3c36de Using a label inside an expression now raises an error.
[COMPILER]
* BUG: Using a label inside an expression now raises an error.
2023-09-30 14:14:03 +02:00
Benoît Minisini
39ca57f967 Fix optimization of small integer or float constants additions.
[COMPILER]
* BUG: Fix optimization of small integer or float constants additions.
2023-09-30 02:36:16 +02:00
Benoît Minisini
d98df39658 Some interpreter optimizations.
[INTERPRETER]
* OPT: Optimize object release for native integer and float arrays accessors.
* OPT: Shortcut path for adding a small integer or float constant number.

[COMPILER]
* OPT: Shortcut path for adding a small integer or float constant number.

[GB.JIT]
* NEW: Support for new bytecodes.
2023-09-30 00:18:13 +02:00
Benoît Minisini
49be8a880e Optimize the compilation of floating-point global constants being actually an integer between -128 and 127.
[COMPILER]
* OPT: Optimize the compilation of floating-point global constants being actually an integer between -128 and 127.
2023-09-29 17:35:55 +02:00
Benoît Minisini
542d72d39d Do not try to disable CTE support if gcc does not have the corresponding flag.
[CONFIGURATION]
* BUG: Do not try to disable CTE support if gcc does not have the corresponding flag.

[INTERPRETER]
* BUG: Do not try to disable CTE support if gcc does not have the corresponding flag.
2023-09-29 17:34:48 +02:00
Benoît Minisini
ce140f53a6 Disable gcc indirect branch tracking for main interpreter function. This Intel security feature makes the interpreter 20% slower!
[INTERPRETER]
* OPT: Disable gcc indirect branch tracking for main interpreter function. This Intel security feature makes the interpreter 20% slower!
2023-09-29 16:35:51 +02:00
Benoît Minisini
46b2316e4a Free two more bytecodes.
[COMPILER]
* NEW: Free two more bytecodes.

[INTERPRETER]
* NEW: Free two more bytecodes.
2023-09-29 07:34:48 +02:00
Benoît Minisini
9c6c65107b Some support for older versions of gcc without overflow detection.
[INTERPRETER]
* BUG: Some support for older versions of gcc without overflow detection.
2023-09-29 03:21:07 +02:00
Benoît Minisini
9fd602df70 Add Base() / Base$() and Dec() / FromBase() subroutines.
[COMPILER]
* NEW: Add Base() / Base$() subroutines.
* NEW: Add Dec() / FromBase() subroutines.

[INTERPRRETER]
* NEW: Add Base() / Base$() subroutines.
* NEW: Add Dec() / FromBase() subroutines.
2023-09-29 02:51:42 +02:00
Benoît Minisini
a1ebbfdd3f Fix a typo in an error message.
[INTERPRETER]
* BUG: Fix a typo in an error message.
2023-09-28 02:55:41 +02:00
Benoît Minisini
50b34cf8d9 Correctly translate 'On ... Goto / Gosub' jumping backward.
[GB.JIT]
* BUG: Correctly translate 'On ... Goto / Gosub' jumping backward.
2023-09-26 21:49:13 +02:00
Benoît Minisini
f9d3bcc1f5 Fix some typos.
[GB.COMPRESS]
* BUG: Fix some typos.
2023-09-21 23:00:52 +02:00
W. Raets
00dbe699de Merge branch gambas:master into master 2023-08-27 13:18:46 +00:00
Benoît Minisini
dabe089ff7 Prevent some optimizations that cannot work in a just-in-time context.
[INTEPRETER]
* BUG: Prevent some optimizations that cannot work in a just-in-time context.
2023-08-16 19:30:07 +02:00
Benoît Minisini
5fa1961a62 Recover the speed of Gambas 3.18 by moving code.
[INTERPRETER]
* OPT: Recover the speed of Gambas 3.18 by moving code.
2023-08-16 18:04:08 +02:00
Benoît Minisini
7b8a7dbdb7 Optimize conversions from Pointer datatype.
[GB.JIT]
* OPT: Optimize conversions from Pointer datatype.
2023-08-16 16:33:50 +02:00
Benoît Minisini
c10a03cb59 Don't crash if the argument of 'SizeOf()' is incorrect, but raise an error instead.
[INTERPRETER]
* BUG: Don't crash if the argument of 'SizeOf()' is incorrect, but raise an error instead.
2023-08-16 13:07:35 +02:00
W. Raets
53f2e76d8d Merge branch gambas:master into master 2023-08-07 11:06:28 +00:00
Benoît Minisini
f937ee9fe0 Support for e2k architecture (continue...)
[INTERPRETER]
* NEW: Support for e2k architecture (continue...)
2023-08-04 15:55:39 +02:00
Benoît Minisini
f0a5c6867d Fix compilation on Alpine again.
[CONFIGURATION]
* BUG: Fix compilation on Alpine again.
2023-08-04 14:43:22 +02:00
Benoît Minisini
8210240eb9 Support for e2k architecture.
[CONFIGURATION]
* NEW: Support for e2k architecture.

[INTERPRETER]
* NEW: Support for e2k architecture.
2023-08-04 13:39:55 +02:00
Benoît Minisini
f563dd0557 Style: Add 'Default' constant. It tells the Style routine to use the current painted control (if it exists) as a context.
[GB.DRAW]
* NEW: Support for 'Style.Default' constant.

[GB.GTK]
* NEW: Style: Add 'Default' constant. It tells the Style routine to use the current painted control (if it exists) as a context.

[GB.GTK3]
* NEW: Style: Add 'Default' constant. It tells the Style routine to use the current painted control (if it exists) as a context.
* BUG: Style: Painting the backgroud correctly takes the background color into account, unless for active state (i.e. pressed buttons).

[GB.QT4]
* NEW: Style: Add 'Default' constant. It tells the Style routine to use the current painted control (if it exists) as a context.
* NEW: 'Style.StateOf()' always adds the 'Style.Default' constant.

[GB.QT5]
* NEW: Style: Add 'Default' constant. It tells the Style routine to use the current painted control (if it exists) as a context.
* NEW: 'Style.StateOf()' always adds the 'Style.Default' constant.
2023-07-29 15:43:17 +02:00
W. Raets
d8e8ffa922 Merge branch gambas:master into master 2023-07-16 11:39:18 +00:00
Benoît Minisini
9c1e73a912 SQLRequest can return part of SQL requests without action or table.
[GB.DB]
* NEW: SQLRequest can return part of SQL requests without action or table.
2023-07-14 19:57:37 +02:00
Benoît Minisini
e5ce58b366 Forgot to release tmeporary buffer and result when using RETURNING.
[GB.DB]
* BUG: Forgot to release tmeporary buffer and result when using RETURNING.
2023-07-14 19:42:09 +02:00
Benoît Minisini
257bd622a3 Support for returning the newly inserted record. Add 'Connection.FullVersion' property.
[GB.DB]
* NEW: Connection: 'Create()' now has an optional 'Return' boolean argument
  to tell if the 'Result.Update()' method will fill the Result with the
  contents of the newly inserted record. It is based on the optional
  'INSERT INTO ... RETURNING' SQL feature.
* NEW: Connection: The 'FullVersion' property now return the full version
  string of the database server.
* NEW: Database drivers can tell if they do not support the 'RETURNING'
  keyword.
* NEW: Database drivers now must provide the full version string of they
  database server they connect to.
2023-07-14 12:08:11 +02:00
Benoît Minisini
d431251e2c New component switcher for choosing between QT4 or QT5 extension component.
[DEVELOPMENT ENVIRONMENT]
* NEW: Support for 'gb.gui.qt.ext' component.

[GB.GUI.QT.EXT]
* NEW: New component switcher for choosing between QT4 or QT5 extension component.
2023-07-09 19:35:54 +02:00
W. Raets (gbWilly)
a9ec7838a7 [DEVELOPMENT ENVIRONMENT]
* NEW: Added Dutch translation to gambas3.desktop file
* NEW: Added Dutch translation to application-x-gambas3.xml
* NEW: Added Dutch translation to application-x-gambasscript.xml
* NEW: Added Dutch translation to application-x-gambasserverpage.xml
2023-06-28 17:10:07 +02:00
Benoît Minisini
090dd4e048 Fix '&=' operator optimization on global string variables.
[INTERPRETER]
* BUG: Fix '&=' operator optimization on global string variables.
2023-06-13 21:24:08 +02:00
Benoît Minisini
fc640da3bd Allow to open a directory in direct mode for reading only, as Linux allows that.
[INTERPRETER]
* NEW: Allow to open a directory in direct mode for reading only, as Linux allows that.
2023-05-13 03:01:39 +02:00