Commit graph

6649 commits

Author SHA1 Message Date
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
Laurent Carlier
a5a117fd33 Add a way to track configuration failures with CI
Disable it for main as it's expected.

=> GAMBAS_CONFIG_FAILURE=1 ./configure
.....
checking for gb.db.postgresql headers... no
configure: WARNING: Unable to find file: postgres.h
configure: WARNING: Unable to find file: pg_type.h
checking for gb.db.postgresql libraries... /usr/lib64/
configure: error: Failed to configure gb.db.postgresql
configure: error: ./configure failed for gb.db.postgresql
2018-06-12 16:27:31 +02:00
Tobias Boege
d44b4bd7f2 Chmod reads mode bit string correctly
[INTERPRETER]
* BUG: Fix off-by-one error in FILE_mode_from_string which couldn't read mode bits 's' and 't'
2018-06-12 13:40:44 +02:00
gambas
c671adfd6b Work continues on new JIT system.
[INTERPRETER]
* OPT: String searching (Instr, RInstr and Replace) has been made about 4x faster by searching the first occurence with memchr() and memrchr().

[GB.FORM.TERMINAL]
* BUG: Fix warning messages.

[GB.JIT]
* BUG: Fix byte, short and boolean pushing and popping routines.
* BUG: Fix string values referencing.
* BUG: Fix optional argument management.
* NEW: Optimization of bits management subroutines.

[GB.QT4]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.

[GB.QT5]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.
2018-06-11 18:56:39 +02:00
gambas
4e50dec11d Work continues on new JIT system. Translation is now done at runtime.
[INTERPRETER]
* OPT: String routines are now compiled with -O3.
* NEW: Don't display JIT debugging message unless GB_JIT_DEBUG is set to something different from zero.
* NEW: String whose length is greater than 256 now have a growth step of 256 bytes instead of 16.

[GB.JIT]
* NEW: Do many global optimizations as now the class metadata is fully available.
* NEW: Support for optional argument. Still buggy at the moment.
2018-06-09 22:42:35 +02:00
Laurent Carlier
2239e140e5 [CONFIGURATION]
* NEW: Only use pkg-config to detect sqlite3 (feature available since 2004!)
2018-06-06 15:29:42 +02:00
Laurent Carlier
acf7242ca1 [GB.SDL] fix detection with at least pkgconf 2.4.2 2018-06-06 00:33:06 +02:00
Laurent Carlier
b041e381e6 [GB.SDL2] fix detection with at least pkgconf 2.4.2 2018-06-05 17:40:28 +02:00
gambas
23be942b6a Work continues on the new JIT system.
[BENCHMARKS]
* NEW: Little meaningless changes.

[INTERPRETER]
* NEW: JIT: Support for FOR EACH loops.
* BUG: JIT: Handle function values that are put on stack before calling them.

[COMPILER]
* NEW: JIT: Optimization of mathematic functions.
* NEW: JIT: Support for FOR EACH loops.
* NEW: JIT: Remove successive POP_x() / PUSH_x().
* NEW: JIT: Optimization of DIV and MOD.
* NEW: JIT: Support of internal control local variables used by SELECT and FOR EACH.
* NEW: JIT: Support for SWAP.

[GB.JIT]
* NEW: Optimization of mathematic functions.
* NEW: Variants management.
* NEW: All conversions are handled now.
* NEW: FOR EACH loops are implemented.
2018-06-05 11:43:39 +02:00
Adrien Prokopowicz
e1272ec4f3
Fix Archlinux CI builds 2018-06-03 21:36:29 +02:00
gambas
eb00f9e55f Update version to 3.11.90.
[CONFIGURATION]
* NEW: Update version to 3.11.90.
2018-06-02 20:05:18 +02:00
gambas
23081e47c6 Work continues on new JIT system. The "Fractal" example runs!
[INTERPRETER]
* NEW: Implement return value of JIT methods.
* NEW: Support for calling '.' operator from a JIT method.

[COMPILER]
* BUG: JIT: Fix detection of native arrays.
* BUG: JIT: Delete translated file if a class has no fast method anymore.
* BUG: JIT: Prefix JIT method with "jit_" to avoid possible conflicts.
* BUG: JIT: Fix variable initialization.
* NEW: JIT: Complete datatype support.
* NEW: JIT: Support for SWAP.
* NEW: JIT: Support for array operators.
* BUG: JIT: Fix arithmetic operators.
* NEW: JIT: Implement ME and "." operator.
* NEW: JIT: Complete GOSUB / RETURN support.
* NEW: JIT: Support for DIV and MOD operators. Not optimized yet.

[ARCHIVER]
* NEW: Put JIT translation in the archive.

