New Cog VMs available

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

New Cog VMs available

Eliot Miranda-2

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 | Threaded
Open this post in threaded view
|

Re: [Pharo-dev] New Cog VMs available

douglas mcpherson
ARM stack.v3 and stack.spur VMs updated accordingly. 

(The cog.spur VM for ARM builds and image starts successfully, but segfaults pretty quickly … so I did not upload this one)

Doug

On May 21, 2015, at 15:25, Eliot Miranda <[hidden email]> wrote:


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 | Threaded
Open this post in threaded view
|

Re: [Vm-dev] Re: [Pharo-dev] New Cog VMs available

timrowledge

On 22-05-2015, at 9:00 AM, Douglas McPherson <[hidden email]> wrote:

> ARM stack.v3 and stack.spur VMs updated accordingly.
>
> (The cog.spur VM for ARM builds and image starts successfully, but segfaults pretty quickly … so I did not upload this one)

Smart move :-) It’ll be a while yet before it is really usable. I did manage to demo it for an hour or so at the MakerSpaceNanaimo Smalltalk Café on Tuesday, so an awful lot of it works ok. Right now we have an issue with PIC extending… right over the following nmethod. It doesn’t often end happily.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Catapultam habeo. Nisi pecuniam omnem mihi dabis, ad caput tuum saxum immane mittam = I have a catapult. Give me all the money, or I will fling an enormous rock at your head.