[armedbear-devel] Embedding ABCL into IntelliJ IDEA and writing plugins

Anton Vodonosov avodonosov at yandex.ru
Sun Aug 23 00:54:42 UTC 2009


Hello Alessio,

on Thursday, August 20, 2009, 12:45:44 PM Alessio wrote:

>> - ABCL is more suited to be embedded into J editor, than
>>  into something else. For example Interpreter.kill method
>>  stops ABCL like:
>>
>>     if (jlisp) {
>>        ... close input output streams
>>     }
>>     else
>>         System.exit(status);
>>
>>  I.e. if we call Interpretter.kill() in IDEA plugin, it will
>>  exit whose IDEA process

> Keep in mind that, in general, the ABCL interpreter is a singleton,
> and "killing" it is not that easy: besides open streams, other data is
> kept around so reverting the interpreter to a clean state is quite
> complicated.

I think if streams are closed, it will stop read-eval-print loop.
There is a static method Interpreter.dispose() which assigns the
static field "interpreter" to null. Therefore I hope everything
will be garbage collected.

> Why are you trying to kill it in the first place?

Well, for example I want restart Lisp without closing IDEA. Or
just to stop Lisp if I don't need it anymore.

It was only example of where ABCL is more suited for J editor than
to anything else. Another example is method
Interpreter.createJLispInstance. It accepts input/output streams.

For non J editor case, there is no factory method with input/output
stream parameters.

But, as I said, it's a minor problem.

Best regards,
- Anton






More information about the armedbear-devel mailing list