You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The menu item "AOT Compile" currently triggers two compilation passes (the second of which seemingly fails in the circumstance that there is a top-level (snapshot (->SomeDefmutable x y)) form).
I'm not completely clear why this causes a failure later, though protocols are twitchy about double-evaluation. In any event, we shouldn't be doing two compilation passes, it invites weird race conditions. The cause seems to be in Arcadia.Menu#AOTCompile:
[MenuItem("Arcadia/AOT Compile")]
public static void AOTCompile()
{
BuildPipeline.BuildInternal();
BuildPipeline.BuildUser();
}
Even if this works, however, there's still a question of how AOTing user code should work if Internal code is already AOT'd, and if doing one after the other can cause a problem. The safest approach is probably to clear all AOT'd code before every compile.
The text was updated successfully, but these errors were encountered:
The menu item "AOT Compile" currently triggers two compilation passes (the second of which seemingly fails in the circumstance that there is a top-level
(snapshot (->SomeDefmutable x y))
form).I'm not completely clear why this causes a failure later, though protocols are twitchy about double-evaluation. In any event, we shouldn't be doing two compilation passes, it invites weird race conditions. The cause seems to be in
Arcadia.Menu#AOTCompile
:Even if this works, however, there's still a question of how AOTing user code should work if Internal code is already AOT'd, and if doing one after the other can cause a problem. The safest approach is probably to clear all AOT'd code before every compile.
The text was updated successfully, but these errors were encountered: