[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