[Ecls-list] with-accessors && declare

Matthew Mondor mm_lists at pulsar-zone.net
Tue Apr 6 04:08:21 UTC 2010


On Sun, 4 Apr 2010 12:08:50 +0200
Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> wrote:

> On Sun, Apr 4, 2010 at 6:01 AM, Matthew Mondor <mm_lists at pulsar-zone.net>wrote:
> 
> > I had the opportunity to test the new code, and no more error occurs.
> >
> 
> I ran the tests but there is some problem in my setup and I get random
> breaks of the build process -- totally unrelated to ECL --, but nothing
> seems broken.
> 
> 
> > I still see an ecl_make_integer() call per litteral number in the
> > resulting code despite the TYPE FIXNUM declarations, but I'm not sure
> > if ECL supports unboxed types.
> >
> 
> If your C-INLINE form lists a :fixnum as output, ECL can use the value
> directly. But if you use, say, :long or :int, then it HAS to use
> ecl_make_integer() because it does not know the value of the quantity -- it
> does not matter whether you precede this with a declaration, it is in the
> C-INLINE processor not the the compiler itself.

Indeed, if using a test case with fixnums the generated code is more
optimized (the result of the MAKE_FIXNUM() macro is found in the
assembly).

BTW, I noticed something else when doing these tests: If using
COMPILE-FILE on a file including OPTIMIZE DECLAIM form at the top, this
appears to be ignored.  If loading such a DECLAIM form with LOAD, or if
typing it at the REPL, then it is observed.  Is this expected?

Thanks,
-- 
Matt




More information about the ecl-devel mailing list