extern const int COLOR_abstract_compiler__ToolContext__opt_stacktrace;
extern const int COLOR_abstract_compiler__ToolContext__opt_no_stacktrace;
void abstract_compiler__ToolContext__init(val* self);
-extern const int COLOR_abstract_compiler__ModelBuilder___64dcc_paths;
-val* abstract_compiler__ModelBuilder__cc_paths(val* self);
-void abstract_compiler__ModelBuilder__cc_paths_61d(val* self, val* p0);
-extern const int COLOR_abstract_compiler__ModelBuilder__init;
+extern const int COLOR_opts__Option__value;
val* string__NativeString__to_s_with_length(char* self, long p0);
+extern const int COLOR_file__Object__print;
+extern const int COLOR_kernel__Object__exit;
+extern const int COLOR_abstract_compiler__ModelBuilder__init;
+void abstract_compiler__ModelBuilder__init(val* self, val* p0, val* p1);
+extern const int COLOR_abstract_compiler__ModelBuilder___64dcompile_dir;
+val* abstract_compiler__ModelBuilder__compile_dir(val* self);
+void abstract_compiler__ModelBuilder__compile_dir_61d(val* self, val* p0);
+extern const int COLOR_abstract_compiler__AbstractCompiler__mainmodule;
+extern const int COLOR_platform__MModule__target_platform;
+val* NEW_abstract_compiler__MakefileToolchain(const struct type* type);
+extern const struct type type_abstract_compiler__MakefileToolchain;
+extern const int COLOR_modelbuilder__ModelBuilder__toolcontext;
+extern const int COLOR_abstract_compiler__Toolchain__init;
+extern const int COLOR_abstract_compiler__Platform__toolchain;
+extern const int COLOR_abstract_compiler__Toolchain__compile_dir;
+extern const int COLOR_abstract_compiler__ModelBuilder__compile_dir_61d;
+extern const int COLOR_abstract_compiler__Toolchain__write_and_make;
+void abstract_compiler__ModelBuilder__write_and_make(val* self, val* p0);
+val* abstract_compiler__Platform__toolchain(val* self, val* p0);
+extern const int COLOR_abstract_compiler__Toolchain___64dtoolcontext;
+val* abstract_compiler__Toolchain__toolcontext(val* self);
+void abstract_compiler__Toolchain__toolcontext_61d(val* self, val* p0);
+extern const int COLOR_abstract_compiler__Toolchain__toolcontext;
+val* abstract_compiler__Toolchain__compile_dir(val* self);
+void abstract_compiler__Toolchain__write_and_make(val* self, val* p0);
+void abstract_compiler__Toolchain__init(val* self, val* p0);
+extern const int COLOR_abstract_compiler__MakefileToolchain___64dcc_paths;
+val* abstract_compiler__MakefileToolchain__cc_paths(val* self);
+void abstract_compiler__MakefileToolchain__cc_paths_61d(val* self, val* p0);
extern const int COLOR_environ__String__environ;
extern const int COLOR_abstract_collection__Collection__is_empty;
extern const struct type type_array__Arraykernel__Object;
extern const int COLOR_abstract_collection__SimpleCollection__add;
extern const int COLOR_string__Object__to_s;
extern const int COLOR_file__String__file_exists;
-extern const int COLOR_abstract_compiler__ModelBuilder__cc_paths;
+extern const int COLOR_abstract_compiler__MakefileToolchain__cc_paths;
extern const int COLOR_kernel__Object__sys;
extern const int COLOR_string__Sys__program_name;
extern const int COLOR_file__String__dirname;
extern const int COLOR_file__String__simplify_path;
extern const int COLOR_toolcontext__ToolContext__error;
-extern const int COLOR_opts__Option__value;
-extern const int COLOR_file__Object__print;
-extern const int COLOR_kernel__Object__exit;
extern const int COLOR_abstract_compiler__ToolContext__opt_cc_path;
extern const int COLOR_abstract_collection__Sequence__append;
+val* BOX_kernel__Char(char);
extern const int COLOR_string_search__String__split_with;
-void abstract_compiler__ModelBuilder__init(val* self, val* p0, val* p1);
-extern const int COLOR_abstract_compiler__AbstractCompiler__mainmodule;
+void abstract_compiler__MakefileToolchain__gather_cc_paths(val* self);
+extern const int COLOR_abstract_compiler__MakefileToolchain__gather_cc_paths;
extern const int COLOR_time__Object__get_time;
-extern const int COLOR_modelbuilder__ModelBuilder__toolcontext;
extern const int COLOR_toolcontext__ToolContext__info;
extern const int COLOR_file__String__mkdir;
+extern const struct type type_array__Arraystring__String;
+extern const int COLOR_array__Array__init;
+extern const int COLOR_abstract_compiler__MakefileToolchain__write_files;
+extern const int COLOR_abstract_compiler__MakefileToolchain__write_makefile;
+extern const struct type type_array__NativeArraykernel__Object;
+val* BOX_kernel__Int(long);
+extern const int COLOR_abstract_compiler__MakefileToolchain__compile_c_code;
+void abstract_compiler__MakefileToolchain__write_and_make(val* self, val* p0);
extern const int COLOR_abstract_compiler__AbstractCompiler__build_c_to_nit_bindings;
-extern const int COLOR_mmodule__MModule__name;
-extern const int COLOR_file__String__join_path;
+val* NEW_c__ExternCFile(const struct type* type);
+extern const struct type type_c__ExternCFile;
+extern const int COLOR_c__ExternCFile__init;
+extern const int COLOR_abstract_compiler__AbstractCompiler__extern_bodies;
+extern const int COLOR_abstract_compiler__AbstractCompiler__files_to_copy;
+extern const int COLOR_abstract_collection__Collection__first;
+extern const int COLOR_modelbuilder__ToolContext__modelbuilder;
+extern const int COLOR_modelbuilder__ModelBuilder__mmodule2nmodule;
+extern const int COLOR_mmodule__MModule__in_importation;
+extern const int COLOR_poset__POSetElement__greaters;
+extern const int COLOR_abstract_collection__Collection__iterator;
+extern const int COLOR_abstract_collection__Iterator__is_ok;
+extern const int COLOR_abstract_collection__Iterator__item;
+extern const int COLOR_abstract_collection__MapRead__keys;
+extern const int COLOR_abstract_collection__Collection__has;
+extern const int COLOR_abstract_collection__MapRead___91d_93d;
+extern const int COLOR_common_ffi__MModule__uses_ffi;
+extern const int COLOR_abstract_compiler__AModule__uses_legacy_ni;
+extern const int COLOR_abstract_compiler__AbstractCompiler__finalize_ffi_for_module;
+extern const int COLOR_abstract_collection__Iterator__next;
+extern const int COLOR_file__String__basename;
+extern const int COLOR_file__String__file_copy_to;
extern const int COLOR_abstract_compiler__AbstractCompiler__header;
extern const int COLOR_abstract_compiler__CodeWriter__file;
extern const int COLOR_abstract_compiler__CodeFile__name;
extern const struct type type_file__OFStream;
extern const int COLOR_file__OFStream__open;
extern const int COLOR_abstract_compiler__CodeWriter__decl_lines;
-extern const int COLOR_abstract_collection__Collection__iterator;
-extern const int COLOR_abstract_collection__Iterator__is_ok;
-extern const int COLOR_abstract_collection__Iterator__item;
extern const int COLOR_stream__OStream__write;
-extern const int COLOR_abstract_collection__Iterator__next;
extern const int COLOR_abstract_compiler__CodeWriter__lines;
extern const int COLOR_stream__IOS__close;
-extern const struct type type_array__Arraystring__String;
-extern const int COLOR_array__Array__init;
extern const int COLOR_abstract_compiler__AbstractCompiler__files;
-extern const struct type type_array__NativeArraykernel__Object;
extern const int COLOR_abstract_compiler__CodeFile__required_declarations;
extern const int COLOR_abstract_compiler__AbstractCompiler__provided_declarations;
extern const int COLOR_abstract_collection__MapRead__has_key;
-extern const int COLOR_abstract_collection__MapRead___91d_93d;
+extern const int COLOR_abstract_compiler__AbstractCompiler__requirers_of_declarations;
+extern const int COLOR_abstract_collection__MapRead__get_or_null;
+extern const int COLOR_parser_nodes__ANode__debug;
extern const int COLOR_abstract_compiler__CodeFile__writers;
extern const int COLOR_kernel__Object___61d_61d;
extern const int COLOR_abstract_collection__Collection__length;
extern const struct type type_kernel__Int;
-extern const int COLOR_file__String__strip_extension;
-val* NEW_abstract_compiler__ExternCFile(const struct type* type);
-extern const struct type type_abstract_compiler__ExternCFile;
-extern const int COLOR_abstract_collection__Collection__first;
-extern const int COLOR_abstract_compiler__ExternCFile__init;
-extern const int COLOR_abstract_compiler__AbstractCompiler__extern_bodies;
-extern const int COLOR_abstract_compiler__ExternCFile__filename;
-extern const int COLOR_file__String__basename;
-extern const int COLOR_abstract_compiler__ExternCFile__cflags;
+void abstract_compiler__MakefileToolchain__write_files(val* self, val* p0, val* p1, val* p2);
+extern const int COLOR_mmodule__MModule__name;
+extern const int COLOR_file__String__join_path;
+val* NEW_hash_collection__HashSet(const struct type* type);
+extern const struct type type_hash_collection__HashSetstring__String;
+extern const int COLOR_hash_collection__HashSet__init;
+extern const int COLOR_c__AModule__c_linker_options;
extern const int COLOR_string__Collection__join;
+extern const int COLOR_file__String__strip_extension;
+extern const int COLOR_ffi_base__ExternFile__filename;
+extern const int COLOR_c__ExternCFile__cflags;
+extern const int COLOR_ffi_base__ExternFile__makefile_rule_name;
+extern const int COLOR_ffi_base__ExternFile__makefile_rule_content;
+extern const struct type type_cpp__ExternCppFile;
+void abstract_compiler__MakefileToolchain__write_makefile(val* self, val* p0, val* p1, val* p2);
extern const int COLOR_toolcontext__ToolContext__verbose_level;
extern const int COLOR_exec__Sys__system;
extern const struct class class_kernel__Int;
-void abstract_compiler__ModelBuilder__write_and_make(val* self, val* p0);
+void abstract_compiler__MakefileToolchain__compile_c_code(val* self, val* p0, val* p1);
extern const int COLOR_abstract_compiler__AbstractCompiler___64dnames;
val* abstract_compiler__AbstractCompiler__names(val* self);
void abstract_compiler__AbstractCompiler__names_61d(val* self, val* p0);
extern const int COLOR_abstract_compiler__AbstractCompiler___64dprovided_declarations;
val* abstract_compiler__AbstractCompiler__provided_declarations(val* self);
void abstract_compiler__AbstractCompiler__provided_declarations_61d(val* self, val* p0);
+extern const int COLOR_abstract_compiler__AbstractCompiler___64drequirers_of_declarations;
+val* abstract_compiler__AbstractCompiler__requirers_of_declarations(val* self);
+void abstract_compiler__AbstractCompiler__requirers_of_declarations_61d(val* self, val* p0);
+extern const int COLOR_abstract_compiler__ModelBuilder__compile_dir;
extern const int COLOR_abstract_compiler__AbstractCompiler__names;
-extern const int COLOR_abstract_collection__MapRead__keys;
val* NEW_exec__Process(const struct type* type);
extern const struct type type_exec__Process;
extern const struct type type_array__NativeArraystring__String;
void abstract_compiler__AbstractCompiler__build_c_to_nit_bindings(val* self);
extern const int COLOR_abstract_compiler__CodeWriter__add_decl;
extern const int COLOR_abstract_compiler__AbstractCompiler__compile_header_structs;
+extern const int COLOR_abstract_compiler__AbstractCompiler__compile_nitni_structs;
void abstract_compiler__AbstractCompiler__compile_header(val* self);
void abstract_compiler__AbstractCompiler__compile_header_structs(val* self);
+void abstract_compiler__AbstractCompiler__compile_nitni_structs(val* self);
extern const int COLOR_abstract_compiler__AbstractCompiler__new_visitor;
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl;
extern const int COLOR_abstract_compiler__AbstractCompiler__count_type_test_tags;
extern const int COLOR_abstract_compiler__AbstractCompiler___64dextern_bodies;
val* abstract_compiler__AbstractCompiler__extern_bodies(val* self);
void abstract_compiler__AbstractCompiler__extern_bodies_61d(val* self, val* p0);
+extern const int COLOR_abstract_compiler__AbstractCompiler___64dfiles_to_copy;
+val* abstract_compiler__AbstractCompiler__files_to_copy(val* self);
+void abstract_compiler__AbstractCompiler__files_to_copy_61d(val* self, val* p0);
extern const int COLOR_abstract_compiler__AbstractCompiler___64dseen_extern;
val* abstract_compiler__AbstractCompiler__seen_extern(val* self);
void abstract_compiler__AbstractCompiler__seen_extern_61d(val* self, val* p0);
void abstract_compiler__AbstractCompiler__display_stats(val* self);
val* string__Float__to_precision(double self, long p0);
val* abstract_compiler__AbstractCompiler__div(val* self, long p0, long p1);
+extern const int COLOR_abstract_compiler__AModule__finalize_ffi;
+extern const int COLOR_abstract_compiler__AModule__finalize_nitni;
+void abstract_compiler__AbstractCompiler__finalize_ffi_for_module(val* self, val* p0);
extern const int COLOR_abstract_compiler__CodeFile___64dname;
val* abstract_compiler__CodeFile__name(val* self);
void abstract_compiler__CodeFile__name_61d(val* self, val* p0);
long abstract_compiler__AbstractCompilerVisitor__last(val* self);
void abstract_compiler__AbstractCompilerVisitor__last_61d(val* self, long p0);
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__names;
-extern const int COLOR_abstract_collection__Collection__has;
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__last;
val* string__Int__to_s(long self);
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__last_61d;
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type;
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__expr;
val* abstract_compiler__AbstractCompilerVisitor__expr_bool(val* self, val* p0);
-extern const int COLOR_parser_nodes__ANode__debug;
void abstract_compiler__AbstractCompilerVisitor__debug(val* self, val* p0);
extern const int COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef;
val* abstract_compiler__AbstractRuntimeFunction__mmethoddef(val* self);
val* abstract_compiler__Frame__returnlabel(val* self);
void abstract_compiler__Frame__returnlabel_61d(val* self, val* p0);
void abstract_compiler__Frame__init(val* self, val* p0, val* p1, val* p2, val* p3);
-extern const int COLOR_abstract_compiler__ExternCFile___64dfilename;
-val* abstract_compiler__ExternCFile__filename(val* self);
-void abstract_compiler__ExternCFile__filename_61d(val* self, val* p0);
-extern const int COLOR_abstract_compiler__ExternCFile___64dcflags;
-val* abstract_compiler__ExternCFile__cflags(val* self);
-void abstract_compiler__ExternCFile__cflags_61d(val* self, val* p0);
-void abstract_compiler__ExternCFile__init(val* self, val* p0, val* p1);
val* abstract_compiler__MType__ctype(val* self);
val* abstract_compiler__MType__ctypename(val* self);
val* abstract_compiler__MType__c_name(val* self);
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__variable;
extern const int COLOR_auto_super_init__AConcreteMethPropdef__auto_super_inits;
extern const int COLOR_abstract_collection__Sequence__push;
+extern const int COLOR_typing__CallSite__msignature;
+extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite;
extern const int COLOR_parser_nodes__AConcreteMethPropdef__n_block;
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__stmt;
void abstract_compiler__AConcreteMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2);
val* abstract_compiler__AVarAssignExpr__expr(val* self, val* p0);
extern const int COLOR_parser_nodes__AReassignFormExpr__n_value;
extern const int COLOR_typing__AReassignFormExpr__reassign_callsite;
-extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite;
void abstract_compiler__AVarReassignExpr__stmt(val* self, val* p0);
extern const int COLOR_abstract_compiler__Frame__arguments;
val* abstract_compiler__ASelfExpr__expr(val* self, val* p0);
extern const int COLOR_typing__ASendReassignFormExpr__write_callsite;
void abstract_compiler__ASendReassignFormExpr__stmt(val* self, val* p0);
extern const int COLOR_parser_nodes__ASuperExpr__n_args;
-extern const int COLOR_typing__ASuperExpr__mproperty;
-extern const int COLOR_abstract_compiler__Frame__mpropdef;
-extern const struct type type_model__MMethodDef;
+extern const int COLOR_typing__ASuperExpr__callsite;
+extern const int COLOR_typing__ASuperExpr__mpropdef;
extern const int COLOR_abstract_compiler__AbstractCompilerVisitor__supercall;
val* abstract_compiler__ASuperExpr__expr(val* self, val* p0);
extern const int COLOR_parser_nodes__ANewExpr__n_args;
extern const int COLOR_array__Arrayarray__Array_FT0;
val* abstract_compiler__Array___45d(val* self, val* p0);
extern const int COLOR_abstract_compiler__MModule__properties_cache;
-val* NEW_hash_collection__HashSet(const struct type* type);
extern const struct type type_hash_collection__HashSetmodel__MProperty;
-extern const int COLOR_hash_collection__HashSet__init;
extern const struct type type_array__Arraymodel__MClass;
extern const int COLOR_model__MModule__flatten_mclass_hierarchy;
extern const int COLOR_model__MClass__in_hierarchy;
extern const int COLOR_abstract_compiler__MModule___64dproperties_cache;
val* abstract_compiler__MModule__properties_cache(val* self);
void abstract_compiler__MModule__properties_cache_61d(val* self, val* p0);
+short int abstract_compiler__AModule__uses_legacy_ni(val* self);
+void abstract_compiler__AModule__finalize_ffi(val* self, val* p0, val* p1);
+void abstract_compiler__AModule__finalize_nitni(val* self, val* p0);