root icon indicating copy to clipboard operation
root copied to clipboard

[Core] Turn IMT on if MacOS, Win or Linux-with-X11-running:

Open Axel-Naumann opened this issue 7 years ago • 39 comments

Introduce a flag that keeps track of -t / -T to enable / disable IMT from the command line. If none is specified, and rootrc does not contain "Rint.AutoIMT: false", turn it on if above conditions are met.

Axel-Naumann avatar Sep 27 '18 12:09 Axel-Naumann

Starting build on slc6/gcc48, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON How to customize builds

phsft-bot avatar Sep 27 '18 12:09 phsft-bot

Starting build on slc6/gcc48, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON How to customize builds

phsft-bot avatar Sep 27 '18 12:09 phsft-bot

This PR introduces a great behaviour. We need to think about our tutorials and examples now, e.g. whether somewhere we assumed that by default no MT was enabled :) One big consequence is that users are forced to a paradigm shift: code written for example in Defines/Filters of RDF should be thread safe

dpiparo avatar Sep 27 '18 12:09 dpiparo

Build failed on ubuntu16/native. See console output.

Warnings:

  • include/TApplication.h:84:23: warning: ‘TApplication::fIMTEnabledAtCLI’ will be initialized after [-Wreorder]
  • include/TApplication.h:67:23: warning: ‘TObjArray* TApplication::fFiles’ [-Wreorder]
  • /mnt/build/workspace/root-pullrequests-build/root/core/base/src/TApplication.cxx:100:1: warning: when initialized here [-Wreorder]
  • include/TApplication.h:84:23: warning: ‘TApplication::fIMTEnabledAtCLI’ will be initialized after [-Wreorder]
  • include/TApplication.h:67:23: warning: ‘TObjArray* TApplication::fFiles’ [-Wreorder]
  • /mnt/build/workspace/root-pullrequests-build/root/core/base/src/TApplication.cxx:124:1: warning: when initialized here [-Wreorder]

Failing tests:

And 423 more

phsft-bot avatar Sep 27 '18 12:09 phsft-bot

I welcome the idea of turning on parallelism where it makes sense, but the approach chosen is not the best in my opinion. I think a better alternative would be to use isatty to check if stdin comes from a terminal or if we are running in batch mode:

$ echo 'std::cout << isatty(STDIN_FILENO) << "\n";' | root -l
0
$ root -l
root [0] isatty(STDIN_FILENO)
(int) 1
root [1] 

amadio avatar Sep 27 '18 12:09 amadio

@amadio : lxplus is your counter-argument, with plenty of ttys but it's a shared resource so we must not enable IMT. Please keep trying to beat X11 as autoIMT symptom! :-)

Axel-Naumann avatar Sep 27 '18 13:09 Axel-Naumann

Starting build on slc6/gcc48, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON How to customize builds

phsft-bot avatar Sep 27 '18 14:09 phsft-bot

Starting build on slc6/gcc48, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON How to customize builds

phsft-bot avatar Sep 27 '18 15:09 phsft-bot

Build failed on fedora28/native. See console output.

Warnings:

  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:309:11: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:296:13: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:296:13: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:296:13: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<clang::CXXMethodDecl*, const clang::FunctionProtoType*>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:309:11: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:309:11: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:309:11: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:309:11: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:296:13: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<clang::CXXRecordDecl*, clang::SourceLocation>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  • /mnt/build/workspace/root-pullrequests-build/root/interpreter/llvm/src/include/llvm/ADT/SmallVector.h:296:13: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<const clang::CXXMethodDecl*, const clang::CXXMethodDecl*>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]

And 25 more

phsft-bot avatar Sep 27 '18 15:09 phsft-bot

Build failed on mac1013/native. See console output.

Errors:

  • /Volumes/HD2/build/jenkins/workspace/root-pullrequests-build/root/core/rint/src/TRint.cxx:69:16: error: expected value in expression
  • /Volumes/HD2/build/jenkins/workspace/root-pullrequests-build/root/core/rint/src/TRint.cxx:74:7: error: unknown type name 'DIR'
  • /Volumes/HD2/build/jenkins/workspace/root-pullrequests-build/root/core/rint/src/TRint.cxx:74:18: error: use of undeclared identifier 'opendir'
  • /Volumes/HD2/build/jenkins/workspace/root-pullrequests-build/root/core/rint/src/TRint.cxx:78:10: error: unknown type name 'DIR'
  • /Volumes/HD2/build/jenkins/workspace/root-pullrequests-build/root/core/rint/src/TRint.cxx:83:17: error: member access into incomplete type 'struct dirent'

