Commit graph

2445 commits

Author SHA1 Message Date
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
Benoît Minisini
a309559bdb '+Inf' and '-Inf' really do not prevent the next pattern to be a reserved keyword anymore.
[COMPILER]
* BUG: '+Inf' and '-Inf' really do not prevent the next pattern to be a reserved keyword anymore.
2023-04-27 14:55:02 +02:00
Benoît Minisini
ddf2d2bd8d Oops. Forgot to remove parser debugging messages.
[COMPILER]
* BUG: Oops. Forgot to remove parser debugging messages.
2023-04-19 13:25:04 +02:00
Benoît Minisini
4a6626c0a8 '+Inf' and '-Inf' do not prevent the next pattern to be a reserved keyword anymore.
[COMPILER]
* BUG: '+Inf' and '-Inf' do not prevent the next pattern to be a reserved keyword anymore.
2023-04-19 03:22:12 +02:00
Benoît Minisini
bfe5a88537 Fix common integer loop optimization.
[INTERPRETER]
* BUG: Fix common integer loop optimization.
2023-04-13 12:05:09 +02:00
Benoît Minisini
e826acb35a Correctly read the project name in the '.startup' file.
[INTERPRETER]
* BUG: Correctly read the project name in the '.startup' file.
2023-04-12 23:23:19 +02:00
Benoît Minisini
fcc386d0f6 When a signal handler is set, ensure that the signal is not blocked.
[INTERPRETER]
* BUG: When a signal handler is set, ensure that the signal is not blocked.
2023-04-12 20:55:05 +02:00
Benoît Minisini
4a3ccda95a Add static array read accessors to return new Compress and new Uncompress object of a specific type.
[GB.COMPRESS]
* NEW: Clean-up the code: spaces, indentation...
* NEW: Compress: Add a static array read accessor to return a new Compress object of a specific type.
* NEW: Uncompress: Add a static array read accessor to return a new Uncompress object of a specific type.
2023-04-03 23:53:27 +02:00
Benoît Minisini
516736852d Correctly free environment declared in the project configuration at program exit.
[INTERPRETER]
* BUG: Correctly free environment declared in the project configuration at program exit.
2023-04-02 05:36:17 +02:00
Benoît Minisini
06a1d2e33d 'Eval()' now can evaluate several expressions at once, provided that they are separated by newlines. The value of the last expression is returned.
[INTERPRETER]
* NEW: Support for the new Eval() feature.

[GB.EVAL]
* NEW: 'Eval()' now can evaluate several expressions at once, provided that they are separated by newlines. The value of the last expression is returned.
* NEW: 'Eval()' now returns NULL if its last expression returns nothing.
2023-03-29 12:16:47 +02:00
Benoît Minisini
d42aad3a65 'Object.Data()' is a new method that returns the address of the data of an object.
[INTERPRETER]
* NEW: 'Object.Data()' is a new method that returns the address of the data of an object.
2023-03-27 00:51:44 +02:00
Benoît Minisini
38519f8b3e Alloc() now fills the allocated memory with zeros when used with two arguments.
[INTERPRETER]
* NEW: Alloc() now fills the allocated memory with zeros when used with two arguments.
2023-03-25 01:12:02 +01:00
Benoît Minisini
2f81de1876 When using an intermediate temporary stream, copy the behaviour flags from the original stream.
[INTERPRETER]
* BUG: When using an intermediate temporary stream, copy the behaviour flags from the original stream.
2023-03-24 21:26:45 +01:00
Benoît Minisini
7cd804982b Fix a test that leads to a crash when gcc optimizations are enabled.
[INTERPRETER]
* BUG: Fix a test that leads to a crash when gcc optimizations are enabled.
2023-03-24 20:57:42 +01:00
Benoît Minisini
30c5e0af42 Add implicit conversion of Boolean, Byte and Short values into Pointer.
[INTERPRETER]
* NEW: Add implicit conversion of Boolean, Byte and Short values into Pointer.
2023-03-20 23:31:51 +01:00
Benoît Minisini
44bdb9486f Support for environment variables set at startup.
[INTERPRETER]
* NEW: Set environment variables at startup from the '.environment' file.

[COMPILER]
* NEW: Generate the '.environment' files with the list of environment variables that must be set at startup.

