freenode/#abcl - IRC Chatlog
Search
3:50:01
etimmons
Nightly images aren't allowed in the Official Images program, but it'll still be nice to have them in the clfoundation org
11:53:17
letest1
Hi, I spent another 20 minutes testing the integration java/abcl. Now I read from an external file. I define two function, ONE (which returns "one") and TWO (which returns "two") and end the file calling (two). With my surprise the result of interpreter.eval(lispCode) is 'ONE' (the name of the function, not its return value), while I expected it to be "two" (the return value of the function TWO).
11:54:39
no-defun-allowed
My first guess is that you put all the definitions in one string, ABCL read the first expression and evalled it, and then dropped the rest.
11:55:31
no-defun-allowed
In which case, I would put one expression per .eval call, and the last one will have the value you want.
11:57:11
letest1
But then the Java code has to know how the lisp code is formatted. It's not very maintainable...
11:58:23
no-defun-allowed
Expressions are expressions regardless of formatting, but I get your point.
11:59:10
letest1
also, if there is an error in the expression, the thread gets locked in the ABCL repl.
12:06:28
letest1
(anyway, I pushed the code: https://github.com/TristanoSuriani/abcl-test/blob/master/src/main/java/nl/tsuriani/AbclTestResource.java and https://github.com/TristanoSuriani/abcl-test/blob/master/src/main/resources/test.lisp
12:35:08
robertm
I don't have time to look at the code, and I don't know much about java/lisp integration, and I'm about to be AFK, but I do have time to suggest that you can convert multiple expressions into a single expression by putting them inside PROGN, e.g. "(progn (defun one () 1) (defun two () (+ (one) (one))) (two))".