[Ecls-list] Bug report: Byte compilation and setf functions...

Pascal Costanza pc at p-cos.net
Sun Nov 29 19:05:54 UTC 2009


Yes, this solves the issues.

Thanks,
Pascal

P.S.: My second name is "Costanza", not "Constanza". ;)

On 29 Nov 2009, at 18:19, Juan Jose Garcia-Ripoll wrote:

> On Sat, Nov 28, 2009 at 6:47 PM, Pascal Costanza <pc at p-cos.net> wrote:
>>> (setf (fdefinition '(setf foo))
>>        (coerce '(lambda (new-value x) (+ new-value x)) 'function))
>>> (defun test ()
>>    (setf (foo 5) 6))
>>> (compile 'test)
>>> (test)
>> 
>> Detected access to an invalid or protected memory address.
>> 
>> If I use eval instead of coerce when assigning to (fdefinition '(setf foo)), this works...
> 
> ;;; Date: 29/11/2009 (P. Constanza)
> ;;; Fixed: 29/11/2009 (Juanjo)
> ;;; Description:
> ;;;	When calling a bytecodes (SETF ...) function from a compiled function
> ;;;	an invalid memory access is produced. This is actually a consequence
> ;;;	of a mismatch between the position of the fields bytecodes.entry
> ;;;	and cfun.entry
> 
> Fixed in CVS. I added a test to ensure this does not happen again when
> manipulating the object.h header
> 
> Juanjo
> 
> -- 
> Instituto de Física Fundamental, CSIC
> c/ Serrano, 113b, Madrid 28006 (Spain)
> http://juanjose.garciaripoll.googlepages.com

-- 
Pascal Costanza, mailto:pc at p-cos.net, http://p-cos.net
Vrije Universiteit Brussel
Software Languages Lab
Pleinlaan 2, B-1050 Brussel, Belgium










More information about the ecl-devel mailing list