>>>>> "GO" == Gadi ORON writes: GO> Did anyone manage to read/write long doubles from lisp files? The program below works for me with today's snapshot: ftp://ftp.swarm.org/pub/swarm/src/testing/swarm-2000-07-02.tar.gz Note that the text->double conversion is done with strtod, so you'll only preserve the precision of a double. It would be nice to have an autoconf check toi activate use of `strtold' for systems that support it (e.g. Redhat). #import // initSwarmBatch #import // CreateDrop @interface Agent: CreateDrop { long double val; } - (long double)getVal; @end @implementation Agent + createBegin: aZone { Agent *obj = [super createBegin: aZone]; obj->val = 0.02; return obj; } - (long double)getVal { return val; } @end int main (int argc, const char **argv) { initSwarmBatch (argc, argv); { id agent; if ((agent = [lispAppArchiver getObject: "agent"])) printf ("val: %Lf\n", [agent getVal]); else { agent = [Agent create: globalZone]; [lispAppArchiver putDeep: "agent" object: agent]; [lispAppArchiver sync]; } } return 0; } /* Local Variables: compile-command: "$SWARMHOME/bin/libtool-swarm --mode=link gcc -DAPPNAME=archiveLongDouble -o archiveLongDouble -Wall -Werror -g -Wno-import -I$SWARMHOME/include/swarm -L$SWARMHOME/lib/swarm archiveLongDouble.m -lswarm -lobjc" End: */