[self-interest] Getting code out of Self

Baltasar GarcĂ­a Perez-Schofield baltasarq at gmail.com
Fri Nov 20 09:26:23 UTC 2015


Hi, Russel,

I developed another "version" of the environment in my PhD thesis (it does
only work on Windows) which I called Zero. It is a prototype-based
programming environment, and multiplatform. You can find it all here:

http://baltasarq.github.io/zero/

Specifically, the discussion about persistence support is here:
http://baltasarq.github.io/zero/doc/persistencia.html

The discussion is made using za and zm tools, Zero's assembler and
macroassembler, though Zero does also have a high-level programming
language called Prowl.

Persistence is achieved by reachability. If you create an object, then it
is transient by default. If you add it to the PSRoot container (containers
are just collections of objects, from the client programmer's point of
view), then it is automatically reachable by the persistence root and
therefore made persistent. If you add the object to a container which in
turn is added to PSRoot, then it is also made persistent.

Say you create a container A and an object foo. You put foo inside A, and A
inside PSRoot. You'll have a subdirectory A under PS, which will hold the
A.zbj file. Inside the A.zbj, you will find the foo object.

A zbj file is the same kind of file that you create when you compile an
object for its execution in the zvm (the virtual machine). This means that
you can add objects to the persistent store by moving zbj files, or
disassemble a zbj file using the tool zd.

-- baltasar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.selflanguage.org/pipermail/self-interest/attachments/20151120/dc9a3b8c/attachment.html>


More information about the Self-interest mailing list