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>
lib/string_exp/utf8_no_index: Adapted String methods to UTF-8 string

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/string_exp/utf8_no_index: Bytelen now defined in Text

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/android: Intro of the Android Intent API

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
lib/string_exp/utf8_no_index: FlatBuffer is compatible with UTF-8

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
utf8_noindex/tests: Added a test for utf8 without index variant

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/string_exp/utf8_no_index: Updated README

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
nitg: Replace memcpy by memmove for safety.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/ai: add search.nit as the second module

Signed-off-by: Jean Privat <jean@pryen.org>
lib/ai: add the n-puzzle problem as an example of search

Signed-off-by: Jean Privat <jean@pryen.org>
nitg & lib: intro `Finalizable` to be called when an object is freed

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
tests: test finalization effect

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
lib/android: Added Intent API tests to mnit_simple

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
lib/android: Bundle API JNI error fix

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
lib/android: Fixes audio module tests

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
lib/android: Removed deprecated `super Serializable`

Signed-off-by: Frédéric Vachon <fredvac@gmail.com>
Merge: Finalizing Nit objects on garbage collection

Rules for finalizable objects:

* They must be a standard Nit class (not an extern, nor a universal).
* They must not have any cycles, or else they won't be finalized.
* In practice, they should be used on small Nit objects acting as a thin layer around a resource. In other words, it is to be used in the Nity layer.
* `finalize` may be invoked more than once, and the underlying resources may also be used by other instances. This must be considered when implementing `finalize`.
* The finalizer will be called on garbage collection. It can be forced with `sys.force_garbage_collection`.
* When attempting to aquire a limited resource (for example, a file description) if you hit the limit, it is a good practice to force the garbage collection and try again.

Pull-Request: #659
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Frédéric Vachon <fredvac@gmail.com>
Merge: Memcpy -> memmove

As discussed in #655, this PR replaces the uses of memcpy in standard by memmove, a safer alternative while not costing that much more.

Before : 0m15.584s
After : 0m15.748s

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