nit.git
14 years agogc: superficial cleaning
Jean Privat [Tue, 18 Aug 2009 13:50:55 +0000 (09:50 -0400)]
gc: superficial cleaning

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

14 years agogc: add Nit GC
Julien Chevalier [Fri, 14 Aug 2009 18:11:04 +0000 (14:11 -0400)]
gc: add Nit GC

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agogc: disable Boehm general malloc and calloc overtaking
Julien Chevalier [Mon, 17 Aug 2009 19:57:06 +0000 (15:57 -0400)]
gc: disable Boehm general malloc and calloc overtaking

Trivially-hacked-by: Jean Privat <jean@pryen.org>

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoclib: new raw_alloc and register_static_object services
Jean Privat [Mon, 17 Aug 2009 19:55:21 +0000 (15:55 -0400)]
clib: new raw_alloc and register_static_object services

Currently, these services are very simples or noop.
However, alternatives GC can provide more complex ones.

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

14 years agocompile: traces know REG variables
Julien Chevalier [Fri, 14 Aug 2009 17:16:22 +0000 (13:16 -0400)]
compile: traces know REG variables

Also: ask gccx to not warn about missing initializers.

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: initialize local REGS to NIT_NULL
Jean Privat [Fri, 14 Aug 2009 16:58:05 +0000 (12:58 -0400)]
compile: initialize local REGS to NIT_NULL

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

14 years agocompile: store instance size in class table
Julien Chevalier [Fri, 14 Aug 2009 16:49:04 +0000 (12:49 -0400)]
compile: store instance size in class table

This new information can be used by GC to visit the attributes of an object.

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agogc: runtime option to handle different GC
Julien Chevalier [Mon, 17 Aug 2009 19:30:11 +0000 (15:30 -0400)]
gc: runtime option to handle different GC

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

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: give NativeArray its own C structure
Julien Chevalier [Fri, 14 Aug 2009 16:02:09 +0000 (12:02 -0400)]
compile: give NativeArray its own C structure

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agocompile: object_id is no more the object pointer
Julien Chevalier [Mon, 17 Aug 2009 19:13:06 +0000 (15:13 -0400)]
compile: object_id is no more the object pointer

Warning: now, two objects of the same class can have the same object_id.
It is unlikely, but possible.

Trivially-hacked-by: Jean Privat <jean@pryen.org>

Signed-off-by: Julien Chevalier <chevjulien@gmail.com>
Signed-off-by: Jean Privat <jean@pryen.org>

14 years agoclib: move files to the clib directory
Jean Privat [Mon, 17 Aug 2009 16:09:57 +0000 (12:09 -0400)]
clib: move files to the clib directory

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

14 years agoc_src: gives c_src its own clibdir
Jean Privat [Mon, 17 Aug 2009 15:53:56 +0000 (11:53 -0400)]
c_src: gives c_src its own clibdir

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

14 years agoclib: add copyright notice to nit_{common,main}
Jean Privat [Mon, 17 Aug 2009 15:52:32 +0000 (11:52 -0400)]
clib: add copyright notice to nit_{common,main}

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

14 years agoclib: clean spaces in nit_common.h
Jean Privat [Mon, 17 Aug 2009 15:39:28 +0000 (11:39 -0400)]
clib: clean spaces in nit_common.h

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

14 years agoc_src: copy only .o and .cksum on bootstrap
Jean Privat [Mon, 17 Aug 2009 15:22:35 +0000 (11:22 -0400)]
c_src: copy only .o and .cksum on bootstrap

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

14 years agosyntax: fatal error on unavailable primitive method
Jean Privat [Fri, 14 Aug 2009 19:33:34 +0000 (15:33 -0400)]
syntax: fatal error on unavailable primitive method

Warning: signature of primitive methods is not checked.

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

14 years agoicode: do no do recursive inline
Jean Privat [Mon, 17 Aug 2009 14:29:05 +0000 (10:29 -0400)]
icode: do no do recursive inline

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

