tests: add C++ FFI test to detect bug #737

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
tests: test the global compilation bug in FFI on duplicated callbacks

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
nitg/ffi: fix global compilation errors and warning on duplicated callbacks

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
lib: add Array::* for repetitions

Signed-off-by: Jean Privat <jean@pryen.org>
lib: add Int::** for power

Signed-off-by: Jean Privat <jean@pryen.org>
lib: add Int::factorial

Signed-off-by: Jean Privat <jean@pryen.org>
string: Add escaping for the POSIX Shell.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
nitdoc: Escape paths passed to the shell.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Merge: Fix FFI global compilation on duplicated callbacks across modules

Replaces #739.

Fixes the C++ FFI bug and also the underlying C FFI bug. Still compiles the implementation of callbacks only once, but generates the redirections and aliases for each modules.

Pull-Request: #888
Reviewed-by: Jean Privat <jean@pryen.org>
makefiles: do not uselessly use --global

Signed-off-by: Jean Privat <jean@pryen.org>
lib: add combinations.nit for combinatoric collections

Signed-off-by: Jean Privat <jean@pryen.org>
lib: add cartesian.nit a libraby for heterogenus cartesian products

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

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: makefiles: do not uselessly use --global

Pull-Request: #889
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Merge: Combinations on collection

Some addition to the library for cartesian product and other combinatoric constructions.

Memory-efficient classes are proposed, however, the current limitation over the infinite types in RTA (and in the compilation strategies in --separate et --global) reduces the usage of simple methods that could have abstracted the underlying implementation.

Pull-Request: #892
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Merge:  nitdoc: Escape paths passed to the shell.

While investigating for a possible source of the recent Jenkins crashes when generating documentation, I found that Nitdoc was not escaping paths in its shell commands properly. So, this PR fix that mistake.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>

Pull-Request: #893
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Jean Privat <jean@pryen.org>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>