Cache

class Cache
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply(value: Value, expr: Tree): Value
def assume(value: Value, expr: Tree, cacheResult: Boolean)(fun: => Value): () ?=> Value

Copy the value of (value, expr) from the last cache to the current cache (assuming it's Hot if it doesn't exist in the cache).

Copy the value of (value, expr) from the last cache to the current cache (assuming it's Hot if it doesn't exist in the cache).

Then, runs fun and update the caches if the values change.

def contains(value: Value, expr: Tree): Boolean
def getObject(ref: Ref): Objekt

Prepare for checking next class

Prepare for checking next class

  1. Reset changed flag.

  2. Commit current cache to stable cache if not changed.

  3. Update stable heap if not changed.

  4. Reset last cache.

Prepare cache for the next iteration

Prepare cache for the next iteration

  1. Reset changed flag.

  2. Reset current cache (last cache already synced in assume).

  3. Revert heap if instable.

def updateObject(ref: Ref, obj: Objekt): Unit