nit.git
13 years agoparser: factorize reduce actions
Jean Privat [Wed, 22 Sep 2010 01:46:30 +0000 (21:46 -0400)]
parser: factorize reduce actions

The fact_parser script postprocesses the generated parser.nit and
factorizes the ReduceAction classes.

Before factorization: 605 classes
After factorization: 355 classes

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agoparser: do not write the goto address in the generated action
Jean Privat [Wed, 4 Aug 2010 16:30:43 +0000 (11:30 -0500)]
parser: do not write the goto address in the generated action

Store the number in an attribute of the ReduceAction classes.
This is necessary for the factorisation of actions.

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agoparser: add Parser::concat to factorize code
Jean Privat [Wed, 4 Aug 2010 14:35:27 +0000 (09:35 -0500)]
parser: add Parser::concat to factorize code

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agoparser: reduce some automatic inlining
Jean Privat [Wed, 4 Aug 2010 17:43:34 +0000 (13:43 -0400)]
parser: reduce some automatic inlining

* readable and writable with automatic opt
* stmtsn = stmts + n
* noend -> nolabel
* remove methid~noassign variant
* remove propdefs_tail

Currently, the only automatic inlining that remains are:

* PRedef
* PRecv
* PImplicitTopClass
* PRecvNopar
* PRecvNobra

Before:
* maketime=1m35s
* parser_tables.nit=492KB
* parser.nit=1.3MB
* nb reduceactions=1199
After:
* maketime=28s
* parser_tables=251KN
* parser.nit=501KB
* nb reduceactions=664

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agoMerge branch 'hash_optimisations' into wip
Jean Privat [Fri, 16 Jul 2010 16:56:13 +0000 (12:56 -0400)]
Merge branch 'hash_optimisations' into wip

13 years agocompile: filter some loops in program icode generation
Jean Privat [Fri, 16 Jul 2010 16:55:18 +0000 (12:55 -0400)]
compile: filter some loops in program icode generation

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agometamodel: use HashSets instead of Arrays
Jean Privat [Fri, 16 Jul 2010 03:41:47 +0000 (23:41 -0400)]
metamodel: use HashSets instead of Arrays

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agolib: hash_collection learns the standard hashmap implementation
Jean Privat [Fri, 16 Jul 2010 03:40:40 +0000 (23:40 -0400)]
lib: hash_collection learns the standard hashmap implementation

The standard hashmap implementation use array with chained nodes (bucklets).
The previous implementation triggers patological case with a near O(n)
complexity.

Warm bootstrap shows an improvement from 0m21.217s to 0m18.613s.

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agolib: reduce acces to _array in hash_collection
Jean Privat [Fri, 16 Jul 2010 03:32:27 +0000 (23:32 -0400)]
lib: reduce acces to _array in hash_collection

Add helper functions and refactorize some code

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agolib: direct key access in HashMap and HashSet
Jean Privat [Tue, 13 Jul 2010 21:04:41 +0000 (17:04 -0400)]
lib: direct key access in HashMap and HashSet

Improve HashMap efficiency by acceding the key of HashNodes directely.

HashMapNode is no more a Couple and HashMap is no more a CoupleMap.

rought figures show a small speed improvement:

$ time ./nitc -v -W -p 2 nitc
avant: 1m15.061s
apres: 1m10.424s

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agoMerge branch 'syntax_flow_and_scope' into wip
Jean Privat [Mon, 28 Jun 2010 12:32:02 +0000 (08:32 -0400)]
Merge branch 'syntax_flow_and_scope' into wip

13 years agoMerge branch 'valgrind_script' into wip
Jean Privat [Mon, 28 Jun 2010 12:31:56 +0000 (08:31 -0400)]
Merge branch 'valgrind_script' into wip

13 years agotools: add a valgrind helper script
Jean Privat [Thu, 24 Jun 2010 06:22:37 +0000 (02:22 -0400)]
tools: add a valgrind helper script

The script call valgrind with the right options to disable the GC and
avoid loops.

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agosyntax: merge ScopeContext and EscapeContext
Jean Privat [Fri, 18 Jun 2010 18:53:07 +0000 (14:53 -0400)]
syntax: merge ScopeContext and EscapeContext

and reorganize the related modules modules

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agosyntax: split the VariableContext into a Scope and a Flow context
Jean Privat [Fri, 18 Jun 2010 17:01:52 +0000 (13:01 -0400)]
syntax: split the VariableContext into a Scope and a Flow context

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agosyntax: new enter_visit_block helper function
Jean Privat [Fri, 18 Jun 2010 00:10:43 +0000 (20:10 -0400)]
syntax: new enter_visit_block helper function

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agosyntax: new mark_unreash helper function
Jean Privat [Fri, 18 Jun 2010 00:10:13 +0000 (20:10 -0400)]
syntax: new mark_unreash helper function

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agosyntax: factorize some block/loop structures
Jean Privat [Thu, 17 Jun 2010 08:03:45 +0000 (04:03 -0400)]
syntax: factorize some block/loop structures

