/usr/share/maxima/5.32.1/src/generr.lisp is in maxima-src 5.32.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | (in-package :maxima)
(defvar errset nil)
;;here is the desired behavior of errset
;;(let ((errset t)) (errset (+ 2 'a))) ;==> signals error
;;(let ((errset nil)) (errset (+ 2 'a))) ;==> nil
;;(let ((errset nil)) (errset (+ 2 3))) ;==> (5)
#-ecldebug
(defmacro errset (&rest l)
`(handler-case (list ,(car l))
(error (e) (when errset (error e)))))
#+ecldebug
(defmacro errset (&rest l)
`(handler-case (list ,(car l))
(error (e)
(format *error-output* "~S~%~A~%" (type-of e) e)
(when errset
(let ((*debugger-hook* nil)) (si::default-debugger e))))))
;;a generic one if you have no error handling
;;at all, that caught no errors but at least
;;returned a list in the normal case would be
;; (defmacro errset (&rest l) `(list ,(car l)))
|