"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

Reply via email to