swarm-support
[Top][All Lists]
Advanced

[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: 14 Jun 1999 10:31:38 -0700
User-agent: Gnus/5.070084 (Pterodactyl Gnus v0.84) Emacs/20.3.10

>>>>> "B" == Benedikt Stefansson <address@hidden> writes:

B> I assume that there is a Scheme interpreter or two available in
B> C that could be wrapped into ObjC?

Yep, http://www.gnu.org/software/guile.

Various people have done work integrating Guile and Objective C.
The GNUstep project has a package for this:

  http://www.tiptree.demon.co.uk/gstep/guile/gstep-guile.tar.gz

..but I don't that gstep-guile would be appropriate for Swarm because
it relies heavily on OpenStep foundation classes.  (I'm just trying to
show that Scheme/ObjC integration things are past the proof-of-concept
phase...)

B> Would the Archiver/Probe interface already support dynamic binding
B> between Scheme code and agent behavior in Objective-C or do you
B> think that we would need a schemobjc lib a la tclobjc?

You mean what happens when you probe an agent written outside of
Objective C?  Well, at the moment we don't have a implementation for
that (not even for Java).  I think what we should probably do is have
VarProbe notice that what it is probing is a proxy and then
interrogate or frob it by calling a standard serialization method.

In Objective C, you can query the runtime and get back a list of
pretty much anything you want (ivars, methods, protocols, etc).  In a
liberal interpreted environment like Guile, you can then install all
this information on-the-fly.  Restated, given a bunch of [Swarm]
shared libraries, it's possible to write a fairly simple Scheme
program for Guile to sweep over all the kinds of objects, methods,
etc. and create counterparts in Guile.  What's missing is that Guile
lacks a standard object system, which is said to be coming in the next
release -- I think it will be like CLOS.

In Java, things are a bit more painful because the protocols for
getting and mutating runtime information are somewhat strict.  
On result of this is that we've got 4mb of compiled stubs in a shared library!


                  ==================================
   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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]