[Ecls-list] [PATCH,BUG] Some fixes for ECL & a bug
Alexander Gavrilov
angavrilov at gmail.com
Wed Jul 14 07:05:26 UTC 2010
> On Tue, Jul 13, 2010 at 9:43 AM, Alexander Gavrilov <angavrilov at gmail.com>wrote:
>
> > > On Mon, Jul 12, 2010 at 5:45 PM, Alexander Gavrilov <
> > angavrilov at gmail.com>wrote:
> > >
> > > > (defmethod foo ((bar t)) (declaim (optimize (speed 1))))
> > > >
> > >
> > > I did not change anything since yesterday and this works for me.
> > >
> >
> > This requires cmp.fas to be loaded. In my case it happens
> > automatically because I load ASDF from .eclrc
> >
>
> I verified the problem and found a quick solution for it -- apparently there
> are some extensions to the bytecodes compiler that do not work so nicely as
> expected, I just avoided their use.
What about the other two issues revealed by this one?
Namely:
1. This macro expansion is wrong:
(PROGN
(SI:WITH-BACKEND :C/C++
(EVAL-WHEN (:COMPILE-TOPLEVEL) (C::PROCESS-DECLAIM-ARGS '((FOO)))) :BYTECODES
(EVAL-WHEN (:COMPILE-TOPLEVEL) (PROCLAIM '((FOO)))))
(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (MAPC 'PROCLAIM '((FOO)))))
The second eval-when should obviously be (MAPC 'PROCLAIM '((FOO))) too.
This is what caused the debugger break in the first place, revealing
the bytecode compiler usage issue.
2. At least on my system, the debugger segfaults on any attempt
to restart after the break takes place.
> :continue
Debugger received error: Detected access to an invalid or protected
memory address.
Error flushed.
> :continue
gdb:
Program received signal SIGSEGV, Segmentation fault.
0x00007fe2f248cf06 in guess_environment (env=0x7fe2f28c6000,
interpreter_env=0x4707f41) at
/home/.../SysAdm/ProgramAdm/ecl/src/c/compiler.d:521
521 cl_object record0 = ECL_CONS_CAR(record);
(gdb) p record
$1 = (cl_object) 0x1
Alexander
More information about the ecl-devel
mailing list