Re: Temporarily suppress all error messages

Astrea Drifter <[email protected]> Wed, 20 May 2026 13:26:37 -0600
Newsgroups gmane.comp.mathematics.maxima.general
Message-ID <CADZFxcmjOdAite9EEMntTX-GsEx1aqUaYGN4MDDtLQ0Q7Ui-aQ@mail.gmail.com>
Leo,
I don't seem to have a maxima-init.lisp file. If I'm meant to create one,
where should I put it?
Alternatively, could this be entered into the terminal? This looks like a
single command, just a longer one, which makes me wonder if it could be
made to work there by putting :lisp before (defun and maybe condensing it
to a single line.

Astrea

On Wed, May 20, 2026 at 8:25 AM Leo Butler <[email protected]> wrote:

> Hello,
>
> You can also add this to your maxima-init.lisp file:
>
>  (defun mtell (&rest l)
>   (let ((*print-base* 10))
>    (apply #'mformat *error-output* l)))
>
> This will direct all MTELL output to *ERROR-OUTPUT* rather than
> *STANDARD-OUTPUT*. Combined with re-binding *ERROR-OUTPUT*, this should
> muffle >95% of the messages you might see otherwise.
>
> The (dis)advantage of this suggestion is that error messages are stored
> in an output stream, so you can inspect them via:
>
> get_output_stream_string (?\*error\-output\*);
>
> from the Maxima command line.
>
> Best regards,
> Leo
>
>
> On Tue, May 19 2026, Astrea Drifter <[email protected]> wrote:
>
> > Leo,
> > I am indeed using the most recent version of Maxima (5.49) and I do the
> > terminal most of the time. (If I ever use anything else, it's XMaxima).
> So
> > the Lisp command you mentioned is workable for me!
> >
> > Michel,
> > I tried out your version of the command, and it seems to do well in
> > suppressing the "not enough parentheses", "too many parentheses", and
> > "expected n arguments but got k" sorts of messages, and these are the
> ones
> > which I get very often and which I was having trouble suppressing. Not
> only
> > that, but the command also interacts with my syntax (which involves the
> > double-quotes and the user-defined nofix "~" along with a whole bunch of
> > stuff in my preamble) in a way that causes it to print output lines with
> > empty brackets on them, which is exactly what I was hoping for it to do
> in
> > these cases!
> >
> > So this command seems like the perfect help for my use case, and I've
> > included it in my preamble. I might post again if I encounter any issues
> > with it that I can't fix, but as near as I can tell it seems like it will
> > work nicely.
> >
> > Thank you all so much for your help!
> > Astrea
> >
> > On Tue, May 19, 2026 at 9:39 AM Leo Butler <[email protected]>
> wrote:
> >
> >> If you are using a recent version of maxima, you can do the following at
> >> the terminal:
> >>
> >> :lisp(setf *error-output* (make-output-string-stream))
> >>
> >> Alternatively, you can save the line
> >>
> >> (setf *error-output* (make-output-string-stream))
> >>
> >> in a start-up file (e.g. maxima-init.lisp) and make sure it gets loaded
> >> at start-up.
> >>
> >> Explanation: in recent versions of Maxima, errors and warnings are
> >> printed to the output stream *ERROR-OUTPUT*. That can be rebound to a
> >> "string stream", which results in the diversion of the error messages to
> >> a sink.
> >>
> >> Best regards,
> >> Leo
> >>
> >>
> >> On Tue, May 19 2026, Michel Talon <[email protected]> wrote:
> >>
> >> > Le 19/05/2026 à 04:52, Astrea Drifter a écrit :
> >> >>
> >> >> While searching for solutions, I found a thread where the following
> >> >> commands were recommended to turn off error and warning messages
> >> >> respectively, and these seemed well suited for the use case of that
> >> >> thread's op:
> >> >> :lisp (defun merror(&rest foo) nil)
> >> >> :lisp (defun mtell (&rest foo) nil)
> >> >>
> >> >> Unfortunately, while I have some experience with Maxima, I know
> >> >> nothing at all about Lisp.
> >> >
> >> > A little pedagogy: a lot of errors in maxima trigger the function
> >> > merror, which outputs the appropriate error message. In lisp you can
> >> > redefine any function, so when doing  (defun merror(&rest foo) nil)
> >> > you are just redefining merror to produce nil, for whatever arguments
> >> > you feed merror with (&rest foo). Idem for mtell which is triggered by
> >> > less severe problems. But this does not work for your use case because
> >> > the error is produced at the level of the parser (nparse.lisp) in
> >> > which errors do not call merror or mtell, but just use the lisp
> >> > function format to output a message.
> >> >
> >> > (format t (intl:gettext "incorrect syntax: "))  line 122 of
> nparse.lisp
> >> >
> >> > followed by some more complex stuff to output the cause of the error,
> >> > here ~ is not an infix operator ...
> >> >
> >> > Since you probably don't want to redefine lisp functions, i don't see
> >> > how to mute this error message.
> >>
> >> --
> >> ---
> >> Best regards,
> >> Dr Butler
> >> _______________________________________________
> >> Maxima-discuss mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/maxima-discuss
> >>
>
> --
> ---
> Best regards,
> Dr Butler

_______________________________________________
Maxima-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/maxima-discuss