Migration from Ghost
The default context is now BaseCtx
instead of just Dict{Any,Any}()
. BaseCtx
can still be used as key-value storage, but allows more fine-grained control over tracing.
Keyword arguments primitives
and is_primitive
to trace
have been replaced with isprimitive(ctx, f, args...)
function. As a convenient shortcut, one can set a list of functions as primitives using trace(f, args; ctx=BaseCtx(MY_PRIMITIVES))
.
Additionally, record_primitive!()
has been introduced.
using Umlaut
imports much more stuff than using Ghost
. In particular, you don't need to explicitely import things like Tape
, Call
, Variable
, etc. You still need to import V
(or alias const V = Variable
) though.