I think simplifya has a small bug which should never be visible.
The routine simplifya checks for a cons of the form (a . b). If we have such a cons Maxima tries to throw a Maxima error. But this does not work, because merror can not handle a cons as a value to the argument list.
This is the piece of code in simplifya:
((atom (car x))
(cond ((and (cdr x) (atom (cdr x)))
(merror "~%~S is a cons with an atomic cdr - `simplifya'" x))
...
This is an example to generate the Maxima error, but we get a Lisp error
(%i1) :lisp (simplifya (list* 'fun 'x) nil)
Maxima encountered a Lisp error:
The value FUN is not of type LIST.
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
The reason is that merror can not handle the cons:
(%i1) :lisp (merror "~S" (list* 'fun 'x))
Maxima encountered a Lisp error:
The value FUN is not of type LIST.
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
This would be the correct behaviour. I have removed the value from the call to merror:
(%i2) :lisp (simplifya (list* 'fun 'x) nil)
Found a cons with an atomic cdr - `simplifya'
-- an error. To debug this try: debugmode(true);
Dieter Kaiser
Fixed in simp.lisp revision 1.104.
Closing this bug report as fixed.
Dieter Kaiser