Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-nice.2543.mcz
==================== Summary ====================
Name: VMMaker.oscog-nice.2543
Author: nice
Time: 27 August 2019, 5:42:55.856384 am
UUID: 4d58051c-e032-4926-851a-e04c8f477aa2
Ancestors: VMMaker.oscog-nice.2542
Fixup stupid refactoring bug...
=============== Diff against VMMaker.oscog-nice.2542 ===============
Item was changed:
----- Method: InterpreterPrimitives>>primitiveHighBit (in category 'arithmetic integer primitives') -----
primitiveHighBit
| integerReceiverOop leadingZeroCount highestBitZeroBased |
integerReceiverOop := self stackTop.
"Convert the receiver Oop to use a single tag bit"
self numSmallIntegerTagBits > 1
+ ifTrue: [integerReceiverOop := (integerReceiverOop >>> (self numSmallIntegerTagBits-1) bitOr: 1)].
- ifTrue: [integerReceiverOop := objectMemory integerValueOf: (integerReceiverOop >>> (self numSmallIntegerTagBits-1) bitOr: 1)].
self cppIf: #'__GNUC__' defined
ifTrue:
["Note: in gcc, result is undefined if input is zero (for compatibility with BSR fallback when no CLZ instruction available).
but input is never zero because we pass the oop with tag bits set, so we are safe"
objectMemory wordSize = 4
ifTrue: [leadingZeroCount := self __builtin_clz: integerReceiverOop]
ifFalse: [leadingZeroCount := self __builtin_clzll: integerReceiverOop].
leadingZeroCount = 0
ifTrue:
["highBit is not defined for negative Integer"
self primitiveFail]
ifFalse:
["Nice bit trick: 1-based high-bit is (32 - clz) - 1 to account for tag bit.
This is like two-complement - clz - 1 on 5 bits, or in other words a bit-invert operation clz ^16r1F"
self pop: 1 thenPushInteger: (leadingZeroCount bitXor: (BytesPerWord * 8 - 1))]]
ifFalse: [self cppIf: #'_MSC_VER' defined
ifTrue:
["In MSVC, _lzcnt and _lzcnt64 builtins do not fallback to BSR when not supported by CPU
Instead of messing with __cpuid() we always use the BSR intrinsic"
"Trick: we test the oop sign rather than the integerValue. Assume oop are signed (so far, they are, sqInt are signed)"
integerReceiverOop < 0 ifTrue: [self primitiveFail] ifFalse: [
"Setting this variable is useless, but VMMaker will generate it at a worse place"
highestBitZeroBased := 0.
"We do not even test the return value, because integerReceiverOop is never zero"
objectMemory wordSize = 4
ifTrue: [self _BitScanReverse: highestBitZeroBased address _: integerReceiverOop]
ifFalse: [self _BitScanReverse64: highestBitZeroBased address _: integerReceiverOop].
"thanks to the tag bit, the +1 operation for getting 1-based rank is not necessary"
self pop: 1 thenPushInteger: highestBitZeroBased]]
ifFalse:
["not gcc/clang, nor MSVC, you have to implement if your compiler provide useful builtins"
self primitiveFail]].!
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 83497f5a6c3d7b96cbae086729dd4c849ef029ea
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/83497f5a6c3d7b96cb…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2019-09-03 (Tue, 03 Sep 2019)
Changed paths:
M platforms/unix/vm-display-X11/acinclude.m4
M scripts/ci/travis_install.sh
Log Message:
-----------
Restore support for large cursor on linux X11 VM
Large cursor support is present but optional on X11
It is triggered by compiler define HAVE_LIBXRENDER
It depends on availability of Xrender library which is an optional X extension
Try to test presence of header and library in configure macro
Note that it is also necessary to install the proper package
e.g. on debian flavours
sudo apt-get install libxrender-dev
Commit: edb14fe404654241ef2a2bf04ae0945611d6533a
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/edb14fe404654241ef…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2019-09-04 (Wed, 04 Sep 2019)
Changed paths:
M platforms/unix/config/aclocal.m4
M platforms/unix/config/config.h.in
M platforms/unix/config/configure
Log Message:
-----------
Commit files generated by autotools
These are generated by `cd platforms/unix/config; make configure`
Commit: d6238b29f217776ad70f1eee029056a7e9aa76bd
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d6238b29f217776ad7…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2019-09-04 (Wed, 04 Sep 2019)
Changed paths:
M platforms/unix/config/aclocal.m4
M platforms/unix/config/config.h.in
M platforms/unix/config/configure
M platforms/unix/vm-display-X11/acinclude.m4
M scripts/ci/travis_install.sh
Log Message:
-----------
Merge pull request #424 from OpenSmalltalk/restore_large_cursor_support
Restore support for large cursor on linux X11 VM
Note: this fix only test the availability of header, and whether the library is required or not.
It does not test the case when library is required but absent.
The fix solve the large cursor problem, so it is considered good enough.
It will be time to improve later if ever somebody barks (other distribs, openbsd, etc...)
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/4b644ad1b069...d6…
These architectures and flavours are failing for a long time
Such failures make the CI status useless
and obstruct integration of unrelated features
It is vital to have a green CI, and these are provisional measures to restore a useful status.
This should not prevent us to investigate the problem further and hopefully resolve it.
It seems that all recent builds triggered the same crash dump on macos and linux while bootstrapping Newspeak, following stage:
"$NSVM" $HEADLESS $COG_FLAGS $IMAGE NewspeakBootstrap.st
The error did not happen in x64 stack version, neither on linux nor macos.
This means that this might well be a bug related to Cog JIT on x64 SysV,
rather than a bug specific to Newspeak 64bits image.
It might be that Newspeak bootstrap process is testing the VM more thoroughly...
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/425
-- Commit Summary --
* Allow failure of Newspeak on linux 64
* Also allow Newspeak failure on macos 64
-- File Changes --
M .travis.yml (2)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/425.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/425.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/425