I see this bug on Mac as well.
In ipython 5.1.0:
import ROOT
a = ROOT.TCanvas()
produces no TCanvas, but it briefly blinks on the screen when exiting ipython. The canvas appears no problem using the plain old python prompt (version 2.7.12 for me).
Worse still, if you do :
ipython --pylab
trying to make a TCanvas segfaults with the below message, and completely bricks your terminal session:
*** Break *** segmentation violation
Generating stack trace...
0x000000010ff7624b in TClass::GetClass(char const*, bool, bool) (in libCore.so) (TClass.cxx:5429)
0x000000010ff9d0d5 in TProtoClass::FillTClass(TClass*) (in libCore.so) (TInterpreter.h:103)
0x000000010ff790ca in TClass::Init(char const*, short, std::type_info const*, TVirtualIsAProxy*, char const*, char const*, int, int, ClassInfo_t*, bool) (in libCore.so) (TClass.cxx
0x000000010ff7a99a in TClass::TClass(char const*, short, std::type_info const&, TVirtualIsAProxy*, char const*, char const*, int, int, bool) (in libCore.so) (TClass.cxx:1276)
0x00000001252f0e13 in ROOT::Internal::TQObjectInitBehavior::CreateClass(char const*, short, std::type_info const&, TVirtualIsAProxy*, char const*, char const*, int, int) const (in
0x000000010ff91169 in ROOT::TGenericClassInfo::GetClass() (in libCore.so) (TGenericClassInfo.cxx:207)
0x00000001252f0465 in TGHtml::Dictionary() (in libGuiHtml.so) (atomic:842)
0x000000010ff76138 in TClass::GetClass(char const*, bool, bool) (in libCore.so) (TClass.cxx:5405)
0x000000010ff82be8 in TClass::InheritsFrom(char const*) const (in libCore.so) (TClass.cxx:4582)
0x000000012160c9e5 in -[QuartzView drawRect:] (in libGCocoa.so) (QuartzWindow.mm:2724)
0x00007fff8aa65cd2 in -[NSView _drawRect:clip:] (in AppKit) + 3626
0x00007fff8aabdcad in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] (in AppKit) + 1873
0x00007fff8aabe08a in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] (in AppKit) + 2862
0x00007fff8aa633fb in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] (in AppKit) + 838
0x00007fff8aa62be0 in -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] (in AppKit) + 334
0x00007fff8aa60feb in -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] (in AppKit) + 2449
0x00007fff8aa5c3f5 in -[NSView displayIfNeeded] (in AppKit) + 1950
0x00007fff8aa5bc3c in -[NSWindow displayIfNeeded] (in AppKit) + 232
0x00007fff8b0e041b in ___NSWindowGetDisplayCycleObserver_block_invoke6365 (in AppKit) + 476
0x00007fff8aa5b5d6 in __37+[NSDisplayCycle currentDisplayCycle]_block_invoke (in AppKit) + 941
0x00007fff89aeaf71 in CA::Transaction::run_commit_handlers(CATransactionPhase) (in QuartzCore) + 85
0x00007fff89aea42c in CA::Context::commit_transaction(CA::Transaction*) (in QuartzCore) + 160
0x00007fff89aea0ec in CA::Transaction::commit() (in QuartzCore) + 508
0x00007fff89af5977 in CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) (in QuartzCore) + 71
0x00007fff9bb04067 in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ (in CoreFoundation) + 23
0x00007fff9bb03fd7 in __CFRunLoopDoObservers (in CoreFoundation) + 391
0x00007fff9bae2ef8 in CFRunLoopRunSpecific (in CoreFoundation) + 328
0x00007fff89cd9935 in RunCurrentEventLoopInMode (in HIToolbox) + 235
0x00007fff89cd9677 in ReceiveNextEventCommon (in HIToolbox) + 184
0x00007fff89cd95af in _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox) + 71
0x00007fff8a903df6 in _DPSNextEvent (in AppKit) + 1067
0x00007fff8a903226 in -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit) + 454
0x00007fff8a8f7d80 in -[NSApplication run] (in AppKit) + 682
0x000000010a849637 in ffi_call_unix64 (in _ctypes.so) + 79
0x00007fff5623ce00 in <unknown function>
For the moment, pyROOT is quite unusable…