file systems and vm machines]

Chris Bitmead uid(x22068)
Fri, 02 May 1997 13:13:04 +1000

As far as I can see, the LispOS will face a fairly big logistical
issue in its development because it is so integrated.

The integration of a LispOS is its big strength, but it also makes it
hard to make fast progress.

For example, to implement the OO file system needs massive support
from the virtual machine and garbage collector. And just implementing
the storage mechanism, even a quick and dirty one to get started is a
lot of work too.

All this has been done before (See the Gemstone commercial OODB for
example), but it a big project in itself.

But to get very far on the user-level apps you really need this in

For example, part of the mail subsystem might be a list of users, each
with a hash-table of mail articles, and there might be a global hash
table of aliases. To get a mail article by subject you might go...

(mail-by-subject "*LispOS*" (users-mail "Chris Bitmead" (mail *root-dir*)))

The code to send a piece of mail to all aliases might be...

(defun send-mail (mail address) 
    (map-car post-a-piece-of-mail 
       (map-car equal? (mail-aliases *root-dir*) address))

But to start implementing all these state-of-the-art LispOS style
apps, you need this OO file system in place.

I mean, to take an analogy .... How far would you get writing a UNIX
application if all you had was a raw-partition to work with, but no
file system?

That is what it will be like developing next-generation LispOS apps
with only a UNIX file system.