Subject: bug#11087: vector limitation in compiling to bytecode

From: Ian Price <[email-masked]>
Date: Fri, 06 Jul 2012 07:52:15 +0100

Andy Wingo <[email-masked]> writes:

> On Sat 24 Mar 2012 21:09, Ian Price <[email-masked]> writes:
>
>> ;;; ERROR: In procedure bytevector-u8-set!: Value out of range: 390
>> vector constant containing 100000 values
>>
>> This limitation is documented, and somewhat reasonable, but on IRC mark
>> weaver asked me to file a bug anyway, since he thinks the assembler
>> should have a fall back plan.
>
> I agree with Mark.
>
> For what it's worth, if the vector is really constant (e.g. just
> composed of immediates), the RTL VM will emit the whole thing
> statically.  Otherwise it will emit code to allocate a vector
> of the right size at init time, initializing its elements with
> individual instructions.   This latter strategy is probably the right
> thing to do with the Guile 2.0 VM.
In my case, it was completely static. I had generated the vector from
another file, of existing data. It's good to hear this will work in the
future rtl based guile.

Thanks

-- 
Ian Price

"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"