Jean Privat [Tue, 5 Feb 2013 16:29:04 +0000 (11:29 -0500)]
flow: use the correct entry point in visit_expr
calling `visit` instead of `enter_visit` skips all the current_node update.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 5 Feb 2013 16:27:30 +0000 (11:27 -0500)]
flow: rewrite AOrExpr to be symmetric with AAndExpr
no semantic changes
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 5 Feb 2013 16:26:16 +0000 (11:26 -0500)]
flow: do not lose the after_expr context in AAssertExpr
Signed-off-by: Jean Privat <jean@pryen.org>
Alexis Laferrière [Mon, 4 Feb 2013 19:31:20 +0000 (14:31 -0500)]
lib: adds base64 module and according tests
Implements the base64 encode and decode algorithms in Nit.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 30 Jan 2013 21:10:41 +0000 (16:10 -0500)]
lib: check the return of calls to pipe(), report errors and abort on fail
This commits prevents compilation warnings and allows easier debugging.
Better solutions are still possible but will require to modifiy the API.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 30 Jan 2013 20:52:02 +0000 (15:52 -0500)]
lib: fix method FDStream::write_char
This function was only partially implemented in C without being defined in
Nit. This commits removes the partial implementation which triggered a warning
at compilation and replaces it by a working and accessible method using
the legacy native interface.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 29 Jan 2013 20:56:45 +0000 (15:56 -0500)]
misc: extends Vim syntax highlighting for the FFI
First, this recognizes the use of inline foreign code. It also switches
language highlighting for the inlined language. This commit supports only
inlined C and Python code, but more can easily be added.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Thu, 31 May 2012 00:17:10 +0000 (20:17 -0400)]
misc: adds extern class type to vim syntax highlighting
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Sat, 6 Aug 2011 16:14:32 +0000 (12:14 -0400)]
misc: adapts gtksourceview/nit.lang to extern code use
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 29 Jan 2013 20:32:59 +0000 (15:32 -0500)]
ffi: adds the FFI syntax to the grammar
The FFI allows the user to write all Nit and foreign code for a Nit module
within the same .nit file.
This syntax will be used by the FFI implementation.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 27 Apr 2012 18:13:53 +0000 (14:13 -0400)]
ffi/android: display Nit errors on the system log
Redirect low level Nit error messages to the standard logging system
on android.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 29 Jan 2013 19:48:11 +0000 (14:48 -0500)]
clib: uses a macro to manage error printing, allowing customization
This will be used in the Android port to print errors in the standard
logging system.
The variadic macro format used by PRINT_ERROR is not in C89 but it is
in the standard C99.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Thu, 31 Jan 2013 13:50:46 +0000 (08:50 -0500)]
tests: propose alternate and fixme for base_super_linext_*
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 31 Jan 2013 13:50:05 +0000 (08:50 -0500)]
typing: remove NOT YET IMPLEMENTED in ASuperExpr
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 31 Jan 2013 13:49:31 +0000 (08:49 -0500)]
model: implements lookup_*_definition with linearization
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 31 Jan 2013 13:48:12 +0000 (08:48 -0500)]
model: add linearize_mclasses, linearize_mclassdefs, linearize_mpropdefs
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 31 Jan 2013 13:45:42 +0000 (08:45 -0500)]
POSet is an AbstractSorter
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 31 Jan 2013 13:45:14 +0000 (08:45 -0500)]
lib: make AbstractSorter#compare public
Moreover, a good fix could be to rename AbstractSorter to Comparator
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 26 Jan 2013 21:55:21 +0000 (16:55 -0500)]
tests: force live methods in base_*_variance to helps nitc-g
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 26 Jan 2013 21:10:11 +0000 (16:10 -0500)]
tests: update nitg-s base_attr_gen_alt1
Not sure when this was broken however
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 25 Jan 2013 20:37:34 +0000 (15:37 -0500)]
nitg: new complier service supercall
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 25 Jan 2013 19:54:26 +0000 (14:54 -0500)]
model: implements lookup_next_definition
Still static however.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 25 Jan 2013 18:16:56 +0000 (13:16 -0500)]
typing: enable calls on a conflicting local property (with a warning)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 25 Jan 2013 18:15:45 +0000 (13:15 -0500)]
niti, nitg & rta: use lookup_first_definition
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 25 Jan 2013 18:14:48 +0000 (13:14 -0500)]
model: implements lookup_first_definition with a default code
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 25 Jan 2013 03:09:12 +0000 (22:09 -0500)]
modelbuilder: check inheritance loops
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 25 Jan 2013 02:40:05 +0000 (21:40 -0500)]
tests: cleanup files from sav/fixme
Some general fixme are now useless.
Just remove them of move them to the correct place.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 24 Jan 2013 03:29:51 +0000 (22:29 -0500)]
tests: fig base_isa_nullable_vt.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 24 Jan 2013 03:23:05 +0000 (22:23 -0500)]
niti: disable interpretor_type_test
some type test are buggy. I do not know why.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 23 Jan 2013 21:23:22 +0000 (16:23 -0500)]
niti: test null receiver on attribute access
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 23 Jan 2013 20:53:12 +0000 (15:53 -0500)]
niti: add covariance checks
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 17 Jan 2013 21:33:40 +0000 (16:33 -0500)]
lib: modify lib/pipeline to work on collection instead of iterators.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 17 Jan 2013 05:07:43 +0000 (00:07 -0500)]
lib: new module pipeline
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 17 Dec 2012 01:33:26 +0000 (20:33 -0500)]
bench: forgot ".dat" on some prepare_res
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 17 Dec 2012 01:04:54 +0000 (20:04 -0500)]
fix: bench: ad --no-cc for nitg test on run_compiler
misspell --no-cc
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 17 Dec 2012 00:38:30 +0000 (19:38 -0500)]
bench: better order in options-typing and policy
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 17 Dec 2012 00:32:01 +0000 (19:32 -0500)]
bench: store count on plot file
Since we do not remember later.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 17 Dec 2012 00:16:41 +0000 (19:16 -0500)]
bench: ad --no-cc for nitg test on run_compiler
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 16 Dec 2012 22:41:59 +0000 (17:41 -0500)]
nitg-s&e: clean nullable management on type_test
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 16 Dec 2012 04:23:46 +0000 (23:23 -0500)]
bench: add bench_typetest_languages
this should move to its own directory.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 16 Dec 2012 02:22:28 +0000 (21:22 -0500)]
nitg: add GlobalCompiler::new_file
The point is to avoid contamination between must-be-compiled-separately files
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sat, 15 Dec 2012 15:22:53 +0000 (10:22 -0500)]
model: semi-fixed bounds for VirtualType
This mainly allows to get ride of VT in primitive classes
or bounded to primitive classes.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 22:22:36 +0000 (17:22 -0500)]
tests: forgot to add base_gen_variance2.nit
commit
c5363a7de49a97a2b4197312730e6f3358ac0b36 only has the sav/ files
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 22:21:53 +0000 (17:21 -0500)]
bench: add --fast and reorganize bench
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 22:05:30 +0000 (17:05 -0500)]
shoot: add option for headless run
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 21:46:30 +0000 (16:46 -0500)]
benchs: add bench_policy
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 21:27:57 +0000 (16:27 -0500)]
nitg-s: skip some easy-case tests
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 21:27:29 +0000 (16:27 -0500)]
nitg: add option --typing-test-metrics
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 04:45:18 +0000 (23:45 -0500)]
nitg: shortcut 'for' loops on explicit ranges
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 04:40:47 +0000 (23:40 -0500)]
nitg: autoadapt expression on exit
This avoid to loose static information.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 04:38:42 +0000 (23:38 -0500)]
nitg: protect for additional arguments
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Fri, 14 Dec 2012 02:45:25 +0000 (21:45 -0500)]
tests: add base_gen_variance2.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 13 Dec 2012 18:47:23 +0000 (13:47 -0500)]
nitg: use GC_MALLOC_ATOMIC for calloc_string
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 13 Dec 2012 17:11:52 +0000 (12:11 -0500)]
nitg-s: shortcut the == invocation
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 13 Dec 2012 16:06:41 +0000 (11:06 -0500)]
nitg-s: fix opt_generic_tree with opt_hardening
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 13 Dec 2012 17:09:07 +0000 (12:09 -0500)]
fix opt_no_union_attribute
Jean Privat [Thu, 13 Dec 2012 18:48:36 +0000 (13:48 -0500)]
nitg-s&e: implements attributes in a C union
Pro: This give a gain up to 20% in benchs.
Con: isset is broken on primitive attributes.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 22:10:41 +0000 (17:10 -0500)]
tests: nitg-s can bootstrap!
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 12 Dec 2012 05:26:17 +0000 (00:26 -0500)]
tests: add base_formal_isa
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 12 Dec 2012 05:17:18 +0000 (00:17 -0500)]
tests: add base_vararg2.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 12 Dec 2012 05:12:45 +0000 (00:12 -0500)]
nitg: better creation of varargs instances
FIXME: bogus covariance must be dealt with
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Wed, 12 Dec 2012 05:13:36 +0000 (00:13 -0500)]
niti: *_class_name use the full type name
So tit behave the same way than the non erasure engines.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 22:08:52 +0000 (17:08 -0500)]
nitg-s: add hardening on initialization
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 22:07:42 +0000 (17:07 -0500)]
nitg-s: implements unanchored_table correctly
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 22:05:23 +0000 (17:05 -0500)]
nitg-s: implements calloc_array by calling native_array_instance
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 16:43:01 +0000 (11:43 -0500)]
nitg-s: remove superfluous autobox
A function type_info is introduced to uniformize the access to
a type structure.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 17:29:17 +0000 (12:29 -0500)]
nitg-s: add primitive types to the set of mtypes
This will allow static designation of related structures to be compilable.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 16:35:42 +0000 (11:35 -0500)]
nitg-s: rename fields Xts to types to be consistant with the abstract struct
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 05:57:46 +0000 (00:57 -0500)]
nitg: disable Boehm's GC by defining the macro NOBOEHM
From a command line point of view, one can use
nitg --make-flags "CFLAGS=\"-O2 -DNOBOEHM\"" myprog.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 05:28:37 +0000 (00:28 -0500)]
bench: compare nitg-e with various compiler and -O values
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 05:28:06 +0000 (00:28 -0500)]
nitg: add option --make-flags to pass options to make
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 03:40:12 +0000 (22:40 -0500)]
bench: add bench_nitc_vc_nitg
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 03:18:18 +0000 (22:18 -0500)]
bench: replace shootout_binarytrees with bench_bintree_gen
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 03:18:01 +0000 (22:18 -0500)]
tests: add bench_bintree_gen
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 02:33:27 +0000 (21:33 -0500)]
tests: base_gen_reassign.nit
This test basically fails on every engine :(
So no sav/ files for the moment.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 11 Dec 2012 02:30:56 +0000 (21:30 -0500)]
tests: add a timeout limit to avoid blocked programs
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 05:13:25 +0000 (00:13 -0500)]
nitg-s&e: store class_names directly in the type/class structures
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 10 Dec 2012 21:20:00 +0000 (16:20 -0500)]
nitg-e: make HASH a macro, not a function
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 10 Dec 2012 21:12:04 +0000 (16:12 -0500)]
benchs: add nitg-s to benchs
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 10 Dec 2012 03:32:57 +0000 (22:32 -0500)]
bench: factorize some benchs
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 10 Dec 2012 02:29:56 +0000 (21:29 -0500)]
nitg-s&e: compile module in local knowledge
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 10 Dec 2012 20:53:57 +0000 (15:53 -0500)]
Merge remote-tracking branch 'alexandre/master'
Alexandre Terrasa [Sun, 9 Dec 2012 22:10:36 +0000 (17:10 -0500)]
nitg-e: avoid automatic boxing in vt resolution
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sun, 9 Dec 2012 22:08:35 +0000 (17:08 -0500)]
nitg-s/-e: avoid compilation of emtpy vt/ft/unanchored structs.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sun, 9 Dec 2012 21:17:51 +0000 (16:17 -0500)]
nitg-s: merged fts, vts and unanchored struct types representations.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sun, 9 Dec 2012 21:05:23 +0000 (16:05 -0500)]
nitg-s: reorder struct type fields
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sun, 9 Dec 2012 20:59:24 +0000 (15:59 -0500)]
nitg-s: introduce unanchored resolution tables.
Unanchored resolution tables allow the compiler to retrieve at runtime a live generic type with given formal types
Old tree based resolution structure with tree is now an option of nitg (--generic-resolution-tree)
Options --bm-typing and --ph*-typing affects the unanchored tables generations.
Updated nitg.res with new option. Also added tests in makefile.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Sun, 9 Dec 2012 06:38:43 +0000 (01:38 -0500)]
Merge remote-tracking branch 'alexandre/master'
Jean Privat [Sun, 9 Dec 2012 05:33:26 +0000 (00:33 -0500)]
tests: add test_array_formal.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 05:31:13 +0000 (00:31 -0500)]
tests: add base_virtual_type_variance.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 05:24:53 +0000 (00:24 -0500)]
tests: add base_attr_boxing.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 03:58:25 +0000 (22:58 -0500)]
nitg-e: add option --no-check-erasure-cast to disable erasure-casts
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 03:40:59 +0000 (22:40 -0500)]
nitg-e: implements erasure-cast
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 03:37:38 +0000 (22:37 -0500)]
typing: add CallSite::erasure_cast to indicate if a cast may be required
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 03:36:50 +0000 (22:36 -0500)]
nitg: add v.compile_callsite to generate the send associated to a CallSite instances
The point of this method is to extends the CallSite concept
to the compiler.
A future commit will redefine compile_callsite method to add erasure-casts.
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Sun, 9 Dec 2012 03:26:58 +0000 (22:26 -0500)]
typing: attach CallSite instances to AST nodes
Instead of having some partial information, just attach the whole thing.
Previous partial information is tagged @depreciated
Signed-off-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Sun, 9 Dec 2012 01:25:43 +0000 (20:25 -0500)]
nitg-s: retrieve recursively all partial generic types
for new G[H[nullable T], Object] and T: X
nitg-s will now find :
G[H[nullable X], Object]
H[nullable X]
nullable X
Object
as type to generate.
H[nullable X] and nullable X are considered as partial type because they are only used as part of a generic livetype.
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Jean Privat [Sun, 9 Dec 2012 01:24:07 +0000 (20:24 -0500)]
typing: new class CallSite
This class is used to combine information on a specific call site.
Signed-off-by: Jean Privat <jean@pryen.org>
Alexandre Terrasa [Sun, 9 Dec 2012 00:28:07 +0000 (19:28 -0500)]
nitg-s: add cast to remove c warnings
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
Alexandre Terrasa [Sat, 8 Dec 2012 23:29:28 +0000 (18:29 -0500)]
benchs: add entry for nitg-e with inline colors, bm, phmod and phand
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>