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
Why?
Direct serialization using Julia's native serialize function does not properly save ephemeral (e.g. generative function pointers) as pointed out in #129. Users who intend to save out traces for long term storage will necessarily restart the Julia runtime, so there is no guarantee that runtime data will properly be read back in. Given a saved out trace, there are two ways to read data back in. The first requires the generative function to reconstruct the function pointers, and #369 takes a similar strategy and implicitly invokes the generative function while reading. The second amortizes the generative function call over calls to the GFI such as update and regenerate. In the package, we distinguish the two by realize and deserialize respectively.
Goals:
Provide out of the box serialization for Dynamic, Static, and combinator traces.
Support programs with untraced randomness.
Caveats:
Currently supports Dynamic and Map traces. The remaining combinators aren't yet supported, but they are essentially copies of Map.
The format, which is opaque to the user, assumes the machine used to read a trace has the same endianness as the machine used to write the trace.
This is a Julia-only solution, so it does not provide support to serialize between different Gen implementations.
WIP
Finish support of combinators
Finish Static DSL traces.
The text was updated successfully, but these errors were encountered:
GenSerialization.jl serves to serialize the common trace types offered by Gen.
Why?
Direct serialization using Julia's native
serialize
function does not properly save ephemeral (e.g. generative function pointers) as pointed out in #129. Users who intend to save out traces for long term storage will necessarily restart the Julia runtime, so there is no guarantee that runtime data will properly be read back in. Given a saved out trace, there are two ways to read data back in. The first requires the generative function to reconstruct the function pointers, and #369 takes a similar strategy and implicitly invokes the generative function while reading. The second amortizes the generative function call over calls to the GFI such asupdate
andregenerate
. In the package, we distinguish the two byrealize
anddeserialize
respectively.Goals:
Caveats:
WIP
The text was updated successfully, but these errors were encountered: