[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 219a1d: Compile all linux64x64 with clang

Nicolas Cellier noreply at github.com
Tue Oct 29 14:08:49 UTC 2019


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 219a1dc34c3b51265ec3df2809f99da425112bbd
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/219a1dc34c3b51265ec3df2809f99da425112bbd
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/newspeak.stack.spur/build.assert/mvm
    M build.linux64x64/newspeak.stack.spur/build.debug/mvm
    M build.linux64x64/newspeak.stack.spur/build/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug/mvm
    M build.linux64x64/nsnac.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.assert/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.debug/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build/mvm
    M build.linux64x64/pharo.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.assert/mvm
    M build.linux64x64/pharo.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.debug/mvm
    M build.linux64x64/pharo.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.assert/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.debug/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build/mvm
    M build.linux64x64/squeak.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.assert/mvm
    M build.linux64x64/squeak.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.debug/mvm
    M build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build/mvm
    M build.linux64x64/squeak.stack.spur/build.assert/mvm
    M build.linux64x64/squeak.stack.spur/build.debug/mvm
    M build.linux64x64/squeak.stack.spur/build/mvm

  Log Message:
  -----------
  Compile all linux64x64 with clang

reason: gcc currently has incompatible stack management with recent cog changes in SP/FP handling


  Commit: 28466a92999e5834fe8bf525226f66aac1ee7e55
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/28466a92999e5834fe8bf525226f66aac1ee7e55
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/newspeak.stack.spur/build/mvm
    M build.linux64x64/nsnac.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build/mvm
    M build.linux64x64/pharo.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build/mvm
    M build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build/mvm

  Log Message:
  -----------
  Remove obsolete gcc 3.4 specific options

YAGNI
Now that we removed most UB (all ?), this might not even be necessary, but we ain't gonna check such legacy stuff.


  Commit: f8a20f758afe5824c2aac0884ca3950b45dec006
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/f8a20f758afe5824c2aac0884ca3950b45dec006
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/newspeak.stack.spur/build.assert/mvm
    M build.linux64x64/newspeak.stack.spur/build.debug/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug/mvm
    M build.linux64x64/pharo.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.assert/mvm
    M build.linux64x64/pharo.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.debug/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.assert/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.debug/mvm
    M build.linux64x64/squeak.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.assert/mvm
    M build.linux64x64/squeak.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.debug/mvm
    M build.linux64x64/squeak.stack.spur/build.assert/mvm
    M build.linux64x64/squeak.stack.spur/build.debug/mvm
    M build.linux64x64/squeak.stack.spur/build/mvm

  Log Message:
  -----------
  Remove remaining -fwrapv compiler option in linux64x64

Reason: the -fwrapv flag let the compiler assume that integer overflow will wrap (modulo 2^nbits) rather than will never happen (because UB)
This flag was once necessary when we did depend on UB, but should be un-necessary now
If ever it's still the case, it's better to eliminate UB rather than try to hide/ignore it.
We shall NOT depend on UB.

Note if we suspect UB problems:
With clang we can use -fsanitize=undefined
This will instrumente code to detect UB situations, and create runtime warnings whenever UB is encountered


  Commit: 8fd8a5090e8653ed957bf2e5c217f3e269f4b7d2
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/8fd8a5090e8653ed957bf2e5c217f3e269f4b7d2
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/pharo.cog.spur.minheadless/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.itimerheartbeat/mvm

  Log Message:
  -----------
  Fix 3 minheadless flavours trying to compile for i386 target

This ain't the right place, we are in linux64x64 here (x86_64 architecture).
Are these scripts obsolete?
Don't we build minheadless with cmake?


  Commit: 896a4487b43b3acccca7d94d5818b9673f6633eb
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/896a4487b43b3acccca7d94d5818b9673f6633eb
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Acknowledge newspeak failures more generally


  Commit: 4b479830d5f4fc687bc4c74402cb272502fdc8b2
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/4b479830d5f4fc687bc4c74402cb272502fdc8b2
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Revert to ignore newspeak failure 1 by 1, but with corrected syntax

There was a missing -


  Commit: b3fbde319411c3679377774b0ffc6be43d067762
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b3fbde319411c3679377774b0ffc6be43d067762
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M .travis.yml
    M build.linux64x64/newspeak.stack.spur/build.assert/mvm
    M build.linux64x64/newspeak.stack.spur/build.debug/mvm
    M build.linux64x64/newspeak.stack.spur/build/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug/mvm
    M build.linux64x64/nsnac.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.assert/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.debug/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build/mvm
    M build.linux64x64/pharo.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.assert/mvm
    M build.linux64x64/pharo.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.debug/mvm
    M build.linux64x64/pharo.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.assert/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.debug/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build/mvm
    M build.linux64x64/squeak.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.assert/mvm
    M build.linux64x64/squeak.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.debug/mvm
    M build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build/mvm
    M build.linux64x64/squeak.stack.spur/build.assert/mvm
    M build.linux64x64/squeak.stack.spur/build.debug/mvm
    M build.linux64x64/squeak.stack.spur/build/mvm

  Log Message:
  -----------
  Merge pull request #440 from OpenSmalltalk/compile_linux64x64_with_clang

Compile linux64x64 with clang
This is a workaround for issue #433


Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/a2f6e9ebafc3...b3fbde319411


More information about the Vm-dev mailing list