Eric Schulte <schulte.e...@gmail.com> writes: > 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.
yes, I use org-babel-comint-with-output more or less in the way it is used in ob-scheme.el. > >>> >>> 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. No, it isn't working - same thing as with :results value - no error messages, but nothing is returned either and no output. I have to take a deeper look at whats happening behind the scenes. > "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 Thanks so far, I'll try to understand the workings of ob.el & friends better and then hope to get things to work. cheers Thorsten