Signed-off-by: Jean Privat <jean@pryen.org>

13 years agosyntax: new "or else" construction
Jean Privat [Tue, 15 Jun 2010 13:11:25 +0000 (09:11 -0400)]
syntax: new "or else" construction

where
  var c = x or else y
is (roughly) equivalent to
  var c = x
  if c == null then c = y

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: "super" is a synonym of "special"
Jean Privat [Thu, 11 Mar 2010 16:42:00 +0000 (11:42 -0500)]
syntax: "super" is a synonym of "special"

Nit syntax is declarative with nouns.

Examples:
  "class X" -> X is a class
  "fun x" -> x is a function of the class
  "var _x" -> _x is an instance variable of the class
  "init x" -> x is a constructor of the class

Therefore, it can make sense that the declaration
of superclasses use the same scheme.

  "super Y" -> Y is a superclass of the class
instead of the current
  "special Y" -> the class specializes Y
                (or the class is a special kind of Y)

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoicode: link INative with a MMMethod instead of a raw C code
Jean Privat [Wed, 10 Feb 2010 21:49:54 +0000 (16:49 -0500)]
icode: link INative with a MMMethod instead of a raw C code

syntax/icode_generation.nit is made cleaner since all the C stuff is
now done in compiling/compiling_icode.nit

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agometamodel: move the extern name of a method in the metamodel
Jean Privat [Wed, 10 Feb 2010 17:52:16 +0000 (12:52 -0500)]
metamodel: move the extern name of a method in the metamodel

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoicode: add I*Value classes
Jean Privat [Wed, 10 Feb 2010 15:45:31 +0000 (10:45 -0500)]
icode: add I*Value classes

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: declare NEW_NativeArray in nit_common.h
Jean Privat [Tue, 9 Feb 2010 22:07:38 +0000 (17:07 -0500)]
compile: declare NEW_NativeArray in nit_common.h

Thus simplify compiling_global::MMLocalClass::declare_tables_to_c

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: add class compiling::CProgram to manage generated files
Jean Privat [Fri, 5 Feb 2010 15:33:45 +0000 (10:33 -0500)]
compile: add class compiling::CProgram to manage generated files

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: use writers in icode compilation
Jean Privat [Fri, 29 Jan 2010 20:13:59 +0000 (15:13 -0500)]
compile: use writers in icode compilation

Remove superstrings and other kinds of string concatenations.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: add module compiling_writer to replace CContext
Jean Privat [Fri, 29 Jan 2010 20:08:06 +0000 (15:08 -0500)]
compile: add module compiling_writer to replace CContext

It will helps to make the code generation more flexible and more efficient.
However, this patch does not change the generated C.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agotools: nc kill showerr on TERM/INT
Jean Privat [Tue, 9 Feb 2010 22:31:20 +0000 (17:31 -0500)]
tools: nc kill showerr on TERM/INT

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agogc: rewrite for efficiency
Jean Privat [Wed, 27 Jan 2010 18:05:11 +0000 (13:05 -0500)]
gc: rewrite for efficiency

* Major code clean
* Do only one pass (was 2 in the worst case)
* Map gc block to the page size
* Free the inactive heap

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agogc: new NIT_GC_OPTION 'malloc'
Jean Privat [Wed, 27 Jan 2010 16:55:00 +0000 (11:55 -0500)]
gc: new NIT_GC_OPTION 'malloc'

Used to have a genuine malloc thing that can be valginded.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: refuse return in default closure definition
Jean Privat [Tue, 26 Jan 2010 18:53:09 +0000 (13:53 -0500)]
syntax: refuse return in default closure definition

Such a return can be seen ambiguous.
Users have to use break or continue.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agometamodel: lazily compute global properties
Jean Privat [Fri, 22 Jan 2010 22:27:38 +0000 (17:27 -0500)]
metamodel: lazily compute global properties

has_global_property and has_global_property_by_name perform a look-up
global_properties calls inherit_global_properties if needed
inherit_global_properties is made private

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: do not inherit and check all local properties
Jean Privat [Fri, 22 Jan 2010 22:11:18 +0000 (17:11 -0500)]
syntax: do not inherit and check all local properties

In Nit, the majority of conflicts are silent.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoanalysis: improve alocate_register_slots
Jean Privat [Thu, 21 Jan 2010 21:30:21 +0000 (16:30 -0500)]
analysis: improve alocate_register_slots