[GB.JIT]
* NEW: Complete datatype support. Variant is not supported yet.
* NEW: Complete GOSUB / RETURN support.
* NEW: Support for ME and '.' operator.
2018-06-02 17:59:47 +02:00
gambas
3454c0cd29 The Move() and Resize() methods now correctly update the contents of windows.
[GB.QT4]
* BUG: The Move() and Resize() methods now correctly update the contents of windows.

[GB.QT5]
* BUG: The Move() and Resize() methods now correctly update the contents of windows.
2018-06-01 16:01:51 +02:00
gambas
4956c768f8 Add '.jit' directory to '.gitignore'.
[CONFIGURATION]
* NEW: Add '.jit' directory to '.gitignore'.
2018-06-01 14:57:39 +02:00
gambas
74ddac88b8 Fix clipboard instanciation. No more GTK+ warning at the end of the program.
[GB.GTK]
* BUG: Remove unused static cursors.
* BUG: Fix clipboard instanciation. No more GTK+ warning at the end of the program.

[GB.GTK3]
* BUG: Fix clipboard instanciation. No more GTK+ warning at the end of the program.
2018-06-01 14:55:53 +02:00
gambas
1d276cdc68 Work continues on new JIT system.
[INTERPRETER]
* BUG: Release arguments after having called a JIT method.
* NEW: Add JIT interface for returning a value.

[COMPILER]
* NEW: JIT: Nicer translation for quick add of negative numbers.
2018-06-01 14:40:07 +02:00
gambas
714b77a10d Work on new JIT system continues.
[CONFIGURATION]
* NEW: Add '.jit' directory to '.gitignore'.

[COMPILER]
* NEW: New '-j' option that disables just in time compilation.
* NEW: JIT: Support for private functions calls.
* NEW: JIT: Support for native arrays accessors.
* BUG: JIT: Fix loop support.
* NEW: JIT: Support for GOSUB.

[GB.JIT]
* NEW: GB_JIT_DEBUG is an environment variable that defines if JIT compilation debugging messages are printed.
* NEW: GB_JIT_CFLAGS is an environment variable that defines the JIT compilation flags. The default is "-O3".
* NEW: Support for native arrays accessors.
2018-06-01 03:50:42 +02:00
gambas
5219fc48d1 Work continues on new JIT system.
[COMPILER]
* BUG: JIT: Fix local variable referencing.
* NEW: JIT: Implement NEW operator and array accessors.

[INTERPRETER]
* NEW: Support for JIT NEW operator and array accessors.

[GB.JIT]
* NEW: Support for object datatypes.
* NEW: Implement NEW operator and array accessors.
2018-05-29 23:25:57 +02:00
gambas
83a2452acb Continue working on new JIT system.
[COMPILER]
* NEW: JIT: Support for FOR...TO...NEXT loops.
* NEW: JIT: Support for Len(), Left$(), Mid$(), and Right$().
* NEW: JIT: Subroutines return values are now hadled correctly.

[GB.JIT]
* NEW: Compile JIT code with -O3.
2018-05-29 03:43:23 +02:00
gambas
a2b64b190a Work on new JIT system continues.
[COMPILER]
* NEW: Internal initialization functions now can be JIT translated.
* NEW: Support of subroutine calling completed. Interpreter subroutines are called if there is no optimization implemented in the JIT translation.

[INTERPRETER]
* NEW: Remove old JIT stuff.

[GB.JIT]
* NEW: Use 'gambas.h' and 'gb.jit.h' to compile translated code.
2018-05-28 03:18:44 +02:00
gambas
540cda4531 C/C++ syntax highlighting: A backslash at the end of the line continues preprocessor definitions.
[GB.EVAL.HIGHLIGHT]
* BUG: C/C++ syntax highlighting: A backslash at the end of the line continues preprocessor definitions.
* BUG: Fix a warning.
2018-05-28 03:16:53 +02:00
gambas
d797a545b6 [COMPILER]
* NEW: Work on JIT continues...
* NEW: Better panic errors.

[INTERPRETER]
* NEW: Remove the old JIT stuff.
* NEW: Calls gb.jit at runtime if needed. If a fast function has no jit implementation, the bytecode version is used.
* NEW: Start defining the JIT interface needed by the JIT functions.
* NEW: The common static character buffer is now twice the size of the maximum symbol length, to avoid possible overflows.

[GB.JIT]
* NEW: Compilation starts to work.
* NEW: Debugging messages.
2018-05-26 16:50:00 +02:00
gambas
3c8c722989 New component for compiling JIT code at runtime.
[GB.JIT]
* NEW: New component for compiling JIT code at runtime.
2018-05-25 21:03:48 +02:00
gambas
cdc6d47922 Work continues on new JIT system.
[COMPILER]
* NEW: Work continues on new JIT system.

[INTERPRETER]
* NEW: Make comparison operator true functions so that they can be called by the JIT code.
2018-05-25 21:01:38 +02:00