On Sat 24 Mar 2012 21:09, Ian Price <[email protected]> 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 the mean time, I added a check for the vector-length to glil/compile-assembly.scm. If the vector is too big, it hits the array case, which has a 24-bit range. It seems to hit some other problem after that, but I gave it the ole college try, right? Cheers, Andy -- http://wingolog.org/
