Failed: OpenSmalltalk/opensmalltalk-vm#1806 (Cog - f6d5541)

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

Failed: OpenSmalltalk/opensmalltalk-vm#1806 (Cog - f6d5541)

Travis CI




branch iconCog

arrow to build time
clock icon9 mins and 54 secs

Eliot Miranda avatarEliot Miranda

Cog VM Source VMMaker.oscog-eem.2558

Reimplement Spur JIT access to literals and literal variables in #==, #~~ and
push/pop/store literal variable. Instead of having a run-time read barrier in
JITTED code, add a flag to CogMethod recordiong if a method references a movable
(becommable) literal, and scanning all so flagged methods post-become to follow
becommed literals. Thank you Clément for a lovely day's programming!!

This reduces code size by about 2.2%. Performance increase yet to be assessed,
but it should be better than 2.2% (less code, but more compact code means more
methods in the method zone and a more compact working set). Doing so means we
don't have to add all methods to young referrers if OldBecameNew. Instead we
need add only those with movable literals which after scanning end up with a
new literal. This scheme works well for 64-bits where sdelecftors are not
directly referenced; instead ithe inline cache (because it is only 32-bits)
contains the literal index of the selector.

Add control of mixed mode arithmetic primitives, controlled by a VM flag
(vmParameterAt: 48 [put:]; and perhaps by vmParameterAt: 75 [put:]). If the
flag is set (unset by default), arithmetic primitives given both integral and
float primitives will fail instead of coercing and completing.
See Smallissimo blog post

Provide primitiveHighBit (number 575). In the JIT add a new RTL OpCode ClzRR
to allow very fast computation of high bit.

Fix an initialization bug for classes referred to in option: pragmas but not
included. Make sure that all such classes are included in
InitializationOptions as false before initializing.

Fix checkGenerateSurrogate:bytesPerWord: when checking for a new method.
The existing code assumed no new methods were being adeed and so errored
when the cmHasMovableLiteral accessors were generated and checked for.

Want to know about upcoming build environment updates?

Would you like to stay up-to-date with the upcoming Travis CI build environment updates? We set up a mailing list for you!

book icon

Documentation about Travis CI

<script type="application/ld+json"> { "@context": "", "@type": "EmailMessage", "action": { "@type": "ViewAction", "url": ";utm_source=email", "name": "View Build" }, "description": "View Build #1806 on Travis CI" } </script>