14 years agoicode: inline methods with closures
Jean Privat [Mon, 10 Aug 2009 19:01:15 +0000 (15:01 -0400)]
icode: inline methods with closures

Warning, break of closure call cannot be inlined.

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

14 years agocompile: force inlining with special class Inline__
Jean Privat [Mon, 10 Aug 2009 18:54:41 +0000 (14:54 -0400)]
compile: force inlining with special class Inline__

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

14 years agoicode: duplicate ICodeN::closure_defs in dup_with
Jean Privat [Mon, 17 Aug 2009 18:50:01 +0000 (14:50 -0400)]
icode: duplicate ICodeN::closure_defs in dup_with

Fix issue with inlining of calls with closures.

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

14 years agoicode: use the icb to helps the icode duplication
Jean Privat [Fri, 14 Aug 2009 20:48:24 +0000 (16:48 -0400)]
icode: use the icb to helps the icode duplication

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

14 years agoicode: iroutine knows its local registers
Jean Privat [Mon, 10 Aug 2009 17:14:54 +0000 (13:14 -0400)]
icode: iroutine knows its local registers

iroutine inlining is also adapted to only duplicate local registers.

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

14 years agoicode: closures are generated within a ICodeBuilder
Jean Privat [Mon, 10 Aug 2009 17:07:26 +0000 (13:07 -0400)]
icode: closures are generated within a ICodeBuilder

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

14 years agoicode: method inlining moves from IRoutine to ICodeBuilder
Jean Privat [Mon, 10 Aug 2009 16:21:36 +0000 (12:21 -0400)]
icode: method inlining moves from IRoutine to ICodeBuilder

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

14 years agoicode: fix slot locality for params and return
Jean Privat [Tue, 11 Aug 2009 05:28:11 +0000 (01:28 -0400)]
icode: fix slot locality for params and return

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

14 years agoicode: 'IRoutine::optimize' need a module
Jean Privat [Mon, 10 Aug 2009 16:01:40 +0000 (12:01 -0400)]
icode: 'IRoutine::optimize' need a module

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

14 years agoicode: remove method info from ICodeBuilder
Jean Privat [Mon, 10 Aug 2009 14:25:58 +0000 (10:25 -0400)]
icode: remove method info from ICodeBuilder

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

14 years agoicode: remove method information in IAbort
Jean Privat [Mon, 10 Aug 2009 14:25:17 +0000 (10:25 -0400)]
icode: remove method information in IAbort

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

14 years agosyntax: 'do' blocks only accept labelled breaks
Jean Privat [Thu, 6 Aug 2009 19:10:22 +0000 (15:10 -0400)]
syntax: 'do' blocks only accept labelled breaks

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

14 years agosyntax: error on local variable masking
Jean Privat [Thu, 6 Aug 2009 14:54:49 +0000 (10:54 -0400)]
syntax: error on local variable masking

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

14 years agosyntax: better location for local variable declarations
Jean Privat [Thu, 6 Aug 2009 14:52:29 +0000 (10:52 -0400)]
syntax: better location for local variable declarations

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

14 years agosyntax: remove local variable masking
Jean Privat [Tue, 4 Aug 2009 14:02:43 +0000 (10:02 -0400)]
syntax: remove local variable masking

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

14 years agosyntax: add 'loop' construction
Jean Privat [Mon, 3 Aug 2009 21:07:41 +0000 (17:07 -0400)]
syntax: add 'loop' construction

Also:
* add test
* update vim

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

14 years agolib: rename IndexedCollection to Sequence
Jean Privat [Mon, 3 Aug 2009 20:30:41 +0000 (16:30 -0400)]
lib: rename IndexedCollection to Sequence

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

14 years agolib: split hash into hash_collection
Jean Privat [Mon, 3 Aug 2009 18:44:12 +0000 (14:44 -0400)]
lib: split hash into hash_collection

