-# Here we launch the interpreter on the main module
-assert mmodules.length == 1
-var mainmodule = mmodules.first
-modelbuilder.run_naive_interpreter(mainmodule, arguments)
+var mainmodule = toolcontext.make_main_module(mmodules)
+
+var self_mm = mainmodule
+var self_args = arguments
+
+if toolcontext.opt_debugger_autorun.value then
+ modelbuilder.run_debugger_autorun(self_mm, self_args)
+else if toolcontext.opt_debugger_mode.value then
+ modelbuilder.run_debugger(self_mm, self_args)
+else if opt_vm.value then
+ modelbuilder.run_virtual_machine(self_mm, self_args)
+else
+ modelbuilder.run_naive_interpreter(self_mm, self_args)
+end
+