emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Leo Butler <Leo.Butler@umanitoba.ca>
To: Benjamin McMillan <mcmillanbb@gmail.com>
Cc: Ihor Radchenko <yantar92@posteo.net>,
	"emacs-orgmode@gnu.org" <emacs-orgmode@gnu.org>
Subject: Re: [BUG] ob-maxima outputs linenum:0 in results on MacOS
Date: Mon, 16 Dec 2024 03:32:43 +0000	[thread overview]
Message-ID: <87pllsjo9w.fsf@t14.reltub.ca> (raw)
In-Reply-To: <CALo8A5VEL=CDzFtnR3iqMoF4cfaEXH_X894MijfhSr6cHqW4NQ@mail.gmail.com> (Benjamin McMillan's message of "Sun, 15 Dec 2024 21:43:06 +1300")

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

Ihor,

Attached is a patch to fix the problem that Benjamin has encountered.

Best regards,
Leo


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-lisp-ob-maxima.el-fix-Mac-related-bug.patch --]
[-- Type: text/x-diff; name="0001-lisp-ob-maxima.el-fix-Mac-related-bug.patch", Size: 1596 bytes --]

From acc099ca608b59c60f941d8dbff25a17e7adbf8c Mon Sep 17 00:00:00 2001
From: Leo Butler <leo.butler@umanitoba.ca>
Date: Sun, 15 Dec 2024 21:20:26 -0600
Subject: [PATCH] lisp/ob-maxima.el: fix Mac-related bug

* ob-maxima.el (org-babel-maxima--output-filter-regexps): Filter out
lines that include the literal string "(linenum:0,".  Benjamin
McMillan reports that, on his Mac, this string is appearing in the
Maxima output.  Maxima is echoing part of the command-line arguments
passed to it (but it should not), which appears to be a Mac-specific
problem.  Benjamin reports that the additional regexp removes the
errant strings and that all tests are passed.

Reported-By: Benjamin McMillan
Link: https://list.orgmode.org/87plm2e50v.fsf@localhost/
---
 lisp/ob-maxima.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lisp/ob-maxima.el b/lisp/ob-maxima.el
index afd615f8d..19d530179 100644
--- a/lisp/ob-maxima.el
+++ b/lisp/ob-maxima.el
@@ -110,7 +110,8 @@ output.  See `org-babel-maxima-expand'.")
 	       "\n")))
 
 (defvar org-babel-maxima--output-filter-regexps
-  '("batch"                     ;; remove the `batch' or `batchload' line
+  '("(linenum:0,"               ;; remove fragment from command-line (see `org-babel-execute:maxima')
+    "batch"                     ;; remove the `batch' or `batchload' line
     "^rat: replaced .*$"        ;; remove notices from `rat'
     "^;;; Loading #P"           ;; remove notices from the lisp implementation
     "^read and interpret"       ;; remove notice from `batch'
-- 
2.45.2