Also update dependency:
* hash depends only on kernel (not string)
* hash_collection depends on array and hash
* string depends on hash

Move String::hash from hash to string

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

14 years agolib: new /lib/standard/collection directory
Jean Privat [Mon, 3 Aug 2009 18:09:34 +0000 (14:09 -0400)]
lib: new /lib/standard/collection directory

* Update tests.sh to add the new -I for some base_* tests

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

14 years agotests: remove broken shootout_pidigits
Jean Privat [Thu, 6 Aug 2009 15:27:43 +0000 (11:27 -0400)]
tests: remove broken shootout_pidigits

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

14 years agomisc: vim: better indentation of closures
Jean Privat [Mon, 3 Aug 2009 16:02:05 +0000 (12:02 -0400)]
misc: vim: better indentation of closures

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

14 years agotests: do not execute while in a sub-processus
Jean Privat [Mon, 3 Aug 2009 14:14:48 +0000 (10:14 -0400)]
tests: do not execute while in a sub-processus

In a sub-processus, shell variable assignment are lost.

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

14 years agotests: use [ ] instead of [[ ]] in Makefile
Jean Privat [Mon, 3 Aug 2009 14:07:04 +0000 (10:07 -0400)]
tests: use [ ] instead of [[ ]] in Makefile

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

14 years agotests: update nitdoc sav
Jean Privat [Mon, 3 Aug 2009 14:06:20 +0000 (10:06 -0400)]
tests: update nitdoc sav

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

14 years agosyntax: closure are designed by their names, not their ranks
Jean Privat [Sat, 1 Aug 2009 02:44:33 +0000 (22:44 -0400)]
syntax: closure are designed by their names, not their ranks

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

14 years agosyntax: [] method can have closure definition
Jean Privat [Sat, 1 Aug 2009 01:55:38 +0000 (21:55 -0400)]
syntax: [] method can have closure definition

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

14 years agoparser: oneline assignment for 'return' and 'continue'
Jean Privat [Sat, 1 Aug 2009 01:49:49 +0000 (21:49 -0400)]
parser: oneline assignment for 'return' and 'continue'

Example
  fun foo: Int = 5
is equivalent to
  fun foo: Int do return 5
and
  foo !bar = 5
is equivalent to
  foo !bar do continue 5

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

14 years agoparser: closure syntax use '!' instead of 'with'
Jean Privat [Fri, 31 Jul 2009 20:53:46 +0000 (16:53 -0400)]
parser: closure syntax use '!' instead of 'with'

However, old semantic remains: names are useless, only the order maters.
(cf. new alternatives)

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

14 years agotests: add base_closure_forms
Jean Privat [Fri, 31 Jul 2009 19:34:39 +0000 (15:34 -0400)]
tests: add base_closure_forms

Is used to illustrate the 3 standard uses of closures.

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

14 years agotools: return value of nitc for nc
Jean-Sebastien Gelinas [Thu, 30 Jul 2009 19:54:10 +0000 (15:54 -0400)]
tools: return value of nitc for nc

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

14 years agotests: add test for nitdoc
Jean-Sebastien Gelinas [Thu, 30 Jul 2009 15:10:22 +0000 (11:10 -0400)]
tests: add test for nitdoc

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

14 years agotests: reorganize imports for nitc call
Jean-Sebastien Gelinas [Wed, 29 Jul 2009 20:51:30 +0000 (16:51 -0400)]
tests: reorganize imports for nitc call

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

14 years agotests: allow '.write' to be directories
Jean-Sebastien Gelinas [Wed, 29 Jul 2009 19:43:26 +0000 (15:43 -0400)]
tests: allow '.write' to be directories

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

14 years agotests: validate file existence of file to test before tests
Jean-Sebastien Gelinas [Tue, 28 Jul 2009 17:16:56 +0000 (13:16 -0400)]
tests: validate file existence of file to test before tests

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

