LLL: Control structures and code caching
Chris Harris
chharris@u.washington.edu
Fri, 16 Dec 1994 05:48:48 -0800 (PST)
Hello Folks,
I had a few more thoughts to bring up about the LLL, so feel free
to fire away....
First, how are we planning to represent control structures? Will
our language support such primitives as if/while, or will it have only
conditional jumps? How low-level is our LLL anyway?
Second, it seems to me that Tunes should be able to execute code
larger than physical memory, perhaps 20 times larger if necesary. (I'd
like to put the code size limit as the size of the disks.) This will
require support from some not-so-standard VM techniqures.
I suggest we support paging, but not the standard means of
swapping. When a Tunes page is swapped out, it is written back to the
location on disk of the object/toolbox to which it belongs, provided it
has been modified since it was loaded into memory. It would also be
possible to use an intermediate file to built up changes, and then
replace the actual copies of the data all at once, to preserve consistancy.
This works great for data, but leaves a bit of a problem for
code, and getting it into the native binary format. One option would be
to compile the whole thing at once, and then execute this newly-compiled
file with fairly standard techniques. This could generate some fairly
large files, however, that maybe shouldn't be there. Instead, I wonder
if it would be possible to do incrimental compiles. The machine would
load some LLL code, and compile it into native format. This would then
interrupt, and the system would compile a bit more. Some way for code
cachine would then be helpful, to avoid compiling redundent pieces of
code....
Yet another problem extends from the fact that LLL operations must
be fairly atomic, since the instruction counter is kept on the basis of
LLL code. (How else might we migrate processes to different
architectures?) I suppose it wouldn't be too hard to let a process
finish its current LLL instruction before it is migrated, but telling how
much you have left to go from the PC might be sorta' difficult....
Just s'more thoughs. Anyone have have comments to babble about?
-Chris
"If patterns of 1s and 0s were 'like' patterns of human lives and death,
if everything about an individual could be represented in a computer by a
long string of 1s and 0s, then what kind of creature would be represented
by a long string of lives and deaths?" --Thomas Pynchon