From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: Error when running org-babel-execute-buffer -- Wrong type argument: consp, nil Date: Fri, 19 Nov 2010 01:19:08 -0700 Message-ID: <87lj4pener.fsf@gmail.com> References: <0D7DA87B-B899-4BBF-9DAC-A39F0DB9E141@fastmail.net> <87vd48ncwf.fsf@gmail.com> <12A10080-909D-4C02-8081-2AAD03C2D113@fastmail.net> <4281.1289227525@gamaville.dokosmarshall.org> <87lj4vvhup.wl%dmaus@ictsoc.de> <874obfjxz3.fsf@gmail.com> <20160.1290152806@gamaville.dokosmarshall.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from [140.186.70.92] (port=46730 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PJMBl-0008Ol-FG for emacs-orgmode@gnu.org; Fri, 19 Nov 2010 03:19:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PJMBg-0002jH-HN for emacs-orgmode@gnu.org; Fri, 19 Nov 2010 03:19:21 -0500 Received: from mail-yx0-f169.google.com ([209.85.213.169]:45320) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PJMBg-0002j8-Eo for emacs-orgmode@gnu.org; Fri, 19 Nov 2010 03:19:16 -0500 Received: by yxt3 with SMTP id 3so3034601yxt.0 for ; Fri, 19 Nov 2010 00:19:15 -0800 (PST) In-Reply-To: <20160.1290152806@gamaville.dokosmarshall.org> (Nick Dokos's message of "Fri, 19 Nov 2010 02:46:46 -0500") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: nicholas.dokos@hp.com Cc: David Maus , Konrad Hinsen , emacs-orgmode Mailinglist , Ista Zahn --=-=-= Content-Type: text/plain Thanks for the suggestion Nick, I've moved the macro definition up towards the top of ob.el, and for good measure I am now autoloading it. After this change I am able to call both ob-execute-subtree and ob-execute-buffer without error on the following simple Org-mode file --=-=-= Content-Type: text/org Content-Disposition: inline; filename=example.org * top ** first #+begin_src emacs-lisp (+ 1 1 1 1 1) #+end_src ** second #+begin_src emacs-lisp (message "even more") #+end_src --=-=-= Content-Type: text/plain Could you and/or Konrad let me know if this now works on your systems, and if not could you send me an example file that exercises the error? Thanks -- Eric Nick Dokos writes: > Eric Schulte wrote: > >> Thanks for doing most of the debugging on this. >> >> After much banging of my head, I stumbled onto this very nice page of >> common problems with compiled Macros in Emacs Lisp [1], it looks like >> this sort of thing has happened before. :) >> >> I realized I was guilty of one of the macro sins specified above, and >> after rectifying that design flaw I believe (at least for my simple test >> case) this error should be fixed. Please let me know if you continue to >> run into this problem with the byte-compiled version of this macro. >> >> ... >> >> Footnotes: >> [1] >> http://www.gnu.org/s/emacs/manual/html_node/elisp/Problems-with-Macros.html >> > > After Konrad reported that this doesn't fix it, I tried it too with his > simple org file and got the same error [fn:1]. > > So after trying the usual debugging tricks and coming up empty, I took a > look at the ob.elc file and the problem was obvious: the macro was not > expanded during compilation. I'm not sure how exactly we get to the > ``consp nil'' error that way, but I'm pretty sure that the solution is > to change the order of the macro and the function that uses it in ob.el, > so the definition precedes the use. > > Cheers, > Nick > > PS. I can now go to bed in peace... > > Footnotes: > [fn:1] OT to the above: I had to name the session , otherwise python would report > > ,---- > | Traceback (most recent call last): > | File "", line 5, in > | File "", line 3, in main > | NameError: global name 'days' is not defined > `---- > > Here for reference is my modification to Konrad's original example: > > * Vacation days > #+begin_src python :session foo :results silent > days = 32+2+9 > #+end_src > > ** Vacation <2010-10-28 Thu>-<2010-10-29 Fri> > #+begin_src python :session foo :results silent > days -= 2 > #+end_src > > ** Remaining days > #+begin_src python :session foo :results value > days > #+end_src > > #+results: > : 41 --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --=-=-=--