14 years agoparser: perl code of prescc looks at all parameters in a line
Jean Privat [Thu, 30 Jul 2009 14:08:33 +0000 (10:08 -0400)]
parser: perl code of prescc looks at all parameters in a line

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

14 years agoparser: correct error messages for syntax errors
Jean Privat [Thu, 30 Jul 2009 13:39:51 +0000 (09:39 -0400)]
parser: correct error messages for syntax errors

And get rid of the useless error_messages table.

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

14 years agosyntax: arity missmatch error messages show prototypes
Jean Privat [Wed, 29 Jul 2009 18:16:19 +0000 (14:16 -0400)]
syntax: arity missmatch error messages show prototypes

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

14 years agoparser: remove attr and meth alternatives
Jean Privat [Thu, 30 Jul 2009 01:48:39 +0000 (21:48 -0400)]
parser: remove attr and meth alternatives

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

14 years agoparser: fix test_parser
Jean Privat [Wed, 29 Jul 2009 13:54:16 +0000 (09:54 -0400)]
parser: fix test_parser

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

14 years agoparser: import only location, not the whole mmloader
Jean Privat [Wed, 29 Jul 2009 13:53:50 +0000 (09:53 -0400)]
parser: import only location, not the whole mmloader

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

14 years agoparser: node locations are not nullable
Jean Privat [Wed, 29 Jul 2009 13:50:18 +0000 (09:50 -0400)]
parser: node locations are not nullable

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

14 years agoparser: compute location for all nodes
Jean Privat [Wed, 29 Jul 2009 13:40:56 +0000 (09:40 -0400)]
parser: compute location for all nodes

Also remove first_token and last_token.

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

14 years agoparser: also visit EOF token
Jean Privat [Wed, 29 Jul 2009 02:48:26 +0000 (22:48 -0400)]
parser: also visit EOF token

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

14 years agotools: showerr.sh to colorize nc* outputs
Jean Privat [Wed, 29 Jul 2009 02:46:55 +0000 (22:46 -0400)]
tools: showerr.sh to colorize nc* outputs

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

14 years agotools: correctly display multiline locations
Jean Privat [Wed, 29 Jul 2009 02:45:15 +0000 (22:45 -0400)]
tools: correctly display multiline locations

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

14 years agoparser: remove useless printl method
Jean Privat [Mon, 27 Jul 2009 20:43:41 +0000 (16:43 -0400)]
parser: remove useless printl method

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

14 years agoparser: use xss comments to clean make output
Jean Privat [Mon, 27 Jul 2009 14:40:14 +0000 (10:40 -0400)]
parser: use xss comments to clean make output

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

14 years agoparser: remove spaces errors in generated files
Jean Privat [Thu, 30 Jul 2009 01:38:37 +0000 (21:38 -0400)]
parser: remove spaces errors in generated files

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

14 years agosyntax: vararg arguments are processed by icode
Jean Privat [Tue, 28 Jul 2009 13:26:47 +0000 (09:26 -0400)]
syntax: vararg arguments are processed by icode

syntax/typing.nit does the type verification only.
syntax/icode_generation generate the implicit Array for vararg.

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

14 years agosyntax: generalize and publicize raw_arguments concept
Jean Privat [Mon, 27 Jul 2009 19:56:32 +0000 (15:56 -0400)]
syntax: generalize and publicize raw_arguments concept

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

14 years agotests: use most recent nitc if not supplied
Jean-Sebastien Gelinas [Fri, 24 Jul 2009 16:50:43 +0000 (12:50 -0400)]
tests: use most recent nitc if not supplied

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

14 years agotests: better handling of 'make failed' when no failed tests
Jean-Sebastien Gelinas [Fri, 24 Jul 2009 15:30:59 +0000 (11:30 -0400)]
tests: better handling of 'make failed' when no failed tests

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

