solve: do not call MEVAL.
[maxima.git] / archive / src / mfexpr-trace.lisp
blobc07943298fa05c1f669b4f2e212ade440b7b4759
1 (in-package "MAXIMA")
3 (defmacro mytrace (f)
4 (cond ((symbolp f)
5 (cond ((fboundp f)
6 (eval `(trace ,f)))
7 ((get f 'mfexpr*)
8 (let ((new (make-symbol (symbol-name f))))
9 (setf (symbol-function new)
10 (let ((tem (get f 'mfexpr*)))
11 (cond ((symbolp tem)
12 (symbol-function tem))
13 (t tem))))
14 (setf (get f 'mfexpr*) new)
15 (list 'quote (eval `(trace ,new)))))))
17 (t (format t "~%unknown item to trace"))))
19 (defmacro myuntrace (sym &aux tem)
20 (cond ((fboundp sym) (eval `(untrace ,f)))
21 (t (cond ((symbolp (setq tem (get sym 'mfexpr*)))
22 (eval `(untrace ,tem))
23 (setf tem
24 (symbol-function tem)))))))