Merge: Use light FFI instead of the legacy NI in the lib
authorJean Privat <jean@pryen.org>
Mon, 22 Jun 2015 23:52:49 +0000 (19:52 -0400)
committerJean Privat <jean@pryen.org>
Mon, 22 Jun 2015 23:52:49 +0000 (19:52 -0400)
Update all extern methods previously implemented with the legacy NI to use the light FFI. Also cleans up the `_nit.[ch]` files and a few redundant `is extern` declarations.

There could be a performance hit because we add at least one layer of indirection when invoking the extern method code. And some were previously only macros applied within the generated internal code... However I don't see a difference with the performance of nitc and it can be optimized by the C compiler.

The C structure used in the `exec` module should be replaced by a Nit class. I've added 2 FIXMEs to make it clear. The C structure makes dealing with calls to `pipe` easier but it also makes the rest of the code more complex than needed.

The only use of the legacy NI left is the parser generated by the modified SableCC.

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


Trivial merge