[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Initializing objects with lisp
From: |
Marcus G. Daniels |
Subject: |
Re: Initializing objects with lisp |
Date: |
11 Jun 1999 17:58:31 -0700 |
User-agent: |
Gnus/5.070084 (Pterodactyl Gnus v0.84) Emacs/20.3.10 |
>>>>> "AL" == Alex Lancaster <address@hidden> writes:
AL> Advantages of using the Lisp archiver over the
AL> Object{Loader,Saver} method are:
Yep, Object{Loader,Saver} were the from era of ad-hoc closed-world
Swarm features. Nowadays, we're trying to address integration with
popular research tools, and preferably free ones. :-)
The Lisp archiver backend requires grouping output into expressions,
which has two potential disadvantages, relative to the HDF5 backend:
1) Memory overhead
2) Collect/save pattern of use
At some point a call to `-save' is needed which groups a the objects
under the Archiver's management and spits output their name-tagged
serialized expressions.
On the other hand, the Lisp archiver:
1) doesn't require HDF5 to be installed
(e.g. it's unknown by us whether HDF5 works with Swarm on Windows,
although there is a port)
2) is straightforward for stream-oriented use, e.g. over sockets.
3) uses the syntax of an interpreted programming language.
When someone gets around to dropping a Scheme interpreter into
Swarm, it will be possible to have model code and data live in
harmony. Models could load (and mutate) agent behaviors as well
as agent state.
Btw, we are taking steps to make both modes (HDF5 and Lisp) of
archiver use practical for time series model output. With any luck,
the 2.0 release will make it feasible to output thousands of
time-tagged objects for statistical analysis (in 1.4.1, more objects
archived means more virtual memory consumed).
AL> The next release of both `mousetrap' and
AL> `heatbugs' actually has this implemented by default, but you can
AL> experiment with the following code, which will work with Swarm
AL> 1.4.1.
Sugarscape can also use the Archiver for its sugar distribution map.
(One can load the current portable graymap in R and save it as HDF5.
Swarm can then recover the Discrete2d object from the HDF5 file.)
==================================
Swarm-Support is for discussion of the technical details of the day
to day usage of Swarm. For list administration needs (esp.
[un]subscribing), please send a message to <address@hidden>
with "help" in the body of the message.