lib: fix broken assert in FStream::opens

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
niti: add support partial for NativeFile::address_is_null

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
tests: add `exec.skip` to compile but not execute tests

Signed-off-by: Jean Privat <jean@pryen.org>
tests: niti fully skips tests in exec.skip

Signed-off-by: Jean Privat <jean@pryen.org>
tests: add `cc.skip` to skip the C compilation of some programs

Exemple: unavailable C libraries.

Signed-off-by: Jean Privat <jean@pryen.org>
model: fatal error, instead of abort if more that one primitive class

Signed-off-by: Jean Privat <jean@pryen.org>
tests: add missing sav

Signed-off-by: Jean Privat <jean@pryen.org>
tests: a res without sav is OK if empty else is failed

This will simplify the addition of sav, that are required only if not
empty.
Moreover, a missing non-empty sav will triggers a FAIL instead of a
skip.

Signed-off-by: Jean Privat <jean@pryen.org>
tests: remove empty sav files

since now, empty res and no sav is an OK test

Signed-off-by: Jean Privat <jean@pryen.org>
parser_util: add `interactive_parse` to have a simple AST from the user

Signed-off-by: Jean Privat <jean@pryen.org>
test_parser: add option `-i` for interactive parsing

Signed-off-by: Jean Privat <jean@pryen.org>
tests: tests -i on test_parser

Signed-off-by: Jean Privat <jean@pryen.org>
lib/math: intro ceil and floor

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
contrib/inkscape_tools: use floor and ceil to better cut images

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
nitgs: optimize compile_class_to_c for dead methods

Signed-off-by: Jean Privat <jean@pryen.org>
nitge: optimize compile_class_to_c for dead classes

Classes that are dead (interface and abstract) do not need the full
class structure (VFT an cie). Only fields for typing are keept.

Signed-off-by: Jean Privat <jean@pryen.org>
nitge: learn to use RTA if --rta is given

A new option `--rta` activate RTA optimization and
enable the use of some semi-global ones (like --direct-call-monomorph).

Signed-off-by: Jean Privat <jean@pryen.org>
sepcomp: add --skip-dead-methods

This avoid the generation and the C-compilation of dead methods

Signed-off-by: Jean Privat <jean@pryen.org>
sepcomp: add --semi-global to activate all semi-global optimizations

Some numbers:

Note that `user` is the bootstrapped time, therefore we measure both the
compilation time and the execution time.
I suspect this is stupid from the point-of-view of any scientific methodology;
but, anyway, it is numbers and people like numbers.

~~~
$ nitg --separate nitg.nit
user	0m11.228s

$ nitg --separate --semi-global nitg.nit
user	0m9.736s

$ nitg --erasure nitg.nit
user	0m7.800s

$ nitg --erasure --rta nitg.nit
user	0m8.280s

$ nitg --erasure --rta --semi-global nitg.nit
user	0m7.648s
~~~

Signed-off-by: Jean Privat <jean@pryen.org>
sepcomp: do not colorize dead methods

When RTA is available, dead methods do not need to be colored.

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