Warnings:

  • ld: warning: text-based stub file /System/Library/Frameworks//OpenGL.framework/OpenGL.tbd and library file /System/Library/Frameworks//OpenGL.framework/OpenGL are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//OpenGL.framework/OpenGL.tbd and library file /System/Library/Frameworks//OpenGL.framework/OpenGL are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.tbd and library file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.tbd and library file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//Cocoa.framework/Cocoa.tbd and library file /System/Library/Frameworks//Cocoa.framework/Cocoa are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//AppKit.framework/Versions/C/AppKit.tbd and library file /System/Library/Frameworks//AppKit.framework/Versions/C/AppKit are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation.tbd and library file /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//ApplicationServices.framework/Versions/A/ApplicationServices.tbd and library file /System/Library/Frameworks//ApplicationServices.framework/Versions/A/ApplicationServices are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//Foundation.framework/Versions/C/Foundation.tbd and library file /System/Library/Frameworks//Foundation.framework/Versions/C/Foundation are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//CoreGraphics.framework/Versions/A/CoreGraphics.tbd and library file /System/Library/Frameworks//CoreGraphics.framework/Versions/A/CoreGraphics are out of sync. Falling back to library file for linking.

And 33 more

phsft-bot avatar Sep 27 '18 22:09 phsft-bot

Starting build on slc6/gcc48, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON How to customize builds

phsft-bot avatar Sep 28 '18 06:09 phsft-bot

Build failed on mac1013/native. See console output.

Warnings:

  • ld: warning: text-based stub file /System/Library/Frameworks//OpenGL.framework/OpenGL.tbd and library file /System/Library/Frameworks//OpenGL.framework/OpenGL are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//OpenGL.framework/OpenGL.tbd and library file /System/Library/Frameworks//OpenGL.framework/OpenGL are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.tbd and library file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.tbd and library file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//Cocoa.framework/Cocoa.tbd and library file /System/Library/Frameworks//Cocoa.framework/Cocoa are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//AppKit.framework/Versions/C/AppKit.tbd and library file /System/Library/Frameworks//AppKit.framework/Versions/C/AppKit are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation.tbd and library file /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//ApplicationServices.framework/Versions/A/ApplicationServices.tbd and library file /System/Library/Frameworks//ApplicationServices.framework/Versions/A/ApplicationServices are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//Foundation.framework/Versions/C/Foundation.tbd and library file /System/Library/Frameworks//Foundation.framework/Versions/C/Foundation are out of sync. Falling back to library file for linking.
  • ld: warning: text-based stub file /System/Library/Frameworks//CoreFoundation.framework/Versions/A/CoreFoundation.tbd and library file /System/Library/Frameworks//CoreFoundation.framework/Versions/A/CoreFoundation are out of sync. Falling back to library file for linking.

And 80 more

Failing tests:

phsft-bot avatar Sep 28 '18 10:09 phsft-bot

⚠️ This PR triggers failures (i.e. uncovers thread-unsafe constructs in ROOT) that will first need to get fixed before this PR can get merged.

Axel-Naumann avatar Sep 28 '18 11:09 Axel-Naumann

@phsft-bot build since quite some changes took place in the past 2 months.

dpiparo avatar Dec 17 '18 08:12 dpiparo

Starting build on ROOT-centos7/python3, ROOT-fedora27/noimt, ROOT-ubuntu16/rtcxxmod, mac1014/cxx17, windows10/default with flags -Dccache=ON How to customize builds

phsft-bot avatar Dec 17 '18 08:12 phsft-bot

@phsft-bot build just on mac1014/cxx17

Axel-Naumann avatar Jan 25 '19 08:01 Axel-Naumann

Starting build on mac1014/cxx17 How to customize builds

phsft-bot avatar Jan 25 '19 08:01 phsft-bot

Build failed on mac1014/cxx17. See console output.

Warnings:

  • /build/jenkins/workspace/root-pullrequests-build/root/core/dictgen/src/rootcling_impl.cxx:3716:13: warning: unused function 'FileExists' [-Wunused-function]
  • /build/jenkins/workspace/root-pullrequests-build/root/core/metacling/src/TCling.cxx:1130:13: warning: unused function 'FileExists' [-Wunused-function]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:414:7: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:415:7: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:492:4: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:493:4: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:494:4: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:495:4: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:563:4: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]
  • /build/jenkins/workspace/root-pullrequests-build/root/graf3d/gl/src/TGLAxisPainter.cxx:564:4: warning: 'gluProject' is deprecated: first deprecated in macOS 10.9 - "Use GLKMathProject" [-Wdeprecated-declarations]

And 109 more

Failing tests:

phsft-bot avatar Jan 25 '19 09:01 phsft-bot

@phsft-bot build

Axel-Naumann avatar May 12 '20 15:05 Axel-Naumann

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14 How to customize builds

phsft-bot avatar May 12 '20 15:05 phsft-bot

@phsft-bot build

Axel-Naumann avatar May 20 '20 14:05 Axel-Naumann

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos7-multicore/default, ROOT-fedora29/python3, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14 How to customize builds

phsft-bot avatar May 20 '20 14:05 phsft-bot