maxima breaks with CVS clisp



Raymond Toy ?????:

>>>>>>"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))))))
> 

Maxima passes all tests on CLISP CVS
if I replace the last line by

  	    (type-of x))))))

Vadim

-- 
      Vadim V. Zhytnikov

       <vvzhy@mail.ru>
      <vvzhy@netorn.ru>