mdb@zero.arc.ab.ca (Mark Brinsmead) (04/11/91)
In article <1991Apr8.194957.25531@arc.ab.ca>, mdb@zero.arc.ab.ca (Mark Brinsmead) writes: |> ... |> 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. |> |> Just a brief update to the above. I have done a little bit of checking, and it appears that there is some doubt as to whether I can release this code to the public. I might even have to consult the (*gasp*) corporate lawyers. There appears to be enough general interest to justify posting to the net, but it could be ages before I can get an official legal opinion on this. (Of course, it could be tomorrow, too.) Hang in there! -- Mark Brinsmead (by the way, this code we're talking about is not especially difficult; all it takes is a little imagination and blind trust in hash-tables. In the worst case I can post instructions on how to write one yourself, but I'm sure it would be nice not to have to debug it.)