emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Herbert Sitz <hsitz@nwlink.com>
To: emacs-orgmode@gnu.org
Subject: Re: org-babel -- Improper syntax error in session mode?
Date: Tue, 21 Jun 2011 15:35:28 +0000 (UTC)	[thread overview]
Message-ID: <loom.20110621T165605-813@post.gmane.org> (raw)
In-Reply-To: m1ei2nvenf.fsf@tsdye.com

Thomas S. Dye <tsd <at> tsdye.com> writes:
> 
> Aloha Herbert,
> 
> I think you're right about the potential to improve the documentation.
> That's an on-going process.  Could you suggest some specific changes?
> 
> All the best,
> Tom

Tom -- 

I would suggest just adding specific warnings that session-based evaluation may
throw syntax errors with valid code.

Here's what Org manual says regarding :session evaluation with :results output':

"The code is passed to the interpreter running as an interactive Emacs inferior
process. The result returned is the concaOrg tenation of the sequence of (text)
output from the interactive interpreter. Notice that this is not necessarily the
same as what would be sent to STDOUT if the same code were passed to a
non-interactive interpreter running as an external process. . . ."
[http://orgmode.org/manual/Results-of-evaluation.html#Results-of-evaluation]

All that needs to be added is a warning:

"IMPORTANT:  Note that Org provides only a thin wrapper around a language's
interactive shell, so valid code that executes properly in non-session mode may
fail in :session mode.  This is because Org feeds the lines in a :session block
to the interactive interpreter exactly as written.  In come cases the lines may
require special formatting in the source block to be executed properly in the
interactive shell.  For example: . . . "

I think the above issue should be moot for some of the main interpreted
languages (viz., Python, Perl, Ruby) where there are various ways to execute a
block of code non-interactively despite being in the interactive shell.  (One of
those methods is the example I gave in previous message.)  In that case
identical code will run the same whether it's in an interactive-interpreter
session or not.  It seems to me that switching to that approach for languages
that support it should both (1) simplify the Org Babel code, and (2) provide Org
users with more flexibility and power.

Also, it seems the real power of :session evaluation is to share state between
Org/Babel source code blocks, not merely to act as a kind of Org-internal
scratchpad.  As a user trying to take advantage of that state-sharing power I
would generally want my Org document exports to start from fresh sessions.  That
is, I would write my :session blocks so that they depended on results of code
run in previous :session blocks, BUT I would want the first :session block to
start with a fresh session,with a known state.   So on export I would generally
want any existing named session to be closed and restarted anew for an 
Org export.

I hope that all makes sense.  I should say I'm not a big Babel user, and I could
easily be misunderstanding something.  But it seems this is the way the
:session-based stuff should work, when possible.

-- Herb

  reply	other threads:[~2011-06-21 15:35 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-19 21:54 org-babel -- Improper syntax error in session mode? Herbert Sitz
2011-06-19 23:21 ` Eric Schulte
2011-06-20  1:59   ` Herbert Sitz
2011-06-20  2:12   ` Herbert Sitz
2011-06-20  3:17     ` Nick Dokos
2011-06-20  3:46       ` Herbert Sitz
2011-06-20 19:23       ` Eric Schulte
2011-06-20 20:45         ` Herbert Sitz
2011-06-20 21:15           ` Eric Schulte
2011-06-20 23:16             ` Herbert Sitz
2011-06-21  0:08               ` Nick Dokos
2011-06-21  0:27                 ` Herbert Sitz
     [not found]                   ` <hesitz@gmail.com>
2011-06-21  1:17                     ` Nick Dokos
2011-06-21  2:19               ` Eric Schulte
2011-06-21  5:13                 ` Herbert Sitz
2011-06-21  7:15                   ` Thomas S. Dye
2011-06-21 15:35                     ` Herbert Sitz [this message]
2011-06-21 16:27                       ` Thomas S. Dye
2011-06-21 17:42                         ` Eric Schulte
2011-06-21 17:51                         ` Herbert Sitz
2011-06-21 17:52                       ` Eric Schulte
2011-06-27 18:09                         ` Herbert Sitz
2011-06-21 17:26                   ` Eric Schulte
2011-06-27 18:22                     ` Herbert Sitz
2011-06-20 21:18     ` Jambunathan K

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=loom.20110621T165605-813@post.gmane.org \
    --to=hsitz@nwlink.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).