FYI. I noticed that Eliot didn't send to Pharo-users.

Sent from my iPad

Begin forwarded message:

> From: Eliot Miranda <[email protected]>
> Date: February 15, 2016 at 11:39:29 PST
> To: Squeak Virtual Machine Development Discussion 
> <[email protected]>
> Cc: "[email protected]" <[email protected]>, 
> Discusses Development of Pharo <[email protected]>, The 
> general-purpose Squeak developers list <[email protected]>
> Subject: [squeak-dev] New Cog VMs available as per    
> VMMaker.oscog-eem.1679/r3602
> Reply-To: The general-purpose Squeak developers list 
> <[email protected]>
> 
> Hi All,
> 
>     first of all, apologies for the long wait for new VMs.  I know there are 
> bugs that these VMs address and that it's been 5 months since VMs were last 
> made is something I regret.  The wait was due to my developing the 64-bit 
> Spur Cog JIT VM which required surgery not just to the Cogit but also to 
> Slang.  I beg your forgiveness.
> 
>    Secondly, the Mac VMs are much changed, using John McIntosh's Cocoa 
> support libraries.  The old Carbon UI VMs are history.  That means that Cog 
> supports building on contemporary Mac OS releases.  These VMs were built on 
> 10.9; I like the 3D look much more than the 10.10 one ;-).  The VMs are also 
> signed, so installing them should be easier.
> 
>   Thirdly, these VMs include 64-bit JIT support.  There is an updated squeak 
> trunk image at http://www.mirandabanda.org/files/Cog/SpurImages for you to 
> try.  As yet the 64-bit Vms do not include an FFI plugin.  I hope to rectify 
> this soon.
> 
>    Finally I have included Pharo Mac VMs, not to displace the official Pharo 
> VMs, but to test my build process.  I hope that in very few months the svn 
> repository will be moed to githup and that Esteban and I will build official 
> VMs from the same repository.
> 
> 
> 
> The VMs are here: http://www.mirandabanda.org/files/Cog/VM/VM.r3602
> 
> CogVM binaries as per VMMaker.oscog-eem.1679/r3602
> 
> Include 64-bit Spur VMs for Mac OS X x64 and Linux x64. N.B. As yet these VMs
> lack FFI support.
> 
> Move all Mac OS X VMs to the Cocoa libraries.  Minimum supported version 
> should
> be 10.6.x.  The Mac OS X VMs are signed and so should install properly without
> having to disable the launch security checks.
> 
> 
> Bug Fixes and Improvements:
> 
> General:
> Add vmParameter 20 to answer the utc microseconds at startup.
> 
> 
> CoInterpreter:
> Remove the atCache from the CoInterpreter.  It's of little benefit given the
> Cogit.
> 
> ceSend: et al need to add looked up methods to the method cache, otherwise
> methods only found through machine code sends will not be jitted.
> 
> Fix slip in maybeSelectorOfMethod: which will improve back traces
> including methods containing pragmas (including primitives).
> 
> Modify secret primtiive 161, primitiveSetIdentityHash so that with 0 args it
> answers whether an object has an identity hash.  This is vacuously true for 
> V3,
> but is meaningful in Spur.
> 
> 
> Cogit:
> Fix /horrible/ bug with primitive error codes and fixups.  The adjustment of 
> the
> initialPC to skip the primitive and error code, if any, was done after
> generating fixups for backward branches, and hence these branches were bogus.
> Object>>shallowCopy in Spur is subject to this, but amazingly enough it has 
> not
> surfaced before now.  Fix this by adjusting the initialPC before scanMethod
> scans for fixups.
> 
> Fix bug in Spur machine-code at:put: on 32-bit bits objects; method failed to
> fail for negative values.
> 
> Fill unused portions of methods with the stop instruction, not nop.
> 
> Explicitly initialize the code zone with stops. Explicitly clear the
> reclaimed portion of the method zone after a compaction.
> 
> Include the reclaimed portion of the method zone in the I-cache flush
> after a compaction: no point in leaving it in cache since it isn't a
> valid call/jump target.
> 
> 
> Spur:
> Maintain the survivor count on scavenge.
> 
> Fix start up of images containing >= 16 segments.  The old code assumed
> numSegments < 16 and failed to grow the segment records, resulting in objects
> in segments greater than 15 to not be swizzled, and a resulting crash.
> 
> Spur Cogit: Support CompiledMethod indexing in genPrimitiveAt[Put].  Hence fix
> the regression in at:[put:] whereby in Spur one could access the literals part
> of a method as bytes.
> Add a machine-code primitive for objectAt: to provide fast literal and header
> access on Spur.
> 
> Add 16-bit indexability to Spur.  Generate slimmer code for
> positive32BitValueOf: on 64-bit Spur.
> 
> Fix a bug with out-of-place two-way become, which got the hash copy the wrong
> way round.  By default, the hash stays with the reference in two-way become.
> 
> Fix what appears to be a compiler bug with in-place two-way-become by treating
> the headers to be swapped so that remembered flags are swapped and hash bits
> are swapped if required. This fixes a bug with in-place two-way become of
> objects that are the same size on the heap.  One object's contents would not
> be updated correctly.
> 
> Implement ephemeron queue primitive.  Add an image flag that controls the
> finalization support (StackInterpreter instVar newFinalization).  If unset,
> finalization is as currently expected; WeakArray finalizes all WeakArrays in
> its registries on each finalization (which does not scale!).  If set, then 
> both
> fired ephemerons and bereaved weak arrays are added to the finalization queue
> and the finalization semaphore is signalled.  In this regime the image is
> expected to send mourn to each element of the queue, and weak arrays will send
> themselves finalize in mourn, side-stepping the finalizeValues steps and
> rendering WeakArray's FinalizationDependents and WeakRegistry obsolete.
> The bit is set via
>     Smalltalk vmParameterAt: 48
>               put: ((Smalltalk vmParameterAt: 48) bitOr: 64).
> 
> 
> Slang:
> Fix bad regression in type inference from VMMaker.oscog-eem.1587.
> returnTypeForSend:in: can only default return types to sqInt for unknown
> selectors.  The rewrite in VMMaker.oscog-eem.1587 inadvertently defaulted the
> return type of known methods whose return type was yet to be determined to
> sqInt.  The fix is to only default to sqInt if there is no known method for 
> the
> given selector.  This fixes, for instance, the weird flipping of the type of
> 32-bit Spur's headerWhileForwardingOf:,which should always be #sqLong.
> 
> Fix bad bug in type inferrence.  Avoid computing variable and return types
> prematurely i.e. don't derive types from as-yet-untyped methods.
> 
> Fix baaaad bug in node:typeCompatibleWith:inliningInto:in: which was looking
> up the type of the formal parameter in inlining in the target method, not the
> method being inlined!
> 
> 
> Newspeak:
> Fix bug in MNU for cogged dynamic super sends - should start looking for
> #doesNotUnderstand: in the superclass not the receiver class. Unify MNU
> lookup between absent and present receiver sends as a result.
> 
> Further fix outer send MNU by not confusing lkupClass and lkupClassTag.
> Push setting lkupClassTag down to clarify it is for new cache entries.
> 
> 
> Plugins:
> Fix the FilePlugin's unnecessary fullGC on Spur.
> Include the file sync prim in the FilePrims plugin.
> 
> ThreadedFFIPlugin:
> - ExternalAddress now are taken correctly (nor as ByteArray or Alien, because
>   they are different beasts).  
> - allow pushing of pointers to any type (into a ByteArray, an ExternalAddress
>   or an Alien), to allow passing parameters style int*, float*, etc.
> - allow reading in memory to allow read chunks of ByteArray
> 
> Added ThreadedFFIPlugin>>#primitiveLoadSymbolFromModule (copy and adapt from
> IA32ABIPlugin).
> 
> Fix coercion problems on FFI plugin (IA32 & ARM)
> - character were not correctly mapped back
> - floats were not being well checked
> - external addressed needs to be treated as aliens for the purpose of coercing
>   them as pointers (bad regression by Eliot)
> 
> Alien Plugins:
> Fix missing primitive failure for Alien typeAt: 0 [put:].
> Add word accessors to Alien.
> 
> _,,,^..^,,,_
> best, Eliot
> 

Reply via email to