tests: niti skips test_markdown_args1

It borderline timeouts.

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: Fix some AST bugs

`transform` and `rta` have some issues that lead to inconsistant information on the AST.
This series fixes them.

Note: Most commits extracted (cherry-picked) from #386 and #367

Pull-Request: #404
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
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>
nitgs: add --no-colo-dead-methods to explicitely disable coloring of dead methods

Because of coloring bug #375 ; having less useless entries in tables
increase the likeness of the bug.

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: github_merge: copy the merge message for commit when conflict

so the following commit will be pre-rendered

Pull-Request: #422
lib: fix find_class_loader with latest FFI spec

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Merge branch 'master' into java-ffi-android
niti: implement Pointer:address_is_null as "intern" for niti executing niti

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
contrib/inkscape_tools: remove all to_i_strip_e

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
Merge: Java FFI on Android

The FFI needed some modifications to work on Android:
* Android does not implement the full JNI (so we deactivate them)
* Its implementation does not expose the same signatures as OpenJDK's
* Provide our own load_jclass because we need a specific class loader (JNI's FindClass is no enough on Android)
* Using Dalvik's long corrupted data going through Java (more debugging will be needed, anyway we can use Ints to hold pointers to C objects)

In the API, intro `App::native_activity` as a shortcut to get the main android Activity.

Update mnit_simple to use Java on Android.

Pull-Request: #418
Reviewed-by: Jean Privat <jean@pryen.org>