lib/kernel: introduce `Sys::run` as the entry point of programs

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

Signed-off-by: Jean Privat <jean@pryen.org>
tests: update because line changes in kernel.nit

Signed-off-by: Jean Privat <jean@pryen.org>
lib/std: better policy for enlarging HashCollection

Signed-off-by: Jean Privat <jean@pryen.org>
lib/std: improve implementation of `Set.hash` and `Sequence.hash`

Signed-off-by: Jean Privat <jean@pryen.org>
tests: update sav because line changes in standard::array

Signed-off-by: Jean Privat <jean@pryen.org>
contrib/jwrapper: Retrieves existing extern classes using grep

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
contrib/jwrapper: Added basic UI

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
Merge: A few Java and Android fixes

Pull-Request: #649
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Merge: tests: remove duplicated contrib tests from testfull

The previous globs already get them

Pull-Request: #648
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
contrib/jwrapper: Auto-generate licence

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
contrib/jwrapper: Added README

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
Merge: Improve hash perfs

Some improvements.

## nitg nitg.nit
before: 0m9.688s
after: 0m9.172s

## ./nit naive_interpreter.nit
usage of HashCollection before:
average length: 128.41
average capacity: 294.06 (229.01%)
average number of collisions: 113571 (35.27%)
average length of collision: 3.74

usage of HashCollection after:
average length: 128.40
average capacity: 327.42 (255.00%)
average number of collisions: 62608 (19.44%)
average length of collision: 2.29

All this is needed for the ai library

Pull-Request: #651
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
contrib/jwrapper: Added jwrapper.res to sav

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
Merge: Sys.run

Add `Sys::run` as the new entry point of programs.
So some modules (eg. platforms) can more easily inject code before or after the execution of programs.

Pull-Request: #652
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
lib/trees: improve bintrees efficiency

First, comment potential slow asserts in the hot-path.
These asserts are needed only to check that the implementation is
correct.

Second, use a single `<=>` instead of doing multiple comparisons.
So reduce the total number of comparisons.

On a real instance (IA-related problems), the gain is the following:

RBTreeMap, 8738 insertions, 24855 accesses
Before: 2.54s
After: 0.07s (so, in the noise)

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: jwrapper: New features added

This may be considered as the first release of jwrapper. Here's a list of the new implemented features since the last PR:
* Grep into `lib/android` to retrieve already wrapped classes
* Auto-generate licence
* Basic user interface added
* Choice between :
  * Auto-wrap unknown types
  * Comment methods containing unknown types

Pull-Request: #641
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
lib/string_exp/utf8_no_index: Introducing utf8 variant without indexes

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/string_exp/utf8_no_index: Added new constructor for UnicodeChar

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/string_exp/utf8_no_index: Added char_at, does the same as [] but with UnicodeChar.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>