Thorsten <quintf...@googlemail.com> writes: > Thorsten <quintf...@googlemail.com> writes: > >> Hi list, >> I'm on my way to add a new (intrpreted) lisp dialect to org-babel, but >> encounter a few difficulties. Here is my little testprogramm: >> >> --------------------- >> #+tblname: tbl1 >> | 1 | 2 | 3 | >> |---+---+---| >> | 4 | 5 | 6 | >> | 7 | 8 | 9 | >> >> >> # external evaluation (no session) >> #+srcname: pico-calc >> #+begin_src picolisp :var tab=tbl1 :results value :hlines no >> (+ (caar tab) (caar (cdr tab))) >> #+end_src >> >> # org-babel-error output: >> [/tmp/babel-22634XBd/picolisp-script-22634K-K:1] !? (display (prog (let >> (tab '((1 2 3) (4 5 6) (7 8 9))) (+ (caar tab) (caar (cdr tab)))))) >> display -- Undefined >> >> >> # with session >> #+srcname: pico-calc >> #+begin_src picolisp :var tab=tbl1 :results value :hlines no :session "p1" >> (+ (caar tab) (caar (cdr tab))) >> #+end_src >> >> #+results: pico-calc >> [finishes with no output] >> >> # session buffer: >> (prog (let (tab '((1 2 3) (4 5 6) (7 8 9))) >> (+ (caar tab) (caar (cdr tab)))) ) >> "org-babel-picolisp-eoe" >> -> 5 >> : -> "org-babel-picolisp-eoe" >> >> --------------- >> >> I do not know where undefined 'display' comes from in the error message >> - seems to be a org-babel internal thing. What can I do about that, >> where do I have to look? >> >> The session evaluation works already, but there is a problem with the >> eoe string. If I don't use it, Emacs hangs forever - waiting for the >> session to return? If I use it, the right value is calculated, but not >> returned - because the eoe string is evaluated after the source-body? >>
I assume you're using `org-babel-comint-with-output' to collect results? If you're still having issues I'd suggest looking at some of the other uses of this function in other ob-*.el files for example of ways that it's use can be customized through code in the BODY section. >> >> Thanks for any tips Thorsten > > > Sorry, I encountered the undefined 'display' in source code I copied > from ob-scheme, I deleted it, and then external evaluation succeeded - > but again without output. Hopefully ":results output" is already working and it is just ":results value" which requires more work. "results value" external evaluation generally works by wrapping the body of the code block in a form which will collect the result of the code block and print them to STDOUT. Writing this wrapped body to a temporary file, evaluating this temporary file, and then collecting the results from STDOUT. I'd suggest confirming that each of the above steps are working independently. > > So I seem to be quite close, evaluation work and the right value is > calculated - but not returned yet. > I hope the above helps. Let me know if you run into any more issues. Cheers -- Eric > > cheers > Thorsten > > -- Eric Schulte http://cs.unm.edu/~eschulte/