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
This is a general issue to discuss laziness and sharing w.r.t. the seralization of objects.
A motivating example is the following usual Coq snippet:
type a = { foo : bar (* some data *) ; env : Environ.env}
now imagine we have in Python, an object a of type a_class, with methods a.foo and a.env.
It would be great if we could avoid the conversion of a.env until it is actually accessed, as env is actually a huge object. That would mean which a.foo could be done quickly.
A problem we have with the delay in indeed the imperative nature of some code. So that approach, could be only used for objects that we mark as "safe" [that is to say, purely functional so themselves are closed].
Another approach could be actually to use some form of sharing, as done in the OCaml "runtime"; however, this may still be too expensive in some use cases.
Improvements on this pattern are also due in Coq's side.
The text was updated successfully, but these errors were encountered:
This is a general issue to discuss laziness and sharing w.r.t. the seralization of objects.
A motivating example is the following usual Coq snippet:
now imagine we have in Python, an object
a
of typea_class
, with methodsa.foo
anda.env
.It would be great if we could avoid the conversion of
a.env
until it is actually accessed, asenv
is actually a huge object. That would mean whicha.foo
could be done quickly.A problem we have with the delay in indeed the imperative nature of some code. So that approach, could be only used for objects that we mark as "safe" [that is to say, purely functional so themselves are closed].
Another approach could be actually to use some form of sharing, as done in the OCaml "runtime"; however, this may still be too expensive in some use cases.
Improvements on this pattern are also due in Coq's side.
The text was updated successfully, but these errors were encountered: