This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: java/kawa hello world example


* Per Bothner [2010-08-21 18:03] writes:

>> I don't know if this answers your question about swank/slime, but
>> there is swank-kawa.scm file in slime/contrib.
>
> That looks pretty minimal ...  I get the impression swank-closure or
> swank for common lisp use a smarter link between the emacs and the lisp.

Well, no.  It's the same protocol.

swank-kawa.scm doesn't get as much battle testing as the Clojure backend
so some things may be missing and some things (in particular the way
multi-threading is done) need to be rewritten, but it also has some cool
features that the Clojure backend doesn't have.  E.g. swank-kawa uses
JDI.  So Emacs can talk to the debugger, can inspect live stackframes
and can inspect objects without security restrictions (can access all
fields even those declared as private).  The Clojure backend doesn't
have that: it uses "fake" stacktraces and reflection for inspecting.

There's no real documentation of the Slime protocol, but it's fairly
simple anyway.  The best way to understand it is to fire up Slime with
a Common Lisp backend (use one of CMUCL/SBCL/CCL; those are Lisps with
the best debuggers) and then look in the *slime-events* buffer.
Everything that is received/sent on the wire is logged there.  Then read
a few of the comment sections in slime.el.

The real problem is that "interactive programming" is not on Kawa's
priority list and it's supposed to be used as batch compiler.

Helmut


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]