[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

LEXPR-FUNCALL and the function being called

I changed IAPPLY to copy the function to the left half of the PDL slot.  The
UUO handlers all put it there, but FUNCALL and LEXPR-FUNCALL don't.  (You never
see the problem with FUNCALL because it uses JCALL unless *RSET is (), and
IAPPLY doesn't check the no of arguments if *RSET is ().  Set *RSET to T at
interrupt level at the right time and you can generate the bug via FUNCALL

This however has the side-effect of changing the function refered to in
EVALFRAME and ERRFRAME in the case of (DEFPROP FOO CAR EXPR).  Currently
FOO is reported as the function with the wrong no of arguments.  With the
change to IAPPLY, it gives CAR instead.  I don't know why one is better than
the other, so I've made the change in the source.  If you disagree, you can
fix it some other way.