src: remove separate_options.nit

Was an ersatz from the old nitd

Signed-off-by: Jean Privat <jean@pryen.org>
move ExternFile to c_tools

Signed-off-by: Jean Privat <jean@pryen.org>
src: implements abstract methods of ExternCFile

`makefile_rule_name` and `makefile_rule_content` are let undefined
because unused.
The next commit will use them.

Also, document them.

Signed-off-by: Jean Privat <jean@pryen.org>
abstract_compiler: compile extern bodies without special cases.

Because ExternCFile implements now the right methods, there is no need
of additional `isa` tests.

Signed-off-by: Jean Privat <jean@pryen.org>
abstract_compiler: provide empty implementation for `finalize_{ffi,nitni}`

Thus, the toolchain can call them without having to check if ffi
is enabled or the module compliant.

Signed-off-by: Jean Privat <jean@pryen.org>
nitg: use ctype instead of cname_blind in autobox

I am not sure of why `cname_blind` was used originally.
If the point is just to allow unsafe pointer substitution, then `ctype`
should be enough.

Signed-off-by: Jean Privat <jean@pryen.org>
nitg: move `import compiler_ffi` to nitg

separate and global do not depends on ffi things (since `cname_blind` is
no more used in these modules).
Thus only the main module require `compiler_ffi` to provide ffi.

This is some great separation of concerns!

Signed-off-by: Jean Privat <jean@pryen.org>
abstract_compiler: add `AModule::collect_linker_libs` to be refined in compiler_ffi

This separate `abstract_compiler` from `common_ffi` since the last link
`c_linker_options` is now removed.

One other great separation of concern!

Signed-off-by: Jean Privat <jean@pryen.org>
tests: remove some forgotten old nitni files

Signed-off-by: Jean Privat <jean@pryen.org>
compiler_ffi: remove `uses_legacy_ni` since it is unused now

Signed-off-by: Jean Privat <jean@pryen.org>
ffi: move a lot of code and services from AModule to MModule

AModule is not the right class to do or store model related things.
Migrating these services simplify the code.

Signed-off-by: Jean Privat <jean@pryen.org>
ffi: merge `finalize_ffi` and `finalize_nitni`

Also, the creation of the visitor in done on the ffi side.

Signed-off-by: Jean Privat <jean@pryen.org>
ffi: remove old Cproproc symbol NONITCNI

was used to disable the old nitni of the old compiler

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: Some FFI cleanup

These commits try to clean and isolate the FFI API from the
compilation engines.

Pull-Request: #378
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>