blueloveTH 1 ano atrás
pai
commit
96eaeb49f5
2 arquivos alterados com 5 adições e 3 exclusões
  1. 1 0
      include/pocketpy/config.h
  2. 4 3
      src/vm.cpp

+ 1 - 0
include/pocketpy/config.h

@@ -45,6 +45,7 @@
 #define PK_DEBUG_NO_MEMORY_POOL     0
 #define PK_DEBUG_NO_AUTO_GC         0
 #define PK_DEBUG_GC_STATS           0
+#define PK_DEBUG_PRECOMPILED_EXEC   0
 
 /*************** internal settings ***************/
 

+ 4 - 3
src/vm.cpp

@@ -159,10 +159,11 @@ namespace pkpy{
     PyObject* VM::exec(std::string_view source, Str filename, CompileMode mode, PyObject* _module){
         if(_module == nullptr) _module = _main;
         try {
-            CodeObject_ code = compile(source, filename, mode);
-#if PK_DEBUG_DIS_EXEC
-            if(_module == _main) std::cout << disassemble(code) << '\n';
+#if PK_DEBUG_PRECOMPILED_EXEC == 1
+            Str precompiled = vm->precompile(source, filename, mode);
+            source = precompiled.sv();
 #endif
+            CodeObject_ code = compile(source, filename, mode);
             return _exec(code, _module);
         }catch (const Exception& e){
             stderr_write(e.summary() + "\n");