[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