Not used to the workflow on mailing lists but here is a second patch to address that issue:
On Fri, Mar 7, 2025 at 6:01 PM Owen Radcliffe <garlic...@gmail.com> wrote: > Yes, definitely prefix the special var too, thank you. > > On Fri, Mar 7, 2025 at 13:51 Héctor Galbis Sanchis < > hectometrocuadr...@gmail.com> wrote: > >> Owen is right. If the user is using any package that doesn't >> 'use-package' the "CL" package org will fail. >> >> I think the patch Owen provides is good. Just a little note on >> `org-babel-lisp-dir-fmt`. I think the symbol `*default-pathname-defaults*` >> should be `cl:*default-pathname-defaults*` too, since it is also from the >> "CL" package. >> >> >> El vie, 7 mar 2025 a las 3:35, Owen Radcliffe (<garlic...@gmail.com>) >> escribió: >> >>> The use of Coalton can be considered a contrived example, although >>> important to some people, but symbols not being prefixed assumes that users >>> are in packages that (:use :cl) and don't shadow anything important. >>> >>> On Thu, Mar 6, 2025 at 13:58 Ihor Radchenko <yanta...@posteo.net> wrote: >>> >>>> Owen Radcliffe <garlic...@gmail.com> writes: >>>> >>>> > Here are steps to reproduce the issue I am fixing: >>>> > >>>> > 1. Start sly and load Coalton: >>>> > - M-x sly >>>> > - (asdf:load-system :coalton) >>>> > >>>> > 2. Enter the :coalton-user package, it does not use :cl >>>> > - (in-package :coalton-user) >>>> > >>>> > 3. Evaluate the following org-babel src block: >>>> > ``` >>>> > #+begin_src lisp >>>> > (coalton (1+ 1)) >>>> > #+end_src >>>> > ``` >>>> >>>> These steps are certainly not enough for someone who does not have >>>> coalton (whatever it is) installed and configured, but I can see how >>>> this might be a problem in theory. >>>> >>>> Since I am not familiar with CL, I am taking a liberty to ask Héctor >>>> take a look at this to double-check whether the patch makes sense. >>>> >>>> Best, >>>> Ihor >>>> >>>> > This signals the error below because it is using coalton:let instead >>>> of >>>> > cl:let. >>>> > ``` >>>> > The operator LET is only valid in a Coalton expression. >>>> > ``` >>>> > >>>> > With the patch attached, things behave properly. >>>> > >>>> > ``` >>>> > #+begin_src lisp >>>> > (coalton (1+ 1)) >>>> > #+end_src >>>> > >>>> > #+RESULTS: >>>> > : 2 >>>> > ``` >>>> > From 4f8e68416fbead2a5726fd4b867e63ae427b7641 Mon Sep 17 00:00:00 2001 >>>> > From: Owen Radcliffe <garlic...@gmail.com> >>>> > Date: Mon, 3 Mar 2025 22:10:17 -0500 >>>> > Subject: [PATCH 1/1] prefix cl symbols so that ob-lisp.el can be used >>>> without >>>> > being in a package that uses :cl >>>> > >>>> > --- >>>> > lisp/ob-lisp.el | 10 +++++----- >>>> > 1 file changed, 5 insertions(+), 5 deletions(-) >>>> > >>>> > diff --git a/lisp/ob-lisp.el b/lisp/ob-lisp.el >>>> > index ed5a4bb00..6e085491a 100644 >>>> > --- a/lisp/ob-lisp.el >>>> > +++ b/lisp/ob-lisp.el >>>> > @@ -61,7 +61,7 @@ Valid values include `slime-eval' and `sly-eval'." >>>> > :type 'symbol) >>>> > >>>> > (defcustom org-babel-lisp-dir-fmt >>>> > - "(let ((*default-pathname-defaults* #P%S\n)) %%s\n)" >>>> > + "(cl:let ((*default-pathname-defaults* #P%S\n)) %%s\n)" >>>> > "Format string used to wrap code bodies to set the current >>>> directory. >>>> > For example a value of \"(progn ;; %s\\n %%s)\" would ignore the >>>> > current directory string." >>>> > @@ -77,10 +77,10 @@ current directory string." >>>> > (prologue (cdr (assq :prologue params))) >>>> > (epilogue (cdr (assq :epilogue params))) >>>> > (body (if (null vars) (org-trim body) >>>> > - (concat "(let (" >>>> > + (concat "(cl:let (" >>>> > (mapconcat >>>> > (lambda (var) >>>> > - (format "(%S (quote %S))" (car var) (cdr >>>> var))) >>>> > + (format "(%S (cl:quote %S))" (car var) (cdr >>>> var))) >>>> > vars "\n ") >>>> > ")\n" >>>> > (and prologue (concat prologue "\n")) >>>> > @@ -89,7 +89,7 @@ current directory string." >>>> > ")")))) >>>> > (if (or (member "code" result-params) >>>> > (member "pp" result-params)) >>>> > - (format "(pprint %s)" body) >>>> > + (format "(cl:pprint %s)" body) >>>> > body))) >>>> > >>>> > (defun org-babel-execute:lisp (body params) >>>> > @@ -115,7 +115,7 @@ a property list containing the parameters of the >>>> block." >>>> > default-directory))) >>>> > (format >>>> > (if dir (format >>>> org-babel-lisp-dir-fmt dir) >>>> > - "(progn %s\n)") >>>> > + "(cl:progn %s\n)") >>>> > (buffer-substring-no-properties >>>> > (point-min) (point-max))))) >>>> > (cdr (assq :package params))))))) >>>> > -- >>>> > 2.48.1 >>>> > >>>> >>>> -- >>>> Ihor Radchenko // yantar92, >>>> Org mode maintainer, >>>> Learn more about Org mode at <https://orgmode.org/>. >>>> Support Org development at <https://liberapay.com/org-mode>, >>>> or support my work at <https://liberapay.com/yantar92> >>>> >>>
0002-prefix-special-var.patch
Description: Binary data