14 years agotests: do not overwrite 'errlist' on hard exit
Jean-Sebastien Gelinas [Fri, 24 Jul 2009 05:15:39 +0000 (01:15 -0400)]
tests: do not overwrite 'errlist' on hard exit

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

14 years agotests: allow multiple lines in argument files
Jean-Sebastien Gelinas [Thu, 23 Jul 2009 16:37:03 +0000 (12:37 -0400)]
tests: allow multiple lines in argument files

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

14 years agotools: add test to validate existence of needed classes
Jean-Sebastien Gelinas [Fri, 24 Jul 2009 04:19:59 +0000 (00:19 -0400)]
tools: add test to validate existence of needed classes

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

14 years agotools: add 'get_type_by_name' and 'get_instantiated_type_by_name'
Jean-Sebastien Gelinas [Fri, 24 Jul 2009 04:19:18 +0000 (00:19 -0400)]
tools: add 'get_type_by_name' and 'get_instantiated_type_by_name'

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

14 years agoicode: discard unused pure ICode expressions
Jean Privat [Mon, 27 Jul 2009 06:59:57 +0000 (02:59 -0400)]
icode: discard unused pure ICode expressions

Up to now, only unused IMove expressions where discarded.
So we also distinguish pure ICode from non pure ICode.

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

14 years agoicode: all tagged primitive types can use the bool slots
Jean Privat [Mon, 27 Jul 2009 07:38:22 +0000 (03:38 -0400)]
icode: all tagged primitive types can use the bool slots

Also rename bool_slots to tag_slots.

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

14 years agoicode: add lit_{null,true,false}_reg
Jean Privat [Mon, 27 Jul 2009 06:40:44 +0000 (02:40 -0400)]
icode: add lit_{null,true,false}_reg

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

14 years agomisc: update vim syntax
Jean Privat [Mon, 27 Jul 2009 07:37:18 +0000 (03:37 -0400)]
misc: update vim syntax

* fix aaaAAAaaa coloration
* error of unmatched { and } in superstrings
* better color for labels
* add once keyword
* better categorisations

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

14 years agosyntax: handle labels for 'do'
Jean Privat [Mon, 27 Jul 2009 04:23:24 +0000 (00:23 -0400)]
syntax: handle labels for 'do'

Error message for 'break closures' was changed and reused for 'do'.

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

14 years agosyntax: handle labels for for, while and closures
Jean Privat [Mon, 27 Jul 2009 03:41:19 +0000 (23:41 -0400)]
syntax: handle labels for for, while and closures

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

14 years agoAdd 'label' syntax construction
Jean Privat [Sun, 26 Jul 2009 03:39:41 +0000 (23:39 -0400)]
Add 'label' syntax construction

A label can be used in 'break' and 'continue' statements
A label can be declared in 'for', 'while', 'do' and closure constructions.

Note that in grouped closures, only the last closure is labeled but
it applies to all closures of the group:

 foo with do
   a
 with do
   b
 end label xxx

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

14 years agoparser: add copyright info to parser_nodes.nit
Jean Privat [Sun, 26 Jul 2009 05:10:47 +0000 (01:10 -0400)]
parser: add copyright info to parser_nodes.nit

Since it is now clearly no more generated.

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

14 years agoparser: update readme
Jean Privat [Sun, 26 Jul 2009 05:09:30 +0000 (01:09 -0400)]
parser: update readme

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

14 years agoparser: rename all P* prod classes to A*
Jean Privat [Sun, 26 Jul 2009 04:41:57 +0000 (00:41 -0400)]
parser: rename all P* prod classes to A*

Now, A stands for AST, not alternative :)

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

14 years agoparser: remove parser_nodes.nit autopatcher
Jean Privat [Sun, 26 Jul 2009 04:14:40 +0000 (00:14 -0400)]
parser: remove parser_nodes.nit autopatcher

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

