New Cog VMs available

21 views
Skip to first unread message

Eliot Miranda

unread,
May 17, 2015, 11:23:03 PM5/17/15
to Squeak Virtual Machine Development Discussion, The general-purpose Squeak developers list, Discusses Development of Pharo, newspeak...@googlegroups.com
...at http://www.mirandabanda.org/files/Cog/VM/VM.r3349.

I hope that the Squeak VMs here-in are final Spur 5.0 and Squeak 4.6 VMs.  The last known serious bug in Spur has been found and fixed with these VMs.  Of course uch hubris is asking for it.  I await the wrath of the gods.

CogVM binaries as per VMMaker.oscog-eem.1313/r3349

General:
Make the bounds check in primitiveObject:perform:...
more restrictive and fix bugs in the commentary.

Make stack pages a reasonable size.  My math was
wrong and the size was half as big as intended.

Extend the fastPrimTrace scheme to trace stack overflow, prim failure and prim
retry to help debug the phantom stack frame bug in Cog Spur.

Fix old bug in ceMNUFromPICMNUMethod:receiver: that has been masked by
cacheing of MNU method in MNU PIC entries.  ceMNUFromPICMNUMethod:receiver:
must set up lkupClass before calling handleMNU:...

Spur:
Fix ceActivateFailingPrimitiveMethod: to return properly after retrying
a primitive after checkForAndFollowForwardedPrimitiveState. e.g. fixes
  | s | 1 to: 5 do: [:i| s := 'bar'. s becomeForward: 'bzzt' copy. 'foo' <= s]

Fix bug in followForwardedFrameContents:stackPointer: so that arguments are
actually followed.  N.B. drives the above bug underground ;-).
so that named constants (defines) are not elided.

Make accessor depth calculation more accurate by not considering
fetchInteger:ofObject: and arraySize: et al as object accessors.

Make the read-before-written initializer safer, only initialzing simple types.

Newspeak:
Remove landmine left from restructing implicit receiver and outer sends as
clean sends.

Plugins:
Regenerated because of changes in accessorDepth calculation,
constant elimination, and read-before-use initialization.
--
best,
Eliot

Eliot Miranda

unread,
May 18, 2015, 12:28:24 AM5/18/15
to Squeak Virtual Machine Development Discussion, The general-purpose Squeak developers list, Discusses Development of Pharo, newspeak...@googlegroups.com
and the gods, right on time, have smitten me down.  The Slang changes have broken the VM, so I've taken the VMs down.
--
best,
Eliot

Eliot Miranda

unread,
May 21, 2015, 6:25:22 PM5/21/15
to Squeak Virtual Machine Development Discussion, The general-purpose Squeak developers list, Discusses Development of Pharo, newspeak...@googlegroups.com

CogVM binaries as per VMMaker.oscog-eem.1318/r3354

Cogit:
Fix the performance regression on x86 in r3308 VMMaker.oscog-eem.1178 through
the use of XCHG instruction in CogIA32Compiler>>genPushRegisterArgsForNumArgs:.
Since SendNumArgsReg is not live with small arity sends it can replace TempReg.

Spur:
Fix bad C bug in nextInSortedFreeListLink:given:.  The result
type must be usqInt, otherwise the list can be wrongly
terminated and the second compaction pass can segfault.

Change printFreeChunk:isNextChunk: to printFreeChunk:printAsTreeNode:, and use
it to implement printSortedFreeList.

Firm up the checkTraversableSortedFreeList assert routine to check that
the list is traversable from lastFreeChunk, not just firstFreeChunk.  Make
checkTraversableSortedFreeList robust in presence of empty sorted free list.

Slang:
Make promoteArithmeticTypes:and: obey C99's promotion rules more closely in an
effort to generate more stable sources.  Types were flipping between sqInt &
usqInt for variables that were assigned both types, so that one generation
would produce one type and a subsequent one another (Set/Dictionary hashing?).
-- 
best,
Eliot
Reply all
Reply to author
Forward
0 new messages