* Bug: Problems with ob-scheme in geiser-eval--retort-output [9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/)] @ 2019-10-21 2:19 Vladimir Nikishkin 2019-10-21 10:42 ` Neil Jerram 0 siblings, 1 reply; 4+ messages in thread From: Vladimir Nikishkin @ 2019-10-21 2:19 UTC (permalink / raw) To: emacs-orgmode Remember to cover the basics, that is, what you expected to happen and what in fact did happen. You don't know how to make a good report? See https://orgmode.org/manual/Feedback.html#Feedback Your bug report will be posted to the Org mailing list. ------------------------------------------------------------------------ Hello, everyone. Can we replace the (set) on line 177 of ob-scheme.el with the following form: (setq result (if output (let ((g-r-o (geiser-eval--retort-output ret))) (if g-r-o g-r-o "Geiser-eval--retort-output returned nil.\nThe interpreter produced no output\nor there is a bug in geiser (likely!)")) (geiser-eval--retort-result-str ret ""))))) I am not super sure about what's going on there, but I think that output can never be an empty list, because in the worst case it is an empty string. (But I wouldn't vouch for this.) Sorry for not sending a diff. Cheers, Lockywolf Emacs : GNU Emacs 26.3 (build 1, x86_64-slackware-linux-gnu, GTK+ Version 3.24.10) of 2019-08-30 Package: Org mode version 9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/) current state: ============== (setq org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-after-todo-state-change-hook '(org-clock-out-if-current) org-babel-after-execute-hook '((lambda nil (if org-inline-image-overlays (progn (org-redisplay-inline-images))) ) ) org-metadown-hook '(org-babel-pop-to-session-maybe) org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function org-pretty-entities t org-odt-format-headline-function 'org-odt-format-headline-default-function org-agenda-files '("~/DevLinux/chibi-sicp/index.org" "~/Personal_Planner/Planner.org") org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default org-modules '(org-habits org-w3m org-bbdb org-bibtex org-docview org-gnus org-info org-irc org-mhe org-rmail) org-plantuml-jar-path "/usr/local/bin/plantuml.jar" org-export-creator-string "Emacs 26.3 (Org mode 9.1.9)" org-mode-hook '(org-eldoc-load turn-on-org-cdlatex (lambda nil (imenu-add-to-menubar "Imenu")) #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-show-block-all append local] 5] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes) org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-archive-hook '(org-attach-archive-delete-maybe) org-confirm-elisp-link-function 'yes-or-no-p org-agenda-before-write-hook '(org-agenda-add-entry-text) org-metaup-hook '(org-babel-load-in-session-maybe) org-bibtex-headline-format-function #[257 "\300\236A\207" [:title] 3 "\n\n(fn ENTRY)"] org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"] org-babel-pre-tangle-hook '(save-buffer) org-latex-compiler "lualatex" org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-babel-load-languages '((plantuml . t) (C . t) (scheme . t) (latex . t)) org-log-done 'time org-startup-align-all-tables t org-html-creator-string "<a href=\"https://www.gnu.org/software/emacs/\">Emacs</a> 26.3 (<a href=\"https://orgmode.org\">Org</a> mode 9.1.9)" org-ascii-format-drawer-function #[771 "\207" [] 4 "\n\n(fn NAME CONTENTS WIDTH)"] org-src-lang-modes '(("redis" . redis) ("php" . php) ("arduino" . arduino) ("ocaml" . tuareg) ("elisp" . emacs-lisp) ("ditaa" . artist) ("asymptote" . asy) ("dot" . fundamental) ("sqlite" . sql) ("calc" . fundamental) ("C" . c) ("cpp" . c++) ("C++" . c++) ("screen" . shell-script) ("shell" . sh) ("bash" . sh)) org-catch-invisible-edits t org-occur-hook '(org-first-headline-recenter) org-edit-src-auto-save-idle-delay 15 org-agenda-include-diary t org-structure-template-alist '(("E" "#+begin_src elisp :exports both :results output\n?\n#+end_src") ("SV" "#+begin_src scheme :exports both :results value\n?\n#+end_src") ("SO" "#+begin_src scheme :exports both :results output\n?\n#+end_src") ("p" "#+begin_src plantuml :exports both :file ? \n#+end_src ") ("s" "#+BEGIN_SRC ?\n\n#+END_SRC") ("e" "#+BEGIN_EXAMPLE\n?\n#+END_EXAMPLE") ("q" "#+BEGIN_QUOTE\n?\n#+END_QUOTE") ("v" "#+BEGIN_VERSE\n?\n#+END_VERSE") ("V" "#+BEGIN_VERBATIM\n?\n#+END_VERBATIM") ("c" "#+BEGIN_CENTER\n?\n#+END_CENTER") ("C" "#+BEGIN_COMMENT\n?\n#+END_COMMENT") ("l" "#+BEGIN_EXPORT latex\n?\n#+END_EXPORT") ("L" "#+LaTeX: ") ("h" "#+BEGIN_EXPORT html\n?\n#+END_EXPORT") ("H" "#+HTML: ") ("a" "#+BEGIN_EXPORT ascii\n?\n#+END_EXPORT") ("A" "#+ASCII: ") ("i" "#+INDEX: ?") ("I" "#+INCLUDE: %file ?")) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-edit-src-turn-on-auto-save t org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) org-hierarchical-todo-statistics nil org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function org-babel-tangle-lang-exts '(("clojure" . "clj") ("latex" . "tex") ("D" . "d") ("C++" . "cpp") ("emacs-lisp" . "el") ("elisp" . "el")) org-format-latex-options '(:foreground default :background default :scale 2.0 :html-foreground "Black" :html-background "Transparent" :html-scale 1.0 :matchers ("begin" "$1" "$" "$$" "\\(" "\\[")) org-confirm-shell-link-function 'yes-or-no-p org-link-parameters '(("id" :follow org-id-open) ("rmail" :follow org-rmail-open :store org-rmail-store-link) ("mhe" :follow org-mhe-open :store org-mhe-store-link) ("irc" :follow org-irc-visit :store org-irc-store-link) ("info" :follow org-info-open :export org-info-export :store org-info-store-link) ("gnus" :follow org-gnus-open :store org-gnus-store-link) ("docview" :follow org-docview-open :export org-docview-export :store org-docview-store-link) ("bibtex" :follow org-bibtex-open :store org-bibtex-store-link) ("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete org-bbdb-complete-link :store org-bbdb-store-link) ("w3m" :store org-w3m-store-link) ("file+sys") ("file+emacs") ("doi" :follow org--open-doi-link) ("elisp" :follow org--open-elisp-link) ("file" :complete org-file-complete-link) ("ftp" :follow (lambda (path) (browse-url (concat "ftp:" path)))) ("help" :follow org--open-help-link) ("http" :follow (lambda (path) (browse-url (concat "http:" path)))) ("https" :follow (lambda (path) (browse-url (concat "https:" path)))) ("mailto" :follow (lambda (path) (browse-url (concat "mailto:" path)))) ("news" :follow (lambda (path) (browse-url (concat "news:" path)))) ("shell" :follow org--open-shell-link)) org-latex-format-headline-function 'org-latex-format-headline-default-function org-agenda-start-with-follow-mode t org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-image-actual-width nil org-html-use-infojs t org-html-format-headline-function 'org-html-format-headline-default-function org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate org-use-speed-commands t org-latex-bib-compiler "biber" org-default-notes-file "~/org/notes.org" ) -- -- Vladimir Nikishkin (MiEr, lockywolf) ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Bug: Problems with ob-scheme in geiser-eval--retort-output [9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/)] 2019-10-21 2:19 Bug: Problems with ob-scheme in geiser-eval--retort-output [9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/)] Vladimir Nikishkin @ 2019-10-21 10:42 ` Neil Jerram [not found] ` <c62d8deb-1ef7-378a-60f5-b7775f34a6d5@gmail.com> 0 siblings, 1 reply; 4+ messages in thread From: Neil Jerram @ 2019-10-21 10:42 UTC (permalink / raw) To: Vladimir Nikishkin; +Cc: Org Mode List [-- Attachment #1: Type: text/plain, Size: 891 bytes --] Hi Vladimir, On Mon, 21 Oct 2019 at 03:21, Vladimir Nikishkin <lockywolf@gmail.com> wrote: > > Can we replace the (set) on line 177 of ob-scheme.el with the following > form: > (setq result (if output > (let ((g-r-o (geiser-eval--retort-output ret))) > (if g-r-o > g-r-o > "Geiser-eval--retort-output returned nil.\nThe > interpreter produced no output\nor there is a bug in geiser (likely!)")) > (geiser-eval--retort-result-str ret ""))))) > > I am not super sure about what's going on there, but I think that output > can never be an empty list, because in the worst case it is an empty > string. > (But I wouldn't vouch for this.) > Can you explain more? Have you seen cases where (geiser-eval--retort-output ret) returns nil, even though you say just above that it can never do that? Best wishes, Neil [-- Attachment #2: Type: text/html, Size: 1362 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <c62d8deb-1ef7-378a-60f5-b7775f34a6d5@gmail.com>]
* Re: Bug: Problems with ob-scheme in geiser-eval--retort-output [9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/)] [not found] ` <c62d8deb-1ef7-378a-60f5-b7775f34a6d5@gmail.com> @ 2019-10-21 14:46 ` Neil Jerram [not found] ` <80649399-906c-76fd-dd0e-2040fd62f9de@gmail.com> 0 siblings, 1 reply; 4+ messages in thread From: Neil Jerram @ 2019-10-21 14:46 UTC (permalink / raw) To: Vladimir Nikishkin, Org Mode List [-- Attachment #1: Type: text/plain, Size: 1549 bytes --] On Mon, 21 Oct 2019 at 15:16, Vladimir Nikishkin <lockywolf@gmail.com> wrote: > Yeah. The "output" is not the result of geiser's elisp functions, as far > as I understand, it comes from comint, which reads it from a scheme > interpreter, and is expected to be formatted specifically to be fed into > geiser-eval--retort-output by the geiser scheme functions (running > inside a scheme interpreter). > > So "output" is never 'nil, because comint, when scheme produces some > rubbish, just makes it an empty string, which is not 'nil. > > Then, "output" is expected to be "retorted" back from a serialized > scheme expression into an elisp expression by > geiser-eval--retort-output. And this actually may and produce a 'nil, > but there is no check for it. > > So, again, both of the geiser steps (namely, (a) serializing a sexp in > scheme, and (b) de-serializing it in geiser-eval--retort-output) may fail. > I agree that it's fragile for geiser/scheme to output a sexp that it hopes geiser/elisp will be able to read back. (I'm guilty of doing that in the past too!) Do you have a specific example of that? It feels like the right thing to do would be to report that to the Geiser list, as this could and should be fixed entirely within the Geiser code. > > Yes, I have seen this going on, actually quite a lot, because both > geiser and different scheme interpreters are in constant development and > get broken every other day. > I use Org with Guile 2.2.3 (via Geiser), and it seems a pretty stable setup to me. Best wishes, Neil [-- Attachment #2: Type: text/html, Size: 2198 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <80649399-906c-76fd-dd0e-2040fd62f9de@gmail.com>]
* Re: Bug: Problems with ob-scheme in geiser-eval--retort-output [9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/)] [not found] ` <80649399-906c-76fd-dd0e-2040fd62f9de@gmail.com> @ 2019-10-22 1:35 ` Vladimir Nikishkin 0 siblings, 0 replies; 4+ messages in thread From: Vladimir Nikishkin @ 2019-10-22 1:35 UTC (permalink / raw) To: Neil Jerram, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 2614 bytes --] On 21/10/2019 23:24, Vladimir Nikishkin wrote: > Well, checking for "output" doesn't seem to be useful any way, since > "output" is never 'nil. > > Regarding the fact that the error should be reported to the geiser > mailing list, that's entirely true. The problem is that the person who > would be responsible for this error would be me. :) At least for the > chibi-scheme part. > > I don't think that having a few extra checks on the org/geiser interface > is bad, especially there is also comint coming into play. I can imagine > valid reasons when "output" is not a valid serialized scheme expression. > > On 21/10/2019 22:46, Neil Jerram wrote: >> On Mon, 21 Oct 2019 at 15:16, Vladimir Nikishkin <lockywolf@gmail.com >> <mailto:lockywolf@gmail.com>> wrote: >> >> Yeah. The "output" is not the result of geiser's elisp functions, as far >> as I understand, it comes from comint, which reads it from a scheme >> interpreter, and is expected to be formatted specifically to be fed into >> geiser-eval--retort-output by the geiser scheme functions (running >> inside a scheme interpreter). >> >> So "output" is never 'nil, because comint, when scheme produces some >> rubbish, just makes it an empty string, which is not 'nil. >> >> Then, "output" is expected to be "retorted" back from a serialized >> scheme expression into an elisp expression by >> geiser-eval--retort-output. And this actually may and produce a 'nil, >> but there is no check for it. >> >> So, again, both of the geiser steps (namely, (a) serializing a sexp in >> scheme, and (b) de-serializing it in geiser-eval--retort-output) may >> fail. >> >> >> I agree that it's fragile for geiser/scheme to output a sexp that it >> hopes geiser/elisp will be able to read back. (I'm guilty of doing that >> in the past too!) >> >> Do you have a specific example of that? It feels like the right thing >> to do would be to report that to the Geiser list, as this could and >> should be fixed entirely within the Geiser code. >> >> >> >> Yes, I have seen this going on, actually quite a lot, because both >> geiser and different scheme interpreters are in constant development and >> get broken every other day. >> >> >> I use Org with Guile 2.2.3 (via Geiser), and it seems a pretty stable >> setup to me. >> >> Best wishes, >> Neil >> A particularl example could be, perhaps, when an interpreter crashes and produces something like "Segmentation fault", which is not a valid geiser-sexp. [-- Attachment #2: pEpkey.asc --] [-- Type: application/pgp-keys, Size: 1799 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-10-22 1:36 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-10-21 2:19 Bug: Problems with ob-scheme in geiser-eval--retort-output [9.2.6 (9.2.6-4-ge30905-elpa @ /home/lockywolf/.emacs.d/elpa/org-20191021/)] Vladimir Nikishkin 2019-10-21 10:42 ` Neil Jerram [not found] ` <c62d8deb-1ef7-378a-60f5-b7775f34a6d5@gmail.com> 2019-10-21 14:46 ` Neil Jerram [not found] ` <80649399-906c-76fd-dd0e-2040fd62f9de@gmail.com> 2019-10-22 1:35 ` Vladimir Nikishkin
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.