Commit graph

6622 commits

Author SHA1 Message Date
gambas
50dedeb8cb Don't use __attribute__((noreturn)), it makes gcc dizzy and slow as hell.
[GB.JIT]
* BUG: Don't use __attribute__((noreturn)), it makes gcc dizzy and slow as hell.
2018-07-05 07:15:23 +02:00
gambas
d3c93a05e4 Work on new JIT system continues.
[INTERPRETER]
* NEW: Abort if a stack mismatch is detected after a JIT function has been called.

[GB.JIT]
* NEW: The GB_JIT_CC environment variable allows to define the C compiler that will generate the code.
* OPT: Don't call the compiler through a shell anymore.
* NEW: Support for clang.
* BUG: Don't use the "," operator anymore to write JIT code.
* BUG: Correctly free stack when leaving a function whereas we are still inside a GOSUB.
* BUG: Declare all local variables and arguments as volatile as soon the function uses CATCH or FINALLY.
2018-07-05 07:10:31 +02:00
gambas
6fc6a48818 Compute the duration of JIT Gambas code without JIT compilation time.
[BENCHMARKS]
* NEW: Compute the duration of JIT Gambas code without JIT compilation time.
2018-07-03 00:54:34 +02:00
gambas
4a1c81d0aa Jit.Time is a new property that returns the time spent in JIT compilation, in seconds.
[INTERPRETER]
* NEW: Jit is a new static class that allows to deal with the JIT compiler.
* NEW: Jit.Time is a new property that returns the time spent in JIT compilation, in seconds.

[GB.JIT]
* NEW: Support for the Jit.Time property.
2018-07-03 00:52:19 +02:00
gambas
527702ea59 Subroutines returning something that are used as instructions correctly drop their return value now.
[GB.JIT]
* BUG: Subroutines returning something that are used as instructions correctly drop their return value now.
2018-07-02 22:37:33 +02:00
gambas
9cf443a04f [INTERPRETER]
* BUG: Take JIT code into account when displaying current position in DEBUG instruction.

[COMPILER]
* BUG: Fix subroutine metadata.
* BUG: Fix subroutine search function.

[GB.JIT]
* BUG: Fix string referencing.
* NEW: Implement date arrays accessors.
* BUG: Fix error management.
* BUG: Fix mathematic functions implementation.
* NEW: Support of functions with a variable number of arguments.
* BUG: Fix support of Long constants.
* BUG: Fix implementation of Collection array operator.
* BUG: Fix READ, EXEC, SHELL and DEBUG instructions.
* BUG: Fix VarPtr().
* BUG: Fix TRUE constant implementation.
2018-07-02 19:37:37 +02:00
gambas
2c2c610319 Merge branch 'master' of gitlab.com:gambas/gambas 2018-06-29 00:26:48 +02:00
gambas
5f4f12acf3 [COMPILER]
* NEW: UNSAFE is a new keyword used in conjunction with FAST. It tells the JIT compiler not to do any safety check (null objects, division by zero, out of array bounds...). It makes the code a bit faster, but prone to segmentation fault.

[INTERPRETER]
* NEW: Support for the UNSAFE keyword.

[GB.JIT]
* NEW: Support for the UNSAFE keyword.
* NEW: Check validity of objects that can be invalid.
2018-06-29 00:10:31 +02:00
Tobias Boege
789ce931f7 IconView: always raise Click event when clicked
[GB.GUI.BASE]
* BUG: IconView: always raise Click event when clicked and not only when selection changes

See Gambas Bug #1358
2018-06-28 19:07:31 +02:00
gambas
fe08dfa333 Work continues on new JIT system.
[INTERPRETER]
* NEW: JIT: Support for SUPER.
* NEW: JIT: Support for extern functions.
* NEW: Add a flag in Gambas functions to know if they are static or not.

[GB.JIT]
* NEW: Support for SUPER.
* NEW: Support for extern functions.
* BUG: Fix object arrays access.
* OPT: Optimization of Abs, Sgn, Int, Fix, and Pi subroutines.
2018-06-27 19:35:23 +02:00
gambas
6a23fa861a TreeView: Don't mess up multiple selection when automatic sorting is enabled.
[GB.GUI.BASE]
* BUG: TreeView: Don't mess up multiple selection when automatic sorting is enabled.
2018-06-26 18:50:38 +02:00
gambas
601776ef63 Menu editor: Always check the menu structure before saving it.
[DEVELOPMENT ENVIRONMENT]
* BUG: Menu editor: Always check the menu structure before saving it.
2018-06-26 18:43:54 +02:00
gambas
ab3963c99c Fix some bugs detected by clang, and JIT code can now raise events.
[INTERPRETER]
* NEW: JIT: Support for event raising.
* BUG: Fix some bugs detected by clang.

