Raymond Toy <[EMAIL PROTECTED]> writes:
> >>>>> "Axel" == Axel Schairer <[EMAIL PROTECTED]> writes:
> 
>     Axel> As a work-around, I have temporarily disabled MAKE-INSTANCE in my
>     Axel> .cmucl-init.
> 
> How do you create instances then?

Err, heh, good question.  I meant, I disabled the _compiler macro_ for
MAKE-INSTANCE.  My ~/cmucl-init now contains:

   (without-package-locks
    (define-compiler-macro pcl::make-instance (&whole form &rest args)
      (declare (ignore args))
      ;;(or (make-instance->constructor-call form)
      form))

> I don't know the cause, though.  

I looked at the code for the compiler macro (i.e. for
MAKE-INSTANCE->CONSTRUCTOR-CALL), and it collects (EVAL KEY) into INITARGS,
which in turn is then put into the LOAD-TIME-VALUE form for the ctor.  The
problem seems to be that the arguments are again evaluated at run-time.  I
didn't get any further because I didn't understand the code concerned with
funcallable instances.

If I find the time, I might have another look later.

Cheers,
Axel


Reply via email to