OpenSmalltalk
/
opensmalltalk-vm
|
Cog
|
1 hr, 37 mins, and 15 secs
|
Eliot Miranda
|
CogVm source as per VMMaker.oscog-eem.2663
Implement 238 primitiveFloatArrayAt & 239 primitiveFloatArrayAtPut for Spur WordArray and DoubleWordArray as higher performance versions of the FloatArrayPlugin. No JIT implementation yet.
Add the integer arrays to the plugin API (classDoubleByteArray et al). Reorganize vmProxyMajor/MinorVersion so that different object memories can provide different versions (this API is only really useful in Spur). Comment a non-obvious point with InterpreterPlugin>>setInterpreter:.
Remove some annoying Undefined Behavior.
When compiling the VM with Makefile.flags CFLAGS,LDFLAGS,BFLAGS,DYFLAGS= -fsanitize=undefined \ we then get annoying undefined behavior warning, like:
../../spursrc/vm/gcc3x-cointerp.c:52198:33: runtime error: signed integer overflow: -1197416510 * 16807 cannot be represented in type 'int' ../../src/plugins/BitBltPlugin/BitBltPlugin.c:4390:34: runtime error: shift exponent 32 is too large for 32-bit type 'usqInt' (aka 'unsigned int')
Since we should not rely on UB, let's remove UB. For hash, we simply use unsigned arithmetic (with the final bitAnd: this is strictly equivalent). For BitBlt, we must avoid shifting by 32 positions (replace those trivial case of information fitting a single 32-bit word).
Cogit: Fix another slip in CogARMCompiler>>concretizeLoadEffectiveAddressMwrR
|
|
|
Would you like to stay up-to-date with the upcoming Travis CI build environment updates? We set up a mailing list for you!
SIGN UP HERE
|
|
|
|
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"action": {
"@type": "ViewAction",
"url": "https://travis-ci.org/OpenSmalltalk/opensmalltalk-vm/builds/638960286?utm_medium=notification&utm_source=email",
"name": "View Build"
},
"description": "View Build #1919 on Travis CI"
}
</script>