Commit graph

43 commits

Author SHA1 Message Date
Emil Lenngren
6fcc0f81d4 [GB.JIT]
* BUG: Local variables are not forgotten anymore after a Catch.
* BUG: Ctrl variables in GoSubs are now properly released.


git-svn-id: svn://localhost/gambas/trunk@5009 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-08-05 17:02:49 +00:00
Emil Lenngren
37698f0452 [GB.JIT]
* BUG: Fix For Each loops.


git-svn-id: svn://localhost/gambas/trunk@5008 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-08-04 12:08:39 +00:00
Emil Lenngren
139884adb6 [GB.JIT]
* BUG: Properly check stack overflow for GoSubs.


git-svn-id: svn://localhost/gambas/trunk@4942 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 23:10:13 +00:00
Emil Lenngren
6e239510d0 [GB.JIT]
* BUG: Fix static _call calls.


git-svn-id: svn://localhost/gambas/trunk@4941 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 22:40:59 +00:00
Emil Lenngren
372ae57b29 [GB.JIT]
* BUG: Oops. Now functions without GoSubs don't crash anymore ...


git-svn-id: svn://localhost/gambas/trunk@4938 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 19:48:10 +00:00
Emil Lenngren
c3742b189a [GB.JIT]
* OPT: Use the Gambas stack to store GoSub data instead of allocating
  new arrays all the time. Up to 10 times faster!


git-svn-id: svn://localhost/gambas/trunk@4937 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 19:35:36 +00:00
Emil Lenngren
02239e9c90 [GB.JIT]
* BUG: Temporary fix for powi due to a bug in llvm.


git-svn-id: svn://localhost/gambas/trunk@4934 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 15:12:45 +00:00
Benoît Minisini
fc1c1e5531 [INTERPRETER]
* NEW: When converting an instance of A to the class B, try the conversion 
  interface of A first. If A has no conversion interface, or if it cannot 
  handle the B class, then try the conversion interface of B if any.

[GB.GSL]
* NEW: Vector class has been implemented.

[GB.JIT]
* NEW: SPEC_CONVERT constant has been replaced by a field in the CLASS 
  structure.


git-svn-id: svn://localhost/gambas/trunk@4916 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 20:08:43 +00:00
Emil Lenngren
ad81cf629a [GB.JIT]
* NEW: Use VALUE_convert instead of VALUE_convert_object.


git-svn-id: svn://localhost/gambas/trunk@4914 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 18:59:10 +00:00
Emil Lenngren
393decb5e1 [GB.JIT]
* NEW: Implement _unknown.
* BUG: Remove some warnings.

[INTERPRETER]
* BUG: Fix exception handling for JIT functions.


git-svn-id: svn://localhost/gambas/trunk@4909 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 14:53:23 +00:00
Emil Lenngren
44f7bd086b [GB.JIT]
* OPT: Don't do any obvious unnecessary unref-checks.


git-svn-id: svn://localhost/gambas/trunk@4888 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-03 00:07:54 +00:00
Emil Lenngren
76e3dee4d0 [GB.JIT]
* NEW: Can now profile each line of code, but beware: profiling makes the program much much slower.

[GB.DEBUG]
* OPT: Now DEBUG_calc_line_from_position has logaritmic time complexity instead of linear. That makes profiling each line much faster for large functions!


git-svn-id: svn://localhost/gambas/trunk@4886 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-02 22:38:29 +00:00
Emil Lenngren
5f52130f31 [GB.JIT]
* BUG: Use correct IRBuilder.h



git-svn-id: svn://localhost/gambas/trunk@4880 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-01 22:51:34 +00:00
Emil Lenngren
dd5a9c4574 [GB.JIT]
* NEW: Implement some missing Variant features.
* OPT: Optimize Variants and some math functions.



git-svn-id: svn://localhost/gambas/trunk@4878 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-01 14:54:00 +00:00
Emil Lenngren
58ebc4f77e [GB.JIT]
* BUG: Breakpoints are now safely ignored.



git-svn-id: svn://localhost/gambas/trunk@4875 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-30 15:04:00 +00:00
Emil Lenngren
bded0d999a [GB.JIT]
* BUG: Maybe fix reading global boolean variables.