[GB.JIT]
* NEW: Support for event raising.
* OPT: Some optimizations in jit code generation and compilation.
2018-06-25 19:17:44 +02:00
gambas
90700a48ae Remove now unused JIT compilation source files.
[COMPILER]
* BUG: Remove now unused JIT compilation source files.
2018-06-25 19:16:10 +02:00
gambas
b88ba310d3 Merge branch 'master' of gitlab.com:gambas/gambas 2018-06-23 01:37:30 +02:00
gambas
06d139920d Work continues on new JIT system.
[INTERPRETER]
* BUG: JIT: No need to support breakpoints.

[GB.JIT]
* BUG: No need to support breakpoints.
2018-06-23 01:37:06 +02:00
gambas
128b5de2f2 [INTERPRETER]
* NEW: JIT: Support for QUIT and STOP EVENT instructions.

[GB.JIT]
* NEW: Implement QUIT and STOP EVENT instructions.
2018-06-23 01:31:39 +02:00
Benoît Minisini
7cd5a3eaae Merge branch 'clang' into 'master'
Install clang instead of gcc for archlinux-clang

See merge request gambas/gambas!29
2018-06-22 03:16:48 +00:00
gambas
29d94d3feb [DEVELOPMENT ENVIRONMENT]
* OPT: Profile window: Use JIT when loading a profile dump file.
2018-06-22 04:49:35 +02:00
gambas
6502645560 Work continues on new JIT system.
[INTERPRETER]
* BUG: JIT: Fix error handling when calling methods from JIT code.

[GB.JIT]
* NEW: Fix support of CATCH and FINALLY.
* NEW: Support for ON GOTO and ON GOSUB.
2018-06-22 04:49:05 +02:00
gambas
0c43cfced0 Add Session.Path property, and fix the write of session values for sqlite sessions.
[GB.WEB]
* BUG: Fix the write of session values for sqlite sessions.
* NEW: Session.Path is a new property that returns the path of the file where the session is stored.
2018-06-22 00:47:48 +02:00
gambas
757ecc14eb Fix the clang fix. Compiler messages are visible again.
[COMPILER]
* BUG: Fix the clang fix. Compiler messages are visible again.
2018-06-19 16:09:30 +02:00
bgermann
075068898e Install clang instead of gcc for archlinux-clang 2018-06-19 09:20:43 +02:00
Benoît Minisini
1a8b4cf662 Merge branch 'gmime' into 'master'
[GB.MIME] Make gb.mime compatible with libgmime 3.0

See merge request gambas/gambas!25
2018-06-19 00:11:34 +00:00
Benoît Minisini
9834cc71d9 Merge branch 'clang' into 'master'
Make compilation with clang possible

See merge request gambas/gambas!27
2018-06-19 00:07:32 +00:00
Benoît Minisini
1c35f13e58 Merge branch 'appstream' into 'master'
Make the AppStream XML adhere to the standard

See merge request gambas/gambas!28
2018-06-18 23:39:22 +00:00
gambas
ab01355230 Renaming an exported class in projects using non-GUI forms should not crash anymore.
[DEVELOPMENT ENVIRONMENT]
* BUG: Renaming an exported class in projects using non-GUI forms should not crash anymore.
2018-06-19 00:31:10 +02:00
gambas
5e2a99a0a0 Session: Exist() method now works correctly for sessions stored in sqlite databases.
[GB.WEB]
* BUG: Session: Exist() method now works correctly for sessions stored in sqlite databases.
2018-06-19 00:30:29 +02:00
gambas
3bd9dca142 Work on new JIT system continues.
[INTERPRETER]
* NEW: JIT: Complex number support.
* NEW: JIT: LAST support.

[GB.JIT]
* BUG: Fix management of local variable declaration of translated functions.
* NEW: Support for WITH ... END WITH.
* NEW: JIT: Complex number support.
* NEW: JIT: LAST support.
2018-06-19 00:30:12 +02:00
bgermann
c1ee391f2b Make the AppStream XML adhere to the standard
[DEVELOPMENT ENVIRONMENT]
* OPT: Make the AppStream XML adhere to the standard
2018-06-18 19:42:30 +02:00
gambas
b023f19ca1 Translation dialog: Add menu entries for copying string to the clipboard.
[DEVELOPMENT ENVIRONMENT]
* NEW: Translation dialog: Add menu entries for copying string to the clipboard.
* NEW: Menu editor: Don't reserve space for top-level menu icons, as they don't have any icon.
2018-06-16 16:08:26 +02:00
gambas
0eda19df1e Don't remove a control from its parent immediately when destroying it, so that GTK+ components behave like the QT ones.
[GB.GTK]
* NEW: Don't remove a control from its parent immediately when destroying it, so that GTK+ components behave like the QT ones.

