emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Brian Beckman <bc.beckman@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Bug? Improper interaction with python variable _ ?
Date: Sun, 4 Oct 2015 22:12:08 -0700	[thread overview]
Message-ID: <CAK2VK6uScVfayyRtMA0KgUJdYgwxC8FdowgxLPjJ_U0p4Bi16w@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1866 bytes --]

Please see the gist below for a self-explaining example
copied here for convenience.  Emacs 24.5.1 with org-mode
8 something (not sure how to get it to report its exact
version)... a very late version, I am sure.  Verified with
no init.el, that is, with emacs -Q

https://gist.github.com/rebcabin/37f800da658f4b23ceaa

#+TITLE: Org-Babel Bug?
#+AUTHOR: Brian Beckman
#+EMAIL: bc.beckman@gmail.com

#+BEGIN_SRC emacs-lisp :exports results :results none
  (setq org-confirm-babel-evaluate nil)
  (org-babel-map-src-blocks nil (org-babel-remove-result))
#+end_src

* Mystery Number 1

The first line of the first block must be blank, or we must =C-c C-c= the block
two times. But we want to eval the entire file /via/ =C-c C-v C-b=, and we found
that the first line must be empty.

If you =C-c C-v C-b= this entire file, the python session buffer, named
=*bug-org-babel*=, contains an error message that suggests the variable =_= is
implicated in an error.

We expect the value of this first block to be 999.  Make sure that the python
session is clear by typing =quit()=, then evaluate this entire file by
=C-c C-v C-b=.

#+NAME: probe
#+BEGIN_SRC python :session bug-org-babel :exports both :results value

  999
#+END_SRC

#+RESULTS: probe
: 999

* Mystery Number 2

Now, we set the value of the variable =_= to something arbitray. In a real
scenario, this variable may be set casually in a loop or some other context. The
variable =_= is often recommended for /ad-hoc/ use, as in "don't care."

#+NAME: second-probe
#+BEGIN_SRC python :session bug-org-babel :exports both :results value
  _ = 42
  _
#+END_SRC

#+RESULTS: second-probe
: 42

But now, all blocks with =:results value= return the value of =_=. We broke
org-babel!

#+NAME: third-probe
#+BEGIN_SRC python :session bug-org-babel :exports both :results value
  999
#+END_SRC

#+RESULTS: third-probe
: 42

[-- Attachment #2: Type: text/html, Size: 2549 bytes --]

             reply	other threads:[~2015-10-05  5:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-05  5:12 Brian Beckman [this message]
2015-10-05  5:22 ` Bug? Improper interaction with python variable _ ? Brian Beckman
2015-10-29 14:05 ` Aaron Ecay

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK2VK6uScVfayyRtMA0KgUJdYgwxC8FdowgxLPjJ_U0p4Bi16w@mail.gmail.com \
    --to=bc.beckman@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).