git-svn-id: svn://localhost/gambas/trunk@4862 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-26 21:08:37 +00:00
Emil Lenngren
856af1cd45 [GB.JIT]
* NEW: Partially support callbacks for extern functions. You can only convert functions in the current class to pointers 
currently, i.e. functions that are referenced directly by their name.



git-svn-id: svn://localhost/gambas/trunk@4851 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-19 22:08:59 +00:00
Emil Lenngren
dba2bf91ac [GB.JIT]
* BUG: Fix extern function overriding.

[COMPILER]
* BUG: Write correct disassembly for PUSH INTEGER.



git-svn-id: svn://localhost/gambas/trunk@4850 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-19 21:23:49 +00:00
Emil Lenngren
8f2695741e [GB.JIT]
* BUG: Fix "New" expression when used dynamically.



git-svn-id: svn://localhost/gambas/trunk@4848 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-18 22:53:29 +00:00
Emil Lenngren
e39e385118 [GB.JIT]
* BUG: Fix LLVM Global Variable Mappings



git-svn-id: svn://localhost/gambas/trunk@4847 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-18 19:34:32 +00:00
Emil Lenngren
67e1686b5a [GB.JIT]
* BUG: Execute the correct function when running the special _call function.



git-svn-id: svn://localhost/gambas/trunk@4843 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-17 17:22:44 +00:00
Emil Lenngren
c08d51f483 [GB.JIT]
* NEW: More accurate error line numbering.



git-svn-id: svn://localhost/gambas/trunk@4840 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-17 00:19:31 +00:00
Emil Lenngren
c59b33e1bb [GB.JIT]
* BUG: Fixed some bugs.

[INTERPRETER]
* BUG: "Read ... As String"  now correctly returns a void string instead of null, if it read an empty string.



git-svn-id: svn://localhost/gambas/trunk@4839 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-16 23:45:57 +00:00
Emil Lenngren
f12968e5a9 [GB.JIT]
* BUG: Fix some math routines for variants.



git-svn-id: svn://localhost/gambas/trunk@4833 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-15 11:19:16 +00:00
Emil Lenngren
56807e5b52 [GB.JIT]
* NEW: "Extern" functions should now work hopefully, but callbacks are still not yet implemented.
* BUG: Fix conversion Class -> Variant for non-virtual classes.
* BUG: Some minor bug fixes.

[INTERPRETER]
* BUG: Load classes from JIT should work better now.



git-svn-id: svn://localhost/gambas/trunk@4831 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-15 01:27:31 +00:00
Benoît Minisini
7e3570bfc9 [DEVELOPMENT ENVIRONMENT]
* OPT: Use Application.Busy earlier when opening a project.

[WIKI CGI SCRIPT]
* BUG: Fix links with explicit version.

[INTERPRETER]
* BUG: Setting System.Profile does not crash the interpreter anymore when
  profiling has not been activated by the '-p' command-line flag.

[GB.FORM]
* NEW: FileChooser and DirChooser: It is now possible to move up one 
  directory even if we are on the root of the current bookmark.

[GB.JIT]
* BUG: Fix some warnings.

[GB.XML.RPC]
* BUG: Fix component requirements.


git-svn-id: svn://localhost/gambas/trunk@4806 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-03 22:21:24 +00:00
Emil Lenngren
ceb68d62bf [GB.JIT]
* NEW: Debug message which function is being compiled.
* BUG: Fix object to variant conversion for 32-bit platforms.



git-svn-id: svn://localhost/gambas/trunk@4805 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-03 17:09:17 +00:00
Benoît Minisini
a865d9e227 [INTERPRETER]
* NEW: Support for variable number of arguments in extern functions.
* BUG: Fix use of static classes as extern function argument.

[COMPILER]
* NEW: Support for variable number of arguments in extern functions.

[GB.JIT]
* BUG: The GB_JIT environment variable has really no effect if it is 
  defined but a null string.


git-svn-id: svn://localhost/gambas/trunk@4796 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-01 00:18:38 +00:00
Laurent Carlier
3264da4c53 [GB.JIT]
* BUG: Now component is disabled for llvm version prior to 3.1 at compilation time.


