"Lucas Dixon" <[EMAIL PROTECTED]>:
Given the modular design Alice, I suspect this should be easy, I would
guess that the top-level is just an incrementally compiled module. So it
should be possible to end the module and pickel it.
It's not that simple. The main problem is that Alice does not allow pickling
of resources. So you cannot just pickle the continuation of the interactive
loop, since it will certainly contain resources like I/O streams etc. Even
if you factorise away this problem, you cannot pickle the current dynamic
environment of the toplevel loop, since it will likewise contain resources.
And even if you allowed resources, pickling the environment would trigger
loading of the complete standard lib, which is imported lazily into the
toplevel and thus bound by lazy futures.
In brief, pickling is not suited (and neither intended) for faking an image
dump.
One more little thing I noticed recently happens with the following:
datatype foo = Foo0
| Foo1 of {};
fun crash Foo0 = "f0"
| crash (Foo1 x) = "f1";
gives me:
ValuePropagationPhase crashed: dumping debug information to vpdebug.txt
Unknown $12478
internal exception Unknown
Indeed, thanks. I filed a bug report. Note that it works if you replace "{}"
with the synonym "unit".
Cheers,
- Andreas
_______________________________________________
alice-users mailing list
[email protected]
http://www.ps.uni-sb.de/mailman/listinfo/alice-users