[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Scheme babel error

From: Lawrence Bottorff
Subject: Re: [O] Scheme babel error
Date: Tue, 30 Aug 2016 14:07:11 -0400

Actually, I found that thread (https://lists.gnu.org/archive/html/emacs-orgmode/2015-09/msg00390.html) and looked thrugh it (not as good as "looking through" it), but didn't make the connection that it was because of the boolean -- again. What threw me was how this time it seemed to just be a source block execute of the function, whereas before it was the actual code -- as if the problem in ob-scheme.el had escaped and hidden somewhere new.

How does one make an official bug report and/or fix?

On Tue, Aug 30, 2016 at 1:16 PM, Nick Dokos <address@hidden> wrote:
Lawrence Bottorff <address@hidden> 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)
> 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>"))
                       (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>"))

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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]