From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Lisp code blocks fail Date: Tue, 19 Nov 2013 09:09:18 -0700 Message-ID: <871u2c9xw1.fsf@gmail.com> References: <87wqkc9m43.fsf@gmail.com> <87vbzv8vsp.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51905) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vinsd-0004vP-KN for emacs-orgmode@gnu.org; Tue, 19 Nov 2013 11:10:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VinsY-0000Bk-Fn for emacs-orgmode@gnu.org; Tue, 19 Nov 2013 11:10:23 -0500 Received: from mail-pd0-x22c.google.com ([2607:f8b0:400e:c02::22c]:46285) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VinsY-0000BL-4D for emacs-orgmode@gnu.org; Tue, 19 Nov 2013 11:10:18 -0500 Received: by mail-pd0-f172.google.com with SMTP id g10so3948778pdj.3 for ; Tue, 19 Nov 2013 08:10:16 -0800 (PST) In-Reply-To: (Thomas S. Dye's message of "Sun, 17 Nov 2013 10:08:25 -1000") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: "Thomas S. Dye" Cc: Org-mode Hi Tom, Sorry about the slow reply, I've been busy as usual. I just pushed up a fix for this problem. As you've discovered, the slime function returns a two-element list holding any strings written to STDOUT, and the value of the evaluated code. In two different places org-babel-execute:lisp was trying to split this list into the separate values however by the second time the list had been reduced to "2". I've just pushed up a fix. Best, tsd@tsdye.com (Thomas S. Dye) writes: > Hi Eric, > > I understand this a bit better now. > > In org-babel-execute:lisp, the local variable result is getting set to > ("" "2"). > > With :results value, the call to read in org-babel-result-cond is being > passed "2" when it expects a list. With :results output, it gets "", > which triggers the same error. > > As I noted earlier, slime-eval executes the lisp code properly, but for > some reason it appears to be returning a string instead of a vector or a > list. > > I'm not sure what I did to make this stop working. It was fine > a week ago. I haven't changed slime in six months AFAIK. > > Other babel languages work as usual. My problem appears to be confined > to lisp. > > All the best, > Tom > > tsd@tsdye.com (Thomas S. Dye) writes: > >> Hi Eric, >> >> An edebug adventure :) >> >> AFAICT, the error is thrown by this call to a macro: >> (org-babel-result-cond ("replace") (car result)), where result has been >> set to "2" by the long (funcall) in (let). >> >> Specifically, (org-babel-lisp-vector-to-list "2") appears to trigger the >> (error)--at least that is the last code line edebug stops at before >> getting to the (error) line. The modeline says Result: "2" just before >> the error. >> >> Does this help? >> >> Tom >> >> Eric Schulte writes: >> >>> Hi Tom, >>> >>> That example works for me. Perhaps you could edebug (C-u C-M-x) the >>> `org-babel-execute:lisp' function and then run that code block again to >>> see at which statement the error is thrown. >>> >>> I'm not sure what the problem could be. >>> >>> Best, >>> >>> tsd@tsdye.com (Thomas S. Dye) writes: >>> >>>> Hi Eric, >>>> >>>> #+begin_src lisp >>>> (+ 1 1) >>>> #+end_src >>>> >>>> Debugger entered--Lisp error: (wrong-type-argument listp "2") >>>> byte-code("\211A@)\207" [result x] 2) >>>> org-babel-execute:lisp("(+ 1 1)" ((:comments . "") (:shebang . "") >>>> (:cache . "no") (:padline . "") (:noweb . "yes") (:tangle . "no") >>>> (:exports . "code") (:results . "replace") (:session . "none") >>>> (:hlines . "no") (:result-type . value) (:result-params "replace") >>>> (:rowname-names) (:colname-names))) >>>> org-babel-execute-src-block(nil) >>>> org-babel-execute-src-block-maybe() >>>> org-babel-execute-maybe() >>>> org-babel-execute-safely-maybe() >>>> run-hook-with-args-until-success(org-babel-execute-safely-maybe) >>>> org-ctrl-c-ctrl-c(nil) >>>> ad-Orig-call-interactively(org-ctrl-c-ctrl-c nil nil) >>>> (with-no-warnings (ad-Orig-call-interactively function record-flag keys)) >>>> (setq ad-return-value (with-no-warnings >>>> (ad-Orig-call-interactively function record-flag keys))) >>>> (let ((ido-ubiquitous-next-override >>>> (ido-ubiquitous-get-command-override function))) (setq ad-return-value >>>> (with-no-warnings (ad-Orig-call-interactively function record-flag >>>> keys)))) >>>> (ido-ubiquitous-with-override (ido-ubiquitous-get-command-override >>>> function) (setq ad-return-value (with-no-warnings >>>> (ad-Orig-call-interactively function record-flag keys)))) >>>> (let (ad-return-value) (ido-ubiquitous-with-override >>>> (ido-ubiquitous-get-command-override function) (setq ad-return-value >>>> (with-no-warnings (ad-Orig-call-interactively function record-flag >>>> keys)))) ad-return-value) >>>> call-interactively(org-ctrl-c-ctrl-c nil nil) >>>> >>>> Org-mode version 8.2.3b (release_8.2.3b-200-gb6522a @ >>>> /Users/dk/.emacs.d/src/org-mode/lisp/) >>>> >>>> All the best, >>>> Tom >>>> >>>> Eric Schulte writes: >>>> >>>>> Hi Tom, >>>>> >>>>> Could you provide a minimal example? I'm unable to debug from the stack >>>>> trace alone. -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D