rta: store real types in live_cast_type

The separate compiler need to distinguish if the target is nullable or not.
So do not un-nullable cast types.

rta_metrics.nit is also updated to deal with the change of the static
type of the attribute.

nitg-g is also modified to use the new correct the RTA information
(this remove a workaround)

Signed-off-by: Jean Privat <jean@pryen.org>
nitg-s: add hardening_live_open_type and hardening_cast_type

with --hardening, add additional runtime-test on type resolution and
type checks.

Signed-off-by: Jean Privat <jean@pryen.org>
nitg-s: use the original type in type tests

RTA discovers original types, thus do not try to un-nullify some.

Signed-off-by: Jean Privat <jean@pryen.org>
nitg-s: use table_size instead of resolution_table to check live types

A future commit will remove resolution_table on live type that does not
need one (no formal types)

Signed-off-by: Jean Privat <jean@pryen.org>
nitg-s: compile_type_to_c generate partial tables for dead types

If a type is not live (instantiated) or not cast-live (someone try to
type check to it), parts of the generated C tables are empty (marked DEAD).

Signed-off-by: Jean Privat <jean@pryen.org>
nitg-s: do not color undead types

`undead` things are dead things but that are referenced in C code, thus
need a definition to permit the link.

undead types are no more colored but the C declarations need to remain.

Signed-off-by: Jean Privat <jean@pryen.org>
nitg-s: remove partial_types

rta and nitg-s now do the right thing for detecting and compiling type tests.
The partial types hack is thus useless.

Signed-off-by: Jean Privat <jean@pryen.org>
version 0.6.4

Signed-off-by: Jean Privat <jean@pryen.org>
Merge branch 'hardening_types'
lib/mnit_linux: update to latest FFI spec

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
lib/mnit_linux: very minor style fix

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
lib/mnit_linux: use annotations to link with libraries

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
examples/dino: replace closure by a custom sorter

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
examples: update Makefiles of mnit examples to use nitg-g

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
benchs: remove old nitc related benchs

Signed-off-by: Jean Privat <jean@pryen.org>
benchs: compile last nitg from bin/nitg

Signed-off-by: Jean Privat <jean@pryen.org>
benchs: rename bench_nitg-g_options-hardening to slower

Signed-off-by: Jean Privat <jean@pryen.org>
benchs: fix bench_compilation_time

Signed-off-by: Jean Privat <jean@pryen.org>
mnit: intro the numbers module

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>
examples/moles: display score using mnit numbers

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