[VW]Reading Large Files

Brett Taylor btaylor at quiknet.com
Thu Dec 3 20:36:43 UTC 1998


I have encountered a limitation in VW 3.0 that I need to find a work around
for.  I am trying to parse large files that are in the 1.5GB range.  I
receive a walkback when sending the message #atEnd to aFileStream after a
certain position in the file has been reached.  The failure actually occurs
in the following primitive method
"IOAccessor>>primReadInto: buffer startingAt: index for: count".  This
occurs when the parameter "index" becomes a LargePositiveInteger (The number
is 536870912  or SmallInteger class>>maxVal + 1).  This only allows me to
read the first half GB of the file.

I have also experimented in Squeak which has a limit of 1073741823 bytes
(also SmallInteger class>>maxVal + 1).
VSE under NT uses an OS call which limit is based on the page size of the
buffer so it has no problem with very large files (offsetIndex :=
filePosition // bufferSize).

I mention these other two Smalltalks just as a side note, but I am only
interested in a solution for VW 3.0 under NT at this time.  Does anyone have
a answer?

Brett Taylor
btaylor at quiknet.com





More information about the Squeak-dev mailing list