[comp.lang.clos] saving instances on file

mh5l+@ANDREW.CMU.EDU ("Mohammed M. Hakim") (04/09/91)

I am currently working on developing a system that will require the user
to save the instances he/she created on top of a pre-defined classes.
Does any one know of any utility in the public domain that can be used
to keep track of the instances created and later parse them on a file
for future use?
I would appreciate any suggestions regarding the best way to do such
task. Do I really need to keep track of every instance made and then
later on parse a clos code to a file that reads like:
(make-instance ...
(make-instance ...
..
for future use. Or is there anyway around this?

Maher Hakim
mh5L@andrew.cmu.edu

mdb@zero.arc.ab.ca (Mark Brinsmead) (04/09/91)

In article <gc0_Ia600iQ5E_z0Q=@andrew.cmu.edu>, mh5l+@ANDREW.CMU.EDU
("Mohammed M. Hakim") writes:
|> I am currently working on developing a system that will require the user
|> to save the instances he/she created on top of a pre-defined classes.
|> Does any one know of any utility in the public domain that can be used
|> to keep track of the instances created and later parse them on a file
|> for future use?
|> I would appreciate any suggestions regarding the best way to do such
|> task. Do I really need to keep track of every instance made and then
|> later on parse a clos code to a file that reads like:
|> (make-instance ...
|> (make-instance ...
|> ..
|> for future use. Or is there anyway around this?
|> 
|> Maher Hakim
|> mh5L@andrew.cmu.edu


   It just so happens that I *do* have such an animal.  It is basically
a set of methods which will traverse an arbitrary tree of LISP/CLOS
structures (including instances, hash-tables, arrays, strings, symbols,
and numbers)  and save them to a file in the form of lisp source code 
which, when executed, will re-create the structure(s) fully preserving
EQ'ness throughout the hierarchy.

   It works (should work) for circular structures, and should be portable
to almost any common lisp using an up-to-date version of PCL.  Because it
is based on PCL, there is no support for saving instances of structures 
defined with defstruct.  The code has been used (a bit) and should work,
but comes without any sort of warrantee or promises, WHATSOEVER.

   The only hitch is that I'm not sure whether I am allowed to release
this code to the public.  I shall begin investigating that issue now;
in the meantime, anyone interested in getting a copy should e-mail me
so I can decide whether there is sufficient interest to justify posting
this to the net. (Assuming, of course, that I am allowed to!)

   In the worst case, I can probably make the *design* available.  That
ought to give you enough information to build one of these beasties 
yourself.


-- Mark Brinsmead,
   Advanced Computing and Engineering Department,
   Alberta Research Council.
   internet:  mdb@arcsun.arc.ab.ca  --or--  mdb@[128.144.1.3]
   telephone: (403) 297-2600

pat@computer-science.strathclyde.ac.uk (04/10/91)

I'll have one please Mark.

mdb@arcsun.arc.ab.ca (Mark Brinsmead) (04/11/91)

   [...]

      The only hitch is that I'm not sure whether I am allowed to release
   this code to the public.  I shall begin investigating that issue now;
   in the meantime, anyone interested in getting a copy should e-mail me
   so I can decide whether there is sufficient interest to justify posting
   this to the net. (Assuming, of course, that I am allowed to!)

   [...]

I'd sure be interested in seeing it.


Bruce S. Seely
Rockwell International Science Center
P.O. Box 1085
Thousand Oaks, CA  91358
(805) 373-4142
bss@risc.rockwell.com

george@hsvaic.boeing.com (George Williams) (04/11/91)

[...]
>       The only hitch is that I'm not sure whether I am allowed to release
>    this code to the public.  I shall begin investigating that issue now;
>    in the meantime, anyone interested in getting a copy should e-mail me
>    so I can decide whether there is sufficient interest to justify posting
>    this to the net. (Assuming, of course, that I am allowed to!)
[...]

I'd like a copy!

BTW, Mark: I tried replying via e-mail, but it bounced.

George Williams
Boeing Computer Services   Internet: george@hsvaic.boeing.com
POBox 240002, M/S JY-58    UUCP: ...!uw-beaver!bcsaic!hsvaic!george
Huntsville AL 35824-6402   Phone: 205+464-4968 FAX: 205+464-4930 BTN: 464-4968