Re: Temporarily suppress all error messages
"Viktor T. Toth" <[email protected]> Thu, 21 May 2026 01:36:21 -0400
| Newsgroups | gmane.comp.mathematics.maxima.general |
|---|---|
| Message-ID | <[email protected]> |
On Linux/UNIX, maxima-init.lisp (also maxima-init.mac ) would be in your home directory, under ~/.maxima . Not sure about Windows, somewhere under %USERPROFILE%\AppData\Local\maxima maybe? That would be my guess. Viktor On 2026-05-20 15:26, Astrea Drifter wrote: > 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 _______________________________________________ Maxima-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/maxima-discuss