[Haskell-cafe] Error in array index.
Jason Dusek
jason.dusek at gmail.com
Wed Jun 24 12:50:49 EDT 2009
2009/06/24 Ketil Malde <ketil at malde.org>:
> Bulat Ziganshin <bulat.ziganshin at gmail.com> writes:
>
>>> array ((0,0),(65535,65535)) [((0,0),*** Exception: Error in array index
>
>> i think that it may be a bit too large for internal Int indicies:
>
> Aren't you asking for a 4G element array here, so with a 32bit
> wraparound the array will be some multiple of 4GB
It's a bit array. It'd be 512MiB.
> So in effect, you have a zero-length underlying array, but the
> array implementation still keeps track of the real indices and
> tries to print some contents. (Correct?)
I don't quite understand your reasoning here.
> Since array dereferencing are now checked against the
> underlying array instead of the real indices, you get this
> kind of inconsistency. It is greatly surprising to me that
> this has not been fixed.
>
> As long as 'unsafeAt' gives you the speed without the safety,
> I don't think the default dereferencing shouldn't sacrifice
> helpful error messages and predicability.
This arrangement would make me LOL if it weren't my own
project...
--
Jason Dusek
More information about the Haskell-Cafe
mailing list