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