Alexis Laferrière [Tue, 5 Mar 2013 16:23:58 +0000 (11:23 -0500)]
misc: update vim syntastic plugin to latest specification
Config moved in a directory and was renamed, as per specification, with
an added bonus of making room for other engines. Also adds new standard
functions.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Tue, 12 Feb 2013 11:35:38 +0000 (06:35 -0500)]
update c_src (now with ffi)
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Mon, 11 Feb 2013 14:10:10 +0000 (09:10 -0500)]
Merge branch 'al-libs'
Jean Privat [Mon, 11 Feb 2013 14:09:22 +0000 (09:09 -0500)]
lib: add missing #include<stdio.h>
Commit
adbf39fb9f8c2df3bc23b5de7dfba34f5058c1e4 forgot to add it
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Thu, 7 Feb 2013 18:20:52 +0000 (13:20 -0500)]
Merge remote-tracking branch 'alexis/ffi-in-nitc'
Alexis Laferrière [Tue, 5 Feb 2013 14:13:00 +0000 (09:13 -0500)]
tests: adds tests for the FFI with C
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 6 Feb 2013 13:07:04 +0000 (08:07 -0500)]
nitc/ffi: adds full FFI support for C to nitc
This commit adds all required features to use the nested C code, add it
to the compilation script and invoke it.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 6 Feb 2013 13:06:02 +0000 (08:06 -0500)]
nitc/ffi: allows to declare C type of extern classes from Nit
This feature uses the FFI grammar but acts at the level of the native
interface. It allows the user to specify the C equivalent of a Nit
extern class. Instances of extern classes are automatically converted
to this type when passed to C. The equivalent C type must be a pointer
or compatible with a pointer type.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Wed, 6 Feb 2013 13:03:05 +0000 (08:03 -0500)]
nitc/ffi: adds a variable to know if a module uses the native interface
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 5 Feb 2013 23:37:13 +0000 (18:37 -0500)]
nitc/ffi: adds the extern_inline module to manage foreign code blocks
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 14 Sep 2012 18:23:18 +0000 (14:23 -0400)]
compiling: moves up the compiling_writer module to be used by the new FFI
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Fri, 1 Feb 2013 23:29:02 +0000 (18:29 -0500)]
niti: adds tools to compile C code
It will be widely used by the native interface.
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Alexis Laferrière [Tue, 5 Feb 2013 23:32:34 +0000 (18:32 -0500)]
nitc: adds module name and license to separate_options
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Jean Privat [Tue, 5 Feb 2013 16:34:44 +0000 (11:34 -0500)]
tests: add base_adaptive.nit
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 5 Feb 2013 16:31:18 +0000 (11:31 -0500)]
flow: force the creation of a specific merge after the analysis of the node
Jean Privat [Tue, 5 Feb 2013 16:30:49 +0000 (11:30 -0500)]
flow: AProxyExpr do not lose true/false context information
Signed-off-by: Jean Privat <jean@pryen.org>
Jean Privat [Tue, 5 Feb 2013 16:29:31 +0000 (11:29 -0500)]
flow: fix dot file---forgot the closing }
Signed-off-by: Jean Privat <jean@pryen.org>
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>