[Vm-dev] New Cog VMs available
Juan Vuletich
JuanVuletich at zoho.com
Tue May 3 12:23:14 UTC 2016
It works perfectly with any Cuis image, including those that had the
Character>>#= problem with previous Cog releases.
Thanks Eliot,
Juan Vuletich
On 5/2/2016 11:43 PM, Eliot Miranda wrote:
>
>
>
> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3692
>
> These include stack ARM VMs for Spur and V3.
>
> CogVM binaries as per VMMaker.oscog-eem.1855/r3692
>
> General:
> Fix a bad bug in primitiveVoidVMStateForMethod. One might think that
> the heap
> scan is unnecessary if the method does not have a cog method. But it
> could be
> the case that the code zone has recently been reclaimed and so not
> having a cog
> method is no indication that it didn't have a cog method some time in
> the recent
> past, and that there are indeed still contexts with machine code pcs
> out there.
>
> Correct slip in primitiveMethodXray, the flags were not set in each
> caseOf:
> branch (thanks to -Wunused-value).
>
> Change overflow tests in precondition rather than postcondition for small
> integer multiplication. Because integer overflow is undefined
> behaviour, and
> because we can't rely on undefined behaviour, the compiler has a
> license to
> eliminate the post-condition as dead code (at least since iso c89
> acception).
> Post-condition currently works because we use -fwrapv compiler flag, but
> relying on specific compiler flags is bad practice in the long term.
>
> Fix regression in signed 32bit long access (introduced beginning of
> April).
> One symptom is:
> (Alien newGC: 4)
> signedLongAt: 1 put: -16r7287E552;
> signedLongAt: 1
>
> Fix positive32BitIntegerFor: for Spur64 which worked only because the
> constant
> was generated ULL.
>
> Spur:
> Fix primitiveIsPinned.
>
> V3:
> Fix missing comparison operation in genPrimitiveIdentical on V3. This
> should
> fix Character = problem encounterd in Cuis.
>
> Debugging: Add printContextReferencesTo: & printActivationsOf: and
> have them
> print the pcs of the contexts they find.
>
>
> Cogit:
> Reorder annotation constants to simplify isPCMappedAnnotation:.
>
> Sista Cogit:
> Added a primitive to answer all the methods present in the machine
> code zone.
>
> allMachineCodeMethods
> <primitive: 'primitiveAllMethodsCompiledToMachineCode' module:''>
> ^#()
>
> Fix regression in VMMaker.oscog-eem.1823 when merging the two map
> enumerators
> into one that affects Sista. The merged enumerator must extend
> IsSendAnnotations with the AnnotationExtension.
>
>
> Plugins:
> Regenerate plugins using the recently revised type inferrence code.
>
>
> Slang:
> Extend type inference capabilities from the AST. Unify type inference
> used to
> #inferReturnTypeFromReturnsIn: with that based on AST. Now that type
> inference
> is a bit more thorough, release type restrictions in #isFunctional in
> order to
> obtain much more aggressive inlining. With those, a gain of 10% is
> possible
> on the LargeIntegersPlugin dominated bench:
>
> Use a type inference that better fits C rules (C99 standard section 6.3):
> - in (float op int), int is promoted to double not float
> - in (unsigned short op short) both operands are promoted to #int due
> to int
> promotion rules.
>
> Use minimum generality for generated integer constants:
> - use int if variable fits in int
> - else unsigned int
> - else long long (long would be enough for 64bits versions, but long
> long works
> for both 32 and 64)
> - else unsigned long long
> This is to avoid spurious unsigned promotion due to improved type
> inference.
>
>
> Mac OS X: Fix argument processing, so that e.g.
> myvm -breaksel aSelector my.image
> works (but -headless still fails).
>
> _,,,^..^,,,_
> best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160503/582aae65/attachment.htm
More information about the Vm-dev
mailing list