Jean-Sebastien Gelinas [Fri, 4 Dec 2009 06:14:11 +0000 (01:14 -0500)]
compile: add 'icode' as output type
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Fri, 4 Dec 2009 01:39:20 +0000 (20:39 -0500)]
icode: add a way to output icodes without line numbers and/or locations
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 3 Dec 2009 20:30:22 +0000 (15:30 -0500)]
compile: add a way to choose generated output format
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 21 Oct 2009 21:55:01 +0000 (17:55 -0400)]
analysis: add logs to dead method removal optimization
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 21 Oct 2009 21:27:16 +0000 (17:27 -0400)]
analysis: add logs for 'out of init getter tests' optimization
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 21 Oct 2009 21:22:19 +0000 (17:22 -0400)]
analysis: add 'dump_global_optimizations_information' to generate logs about optimizations
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 21 Oct 2009 21:20:18 +0000 (17:20 -0400)]
analysis: add an optimization to remove 'getter' tests when called outside an init
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 21 Oct 2009 20:05:08 +0000 (16:05 -0400)]
analysis: add implementation for reachable methods from initializers analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 21 Oct 2009 19:33:33 +0000 (15:33 -0400)]
analysis: add logs for reachable from init analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 21 Oct 2009 19:13:40 +0000 (15:13 -0400)]
analysis: add an analysis to know if a method/iroutine is reachable from an init
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 28 Oct 2009 03:26:47 +0000 (23:26 -0400)]
analysis: fix RTA implementation for inherited methods
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 24 Nov 2009 23:45:03 +0000 (18:45 -0500)]
analysis: add support for 'Inline__' in RTA
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 23 Nov 2009 06:00:03 +0000 (01:00 -0500)]
analysis: inline getters/setters before analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 23 Nov 2009 05:09:33 +0000 (00:09 -0500)]
analysis: split optimization in two groups: pre and post analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Sat, 21 Nov 2009 21:53:36 +0000 (16:53 -0500)]
analysis: add logs to reachable as init analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Sat, 21 Nov 2009 20:40:50 +0000 (15:40 -0500)]
analysis: add the implementation of the reachable as initializer analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Sat, 21 Nov 2009 00:34:07 +0000 (19:34 -0500)]
analysis: add an analysis to find reachable init (used as init)
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 21 Sep 2009 21:11:00 +0000 (17:11 -0400)]
compile: generate tables only for live local classes
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 24 Nov 2009 21:32:56 +0000 (16:32 -0500)]
tests: fix error_class_glob.fail
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 21 Sep 2009 21:10:06 +0000 (17:10 -0400)]
analysis: fix RTA to say that at least primitive types are always instantiated (even if we don't see a main class/method)
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Sun, 20 Sep 2009 15:06:23 +0000 (11:06 -0400)]
parser: remove useless methods from generated parser code
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Sun, 20 Sep 2009 14:50:04 +0000 (10:50 -0400)]
tools: add log information about instantiated and not instantiated types
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Fri, 18 Sep 2009 19:54:15 +0000 (15:54 -0400)]
tools: add log information about reachable and unreachable methods
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Fri, 18 Sep 2009 19:47:26 +0000 (15:47 -0400)]
compile: use 'with_each_iroutines' to go through iroutines in method removal algorithm
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 21 Sep 2009 21:10:43 +0000 (17:10 -0400)]
analysis: refine with_each_live_local_classes in Instantiated Type Analysis since we have more information
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Sun, 20 Sep 2009 14:48:01 +0000 (10:48 -0400)]
tools: generate logs in a selected directory
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 23 Nov 2009 23:07:13 +0000 (18:07 -0500)]
tools: add a 'global' compilation target to the tests makefile
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 24 Nov 2009 06:21:03 +0000 (01:21 -0500)]
tools: don't print stack for tests that fail, fix saves
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 23 Nov 2009 23:06:31 +0000 (18:06 -0500)]
tools: add a env. variable to remove runtime stack showing
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Fri, 18 Sep 2009 20:47:02 +0000 (16:47 -0400)]
tools: add a function to go through every classes in the program
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Fri, 18 Sep 2009 19:50:16 +0000 (15:50 -0400)]
tools: add a function to go through every methods in a program
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Fri, 18 Sep 2009 19:08:44 +0000 (15:08 -0400)]
tools: add a function to go through every IRoutines in a program
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 15 Sep 2009 15:22:37 +0000 (11:22 -0400)]
icode: inline foreign icloscall and ihasclos
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 15 Sep 2009 14:53:55 +0000 (10:53 -0400)]
nitdoc: workaround for a broken assertion
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 20 Aug 2009 20:56:53 +0000 (16:56 -0400)]
optimize: add a callgraph builder: RTA
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 11 Aug 2009 18:40:15 +0000 (14:40 -0400)]
optimize: add a callgraph builder: CHA
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 13 Aug 2009 17:54:36 +0000 (13:54 -0400)]
optimize: add a dead method removal optimization
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 19 Aug 2009 18:59:07 +0000 (14:59 -0400)]
optimize: add optimization basis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 3 Sep 2009 20:44:33 +0000 (16:44 -0400)]
lib: add value_name to OptionEnum to get the selected name
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 2 Sep 2009 21:33:25 +0000 (17:33 -0400)]
tools: fix gccx with: .nit_compile[0-9] and GC
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 8 Sep 2009 15:30:29 +0000 (11:30 -0400)]
compile: move table computation after all global analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 8 Sep 2009 15:29:57 +0000 (11:29 -0400)]
compile: move some class processing to program to do it before analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 8 Sep 2009 15:28:56 +0000 (11:28 -0400)]
compile: remove ClassSorter, use sort with block instead
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 8 Sep 2009 15:27:22 +0000 (11:27 -0400)]
compile: move MMLocalClass::compare to AbstractMetamodel and rename to total_order_compare
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 4 Sep 2009 18:12:17 +0000 (14:12 -0400)]
lib: add Array::sort !cmp
Also add a test.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 4 Sep 2009 17:50:10 +0000 (13:50 -0400)]
parser: accepts "print a[b]"
However, why "print [a, b]" is refused remains to be investigated.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 27 Aug 2009 19:59:50 +0000 (15:59 -0400)]
compile: add command line option to disable SFT optimization
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 27 Aug 2009 21:08:25 +0000 (17:08 -0400)]
compile: when in global compilation, compile to _glob instead of _sep
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 27 Aug 2009 21:07:38 +0000 (17:07 -0400)]
compile: move 'global' option to program instead of compiling_base
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Thu, 27 Aug 2009 18:33:12 +0000 (14:33 -0400)]
compile: add ToolContext to Program
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 26 Aug 2009 21:04:31 +0000 (17:04 -0400)]
compile: rename do_global_analysis to do_global_table_analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Fri, 21 Aug 2009 19:29:53 +0000 (15:29 -0400)]
compile: move management and generation of iroutines in MMLocalClass to Program
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 31 Aug 2009 21:36:11 +0000 (17:36 -0400)]
doc: teach doc/advanced_options about NIT_GC_OPTION
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 31 Aug 2009 21:33:27 +0000 (17:33 -0400)]
misc: remove Sci-Fi example/various/glob.nit
Will be reintroduced when needed.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 31 Aug 2009 21:32:02 +0000 (17:32 -0400)]
nitdoc: show closure in signatures
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 17:08:35 +0000 (13:08 -0400)]
version: v0.3.1-git
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 17:07:33 +0000 (13:07 -0400)]
version: v0.3
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 17:01:46 +0000 (13:01 -0400)]
gc: disable boehm by default
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 17:00:54 +0000 (13:00 -0400)]
gc: add 'help' option to list all available GC
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 17:00:02 +0000 (13:00 -0400)]
gc: show default GC on warnings
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 16:06:45 +0000 (12:06 -0400)]
gc: default to nitgc when boehm is not available
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 15:40:39 +0000 (11:40 -0400)]
syntax: warn on 'while true do' and suggests 'loop'
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 28 Aug 2009 15:40:01 +0000 (11:40 -0400)]
src: use 'loop' for infinite loop and do-until-like
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 26 Aug 2009 16:28:45 +0000 (12:28 -0400)]
icode: shortcut in icode generation of 'for x in [y..z]'
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 26 Aug 2009 15:50:10 +0000 (11:50 -0400)]
lib: add Int::enumerate_*
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 17 Aug 2009 18:47:34 +0000 (14:47 -0400)]
icode: inline Array::iterate
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Aug 2009 20:52:22 +0000 (16:52 -0400)]
icode: generate closure for 'for'
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 25 Aug 2009 16:07:00 +0000 (12:07 -0400)]
lib: add iterate methods on Collection
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 27 Aug 2009 17:43:21 +0000 (13:43 -0400)]
tools: activate -v and sometime -W on some commands
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 27 Aug 2009 17:23:43 +0000 (13:23 -0400)]
c_src: update
This update objective is to enable new closure syntax and behavior.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 26 Aug 2009 15:48:03 +0000 (11:48 -0400)]
icode: duplicate closure declaration on ICodeN
Just aliasing them broke the constraint that each ICode element is unique
in an IRoutine.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 26 Aug 2009 14:12:16 +0000 (10:12 -0400)]
icode: new IEscapeMark class to bind ISeq and IEscape
An IRoutine knows all its local escape marks.
This fix some bugs with nesting and escapes since only marks of the
current iroutine needs to be duplicated (like what is done for registers).
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 25 Aug 2009 20:04:03 +0000 (16:04 -0400)]
icode: new ICB::add_escape method
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 26 Aug 2009 15:39:37 +0000 (11:39 -0400)]
icode: distinguish slots in dump
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 26 Aug 2009 14:28:31 +0000 (10:28 -0400)]
icode: add dump for INew and ISuper
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 25 Aug 2009 15:18:06 +0000 (11:18 -0400)]
misc: update Changelog and NOTICE; remove BUGS and TODO
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 25 Aug 2009 14:41:16 +0000 (10:41 -0400)]
tools: add ncall.sh script to execute nc* in order
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 25 Aug 2009 14:40:08 +0000 (10:40 -0400)]
misc: new syntax file for GNU source-highlight
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 24 Aug 2009 03:08:45 +0000 (23:08 -0400)]
syntax: break closures are implicitly ended with 'break'
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 24 Aug 2009 03:00:32 +0000 (23:00 -0400)]
syntax: fix 'break' with value in default closures
Break return type and return value is associated with the method return
type and return value.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 20 Aug 2009 02:29:55 +0000 (22:29 -0400)]
syntax: allow untyped variable declaration
It means there is now a distinction between variables with a null static
type because of a previous error and untyped variables that also have null
static type. So introduce Variable::is_typed.
Enhance check_is_set with untyped variable verification.
Compile untyped variable as 'nullable Object' registers.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 20 Aug 2009 02:13:10 +0000 (22:13 -0400)]
syntax: assign variable even if there is no base type
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 19 Aug 2009 19:46:22 +0000 (15:46 -0400)]
lib: remove exec::kill and exec::term
Nobody use them now and they cause GCC warning.
Also modify c_src/exec._sep.c since a macro disapeared in lib/standard/exec_nit.h.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 19 Aug 2009 19:27:34 +0000 (15:27 -0400)]
parser: set LANG=C for sed in Makefile (the sed that rename P* -> A*)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 19 Aug 2009 19:19:14 +0000 (15:19 -0400)]
tests: fix test_extern.nit for 64bits
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 19 Aug 2009 19:13:56 +0000 (15:13 -0400)]
gc: fix gc.c for 64bits
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 19 Aug 2009 19:08:15 +0000 (15:08 -0400)]
lib: fix file_nit.c for 64bits
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 19 Aug 2009 20:52:08 +0000 (16:52 -0400)]
syntax: new 'assert else' statement
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 11 Aug 2009 18:45:33 +0000 (14:45 -0400)]
tools: add entrypoint information to the program
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 10 Aug 2009 16:25:11 +0000 (12:25 -0400)]
compile: generate classes init iroutines sooner to insert global analysis
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Sat, 8 Aug 2009 17:13:52 +0000 (13:13 -0400)]
compile: store class related IRoutines in MMLocalClass
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Wed, 5 Aug 2009 13:34:08 +0000 (09:34 -0400)]
compile: extract table computation from compiling_global to table_computation
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Tue, 4 Aug 2009 22:28:47 +0000 (18:28 -0400)]
compile: remove GlobalAnalysis
- Move 'CompiledClasses' to 'Program'
- Rename 'GlobalAnalysis' to 'TableInformation'
- Keep 'max_class_table_length' in 'TableInformation'
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 3 Aug 2009 21:13:21 +0000 (17:13 -0400)]
compile: add 'Program' class to represent a nit program
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 19 Aug 2009 15:46:29 +0000 (11:46 -0400)]
icode: if inlining is impossible, at least use a static call
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 17 Aug 2009 21:11:11 +0000 (17:11 -0400)]
icode: add IAllocateInstance, ICheckInstance and IInitAttributes
Trivially-hacked-by: Jean Privat <jean@pryen.org>
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean-Sebastien Gelinas [Mon, 17 Aug 2009 19:30:31 +0000 (15:30 -0400)]
icode: add IStaticCall
Trivially-hacked-by: Jean Privat <jean@pryen.org>
Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 18 Aug 2009 23:29:51 +0000 (19:29 -0400)]
icode: icode INew specializes IAbsCall (not ICall)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 18 Aug 2009 18:45:52 +0000 (14:45 -0400)]
compile: one closure context by function, and it is the stack frame
Closure definition directly use the stack frame of the caller to access the
closure environment (local variables, closure parameters, escape marker).
Closure function pointers are passed as separate additional arguments.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 18 Aug 2009 17:05:23 +0000 (12:05 -0500)]
clib: move REG to the stack frames
It means that functions have different frame sizes.
To achieve this, each function frame ('me') is stored in a big_frame ('fra')
that contains enough space to store all the REGs.
Signed-off-by: Jean Privat <jean@pryen.org>