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
When we introduce thunks #1090, we will have Loc values that point to thunks. In order to represent thunks in the most space efficient way we don't want to support equality tests between thunk values.
This issue is about adding a boolean to the Loc constructor. The boolean will indicate whether the Loc can be compared or not. Thus all current Loc n values would be equivalent to Loc T n and all Loc F k values are pointers to heap elements that cannot be compared.
I propose that the semantics of do_eq is changed to:
In the source semantics, reference pointers are
Loc
values and these can be compared for equality:cakeml/semantics/semanticPrimitivesScript.sml
Line 480 in d8b47ad
When we introduce thunks #1090, we will have
Loc
values that point to thunks. In order to represent thunks in the most space efficient way we don't want to support equality tests between thunk values.This issue is about adding a boolean to the
Loc
constructor. The boolean will indicate whether theLoc
can be compared or not. Thus all currentLoc n
values would be equivalent toLoc T n
and allLoc F k
values are pointers to heap elements that cannot be compared.I propose that the semantics of
do_eq
is changed to:The text was updated successfully, but these errors were encountered: