Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/builtin/module_builtin_runtime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -1983,6 +1992,10 @@ namespace das
// migrate data
addExtern<DAS_BIND_FUN(is_in_aot)>(*this, lib, "is_in_aot",
SideEffects::worstDefault, "is_in_aot");
addExtern<DAS_BIND_FUN(set_aot)>(*this, lib, "set_aot",
SideEffects::worstDefault, "set_aot");
addExtern<DAS_BIND_FUN(reset_aot)>(*this, lib, "reset_aot",
SideEffects::worstDefault, "reset_aot");
// completion
addExtern<DAS_BIND_FUN(is_in_completion)>(*this, lib, "is_in_completion",
SideEffects::worstDefault, "is_in_completion");
Expand Down
5 changes: 3 additions & 2 deletions src/das/ast/ast_aot_cpp.das
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
Expand Down Expand Up @@ -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)) {
Expand Down Expand Up @@ -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")
Expand Down
1 change: 1 addition & 0 deletions src/das/ast/printer_flags_visitor.das
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
options gen2
options rtti = true
// options log_infer_passes = true
options strict_smart_pointers = false
Expand Down