[Gambas-Notification] [Git][gambas/gambas][master] 19 commits: Start working on the new jit system.

Benoît Minisini gitlab at mg.gitlab.com
Wed Jun 13 01:20:28 CEST 2018


Benoît Minisini pushed to branch master at Gambas / gambas


Commits:
f39f7063 by gambas at 2018-05-16T23:13:56Z
Start working on the new jit system.

[COMPILER]
* NEW: Start working on the new jit system.

[GB.JIT]
* NEW: Rename the component as 'gb.jit.llvm'.

- - - - -
dfeb4243 by gambas at 2018-05-18T00:19:28Z
Continue working on the new jit system.

[COMPILER]
* NEW: Continue working on the new jit system.

- - - - -
ebd89636 by gambas at 2018-05-23T22:31:58Z
Continue working on the new jit system.

[COMPILER]
* NEW: Continue working on the new jit system.
* NEW: Initial support for arithmetic instructions.

- - - - -
cdc6d479 by gambas at 2018-05-25T19:01:38Z
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.

- - - - -
3c8c7229 by gambas at 2018-05-25T19:03:48Z
New component for compiling JIT code at runtime.

[GB.JIT]
* NEW: New component for compiling JIT code at runtime.

- - - - -
d797a545 by gambas at 2018-05-26T14:50:00Z
[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.

- - - - -
540cda45 by gambas at 2018-05-28T01:16:53Z
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.

- - - - -
a2b64b19 by gambas at 2018-05-28T01:18:44Z
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.

- - - - -
83a2452a by gambas at 2018-05-29T01:43:23Z
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.

- - - - -
5219fc48 by gambas at 2018-05-29T21:25:57Z
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.

- - - - -
714b77a1 by gambas at 2018-06-01T01:50:42Z
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.

- - - - -
1d276cdc by gambas at 2018-06-01T12:40:07Z
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.

- - - - -
23081e47 by gambas at 2018-06-02T15:59:47Z
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.

- - - - -
23be942b by gambas at 2018-06-05T09:43:39Z
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.

- - - - -
4e50dec1 by gambas at 2018-06-09T20:42:35Z
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.

- - - - -
c671adfd by gambas at 2018-06-11T16:56:39Z
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.

- - - - -
431be5bc by gambas at 2018-06-12T14:30:11Z
Fix string search routine optimization and thousand separator.

[INTERPRETER]
* BUG: Fix string search routine optimization.
* BUG: Fix thousand separator.

- - - - -
6b8afd06 by gambas at 2018-06-12T22:38:18Z
[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.

- - - - -
83eed970 by gambas at 2018-06-12T22:45:19Z
Merge branch 'jit-with-c'

- - - - -


30 changed files:

- Makefile.am
- app/src/gbs3/.settings
- benchmark/benchmark.gbs
- benchmark/nbody.gbs
- benchmark/primes.gbs
- benchmark/sort.gbs
- benchmark/sort.pl
- benchmark/sort.py
- benchmark/string.gbs
- benchmark/string.pl
- benchmark/string.py
- comp/src/gb.desktop/.settings
- comp/src/gb.eval.highlight/.src/OldHighlighter/Helper.module
- comp/src/gb.eval.highlight/.src/TextHighlighter_C.class
- comp/src/gb.form.terminal/.project
- comp/src/gb.form.terminal/.src/TerminalView/CTerminalLine.class
- comp/src/gb.form.terminal/.src/TerminalView/TerminalFilter_VT100.class
- comp/src/gb.form.terminal/.src/TerminalView/TerminalScreen.class
- comp/src/gb.util/.src/Class.class
- comp/src/gb.util/.src/ClassStat.class
- configure.ac
- gb.jit/AUTHORS → gb.jit.llvm/AUTHORS
- + gb.jit.llvm/COPYING
- gb.jit/ChangeLog → gb.jit.llvm/ChangeLog
- + gb.jit.llvm/INSTALL
- gb.jit/Makefile.am → gb.jit.llvm/Makefile.am
- gb.jit/NEWS → gb.jit.llvm/NEWS
- gb.jit/README → gb.jit.llvm/README
- + gb.jit.llvm/acinclude.m4
- + gb.jit.llvm/component.am


View it on GitLab: https://gitlab.com/gambas/gambas/compare/2c9b2dcf03c5930e5ec2c3ac5080f21433803489...83eed9707d51931f13feefa0eba77480e90d3074

-- 
View it on GitLab: https://gitlab.com/gambas/gambas/compare/2c9b2dcf03c5930e5ec2c3ac5080f21433803489...83eed9707d51931f13feefa0eba77480e90d3074
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gambas-basic.org/pipermail/notification/attachments/20180612/45a681f9/attachment-0001.html>


More information about the Notification mailing list