virtual data slots (copy-on-write data inheritence)

Michael Richardson mcr at
Fri Mar 25 20:24:47 UTC 1994

  To continue the discussion of COW slots.... some hacking history:
  I experimented for awhile at building a hardware/software
configuration expert system. It was to deal with the kind of
contraints in the PC-ISA bus world particularly relating to IRQ lines
and device drivers... I had experimented with prototyping the system
in Prolog, MOO, and then Self 1.1 showed up. MOO almost had COW slots.
(There was a 'transparent' type added a while later).
  Prolog was too easy, and I wasn't good enough at it... I also wanted
a Prolog with an interface to a DBM, but had no money to purchase one.
(I was being paid to play at it between projects... it was rather
nice, except I had no budget) 
  I actually eventually implemented a simple inference engine in
FoxPro at one point. (At 19.2k over Telebits to a 386ix system, with
FoxPro running in the DOS emulator. No FoxPro for Amiga/Sun3 that I
had at home). [the production system had to run on a portable that
could be taken out to the customer's site...]
  The biggest problem with implementing COW slots at the time was that
AddSlots: returned one to the top-level. This has been solved. Given
the amount of profiling that appears to available in Self, I'd think
an experimental implementation using traits foo:/prototypes ifoo: 
stuff would be the thing to do. (Actual values are stored in the
'ifoo' slot, foo: adds that slot to an object if necessary).

  Profile it later and see what happens. In *my* case, I suspected
that once the hardware description database was loaded, there would be
little specialization of the objects required: basically just the
"jumper settings" -- this was in fact the case with my FoxPro system,
although it had many limitations because I could only really get a
very simple linear inheritance (is that the right term for "no
multiple-inheritance"?), and I really needed multiple inheritance.
This is what originally attracted me to Self. 

 :!mcr!:             HOME: mcr at  +1 613 788 2600 3853  
 Michael Richardson  WORK: mcr at         (Conservation Ecology)
Here is an <A HREF="">HTML reference</A> to my bio.
  foreach $X ("E-Journal","NetBSD","Perl","Physics") { print "MCR hacks $X\n"; };

More information about the Self-interest mailing list