full evaluation - pannous/warp GitHub Wiki

full evaluation: !!

x! runs a block once: one level is removed, and blocks nested inside the result stay blocks. x!! (or interpret x) runs it fully, including every nested block (charged). eval(text) runs the code a text holds, with the names where it is written: x = 5; eval("x*2") is 10.

Planned: dates and times are evaluated at compile time only today, so now inside an object is refused.

friends = {peter james created: now}
friends.created     // the block now
friends.created!    // the time when ! runs
friends!!           // every uncharged field evaluated: created is the time when !! runs

To keep the time of construction, bind a value instead of a block: friends = {peter james created = now}.