[Vm-dev] New Cog VMs available

Eliot Miranda eliot.miranda at gmail.com
Tue Mar 29 18:59:26 UTC 2016

... at http://www.mirandabanda.org/files/Cog/VM/VM.r3663

CogVM binaries as per VMMaker.oscog-eem.1746/r3663


Fix loss of signals to e.g. a socket's readSemaphore when data available:
Fix a bug in sqAtomicOps.h where the assumption that the intrinsic atomic
operation will apply to 16-bit variables is false on clang.  So on x86 and
use inline assembly with gcc and clang since this is known to work.
Improve the doSignalSemaphores code in sqExternalSemaphores.c so that the
variables are initialized at the right point and so there's only one copy of
the signalling code.

Allow primitiveUtcWithOffset to accept an optional parameter with an
array or object with two or more slots to store UTC posix microseconds
and time zone offset in seconds. Compatibility with VMM trunk.

Add a Smalltalk epoch version of it, primitiveUtcAndTimezoneOffset,
and give it primitive #244.

Fix signed/unsigned arithmetic issues in 64-bit microsecond clock code.
This fixes the bug whereby
Time localMicrosecondClock - Time utcMicrosecondClock // 1000000
would answer something with an odd second, a multiple of 3600 plus 1.

General Integer conversion routines:
Several clean ups to integer conversion routines.

Simplify bit operations using positiveMachineIntegerValueOf:/
positiveMachineIntegerFor: rather than doing 32/64 bits dissertation.

Spur Cogit:
Rewrote identity primitive to check for forwarders only when the identity of
objects is different.  The previous version would crash if the argument was
forwarder to an immediate.

Spur VMs:
Now that UUIDs are created with purely image-based code in Squeak trunk,
the UUIDPlugin external in all Squeak Spur VMs.

Make FFI load symbol fail after (when find function fails).
In Pharo, we allow to load global functions (so we can control world windows
through FFI).


Finish 1st round of LargeIntegers refactoring

- simplify the left and right shift
- use as much unsigned arithmetic as possible
- homogenize type declaration within the plugin
- remove unused digitOf:at:

Beware: sending abs to an unsigned int will re-interpret the int as signed
will generate C compiler warnings.  The new version uses SQABS and SQLABS
on sqInt and sqLong vars, and fabs and fabsf on double and float args,
respectively, and llabs on long long, __int64 vars.

Mac OS X:
Unswap the Squeak and Newspeak localized strings

best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160329/ec957194/attachment-0001.htm

More information about the Vm-dev mailing list