GNU bug report logs - #11087
vector limitation in compiling to bytecode

Previous Next

Package: guile;

Reported by: Ian Price <ianprice90 <at> googlemail.com>

Date: Sat, 24 Mar 2012 20:42:02 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 11087-done <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: Ian Price <ianprice90 <at> googlemail.com>
Cc: 11087-done <at> debbugs.gnu.org
Subject: Re: bug#11087: vector limitation in compiling to bytecode
Date: Thu, 05 Jul 2012 23:01:42 +0200
On Sat 24 Mar 2012 21:09, Ian Price <ianprice90 <at> googlemail.com> 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/




This bug report was last modified 12 years and 323 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.