Use better data structure (no more hash*) and detect loop/closure nesting.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoanalysis: simplify icode inlining
Jean Privat [Thu, 21 Jan 2010 21:27:27 +0000 (16:27 -0500)]
analysis: simplify icode inlining

Permit unbounded nested inlining. The only restriction is that an
iroutine cannot be inlined in itself.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoanalysis: inline Int::enumerate_*
Jean Privat [Tue, 19 Jan 2010 13:44:09 +0000 (08:44 -0500)]
analysis: inline Int::enumerate_*

They should have been inlined a long time ago.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: type error when using superstrings with nullables
Jean Privat [Mon, 18 Jan 2010 18:13:50 +0000 (13:13 -0500)]
syntax: type error when using superstrings with nullables

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: fix code using superstrings with nullables
Jean Privat [Mon, 18 Jan 2010 18:13:21 +0000 (13:13 -0500)]
syntax: fix code using superstrings with nullables

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: remove reachability test in ABreakExpr
Jean Privat [Mon, 18 Jan 2010 17:09:39 +0000 (12:09 -0500)]
syntax: remove reachability test in ABreakExpr

Since unreachable statements are no more visited.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: do not nest variable context in ABlockExpr
Jean Privat [Mon, 18 Jan 2010 17:00:38 +0000 (12:00 -0500)]
syntax: do not nest variable context in ABlockExpr

They are already nested in parent nodes (in case of one-liner for instance).

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: allow 'null == x' and 'null != x'
Jean Privat [Fri, 15 Jan 2010 20:49:37 +0000 (15:49 -0500)]
syntax: allow 'null == x' and 'null != x'

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: track exits context in do blocks
Jean Privat [Fri, 15 Jan 2010 20:13:26 +0000 (15:13 -0500)]
syntax: track exits context in do blocks

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: remove VariableContex::stype=
Jean Privat [Fri, 15 Jan 2010 19:43:53 +0000 (14:43 -0500)]
syntax: remove VariableContex::stype=

Make VariableContext less mutable thus simplify merging code.

Fix also a type_evolution test that were wrong.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: stmts after loops without breaks are unreashables
Jean Privat [Thu, 14 Jan 2010 16:43:05 +0000 (11:43 -0500)]
syntax: stmts after loops without breaks are unreashables

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: prepare stmts following loops to be unreachable
Jean Privat [Thu, 14 Jan 2010 16:34:27 +0000 (11:34 -0500)]
syntax: prepare stmts following loops to be unreachable

Add dummy breaks and aborts in order to be able to bootstrap once
statements following loops without breaks are set unreachable.

Once c_src is updated, these dummy statements should be removed.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: unreachable statements are errors
Jean Privat [Wed, 13 Jan 2010 22:14:25 +0000 (17:14 -0500)]
syntax: unreachable statements are errors

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agotests: remove static dead code
Jean Privat [Wed, 13 Jan 2010 16:36:05 +0000 (11:36 -0500)]
tests: remove static dead code

Prepare for the error (currently it is a warning)

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: while/loop exit type evolution
Jean Privat [Tue, 12 Jan 2010 20:31:56 +0000 (15:31 -0500)]
syntax: while/loop exit type evolution

Implementation requires that variable contexts on breaks are collected
and merged.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: fix type evolution on non nullable type
Jean Privat [Tue, 12 Jan 2010 19:51:01 +0000 (14:51 -0500)]
syntax: fix type evolution on non nullable type

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: comparing a variable with null makes it evolve to null
Jean Privat [Fri, 8 Jan 2010 22:09:04 +0000 (17:09 -0500)]
syntax: comparing a variable with null makes it evolve to null

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: merge nullable information on type evolution
Jean Privat [Fri, 8 Jan 2010 19:45:57 +0000 (14:45 -0500)]
syntax: merge nullable information on type evolution

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: prevent segfault on null types
Jean Privat [Thu, 7 Jan 2010 21:48:24 +0000 (16:48 -0500)]
syntax: prevent segfault on null types

Errors on: method calls, attribute access.
Warnings on: null-null comparisons, null casted to non nullable.

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: untyped local variables are 'nullable Object'
Jean Privat [Thu, 7 Jan 2010 19:57:02 +0000 (14:57 -0500)]
syntax: untyped local variables are 'nullable Object'

