diff --git a/src/builtin/module_builtin_runtime.cpp b/src/builtin/module_builtin_runtime.cpp index 0149f6b19b..eba3beaf1c 100644 --- a/src/builtin/module_builtin_runtime.cpp +++ b/src/builtin/module_builtin_runtime.cpp @@ -1452,6 +1452,15 @@ namespace das return *daScriptEnvironment::bound ? (*daScriptEnvironment::bound)->g_isInAot : false; } + void set_aot ( ) { + assert(*daScriptEnvironment::bound); + (*daScriptEnvironment::bound)->g_isInAot = true; + } + void reset_aot ( ) { + assert(*daScriptEnvironment::bound); + (*daScriptEnvironment::bound)->g_isInAot = false; + } + bool is_in_completion ( ) { if ( *daScriptEnvironment::bound && (*daScriptEnvironment::bound)->g_Program ) { return (*daScriptEnvironment::bound)->g_Program->policies.completion; @@ -1983,6 +1992,10 @@ namespace das // migrate data addExtern(*this, lib, "is_in_aot", SideEffects::worstDefault, "is_in_aot"); + addExtern(*this, lib, "set_aot", + SideEffects::worstDefault, "set_aot"); + addExtern(*this, lib, "reset_aot", + SideEffects::worstDefault, "reset_aot"); // completion addExtern(*this, lib, "is_in_completion", SideEffects::worstDefault, "is_in_completion"); diff --git a/src/das/ast/ast_aot_cpp.das b/src/das/ast/ast_aot_cpp.das index e184fa103c..c9fc435b7d 100644 --- a/src/das/ast/ast_aot_cpp.das +++ b/src/das/ast/ast_aot_cpp.das @@ -2762,7 +2762,7 @@ class CppAot : AstVisitor { } if (!blk.blockFlags.aotSkipMakeBlock || blk.blockFlags.aotDoNotSkipAnnotationData) { if (blk.annotationDataSid != uint64(0)) { - write(*ss, "__context__.adBySid({blk.annotationDataSid}u)"); + write(*ss, "__context__->adBySid({blk.annotationDataSid:d}u)"); } else { write(*ss, "0"); } @@ -3141,7 +3141,7 @@ class CppAot : AstVisitor { let fun_t_str = describeCppTypeEx(funArgType, CpptSubstitureRef.no, CpptSkipRef.yes, CpptSkipConst.no, CpptRedundantConst.yes, CpptUseAlias.yes); write(*ss, "das_reinterpret<{fun_t_str}>::pass("); } else { - write(*ss, "das_alias<{funArgType.alias}>.to("); + write(*ss, "das_alias<{funArgType.alias}>::to("); } } if (!call.func.flags.noPointerCast && needPtrCast(funArgType, arg._type, arg)) { @@ -3538,6 +3538,7 @@ def updateCOP(var cop : CodeOfPolicies) { } def compile_and_simulate(input : string, var access; var mg : ModuleGroup?, cop, blk) { + set_aot(); compile_file(input, access, mg, cop) <| $(ok, program, issues) { if (!ok) { print("failed to compile {input}\n{issues}\n") diff --git a/src/das/ast/printer_flags_visitor.das b/src/das/ast/printer_flags_visitor.das index 3d377ec512..de05e9fd0d 100644 --- a/src/das/ast/printer_flags_visitor.das +++ b/src/das/ast/printer_flags_visitor.das @@ -1,3 +1,4 @@ +options gen2 options rtti = true // options log_infer_passes = true options strict_smart_pointers = false