git-svn-id: svn://localhost/gambas/trunk@4793 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-30 14:11:38 +00:00
Benoît Minisini
5ad32aea43 [GB.JIT]
* BUG: Fix two warnings in structure initializations.


git-svn-id: svn://localhost/gambas/trunk@4785 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-26 19:04:22 +00:00
Emil Lenngren
743bbc7a2a [GB.JIT]
* BUG: Fix String -> Long conversion.


git-svn-id: svn://localhost/gambas/trunk@4783 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-26 17:59:14 +00:00
Benoît Minisini
8fff3e69bd [GB.JIT]
* NEW: Debugging information is printed as soon as the GB_JIT environmental 
  variable is not null.
* NEW: If LLVM version is lesser than 3.1, a warning message is printed. 
  Normally, a crash should occur just after. :-)


git-svn-id: svn://localhost/gambas/trunk@4779 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-25 22:24:13 +00:00
Laurent Carlier
5dd86fdb1b [GB.JIT]
* NEW: Use AC_PROG_PATH() macro detect llvm-config file. llvm-config file can also be
defined with LLVM_CONFIG environment variable.

Useful in case of several llvm libs installed (see debian!), or non-standard path.


git-svn-id: svn://localhost/gambas/trunk@4777 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-25 15:54:00 +00:00
Benoît Minisini
ac2377df94 [GB.JIT]
* NEW: Enhance configuration file so that gb.jit can be compiled on any
  detected LLVM version, provided that 'llvm-config' is in the PATH.


git-svn-id: svn://localhost/gambas/trunk@4776 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-25 00:50:33 +00:00
Emil Lenngren
8d12476edb [GB.JIT]
* BUG: Really fix enumeration for non-pure objects.



git-svn-id: svn://localhost/gambas/trunk@4775 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 23:24:44 +00:00
Emil Lenngren
1777bef542 [GB.JIT]
* NEW: IIf() and Choose() are now implemented.
* BUG: Bug in enum_next.



git-svn-id: svn://localhost/gambas/trunk@4774 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 23:16:44 +00:00
Emil Lenngren
5e63b49525 [GB.JIT]
* NEW: If GB_JIT environment variable is set to "info", LLVM code dumps will be printed to stderr.



git-svn-id: svn://localhost/gambas/trunk@4771 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 12:42:07 +00:00
Emil Lenngren
eb7931d99c [GB.JIT]
* BUG: Fixed a bug in compi.



git-svn-id: svn://localhost/gambas/trunk@4767 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 00:07:09 +00:00
Emil Lenngren
406d250935 [GB.JIT]
* NEW: Use special add, sub, mul, compi for JIT Compiler Runtime.



git-svn-id: svn://localhost/gambas/trunk@4766 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 23:49:16 +00:00
Benoît Minisini
327add9439 [GB.DEBUG]
* NEW: The component is hidden now.
* BUG: Do not crash anymore when profiling Eval().

[GB.JIT]
* NEW: The component is hidden now.


git-svn-id: svn://localhost/gambas/trunk@4763 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 23:23:00 +00:00
Benoît Minisini
6b2e5d0776 [CONFIGURATION]
* BUG: Add gb.jit directory in the top Makefile.am so that it is compiled.

[INTERPRETER]
* NEW: System.Profile now only deactivate the instruction profiling. 
  Function calls keep being profiled. That way the IDE can read the profiled
  output without crashing!


git-svn-id: svn://localhost/gambas/trunk@4762 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 21:35:58 +00:00
Benoît Minisini
47e099ab72 [GB.JIT]
* BUG: Use component name instead of explicit name in gb.jit configure.ac file.


git-svn-id: svn://localhost/gambas/trunk@4760 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 19:56:48 +00:00
Emil Lenngren
3c912da3db [INTERPRETER]
* NEW: Switch to JIT compiler if available, and make it able to talk to gb.jit.
* BUG: GP must be NULL for new void stack frames.

[COMPILER]
* NEW: 'Fast' keyword means the class should be JIT-compiled.

[GB.JIT]
* NEW: JIT Compiler.



git-svn-id: svn://localhost/gambas/trunk@4759 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 19:26:15 +00:00