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
Allow a single computation to be executed with two different (but related) demands.
To allow two different computations to be executed (with corresponding demands) and compared, we will need to parameterise evaluation on a "world" (or "version"); currently this is global:
interned objects are similar to rigid designators; they denote the same thing (have the same content) in every possible world
versioned objects may take on different values in different worlds
If we had this notion then we could probably use it to execute a single computation with two different demands.
switch versioned objects to a "constructor"-style factory method at and make calling version part of at
experiment with global revision/world
give versioned objects a partial map from worlds to states
updating at a world should enforce LVar semantics (i.e. fail if not increasing)
updating when the most recent state was set in a strictly prior world should create a new entry in the partial map
...with copy on write semantics
worlds are partially ordered
better names for __version, __mergeAssign, __merge
null assignment should remain a no-op at the same world, but mutate at a new world
The text was updated successfully, but these errors were encountered:
Allow a single computation to be executed with two different (but related) demands.
To allow two different computations to be executed (with corresponding demands) and compared, we will need to parameterise evaluation on a "world" (or "version"); currently this is global:
If we had this notion then we could probably use it to execute a single computation with two different demands.
at
and make callingversion
part ofat
__version
,__mergeAssign
,__merge
The text was updated successfully, but these errors were encountered: