maxima breaks with CVS clisp



>>>>> "Sam" == Sam Halliday <fommil@yahoo.ie> writes:


    Sam> (C1) diff(sin(x),x);
    Sam> (D1)                                COS(x)

    Sam> the result is as expected. if however, i use build maxima with clisp
    Sam> CVS, i get this;

    Sam> (C1) diff(sin(x),x);
    Sam>                                   d
    Sam> (D1)                              -- (SIN(x))
    Sam>                                   dx

This is caused by a recently discovered bug.  CVS CMUCL also fails in
this way.

Here is a potential solution.  Just use the following replacement in
src/commac.lisp.

Ray



(defun maclisp-typep (x &optional type)
  (cond (type
	 (lisp:let ((pred (get type 'ml-typep)))
	   (cond (pred
		  (funcall pred x))
		 (t (typep x type)))))
	(t
	 (typecase x
	   (cl:cons 'list)
	   (cl:fixnum 'fixnum)
	   (cl:integer 'bignum)
	   (cl:float 'flonum)
	   (cl:number 'number)
	   (cl:array 'array)
	   (cl:hash-table 'hash-table)
	   (t
	    (type-of x-type))))))