emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [PATCH] Make lexical eval default for elisp src blocks
@ 2016-04-17  1:05 John Kitchin
  2016-04-17 23:47 ` Adam Porter
  2016-04-18 16:38 ` Nicolas Goaziou
  0 siblings, 2 replies; 11+ messages in thread
From: John Kitchin @ 2016-04-17  1:05 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: John Kitchin

Set default in `org-babel-default-header-args:emacs-lisp'. Add an
optional argument to the eval function.
---
 etc/ORG-NEWS          | 11 +++++++++++
 lisp/ob-emacs-lisp.el | 29 ++++++++++++++++++++---------
 2 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 6b1d9d5..99241e2 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -467,6 +467,17 @@ docstring for more information.
 - ~org-latex-format-inlinetask-function~
 - ~org-link-search~
 ** New features
+*** Default lexical evaluation of emacs-lisp src blocks
+Emacs-lisp src blocks in babel are now evaluated using lexical scoping. There is a new header to control this behavior.
+
+The default results in an eval with lexical scoping.
+:lexical yes
+
+This turns lexical scoping off in the eval (the former behavior).
+:lexical no
+
+This uses the lexical environment with x=42 in the eval.
+:lexical '((x . 42))
 
 *** Behavior of ~org-return~ changed
 
diff --git a/lisp/ob-emacs-lisp.el b/lisp/ob-emacs-lisp.el
index 2eb2721..ee8c8dd 100644
--- a/lisp/ob-emacs-lisp.el
+++ b/lisp/ob-emacs-lisp.el
@@ -28,8 +28,14 @@
 ;;; Code:
 (require 'ob)
 
-(defvar org-babel-default-header-args:emacs-lisp nil
-  "Default arguments for evaluating an emacs-lisp source block.")
+(defvar org-babel-default-header-args:emacs-lisp
+  '((:lexical . "yes"))
+  "Default arguments for evaluating an emacs-lisp source block.
+
+:lexical is \"yes\" by default and causes src blocks to be eval'd
+using lexical scoping. It can also be an alist mapping symbols to
+their value. It is used as the optional LEXICAL argument to
+`eval'.")
 
 (defun org-babel-expand-body:emacs-lisp (body params)
   "Expand BODY according to PARAMS, return the expanded body."
@@ -51,13 +57,18 @@
 (defun org-babel-execute:emacs-lisp (body params)
   "Execute a block of emacs-lisp code with Babel."
   (save-window-excursion
-    (let ((result
-           (eval (read (format (if (member "output"
-                                           (cdr (assoc :result-params params)))
-                                   "(with-output-to-string %s)"
-                                 "(progn %s)")
-                               (org-babel-expand-body:emacs-lisp
-                                body params))))))
+    (let* ((lexical (cdr (assoc :lexical params)))
+	   (result
+	    (eval (read (format (if (member "output"
+					    (cdr (assoc :result-params params)))
+				    "(with-output-to-string %s)"
+				  "(progn %s)")
+				(org-babel-expand-body:emacs-lisp
+				 body params)))
+
+		  (if (listp lexical)
+		      lexical
+		    (string= "yes" lexical)))))
       (org-babel-result-cond (cdr (assoc :result-params params))
 	(let ((print-level nil)
               (print-length nil))
-- 
2.4.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-17  1:05 John Kitchin
@ 2016-04-17 23:47 ` Adam Porter
  2016-04-18 15:44   ` John Kitchin
  2016-04-18 16:38 ` Nicolas Goaziou
  1 sibling, 1 reply; 11+ messages in thread
From: Adam Porter @ 2016-04-17 23:47 UTC (permalink / raw)
  To: emacs-orgmode

John Kitchin <jkitchin@andrew.cmu.edu> writes:

Forgive my ignorance--I haven't really dug into lexical scoping yet--but
what is the basic effect will this change have on elisp code blocks?
Say I'm doing some sort-of literate development and I have some code
blocks that `setq' here and there, setting vars in the Emacs
environment.  Will the scope of these vars now be limited to their code
blocks?  Would I need to disable lexical scoping?  Thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-17 23:47 ` Adam Porter
@ 2016-04-18 15:44   ` John Kitchin
  0 siblings, 0 replies; 11+ messages in thread
From: John Kitchin @ 2016-04-18 15:44 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-orgmode

I don't think so. I haven't seen this be the case. A simple example like
this works as expected I think.

#+BEGIN_SRC emacs-lisp
(setq x 4)
#+END_SRC

#+RESULTS:
: 4


#+BEGIN_SRC emacs-lisp
(+ x 9)
#+END_SRC

#+RESULTS:
: 13


So far, I have only seen where this makes some new things possible. e.g.

This will not work unless evaluated with lexical-binding
#+BEGIN_SRC emacs-lisp :results value :lexical yes
;; Graham's alambda
(defmacro alambda (parms &rest body)
  `(cl-labels ((self ,parms ,@body))
     #'self))

(setq
 N
 (alambda (n)
          (if (> n 0)
              (cons
               n
               (self (- n 1))))))

(princ (funcall N 3))
#+END_SRC

#+RESULTS:
| 3 | 2 | 1 |

This just provides a different approach to :var I think.

#+BEGIN_SRC emacs-lisp :lexical '((x . 23))
(print x)
#+END_SRC

#+RESULTS:
: 23

I would be interested to see any counter examples though, where behavior
changes, or stops working.



Adam Porter writes:

> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
> Forgive my ignorance--I haven't really dug into lexical scoping yet--but
> what is the basic effect will this change have on elisp code blocks?
> Say I'm doing some sort-of literate development and I have some code
> blocks that `setq' here and there, setting vars in the Emacs
> environment.  Will the scope of these vars now be limited to their code
> blocks?  Would I need to disable lexical scoping?  Thanks.


--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-17  1:05 John Kitchin
  2016-04-17 23:47 ` Adam Porter
@ 2016-04-18 16:38 ` Nicolas Goaziou
  2016-04-18 17:09   ` John Kitchin
  1 sibling, 1 reply; 11+ messages in thread
From: Nicolas Goaziou @ 2016-04-18 16:38 UTC (permalink / raw)
  To: John Kitchin; +Cc: emacs-orgmode

Hello,

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> Set default in `org-babel-default-header-args:emacs-lisp'. Add an
> optional argument to the eval function.

Thanks for the patch. Some comments follow.

> +*** Default lexical evaluation of emacs-lisp src blocks
> +Emacs-lisp src blocks in babel are now evaluated using lexical scoping. There is a new header to control this behavior.
> +
> +The default results in an eval with lexical scoping.
> +:lexical yes
> +
> +This turns lexical scoping off in the eval (the former behavior).
> +:lexical no
> +
> +This uses the lexical environment with x=42 in the eval.
> +:lexical '((x . 42))

According to the Elisp manual:

     The value of LEXICAL can also be a non-empty alist specifying
     a particular "lexical environment" for lexical bindings; however,
     this feature is only useful for specialized purposes, such as in
     Emacs Lisp debuggers. *Note Lexical Binding::.

I'm not opposed to it, but is there any reason to include the
opportunity to specify an alist here?

> +(defvar org-babel-default-header-args:emacs-lisp
> +  '((:lexical . "yes"))
> +  "Default arguments for evaluating an emacs-lisp source block.
> +
> +:lexical is \"yes\" by default and causes src blocks to be eval'd
> +using lexical scoping. It can also be an alist mapping symbols to
> +their value. It is used as the optional LEXICAL argument to
> +`eval'.")

You need to separate sentences with two spaces.

You also need to add (defconst org-babel-header-args:emacs-lisp). See
for example `org-babel-header-args:R'.

>  (defun org-babel-expand-body:emacs-lisp (body params)
>    "Expand BODY according to PARAMS, return the expanded body."
> @@ -51,13 +57,18 @@
>  (defun org-babel-execute:emacs-lisp (body params)
>    "Execute a block of emacs-lisp code with Babel."
>    (save-window-excursion
> -    (let ((result
> -           (eval (read (format (if (member "output"
> -                                           (cdr (assoc :result-params params)))
> -                                   "(with-output-to-string %s)"
> -                                 "(progn %s)")
> -                               (org-babel-expand-body:emacs-lisp
> -                                body params))))))
> +    (let* ((lexical (cdr (assoc :lexical params)))

Nitpick: (cdr (assq :lexical params))

> +	   (result
> +	    (eval (read (format (if (member "output"
> +					    (cdr (assoc :result-params params)))

Nitpick, while you're at it: (cdr (assq :result-params params))

> +				    "(with-output-to-string %s)"
> +				  "(progn %s)")
> +				(org-babel-expand-body:emacs-lisp
> +				 body params)))
> +
> +		  (if (listp lexical)
> +		      lexical
> +		    (string= "yes" lexical)))))

There is no support for t. I think we should allow both :lexical
t and :lexical yes.


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-18 16:38 ` Nicolas Goaziou
@ 2016-04-18 17:09   ` John Kitchin
  2016-04-18 17:41     ` Nicolas Goaziou
  0 siblings, 1 reply; 11+ messages in thread
From: John Kitchin @ 2016-04-18 17:09 UTC (permalink / raw)
  To: John Kitchin, emacs-orgmode@gnu.org

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

Thanks for the feedback. I have a few questions below.


On Mon, Apr 18, 2016 at 12:38 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr>
wrote:

> Hello,
>
> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
> > Set default in `org-babel-default-header-args:emacs-lisp'. Add an
> > optional argument to the eval function.
>
> Thanks for the patch. Some comments follow.
>
> > +*** Default lexical evaluation of emacs-lisp src blocks
> > +Emacs-lisp src blocks in babel are now evaluated using lexical scoping.
> There is a new header to control this behavior.
> > +
> > +The default results in an eval with lexical scoping.
> > +:lexical yes
> > +
> > +This turns lexical scoping off in the eval (the former behavior).
> > +:lexical no
> > +
> > +This uses the lexical environment with x=42 in the eval.
> > +:lexical '((x . 42))
>
> According to the Elisp manual:
>
>      The value of LEXICAL can also be a non-empty alist specifying
>      a particular "lexical environment" for lexical bindings; however,
>      this feature is only useful for specialized purposes, such as in
>      Emacs Lisp debuggers. *Note Lexical Binding::.
>
> I'm not opposed to it, but is there any reason to include the
> opportunity to specify an alist here?
>

I just put it in because it is an option for the eval function, and it was
not difficult to implement. It might be useful for debugging.


>
> > +(defvar org-babel-default-header-args:emacs-lisp
> > +  '((:lexical . "yes"))
> > +  "Default arguments for evaluating an emacs-lisp source block.
> > +
> > +:lexical is \"yes\" by default and causes src blocks to be eval'd
> > +using lexical scoping. It can also be an alist mapping symbols to
> > +their value. It is used as the optional LEXICAL argument to
> > +`eval'.")
>
> You need to separate sentences with two spaces.
>

no problem.


>
> You also need to add (defconst org-babel-header-args:emacs-lisp). See
> for example `org-babel-header-args:R'.
>

Are you suggesting use defconst instead of defvar? Does it really need all
the things in org-babel-header-args:R? Or just the required default for
lexical?


>
> >  (defun org-babel-expand-body:emacs-lisp (body params)
> >    "Expand BODY according to PARAMS, return the expanded body."
> > @@ -51,13 +57,18 @@
> >  (defun org-babel-execute:emacs-lisp (body params)
> >    "Execute a block of emacs-lisp code with Babel."
> >    (save-window-excursion
> > -    (let ((result
> > -           (eval (read (format (if (member "output"
> > -                                           (cdr (assoc :result-params
> params)))
> > -                                   "(with-output-to-string %s)"
> > -                                 "(progn %s)")
> > -                               (org-babel-expand-body:emacs-lisp
> > -                                body params))))))
> > +    (let* ((lexical (cdr (assoc :lexical params)))
>
> Nitpick: (cdr (assq :lexical params))
>

no problem.


>
> > +        (result
> > +         (eval (read (format (if (member "output"
> > +                                         (cdr (assoc :result-params
> params)))
>
> Nitpick, while you're at it: (cdr (assq :result-params params))
>

no problem. Should all the assocs be replaced by assq, or just these ones?

>
> > +                                 "(with-output-to-string %s)"
> > +                               "(progn %s)")
> > +                             (org-babel-expand-body:emacs-lisp
> > +                              body params)))
> > +
> > +               (if (listp lexical)
> > +                   lexical
> > +                 (string= "yes" lexical)))))
>
> There is no support for t. I think we should allow both :lexical
> t and :lexical yes.
>

something like (member lexical '("yes" "t"))?


>
>
> Regards,
>
> --
> Nicolas Goaziou
>

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-18 17:09   ` John Kitchin
@ 2016-04-18 17:41     ` Nicolas Goaziou
  2016-04-18 17:56       ` John Kitchin
  0 siblings, 1 reply; 11+ messages in thread
From: Nicolas Goaziou @ 2016-04-18 17:41 UTC (permalink / raw)
  To: John Kitchin; +Cc: emacs-orgmode@gnu.org

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> I just put it in because it is an option for the eval function, and it was
> not difficult to implement. It might be useful for debugging.

Fair enough.

> Are you suggesting use defconst instead of defvar? Does it really need all
> the things in org-babel-header-args:R? Or just the required default for
> lexical?

Two variables are needed: `org-babel-default-header-args:emacs-lisp' and
`org-babel-header-args:emacs-lisp'. The latter is used, e.g., in linting
to know what keywords are allowed in an emacs-lisp block and, if
possible, the possible values for it.

> no problem. Should all the assocs be replaced by assq, or just these
> ones?

I usually replace (assoc/member KEYWORD ...) with (assq/memq KEYWORD
...) whenever I modify a S-exp around it. You don't need to change this
for parts you don't alter.

>> > +                                 "(with-output-to-string %s)"
>> > +                               "(progn %s)")
>> > +                             (org-babel-expand-body:emacs-lisp
>> > +                              body params)))
>> > +
>> > +               (if (listp lexical)
>> > +                   lexical
>> > +                 (string= "yes" lexical)))))
>>
>> There is no support for t. I think we should allow both :lexical
>> t and :lexical yes.
>>
>
> something like (member lexical '("yes" "t"))?

Honestly, I don't remember how Babel handles parameters. It could also
be '("yes" t) if the latter is recognized as a keyword. You get the
idea :)

Regards,

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH] Make lexical eval default for elisp src blocks
@ 2016-04-18 17:55 John Kitchin
  2016-04-20  8:19 ` Nicolas Goaziou
  0 siblings, 1 reply; 11+ messages in thread
From: John Kitchin @ 2016-04-18 17:55 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: John Kitchin

Set default in `org-babel-default-header-args:emacs-lisp'. Add an
optional argument to the eval function.
---
 etc/ORG-NEWS          | 11 +++++++++++
 lisp/ob-emacs-lisp.el | 33 ++++++++++++++++++++++++---------
 2 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 6b1d9d5..99241e2 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -467,6 +467,17 @@ docstring for more information.
 - ~org-latex-format-inlinetask-function~
 - ~org-link-search~
 ** New features
+*** Default lexical evaluation of emacs-lisp src blocks
+Emacs-lisp src blocks in babel are now evaluated using lexical scoping. There is a new header to control this behavior.
+
+The default results in an eval with lexical scoping.
+:lexical yes
+
+This turns lexical scoping off in the eval (the former behavior).
+:lexical no
+
+This uses the lexical environment with x=42 in the eval.
+:lexical '((x . 42))
 
 *** Behavior of ~org-return~ changed
 
diff --git a/lisp/ob-emacs-lisp.el b/lisp/ob-emacs-lisp.el
index 2eb2721..051d2bb 100644
--- a/lisp/ob-emacs-lisp.el
+++ b/lisp/ob-emacs-lisp.el
@@ -28,8 +28,18 @@
 ;;; Code:
 (require 'ob)
 
-(defvar org-babel-default-header-args:emacs-lisp nil
-  "Default arguments for evaluating an emacs-lisp source block.")
+(defconst org-babel-header-args:emacs-lisp
+  '((lexical . ((yes no t nil))))
+  "emacs-lisp specific header arguments.")
+
+(defvar org-babel-default-header-args:emacs-lisp
+  '((:lexical . "yes"))
+  "Default arguments for evaluating an emacs-lisp source block.
+
+:lexical is \"yes\" by default and causes src blocks to be eval'd
+using lexical scoping.  It can also be an alist mapping symbols to
+their value.  It is used as the optional LEXICAL argument to
+`eval'.")
 
 (defun org-babel-expand-body:emacs-lisp (body params)
   "Expand BODY according to PARAMS, return the expanded body."
@@ -51,13 +61,18 @@
 (defun org-babel-execute:emacs-lisp (body params)
   "Execute a block of emacs-lisp code with Babel."
   (save-window-excursion
-    (let ((result
-           (eval (read (format (if (member "output"
-                                           (cdr (assoc :result-params params)))
-                                   "(with-output-to-string %s)"
-                                 "(progn %s)")
-                               (org-babel-expand-body:emacs-lisp
-                                body params))))))
+    (let* ((lexical (cdr (assq :lexical params)))
+	   (result
+	    (eval (read (format (if (member "output"
+					    (cdr (assq :result-params params)))
+				    "(with-output-to-string %s)"
+				  "(progn %s)")
+				(org-babel-expand-body:emacs-lisp
+				 body params)))
+
+		  (if (listp lexical)
+		      lexical
+		    (member lexical '("yes" "t"))))))
       (org-babel-result-cond (cdr (assoc :result-params params))
 	(let ((print-level nil)
               (print-length nil))
-- 
2.4.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-18 17:41     ` Nicolas Goaziou
@ 2016-04-18 17:56       ` John Kitchin
  0 siblings, 0 replies; 11+ messages in thread
From: John Kitchin @ 2016-04-18 17:56 UTC (permalink / raw)
  To: John Kitchin, emacs-orgmode@gnu.org

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

thanks. I think I have addressed these in a new patch I just submitted.

John

-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu


On Mon, Apr 18, 2016 at 1:41 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr>
wrote:

> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
> > I just put it in because it is an option for the eval function, and it
> was
> > not difficult to implement. It might be useful for debugging.
>
> Fair enough.
>
> > Are you suggesting use defconst instead of defvar? Does it really need
> all
> > the things in org-babel-header-args:R? Or just the required default for
> > lexical?
>
> Two variables are needed: `org-babel-default-header-args:emacs-lisp' and
> `org-babel-header-args:emacs-lisp'. The latter is used, e.g., in linting
> to know what keywords are allowed in an emacs-lisp block and, if
> possible, the possible values for it.
>
> > no problem. Should all the assocs be replaced by assq, or just these
> > ones?
>
> I usually replace (assoc/member KEYWORD ...) with (assq/memq KEYWORD
> ...) whenever I modify a S-exp around it. You don't need to change this
> for parts you don't alter.
>
> >> > +                                 "(with-output-to-string %s)"
> >> > +                               "(progn %s)")
> >> > +                             (org-babel-expand-body:emacs-lisp
> >> > +                              body params)))
> >> > +
> >> > +               (if (listp lexical)
> >> > +                   lexical
> >> > +                 (string= "yes" lexical)))))
> >>
> >> There is no support for t. I think we should allow both :lexical
> >> t and :lexical yes.
> >>
> >
> > something like (member lexical '("yes" "t"))?
>
> Honestly, I don't remember how Babel handles parameters. It could also
> be '("yes" t) if the latter is recognized as a keyword. You get the
> idea :)
>
> Regards,
>

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-18 17:55 [PATCH] Make lexical eval default for elisp src blocks John Kitchin
@ 2016-04-20  8:19 ` Nicolas Goaziou
  2016-04-20 12:34   ` John Kitchin
  0 siblings, 1 reply; 11+ messages in thread
From: Nicolas Goaziou @ 2016-04-20  8:19 UTC (permalink / raw)
  To: John Kitchin; +Cc: emacs-orgmode

Hello,

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> Set default in `org-babel-default-header-args:emacs-lisp'. Add an
> optional argument to the eval function.

Applied. Thank you.

However, it seems that some tests are now failing. I guess this is
related to Babel calls, which are eval'ed as emacs-lisp source blocks.

I have planned to change how Babel calls are evaluated during the next
days. This may make the failures disappear. Meanwhile, we could
force :lexical "no" in that case.

WDYT?


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-20  8:19 ` Nicolas Goaziou
@ 2016-04-20 12:34   ` John Kitchin
  2016-04-20 21:47     ` Nicolas Goaziou
  0 siblings, 1 reply; 11+ messages in thread
From: John Kitchin @ 2016-04-20 12:34 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: emacs-orgmode

I think it would be fine to make :lexical "no" be the default, since
that should preserve what we are used to. Users can alway set a
different default of their own, or make it "yes" when they know it is
needed.

Nicolas Goaziou writes:

> Hello,
>
> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
>> Set default in `org-babel-default-header-args:emacs-lisp'. Add an
>> optional argument to the eval function.
>
> Applied. Thank you.
>
> However, it seems that some tests are now failing. I guess this is
> related to Babel calls, which are eval'ed as emacs-lisp source blocks.
>
> I have planned to change how Babel calls are evaluated during the next
> days. This may make the failures disappear. Meanwhile, we could
> force :lexical "no" in that case.
>
> WDYT?
>
>
> Regards,


--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Make lexical eval default for elisp src blocks
  2016-04-20 12:34   ` John Kitchin
@ 2016-04-20 21:47     ` Nicolas Goaziou
  0 siblings, 0 replies; 11+ messages in thread
From: Nicolas Goaziou @ 2016-04-20 21:47 UTC (permalink / raw)
  To: John Kitchin; +Cc: emacs-orgmode

Hello,

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> I think it would be fine to make :lexical "no" be the default, since
> that should preserve what we are used to. Users can alway set a
> different default of their own, or make it "yes" when they know it is
> needed.

Fair enough. Done. Thank you.

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-04-20 21:45 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-18 17:55 [PATCH] Make lexical eval default for elisp src blocks John Kitchin
2016-04-20  8:19 ` Nicolas Goaziou
2016-04-20 12:34   ` John Kitchin
2016-04-20 21:47     ` Nicolas Goaziou
  -- strict thread matches above, loose matches on Subject: below --
2016-04-17  1:05 John Kitchin
2016-04-17 23:47 ` Adam Porter
2016-04-18 15:44   ` John Kitchin
2016-04-18 16:38 ` Nicolas Goaziou
2016-04-18 17:09   ` John Kitchin
2016-04-18 17:41     ` Nicolas Goaziou
2016-04-18 17:56       ` John Kitchin

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).