(mailing list info at http://netjam.org/squat )
Hi--
Now that I've made a suitably small virtual machine, I've finished a
new version of a complete installation package for Squat, along the
lines of "relief" (http://netjam.org/relief ). It's a webpage that, when
visited, downloads an installer program and runs it. The installer
program downloads a snapshot, a virtual machine, and the Flow plugin,
decompresses the virtual machine and the Flow plugin, and runs the
virtual machine. The virtual machine decompresses the snapshot, and the
snapshot updates itself.
The current sizes are 93,352 bytes for the snapshot, 18,973 bytes for
the Flow plugin, 107,642 bytes for the virtual machine, and 61,440 bytes
for the installer program, for a total of 281,407 bytes. The
decompressor is is both the virtual machine and installer; I could save
about 40K by loading it dynamically in each case... I'll save that for
some future version.
Next I'm going to write my first Squat application, which is a snapshot
that updates itself enough to display my resume, then displays it. :)
thanks,
-C
--
Craig Latta
http://netjam.org/resume
craig(a)netjam.org
[|] Proceed for Truth!
(mailing list info at http://netjam.org/squat )
Hi--
Today I unloaded all the compiled methods which hadn't been run since
just before the previous snapshot, made a snapshot, and compressed it
with bz2. I added a bz2 decompressor to the virtual machine, and
successfully ran the snapshot. The snapshot size on disk is 93,352 bytes
("91 KB"). I consider the snapshot part of the project finished,
although I'm sure a few more bytes could be eked out by doing symbol
compression, etc. (I'm not going to bother, though, since they make
using the snapshot significantly less pleasant).
There is no accurate space analysis for this snapshot, since the act of
making one would change the size of the snapshot significantly. :) A
space analyzer that ran from a simulator would be useful. When the
snapshot is decompressed into RAM, and a space analysis is printed, the
space analysis at http://netjam.org/squat/space2.txt is accurate. In
summary, the 91 KB file yields a 280 KB object memory, and the system is
arbitrarily extensible from there.
Now I'm working on making the smallest possible virtual machine that
will run this snapshot.
thanks,
-C
--
Craig Latta
http://netjam.org/resume
craig(a)netjam.org
[|] Proceed for Truth!
(mailing list info at http://netjam.org/squat )
Hi--
I've added support for marking each method as it is run, giving me a
better (but not perfect) idea of which methods I can swap out.
I've got a few interesting numbers. If I clear all method marks, then
snapshot, resume, and ask for a tally of marked and unmarked methods, I
get 458 marked and 1766 unmarked (a full space analysis is at
http://netjam.org/squat/space2.txt ). If I clear all method marks and
immediately ask for the tally I get 27 marked and 2197 unmarked. (The
queries are all done via remote message-sending, to a snapshot which has
no methods swapped out.)
-C
--
Craig Latta
http://netjam.org/resume
craig(a)netjam.org
[|] Proceed for Truth!
(Squat mailing list info at http://netjam.org/squat )
Hi--
Things are getting exciting now. :)
I can now swap out compiled methods and method dictionaries on demand,
then automatically and seamlessly swap them back in from an update
server when messages requiring them are sent. This ability provides for
a significant reduction in image size (about 30%). I'm in the process of
swapping out most of the behavior in the minimal system. Space analyses
will be at http://netjam.org/squat/space2.txt .
I have a demo where I open a remote browser on a headless snapshot that
has had all the compilation and decompilation support removed, then, as
I browse around, some of it gets swapped back in. I plan to make a short
movie of this.
I also have a design for writing snapshots to a socket, allowing the
removal of all filesystem support.
A list of projected surviving classes is at
http://netjam.org/squat/survivors .
thanks,
-C
--
Craig Latta
http://netjam.org/resume
craig(a)netjam.org
[|] Proceed for Truth!