This partially reverts commit 220823e713cef8915241679a614fbfb53ddaece0
"syntax: allow untyped variable declaration".

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: real variable type evolution on IfexprExpr
Jean Privat [Fri, 8 Jan 2010 21:56:12 +0000 (16:56 -0500)]
syntax: real variable type evolution on IfexprExpr

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agosyntax: fix variable context merge on unreashable branches
Jean Privat [Fri, 8 Jan 2010 19:46:52 +0000 (14:46 -0500)]
syntax: fix variable context merge on unreashable branches

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agonitdoc: correctly display the package path before the package name
Jean Privat [Fri, 8 Jan 2010 22:20:48 +0000 (17:20 -0500)]
nitdoc: correctly display the package path before the package name

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoparser: fix comment in Makefile
Jean Privat [Thu, 7 Jan 2010 18:58:50 +0000 (13:58 -0500)]
parser: fix comment in Makefile

Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: add program arguments passed to C compiler; gcc's -l, -L, -I and -c
Alexis Laferrière [Fri, 18 Dec 2009 04:13:55 +0000 (23:13 -0500)]
compile: add program arguments passed to C compiler; gcc's -l, -L, -I and -c

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: rename program argument no_cc to no-cc for consistency
Alexis Laferrière [Fri, 18 Dec 2009 04:05:01 +0000 (23:05 -0500)]
compile: rename program argument no_cc to no-cc for consistency

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agotests: add some basic tests for dead method removal/cha/rta
Jean-Sebastien Gelinas [Mon, 7 Dec 2009 05:10:19 +0000 (00:10 -0500)]
tests: add some basic tests for dead method removal/cha/rta

Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agotests: rename the 'all' target to 'separate' and create a new 'all' target
Jean-Sebastien Gelinas [Sat, 5 Dec 2009 21:17:25 +0000 (16:17 -0500)]
tests: rename the 'all' target to 'separate' and create a new 'all' target

Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agotests: add a 'icode' target to the Makefile
Jean-Sebastien Gelinas [Sat, 5 Dec 2009 21:14:10 +0000 (16:14 -0500)]
tests: add a 'icode' target to the Makefile

Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agotests: add a script to test ICode generation
Jean-Sebastien Gelinas [Sat, 5 Dec 2009 21:03:12 +0000 (16:03 -0500)]
tests: add a script to test ICode generation

Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: remove '--dump', replaced by '--output-format icode'
Jean-Sebastien Gelinas [Fri, 4 Dec 2009 06:16:07 +0000 (01:16 -0500)]
compile: remove '--dump', replaced by '--output-format icode'

Signed-off-by: Jean-Sebastien Gelinas <calestar@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: add 'icode' as output type
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>

14 years agoicode: add a way to output icodes without line numbers and/or locations
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>

14 years agocompile: add a way to choose generated output format
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>

14 years agoanalysis: add logs to dead method removal optimization
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>

14 years agoanalysis: add logs for 'out of init getter tests' optimization
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>

14 years agoanalysis: add 'dump_global_optimizations_information' to generate logs about optimiza...
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>

14 years agoanalysis: add an optimization to remove 'getter' tests when called outside an init
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>

14 years agoanalysis: add implementation for reachable methods from initializers analysis
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>

14 years agoanalysis: add logs for reachable from init analysis
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>

14 years agoanalysis: add an analysis to know if a method/iroutine is reachable from an init
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>

14 years agoanalysis: fix RTA implementation for inherited methods
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>

14 years agoanalysis: add support for 'Inline__' in RTA
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>

14 years agoanalysis: inline getters/setters before analysis
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>

14 years agoanalysis: split optimization in two groups: pre and post analysis
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>

14 years agoanalysis: add logs to reachable as init analysis
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>

14 years agoanalysis: add the implementation of the reachable as initializer analysis
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>

14 years agoanalysis: add an analysis to find reachable init (used as init)
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>

14 years agocompile: generate tables only for live local classes
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>

14 years agotests: fix error_class_glob.fail
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>

14 years agoanalysis: fix RTA to say that at least primitive types are always instantiated (even...
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>

14 years agoparser: remove useless methods from generated parser code
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>

14 years agotools: add log information about instantiated and not instantiated types
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>

14 years agotools: add log information about reachable and unreachable methods
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>

14 years agocompile: use 'with_each_iroutines' to go through iroutines in method removal algorithm
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>

14 years agoanalysis: refine with_each_live_local_classes in Instantiated Type Analysis since...
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>

14 years agotools: generate logs in a selected directory
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>

14 years agotools: add a 'global' compilation target to the tests makefile
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>

14 years agotools: don't print stack for tests that fail, fix saves
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>

14 years agotools: add a env. variable to remove runtime stack showing
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>

14 years agotools: add a function to go through every classes in the program
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>

14 years agotools: add a function to go through every methods in a program
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>

14 years agotools: add a function to go through every IRoutines in a program
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>

14 years agoicode: inline foreign icloscall and ihasclos
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>

14 years agonitdoc: workaround for a broken assertion
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>

14 years agooptimize: add a callgraph builder: RTA
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>

14 years agooptimize: add a callgraph builder: CHA
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>