[-- Attachment #3: ATT00001.txt --]
[-- Type: text/plain, Size: 6329 bytes --]


On Sun, Dec 15 2024, Benjamin McMillan <mcmillanbb@gmail.com> wrote:

> Dear Leo,
> Ah right, good idea. That works!
> Best,
> Ben
>
> On Sun, Dec 15, 2024 at 12:11 PM Leo Butler <Leo.Butler@umanitoba.ca> wrote:
>
>> Benjamin,
>>
>> What if you remove the anchor at the beginning of the regexp? Does the
>> following work with the other tests?
>>
>> (add-to-list 'org-babel-maxima--output-filter-regexps "(linenum:0,")
>>
>> Best regards,
>> Leo
>>
>> On Fri, Dec 13 2024, Benjamin McMillan <mcmillanbb@gmail.com> wrote:
>>
>> > Hi Leo,
>> > The first suggestion, to add to org-babel-maxima--output-filter-regexps
>> > does fix the src block you ask about here.
>> > However, the regexp doesn't match for other maxima tests. For example:
>> >
>> > #+name: ob-maxima/batch+verbatim
>> > #+begin_src maxima :results verbatim :batch batch :cmdline --quiet
>> >
>> > (assume(z>0),
>> > integrate(exp(-t)*t^z, t, 0, inf));
>> > #+end_src
>> >
>> > #+RESULTS: ob-maxima/batch+verbatim
>> > #+begin_example
>> >
>> > (%i1) (linenum:0,
>> > (%i1) (assume(z > 0),integrate(exp(-t)*t^z,t,0,inf))
>> > (%o1)                            gamma(z + 1)
>> > #+end_example
>> >
>> > Best,
>> > Ben
>> >
>> > On Wed, Dec 11, 2024 at 7:02 AM Leo Butler <Leo.Butler@umanitoba.ca>
>> wrote:
>> >
>> >> On Tue, Dec 10 2024, Benjamin McMillan <mcmillanbb@gmail.com> wrote:
>> >>
>> >> > Hi Leo,
>> >> > I get the following output:
>> >> >
>> >> > #+RESULTS:
>> >> >
>> >> > #+begin_example
>> >> > (linenum:0,
>> >> > #+end_example
>> >> >
>> >> > and from *messages*:
>> >> >
>> >> > Executing Maxima source code block
>> >> > maxima -r \(linenum\:0\,\
>> >> >
>> >>
>> batchload\(\"/var/folders/f5/6nrph1812wdf0nlg4ddcs_580000gn/T/babel-wImUPJ/maxima-Swf2M2.max\"\)\)\$
>> >> >  --very-quiet
>> >> > Wrote
>> >> >
>> >>
>> /var/folders/f5/6nrph1812wdf0nlg4ddcs_580000gn/T/babel-wImUPJ/ob-input-Rbgtzp
>> >> > Code block evaluation complete (took 0.1s).
>> >> >
>> >> > The contents of that file (which I also attach) are:
>> >> >
>> >> > build_info();
>> >> >
>> >> > If there's more information I can give, just let me know.
>> >> > Thanks,
>> >> > Benjamin
>> >> >
>> >> > On Tue, Dec 10, 2024 at 9:17 AM Leo Butler <Leo.Butler@umanitoba.ca>
>> >> wrote:
>> >> >
>> >> >> On Mon, Dec 09 2024, Leo Butler <Leo.Butler@umanitoba.ca> wrote:
>> >> >>
>> >> >> > On Sun, Dec 08 2024, Ihor Radchenko <yantar92@posteo.net> wrote:
>> >> >> >
>> >> >> >> Benjamin McMillan <mcmillanbb@gmail.com> writes:
>> >> >> >>
>> >> >> >>> This outputs
>> >> >> >>> #+RESULTS:
>> >> >> >>> | (linenum:0, |
>> >> >> >>> |           4 |
>> >> >> >>>
>> >> >> >>> I suppose the issue is the "linenum:0". In fact, running any of
>> the
>> >> >> test
>> >> >> >>> src blocks does that, e.g.
>> >> >> >>> #+begin_src maxima :results verbatim :batch batch
>> >> >> >>> (assume(z>0),
>> >> >> >>> integrate(exp(-t)*t^z, t, 0, inf));
>> >> >> >>> #+end_src
>> >> >> >>>
>> >> >> >>> #+RESULTS:
>> >> >> >>> #+begin_example
>> >> >> >>> (linenum:0,
>> >> >> >>> (assume(z > 0),integrate(exp(-t)*t^z,t,0,inf))
>> >> >> >>>                                  gamma(z + 1)
>> >> >> >>> #+end_example
>> >> >> >>> This does not match the (should (equal ...)) in test-ob-maxima.el
>> >> >> >>>
>> >> >> >>> I don't know maxima, and haven't made any explicit modifications
>> >> >> regards
>> >> >> >>> it, so I don't know why my setup would be outputting linenum:0
>> >> >>
>> >> >> Benjamin,
>> >> >> When you execute your source code block, ob-maxima prints the shell
>> >> >> command as a message. Could you copy that shell command from
>> *Messages*
>> >> >> and send it, along with the batch file that ob-maxima creates?
>> >> >>
>> >> >> Thanks,
>> >> >> Leo
>> >> >>
>> >> >> >>
>> >> >> >> Setting linenum was introduced in
>> >> >> >> https://list.orgmode.org/orgmode/87jzsrai3x.fsf@localhost/
>> >> >> >>
>> >> >> >> It clearly does not affect Linux, but Maxima on MacOS appears to
>> have
>> >> >> >> slightly different behavior.
>> >> >> >>
>> >> >> >> I am CCing the author of the original patch that introduced this
>> >> >> setting.
>> >> >> >> Leo, maybe you have some insight?
>> >> >> >>
>> >> >> >> Unless we can do something to solve the problem on Mac, I am
>> >> tentatively
>> >> >> >> inclined to revert the linenum part of the patch, so that
>> ob-maxima
>> >> is
>> >> >> >> not broken on MacOS.
>> >> >> >
>> >> >> > Benjamin,
>> >> >> > Could you include the output of
>> >> >> >
>> >> >> > #+begin_src maxima :results verbatim
>> >> >> > build_info();
>> >> >> > #+end_src
>> >> >> >
>> >> >> > , please? I think the bug is in the Mac build of Maxima, but I need
>> >> more
>> >> >> > information to figure it out.
>> >> >> >
>> >> >> > Best,
>> >> >> > Leo
>> >>
>> >> Hi Benjamin,
>> >>
>> >> Let me preface my requests by saying that I do not have access to a Mac,
>> >> and the problem you are seeing seems to be Mac-specific, so I am
>> >> searching in the dark for a solution to the problem.
>> >>
>> >> I have a couple ideas.
>> >>
>> >> * First idea
>> >> ** Add the regexp =^(linenum:0,= to
>> >> =org-babel-maxima--output-filter-regexps=
>> >>
>> >> #+begin_src elisp :exports none :results raw
>> >>   (add-to-list 'org-babel-maxima--output-filter-regexps "^(linenum:0,")
>> >> #+end_src
>> >>
>> >> ** Evaluate your Maxima code block
>> >>
>> >> #+name: max
>> >> #+begin_src maxima :results raw :batch batch
>> >>   (assume(z>0), integrate(exp(-t)*t^z, t, 0, inf));
>> >> #+end_src
>> >>
>> >> If all goes well, you should see the output:
>> >>
>> >> #+RESULTS: max
>> >> (assume(z > 0),integrate(exp(-t)*t^z,t,0,inf))
>> >>                                  gamma(z + 1)
>> >>
>> >> Please evaluate these code blocks in an Org buffer and tell us how it
>> >> goes.
>> >>
>> >> * Second idea
>> >>
>> >> We could introduce a customization variable, e.g.
>> >> org-babel-maxima-batch/load-format-string, whose default is the current
>> >> value is "(linenum:0, %s(%S))$". You could change that to "%s(%S)$".
>> >>
>> >> I would prefer to see if the first idea works for you, though, before
>> >> pursuing this.
>> >>
>> >> TIA,
>> >> Leo

  reply	other threads:[~2024-12-16  3:38 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-01  4:35 [BUG] export blocks no longer fontifying [9.7.10 (release_9.7.10 @ /Users/ben/Scripts/emacs/lisp/org/)] Benjamin McMillan
2024-09-10 17:01 ` Ihor Radchenko
2024-09-16 14:27   ` Benjamin McMillan
2024-09-17 12:29     ` Benjamin McMillan
2024-09-17 18:44       ` Ihor Radchenko
     [not found]         ` <CALo8A5Vm-gik0qQC7KacNg7kN2VzL0Y1e8_LXxV8S7-we9CYSw@mail.gmail.com>
2024-09-22  9:53           ` Ihor Radchenko
2024-09-23 13:17             ` Benjamin McMillan
2024-11-03 18:00               ` Ihor Radchenko
2024-11-04 12:58                 ` Benjamin McMillan
2024-11-04 20:13                   ` Ihor Radchenko
2024-11-05  1:00                     ` Benjamin McMillan
2024-11-09 14:55                       ` Ihor Radchenko
2024-11-10 13:26                         ` Benjamin McMillan
2024-11-12 19:12                           ` Ihor Radchenko
2024-11-14  5:59                             ` Benjamin McMillan
2024-11-23 19:15                               ` Ihor Radchenko
2024-11-24  6:02                                 ` Benjamin McMillan
2024-12-08 12:24                                   ` [BUG] ob-maxima outputs linenum:0 in results on MacOS (was: [BUG] export blocks no longer fontifying [9.7.10 (release_9.7.10 @ /Users/ben/Scripts/emacs/lisp/org/)]) Ihor Radchenko
2024-12-09 15:11                                     ` [BUG] ob-maxima outputs linenum:0 in results on MacOS Leo Butler
2024-12-09 20:17                                       ` Leo Butler
2024-12-10  8:58                                         ` Benjamin McMillan
2024-12-10 18:02                                           ` Leo Butler
2024-12-12 20:27                                             ` Benjamin McMillan
2024-12-14 23:11                                               ` Leo Butler
2024-12-15  8:43                                                 ` Benjamin McMillan
2024-12-16  3:32                                                   ` Leo Butler [this message]
2024-12-16 17:44                                                     ` Ihor Radchenko
2024-12-17  3:13                                                       ` Leo Butler
2024-12-17 17:36                                                         ` Ihor Radchenko
2024-12-17 21:06                                                           ` Leo Butler

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=87pllsjo9w.fsf@t14.reltub.ca \
    --to=leo.butler@umanitoba.ca \
    --cc=emacs-orgmode@gnu.org \
    --cc=mcmillanbb@gmail.com \
    --cc=yantar92@posteo.net \
    /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).