Lawrence Bottorff <borg...@gmail.com> writes: > I'm using Racket with Geiser and I get this error: > > executing Scheme code block... > => #f > org-babel-scheme-execute-with-geiser: Invalid read syntax: "#" > > when in an org-mode file this code > > #+begin_src scheme :exports both :session ch3 > (define (bool-imply2 x y) > (or (not x) y)) > #+end_src > > is run (C-c-c) > > #+BEGIN_SRC scheme :session ch3 > (bool-imply2 #t #f) > #+END_SRC > > In the Racket "ch3" REPL session (bool-imply2 #t #f) works fine. I discovered > this problem when I first > tried a simple export to HTML of the buffer. It seems to not like the second > boolean parameter. So > switching the parameters then complains about #t . What might be going on? > BTW, does an export try to > "run" all the code blocks, i.e., why did I find this when I was exporting to > HTML? > > LB >
Aargh - somebody (maybe you?) had run into this a long time ago and I had suggested a possible fix, but with the demise of the gmane site, I cannot find the thread - how do people search the ML nowadays? In any case, there is a basic error in ob-scheme.el, line 176 (at least in the version that I have): ... (setq result (if (or (string= result "#<void>") (string= result "#<unspecified>")) nil (read result))))) ;;;<<<<<<<<<<<<<<<< ... The (read result) is bogus: it tries to use the emacs lisp reader to parse a string that contains a scheme expression. IIRC, I suggested changing it to just result: ... (setq result (if (or (string= result "#<void>") (string= result "#<unspecified>")) nil result)))) ... but I didn't (and still don't) know if that breaks anything else. Plus I'm on a machine that doesn't have geiser so I can't even test the basic "fix", so I hope I've got it right. I'll try to follow up tonight from a machine that has geiser installed. -- Nick