Merge: tests: better handling of tests without a sav file
[nit.git] / src / nitg.nit
index 965be59..18ba4ce 100644 (file)
@@ -25,13 +25,15 @@ import global_compiler
 import separate_erasure_compiler
 import separate_compiler
 import android_platform
+import compiler_ffi
 
 # Create a tool context to handle options and paths
 var toolcontext = new ToolContext
 
 # Create a new option for --global
 var opt_global = new OptionBool("Use global compilation", "--global")
-toolcontext.option_context.add_option(opt_global)
+var opt_rta = new OptionBool("Activate RTA (implicit with --global and --separate)", "--rta")
+toolcontext.option_context.add_option(opt_global, opt_rta)
 
 var opt_mixins = new OptionArray("Additionals module to min-in", "-m")
 toolcontext.option_context.add_option(opt_mixins)
@@ -71,12 +73,17 @@ end
 
 var platform = mainmodule.target_platform
 if platform != null and not platform.supports_libunwind then
-       toolcontext.opt_no_stacktrace.value = true
-       toolcontext.opt_stacktrace.value = false
+       if toolcontext.opt_stacktrace.value == null then toolcontext.opt_stacktrace.value = "none" # default is none
 end
 
 if toolcontext.opt_erasure.value then
-       modelbuilder.run_separate_erasure_compiler(mainmodule, null)
+       var analysis
+       if opt_rta.value then
+               analysis = modelbuilder.do_rapid_type_analysis(mainmodule)
+       else
+               analysis = null
+       end
+       modelbuilder.run_separate_erasure_compiler(mainmodule, analysis)
 else if opt_global.value then
        var analysis = modelbuilder.do_rapid_type_analysis(mainmodule)
        modelbuilder.run_global_compiler(mainmodule, analysis)