Hi all--
I've reached a new minimum snapshot size (167,224 bytes uncompressed, the previous one from 2003 was 211,504 bytes uncompressed).
That's for a system which supports remote browsing. I've also conceived a new design for the system tracer, one that implements it as a feature of the simulator (which didn't exist when the current tracer was written). With this tracer one will be able to write new snapshots without having to trace the object memory in which the tracer is running, and with certainty that every object in the result was required for an interpreter to function.
I suspect that the smallest "graceful" object memory (e.g., one that just quits) will be something like 1000 bytes. Using Spoon's object memory visualization tools, I've noticed that even the "3 plus 4" snapshot from the Fenix project (15,192 bytes uncompressed) has a lot of unnecessary stuff in it (e.g., Characters).
thanks,
-C
-- Craig Latta improvisational musical informaticist www.netjam.org Smalltalkers do: [:it | All with: Class, (And love: it)]
Hi all--
I've reached a new minimum snapshot size (167,224 bytes uncompressed, the previous one from 2003 was 211,504 bytes uncompressed).
That's for a system which supports remote browsing. I've also conceived a new design for the system tracer, one that implements it as a feature of the simulator (which didn't exist when the current tracer was written). With this tracer one will be able to write new snapshots without having to trace the object memory in which the tracer is running, and with certainty that every object in the result was required for an interpreter to function.
Craig can you explain a bit more the idea.
I suspect that the smallest "graceful" object memory (e.g., one that just quits) will be something like 1000 bytes. Using Spoon's object memory visualization tools, I've noticed that even the "3 plus 4" snapshot from the Fenix project (15,192 bytes uncompressed) has a lot of unnecessary stuff in it (e.g., Characters).
thanks,
-C
-- Craig Latta improvisational musical informaticist www.netjam.org Smalltalkers do: [:it | All with: Class, (And love: it)]
Spoon mailing list Spoon@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/spoon
Hi Stef--
I've also conceived a new design for the system tracer, one that implements it as a feature of the simulator (which didn't exist when the current tracer was written). With this tracer one will be able to write new snapshots without having to trace the object memory in which the tracer is running, and with certainty that every object in the result was required for an interpreter to function.
Craig can you explain a bit more the idea.
Sure; the idea is that the simulator is in a position to know precisely which objects it has used during some period of time. I've instrumented the simulator to keep track of those objects (OOPs), so that at any point one may halt the simulator and inspect them. I can also take that information into account when the simulator does garbage collection and writes snapshots, QED. :)
-C
Am 16.01.2006 um 04:50 schrieb Craig Latta:
Hi all--
I've reached a new minimum snapshot size (167,224 bytes uncompressed, the previous one from 2003 was 211,504 bytes uncompressed).
Great! :)
That's for a system which supports remote browsing. I've also conceived a new design for the system tracer, one that implements it as a feature of the simulator (which didn't exist when the current tracer was written). With this tracer one will be able to write new snapshots without having to trace the object memory in which the tracer is running, and with certainty that every object in the result was required for an interpreter to function.
Reminds me of Pypy - they also trace execution, but symbolically (taking both arms of each branch). There's a paper on it, "Compiling Dynamic Language Implementations" (http://codespeak.net/pypy/dist/ pypy/doc/index-report.html)
Though I'm sure your's is at least two orders of magnitude simpler, i.e., better ;-)
- Bert -
Hi again--
I've written enough of the new tracer to write an object memory which adds 3 and 4, then quits. The snapshot[1] is 1,772 bytes uncompressed. Without using the simulator or visualization tools, about the most interesting thing you can do with it is watch it not crash. :) But I do think this is a fun proof-of-concept.
-C
[1] http://netjam.org/spoon/smallest.image
spoon@lists.squeakfoundation.org