[ARCHIVER]
* NEW: Add the '.environment' file to the archive.
2023-03-18 01:36:19 +01:00
Benoît Minisini
d44be704d3 Sending a void line to the debugger repeats the last command only if the debugger is run from the command line.
[GB.DEBUG]
* NEW: If the 'GB_DEBUG_DEBUG' environment variable is '1', then a message is printed each time the debugger fifo fails and must be reopened.
* NEW: Sending a void line to the debugger repeats the last command only if the debugger is run from the command line.
2023-03-18 01:34:22 +01:00
Benoît Minisini
648b123f07 The support for external debugging now uses the project name, not the executable name, which may be different.
[INTERPRETER]
* BUG: The support for external debugging now uses the project name stored
  in the '.startup' file, not the executable name, which may be different.

[COMPILER]
* NEW: Write the name of the project in the '.startup' file.
2023-03-17 03:12:52 +01:00
Benoît Minisini
6b6c1e75b5 Add an API that inverts an image for the 'gb.image.effect' component.
[GB.IMAGE]
* NEW: Add an API that inverts an image for the 'gb.image.effect' component.
2023-03-17 03:11:30 +01:00
Benoît Minisini
d31e7c7aec Make Image.Invert() compatible with the method with the same name in 'gb.image'.
[GB.IMAGE.EFFECT]
* BUG: Make Image.Invert() compatible with the method with the same name in 'gb.image'.
2023-03-17 03:10:13 +01:00
Benoît Minisini
11db600d2c 'Application.TempDir' is a new property that returns the temporary directory used by the interpreter for the current process.
[INTERPRETER]
* NEW: 'Application.TempDir' is a new property that returns the temporary directory used by the interpreter for the current process.
2023-03-14 19:13:56 +01:00
Benoît Minisini
829a8a16ca Make code compile on older versions of gcc.
[ARCHIVER]
* BUG: Make code compile on older versions of gcc.
2023-03-11 11:19:40 +01:00
Benoît Minisini
e31a2ad2a7 Add a '-p' option to ignore the '.public' directory.
[ARCHIVER]
* BUG: Handle hidden files only in the project root directory.
* NEW: Add a '-p' option to ignore the '.public' directory.
2023-03-11 10:31:34 +01:00
Benoît Minisini
cac1a0f3d0 Make the debugger more robust when writing on a fifo fails. Reopen the fifo if needed.
[GB.DEBUG]
* BUG: Make the debugger more robust when writing on a fifo fails. Reopen the fifo if needed.
2023-03-07 00:09:01 +01:00
Benoît Minisini
78f4986c3c Forked processes now use fast exit, to avoir a possible crash.
[INTERPRETER]
* BUG: Forked processes now use fast exit, to avoir a possible crash.
2023-03-04 17:26:58 +01:00
Benoît Minisini
97534cc720 Delete temporary files when the QUIT instruction is used.
[INTERPRETER]
* BUG: Delete temporary files when the QUIT instruction is used.
2023-02-12 00:29:53 +01:00
Benoît Minisini
203a1db252 Correctly rewrite lines using the 'ERROR' keyword in a one-line 'IF' expression.
[GB.EVAL]
* BUG: Correctly rewrite lines using the 'ERROR' keyword in a one-line 'IF' expression.
2023-02-04 09:29:21 +01:00
Benoît Minisini
54f62f479e 'WAIT' with no argument now behaves as before when no component specific WAIT handler is defined.
[INTERPRETER]
* BUG: 'WAIT' with no argument now behaves as before when no component specific WAIT handler is defined.
2023-02-02 10:05:38 +01:00
Benoît Minisini
ca20ea1cd7 Fix JIT compilation on old compilers that do not support arithmetic overflow check.
[GB.JIT]
* BUG: Fix JIT compilation on old compilers that do not support arithmetic overflow check.
2023-02-02 08:35:20 +01:00
Benoît Minisini
c69f98fdf1 Fix quoting when displaying a string value.
[GB.DEBUG]
* BUG: Fix quoting when displaying a string value.
2023-01-20 15:56:35 +01:00
Benoît Minisini
f7d5eda82c 'gb.image' is now compatible with 'gb.web.gui'.
[GB.IMAGE]
* NEW: Color: ToHTML() is a new method that converts a Gambas color as integer value to an HTML color representation.
2023-01-16 00:54:11 +01:00
Benoît Minisini
57aa63bec2 Fix arithmetic overflow detection on datatype conversion.
[GB.JIT]
* BUG: Fix arithmetic overflow detection on datatype conversion.
2023-01-13 23:20:04 +01:00
Christof Thalhofer
1a8fdb41b7 GambasSelftests integer overflow tests
[DEVELOPMENT ENVIRONMENT]
* NEW: GambasSelftests integer overflow tests
* FIX: GambasSelftests run.sh just tests without JIT

Also refactored GambasSelftests a bit and removed some duplicated code
2023-01-13 11:49:43 +01:00