[cmucl-imp] Unboxed float arguments

Raymond Toy toy.raymond at gmail.com
Sat Jun 23 20:41:49 UTC 2012

On 6/23/12 11:05 AM, Helmut Eller wrote:
> * Raymond Toy [2012-06-23 15:30] writes:
>> So, how do I build your changes?  I assume can just do a normal
>> cross-compile using tccxboot.lisp?
> Yes, that's the idea.  I use the snapshot from June.  During the build
> process you need to answer two questions:
> 1. for the constant IR1-ATTRIBUTE-TRANSLATIONS choose "Go ahead"
> 2. for the struct VM-SUPPORT-ROUTINES choose "CLOBBER-IT" 

Yep, I just guessed that those are the answers, so I have recompiled
cmucl with the new feature.  We'll have to fix the issue with the
questions if possible.

I also noticed that when compiling the target, I get an error:

; File: /Volumes/share2/src/clnet/cmucl/cmucl/src/compiler/dump.lisp


; Error: (during macroexpansion)
; Error in function LISP::ASSERT-ERROR:
;    Compiler bug: LISP::FOP-TYPED-ENTRY-POINT not a legal fasload operator.

Seems to be harmless, because the result can rebuild cmucl just fine.
But we should fix this too.

> I also added a file src/tests/unboxed-convention.lisp with some examples
> that do work.  Tho, I'm sure that there are cases left that don't work.

I'll do some more tests with this a bit later.  I'd be interested in
some bigger tests with maxima, once I hack f2cl to generate the ftype
declarations for the translated functions.  This might tease out a few
corner cases that you missed.  And it might give a nice speed up for
those functions.  (Although, I think most functions are fairly long, so
boxing and unboxing is probably in the noise, but it might save on some
GC time.)


More information about the cmucl-imp mailing list