14 years agoparser: differentiate all P* and A* production classes
Jean Privat [Wed, 20 May 2009 21:06:00 +0000 (16:06 -0500)]
parser: differentiate all P* and A* production classes

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

14 years agosyntax: syntax tree is trashed once no more needed
Jean Privat [Sun, 26 Jul 2009 02:32:05 +0000 (22:32 -0400)]
syntax: syntax tree is trashed once no more needed

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

14 years agosyntax: nodes are not directly stored in MMSrc* classes
Jean Privat [Sun, 26 Jul 2009 02:31:20 +0000 (22:31 -0400)]
syntax: nodes are not directly stored in MMSrc* classes

MMSrcModules has to manage the MMSrc->AST associations.

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

14 years agosyntax: use chained nodes for MMSrcClasses instead of an array
Jean Privat [Sun, 26 Jul 2009 01:48:25 +0000 (21:48 -0400)]
syntax: use chained nodes for MMSrcClasses instead of an array

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

14 years agosyntax: remove attribute _node in MMSrcAncestor
Jean Privat [Sun, 26 Jul 2009 01:13:38 +0000 (21:13 -0400)]
syntax: remove attribute _node in MMSrcAncestor

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

14 years agosyntax: remove class MMSrcTypeFormalParameter
Jean Privat [Sun, 26 Jul 2009 01:12:27 +0000 (21:12 -0400)]
syntax: remove class MMSrcTypeFormalParameter

Use a standard MMTypeFormalParameter instead.

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

14 years agoicode: generate null receiver runtime checks
Jean Privat [Sun, 26 Jul 2009 03:07:58 +0000 (23:07 -0400)]
icode: generate null receiver runtime checks

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

14 years agoicode: introduce intermediate code representation
Jean Privat [Sun, 26 Jul 2009 00:32:21 +0000 (20:32 -0400)]
icode: introduce intermediate code representation

Missing parts are mainly:
 * identify bests ICode classes
 * keep casted variable static type in icode
 * remove MMSrc* classes dependency on AST

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

14 years agocompile: optimize strings in add_instr
Jean Privat [Sun, 26 Jul 2009 00:32:10 +0000 (20:32 -0400)]
compile: optimize strings in add_instr

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

14 years agotests: base_attr_iset tests construction check errors
Jean Privat [Sat, 25 Jul 2009 17:16:40 +0000 (13:16 -0400)]
tests: base_attr_iset tests construction check errors

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

14 years agosyntax: some cleaning to prepare intermediate code
Jean Privat [Fri, 24 Jul 2009 10:15:22 +0000 (06:15 -0400)]
syntax: some cleaning to prepare intermediate code

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

14 years agolib: redef Array::add (a faster version)
Jean Privat [Fri, 24 Jul 2009 09:38:17 +0000 (05:38 -0400)]
lib: redef Array::add (a faster version)

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

14 years agotests: new base_vararg, remove test_star
Jean Privat [Thu, 23 Jul 2009 03:03:18 +0000 (23:03 -0400)]
tests: new base_vararg, remove test_star

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

14 years agoparser: optimize lexer.nit
Jean Privat [Thu, 23 Jul 2009 22:10:48 +0000 (18:10 -0400)]
parser: optimize lexer.nit

Use local variables instead of attribute accesses.
Direct access some array internal items.

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

14 years agosrc: remove nc0 and nc1
Jean Privat [Thu, 23 Jul 2009 22:36:19 +0000 (18:36 -0400)]
src: remove nc0 and nc1

Now nc starts from c_src/nitc instead of bin/nitc.
Rationale is that one wants to check that the compiler can really bootstrap.

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

14 years agotools: remove 'locate' from nodes and visitor
Jean-Sebastien Gelinas [Thu, 16 Jul 2009 18:45:51 +0000 (14:45 -0400)]
tools: remove 'locate' from nodes and visitor

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