On Sat, Feb 15, 2014 at 6:38 PM, David T. Lewis lewis@mail.msen.com wrote:
On Sat, Feb 15, 2014 at 08:08:19PM -0500, David T. Lewis wrote:
Yikes! Good catch, thank you.
This very likely *is* a VM problem. I can reproduce it with a standard interpreter VM, and the crash does not happen when I run the same thing on Cog.
The problem happens in SpaceTally>>spaceForInstancesOf:
This eventually does "CompiledMethod basicNew" which crashes the VM.
That's funny :-). You can print CompiledMethod basicNew, but woe betide you if you try and inspect it. I think the VM primitives should fail for CompiledMethod.
CompiledMethod class>basicNew seems to cause problems with both Cog and
interpreter VM, so I may have been wrong in saying that the issue was specific to the interpreter VM.
The format of CompiledMethod is special (see its class comment), and it appears that #basicNew is problematic.
Dave
To reproduce:
Help -> About this System, then select "Space Analysis" in the System Reporter. Result is:
Segmentation fault
17369460 Behavior>new 17369368 Fraction class>numerator:denominator: 17369272 SmallInteger>/ 17369180 Number>roundUpTo: 17369088 SpaceTally>spaceForInstancesOf:
Dave
On Sat, Feb 15, 2014 at 11:58:29PM +0100, Michael wrote:
Hi,
I am new to squeak and smalltalk, but I noticed the 4.5 release notes mention a "System space analysis" feature/function. However when I try it, I consistently crash the virtual machine with a segmentation fault.
I have tried both on a Raspberry Pi with the latest version of the virtual machine and on 64 bit Slackware 14.1 with version 4.10.2.2614 from slackbuilds.org. So I assume it is not a VM problem.
The complete output from the command line is: bash-4.2$ squeak Squeak4.5-13675.image CHECKING cogvm which: no cogvm in (/usr/bin:/bin) CHECKING squeakvm
Segmentation fault
17254592 Behavior>new Segmentation fault
Michael
On Mon, Feb 17, 2014 at 10:59 AM, Eliot Miranda eliot.miranda@gmail.comwrote:
On Sat, Feb 15, 2014 at 6:38 PM, David T. Lewis lewis@mail.msen.comwrote:
On Sat, Feb 15, 2014 at 08:08:19PM -0500, David T. Lewis wrote:
Yikes! Good catch, thank you.
This very likely *is* a VM problem. I can reproduce it with a standard interpreter VM, and the crash does not happen when I run the same thing on Cog.
The problem happens in SpaceTally>>spaceForInstancesOf:
This eventually does "CompiledMethod basicNew" which crashes the VM.
That's funny :-). You can print CompiledMethod basicNew, but woe betide you if you try and inspect it. I think the VM primitives should fail for CompiledMethod.
and my reason is that one can always get at the primitives somehow, e.g.
CompiledMethod perform: #basicNew: withArguments: #(0) inSuperclass: CompiledMethod class superclass!
so the VM can only preserve its integrity by refusing to instantiate bogus objects. I've already changed the VM to fail at:[put:] for CompiledMethod when accessing bytes in the literal frame (hence the change to CompiledMethod hash), & IIRC to instVarAt:[put:] when accessing outside the literal frame. Changing the basicNew[:] primitives would be consistent with that.
CompiledMethod class>basicNew seems to cause problems with both Cog and
interpreter VM, so I may have been wrong in saying that the issue was specific to the interpreter VM.
The format of CompiledMethod is special (see its class comment), and it appears that #basicNew is problematic.
Dave
To reproduce:
Help -> About this System, then select "Space Analysis" in the System Reporter. Result is:
Segmentation fault
17369460 Behavior>new 17369368 Fraction class>numerator:denominator: 17369272 SmallInteger>/ 17369180 Number>roundUpTo: 17369088 SpaceTally>spaceForInstancesOf:
Dave
On Sat, Feb 15, 2014 at 11:58:29PM +0100, Michael wrote:
Hi,
I am new to squeak and smalltalk, but I noticed the 4.5 release notes mention a "System space analysis" feature/function. However when I try it, I consistently crash the virtual machine with a segmentation fault.
I have tried both on a Raspberry Pi with the latest version of the virtual machine and on 64 bit Slackware 14.1 with version 4.10.2.2614 from slackbuilds.org. So I assume it is not a VM problem.
The complete output from the command line is: bash-4.2$ squeak Squeak4.5-13675.image CHECKING cogvm which: no cogvm in (/usr/bin:/bin) CHECKING squeakvm
Segmentation fault
17254592 Behavior>new Segmentation fault
Michael
-- best, Eliot
vm-dev@lists.squeakfoundation.org