[GB.GTK3]
* NEW: Don't remove a control from its parent immediately when destroying it, so that GTK+ components behave like the QT ones.
2018-06-16 15:36:34 +02:00
gambas
f922f8c187 Correctly take default tab size into account when creating a new project.
[DEVELOPMENT ENVIRONMENT]
* BUG: Correctly take default tab size into account when creating a new project.
2018-06-16 14:51:36 +02:00
gambas
89f82c0b11 Merge branch 'master' of gitlab.com:gambas/gambas 2018-06-16 01:15:37 +02:00
gambas
4ef9c15a1b Support for CATCH and FINALLY.
[INTERPRETER]
* NEW: The NEW implementation routine takes its opcode as argument now, like other subroutines with a variable number of arguments.

[GB.JIT]
* OPT: Call subroutines using their static address. No significative performance gain was detected.
* NEW: Support for CATCH and FINALLY.
2018-06-16 01:12:13 +02:00
Tobias Boege
8e594286cd IDE: Complete German translation
[DEVELOPMENT ENVIRONMENT]
* NEW: Complete German translation

Co-Authored-By: Uwe Keller <uwe.keller@mail.de>
2018-06-15 22:49:32 +02:00
gambas
6b83ac7e31 Disable the old jit component, but keep the sources.
[CONFIGURATION]
* NEW: Disable the old jit component, but keep the sources.
2018-06-14 23:43:47 +02:00
gambas
b9a83c8a10 Work continues on new JIT system.
[INTERPRETER]
* NEW: Support for error management in JIT methods.

[COMPILER]
* BUG: Fix Error() function metadata.

[GB.JIT]
* NEW: Support for error management.
* NEW: TRY instruction.
* BUG: Correct support of NULL.
2018-06-14 16:45:05 +02:00
bgermann
ba76c29291 Add archlinux-clang CI runner 2018-06-13 18:30:47 +02:00
bgermann
ff8a181667 Make compilation with clang possible
[CONFIGURATION]
* OPT: Compilation with clang is possible
2018-06-13 18:26:06 +02:00
gambas
5a1e3b48e9 Fix label generation again.
[GB.JIT]
* BUG: Fix label generation again.
2018-06-13 18:19:32 +02:00
bgermann
d663718914 Let Debian unstable depend on libgmime 3.0 2018-06-13 18:11:20 +02:00
bgermann
46882d5740 Make gb.mime compatible with libgmime 3.0
[GB.MIME]
* OPT: Make compatible with libgmime 3.0
* OPT: Drop libgmime 2.4 support
2018-06-13 18:11:20 +02:00
gambas
08c772a290 Fix FOR EACH loops translation.
[GB.JIT]
* BUG: Panic if the stack is not void once a function has been translated.
* BUG: Fix FOR EACH loops translation.
2018-06-13 16:59:56 +02:00
gambas
b8198005db [BENCHMARKS]
* OPT: Little optimization in nbody benchmark.

[GB.JIT]
* BUG: Fix translation of loops.
* BUG: Fix label generation.
2018-06-13 16:55:25 +02:00
gambas
83eed9707d Merge branch 'jit-with-c' 2018-06-13 00:45:19 +02:00
gambas
6b8afd0617 [COMPILER]
* BUG: Fix Left, Mid and Right subroutines metadata.

[GB.JIT]
* BUG: Fix function arguments management.
* BUG: Functions returning objects work correctly now.
* BUG: Fix internal control variables management.
2018-06-13 00:38:18 +02:00
Adrien Prokopowicz
2c9b2dcf03 Add the ability to expose some configuration failures with CI
See merge request gambas/gambas!26
2018-06-12 18:36:26 +00:00
Laurent Carlier
d0e3c3a95a Update Archlinux CI build 2018-06-12 16:33:12 +02:00
gambas
431be5bcea Fix string search routine optimization and thousand separator.
[INTERPRETER]
* BUG: Fix string search routine optimization.
* BUG: Fix thousand separator.
2018-06-12 16:30:11 +02:00