X-Git-Url: http://nitlanguage.org diff --git a/src/separate_compiler.nit b/src/separate_compiler.nit index 95af914..1b6d680 100644 --- a/src/separate_compiler.nit +++ b/src/separate_compiler.nit @@ -40,7 +40,7 @@ redef class ToolContext # --semi-global var opt_semi_global = new OptionBool("Enable all semi-global optimizations", "--semi-global") # --no-colo-dead-methods - var opt_no_colo_dead_methods = new OptionBool("Do not colorize dead methods", "--no-colo-dead-methods") + var opt_colo_dead_methods = new OptionBool("Force colorization of dead methods", "--colo-dead-methods") # --tables-metrics var opt_tables_metrics: OptionBool = new OptionBool("Enable static size measuring of tables used for vft, typing and resolution", "--tables-metrics") @@ -52,7 +52,7 @@ redef class ToolContext self.option_context.add_option(self.opt_no_union_attribute) self.option_context.add_option(self.opt_no_shortcut_equate) self.option_context.add_option(self.opt_inline_coloring_numbers, opt_inline_some_methods, opt_direct_call_monomorph, opt_skip_dead_methods, opt_semi_global) - self.option_context.add_option(self.opt_no_colo_dead_methods) + self.option_context.add_option(self.opt_colo_dead_methods) self.option_context.add_option(self.opt_tables_metrics) end @@ -279,7 +279,7 @@ class SeparateCompiler mattributes[mclass] = new HashSet[MAttribute] for mprop in self.mainmodule.properties(mclass) do if mprop isa MMethod then - if modelbuilder.toolcontext.opt_no_colo_dead_methods.value and rta != null and not rta.live_methods.has(mprop) then + if not modelbuilder.toolcontext.opt_colo_dead_methods.value and rta != null and not rta.live_methods.has(mprop) then dead_methods.add(mprop) continue end @@ -851,7 +851,7 @@ class SeparateCompiler v.add_abort("type null") v.add("\}") v.add("if({t}->table_size == 0) \{") - v.add("fprintf(stderr, \"Insantiation of a dead type: %s\\n\", {t}->name);") + v.add("PRINT_ERROR(\"Insantiation of a dead type: %s\\n\", {t}->name);") v.add_abort("type dead") v.add("\}") end @@ -985,7 +985,7 @@ class SeparateCompilerVisitor var res = self.new_var(mtype) if compiler.runtime_type_analysis != null and not compiler.runtime_type_analysis.live_types.has(valtype) then self.add("/*no autobox from {value.mtype} to {mtype}: {value.mtype} is not live! */") - self.add("printf(\"Dead code executed!\\n\"); show_backtrace(1);") + self.add("PRINT_ERROR(\"Dead code executed!\\n\"); show_backtrace(1);") return res end self.require_declaration("BOX_{valtype.c_name}") @@ -997,7 +997,7 @@ class SeparateCompilerVisitor # Bad things will appen! var res = self.new_var(mtype) self.add("/* {res} left unintialized (cannot convert {value.mtype} to {mtype}) */") - self.add("printf(\"Cast error: Cannot cast %s to %s.\\n\", \"{value.mtype}\", \"{mtype}\"); show_backtrace(1);") + self.add("PRINT_ERROR(\"Cast error: Cannot cast %s to %s.\\n\", \"{value.mtype}\", \"{mtype}\"); show_backtrace(1);") return res end end @@ -1388,7 +1388,7 @@ class SeparateCompilerVisitor self.require_declaration(mtype.const_color) var col = mtype.const_color self.add("if({col} == -1) \{") - self.add("fprintf(stderr, \"Resolution of a dead open type: %s\\n\", \"{mtype.to_s.escape_to_c}\");") + self.add("PRINT_ERROR(\"Resolution of a dead open type: %s\\n\", \"{mtype.to_s.escape_to_c}\");") self.add_abort("open type dead") self.add("\}") end @@ -1401,7 +1401,7 @@ class SeparateCompilerVisitor add_abort("cast type null") add("\}") add("if({t}->id == -1 || {t}->color == -1) \{") - add("fprintf(stderr, \"Try to cast on a dead cast type: %s\\n\", {t}->name);") + add("PRINT_ERROR(\"Try to cast on a dead cast type: %s\\n\", {t}->name);") add_abort("cast type dead") add("\}") end @@ -1488,7 +1488,7 @@ class SeparateCompilerVisitor self.add("count_type_test_resolved_{tag}++;") end else - self.add("printf(\"NOT YET IMPLEMENTED: type_test(%s, {mtype}).\\n\", \"{value.inspect}\"); show_backtrace(1);") + self.add("PRINT_ERROR(\"NOT YET IMPLEMENTED: type_test(%s, {mtype}).\\n\", \"{value.inspect}\"); show_backtrace(1);") end # check color is in table @@ -1673,7 +1673,7 @@ class SeparateCompilerVisitor return res end - fun native_array_instance(elttype: MType, length: RuntimeVariable): RuntimeVariable + redef fun native_array_instance(elttype: MType, length: RuntimeVariable): RuntimeVariable do var mtype = self.get_class("NativeArray").get_mtype([elttype]) self.require_declaration("NEW_{mtype.mclass.c_name}")