It's a issue of what is insane, plus adding boundary checks everywhere
that is rarely needed.
The correct response for the issue is to throw a out of memory
exception when the VM figures out it
can't allocate the 4GB of memory here.
I a quick check shows the primitive fails, then the image side
primitive failure code does the wrong thing...
In this case I get a MethodContext claiming to be
"RunArray>>copyFrom:to:"
which if you attempt to work further with, causes problems.
On 2009-10-07, at 1:37 PM, Michael van der Gulik wrote:
>
>
> On Wed, Oct 7, 2009 at 9:17 PM, Torsten Bergmann <
[hidden email]>
> wrote:
>
> VisualWorks throws an exception "Size exceeds implementation limit
> of 2^28 elements".
>
> Pharo and Squeak also crash the VM when you evaluate:
>
> (Array new: SmallInteger maxVal) last
>
> What is interesting is that when you doIt in Squeak trunk:
>
> (Array new: SmallInteger maxVal) last
>
> nothing happens, but VM crashes when you printIt
>
> In Pharo VM already crashes when you just doIt.
>
> It crashes in both when you inspectIt.
>
>
> ...should this be fixed in the image or the VM?
>
> Is it the responsibility of the image to make sure that the VM isn't
> passed insane values, or is the responsibility of the VM to not
> crash when the image asks for insane values.
>
> Gulik.
>
>
>
> --
>
http://gulik.pbwiki.com/--
=
=
=
========================================================================
John M. McIntosh <
[hidden email]> Twitter:
squeaker68882
Corporate Smalltalk Consulting Ltd.
http://www.smalltalkconsulting.com=
=
=
========================================================================