92c31cb | Enric Tejedor Saavedra | 02 February 2018, 14:45:20 UTC | ROOT-9237: Prevent different output in absence of OpenGL | 06 February 2018, 10:57:48 UTC |
e0951fb | Axel Naumann | 02 February 2018, 12:57:36 UTC | Old rootmap line must *begin* with "Library." (ROOT-9233). (cherry picked from commit c8f7a7d092eae3bf98e5c72913dde6ee040e5b86) | 06 February 2018, 07:09:03 UTC |
baada60 | Axel Naumann | 01 February 2018, 14:15:53 UTC | Fix memory corruption in reader initialization. For arrays, CreateProxy() can add to fValues which invalidates iterators. Use stable, index-based iteration instead. (cherry picked from commit aecbe9b1192ad326ba8da9e408819be7d5527edc) | 06 February 2018, 07:09:03 UTC |
6c3b0b0 | Axel Naumann | 10 January 2018, 10:28:07 UTC | Set batch mode for the unit tests. (cherry picked from commit c8519f8d838d5978dafe162fed353ec0a822ada3) | 06 February 2018, 07:09:03 UTC |
4b10c80 | Axel Naumann | 10 December 2017, 19:10:38 UTC | Merge help text from TApplication and rootx. They are meant to be identical but diverged. (cherry picked from commit 2355f2b81e356e0fc9629f344afe9c14e35aa864) | 06 February 2018, 07:09:03 UTC |
6b2dbe6 | Axel Naumann | 06 February 2018, 07:07:59 UTC | Do not reset the mutex to 0 readers, 0 writers upon interp invocation. | 06 February 2018, 07:07:59 UTC |
8213784 | Axel Naumann | 31 January 2018, 08:29:25 UTC | R__ASSERT that the calling sequence is sane. | 06 February 2018, 07:01:53 UTC |
e7d3983 | Axel Naumann | 30 January 2018, 11:01:05 UTC | Use fully qualified name to ease lookup. | 06 February 2018, 07:01:53 UTC |
7f13f4c | Axel Naumann | 30 January 2018, 10:43:50 UTC | Move definition of R__LOCKGUARD_CLING up in the file: we need it for TInterpreter itself. | 06 February 2018, 07:01:53 UTC |
386a44e | Axel Naumann | 30 January 2018, 10:06:50 UTC | Typo - Rewind() needs to *set*, not increase the count. | 06 February 2018, 07:01:53 UTC |
42abc9a | Axel Naumann | 30 January 2018, 09:01:39 UTC | User code exec might have pushed an empty mutex on the stack. | 06 February 2018, 07:01:53 UTC |
d777c31 | Axel Naumann | 30 January 2018, 15:54:53 UTC | Use R__LOCKGUARD_CLING for TCling functions that interprete user code. | 06 February 2018, 07:01:53 UTC |
236928c | Axel Naumann | 26 January 2018, 08:42:46 UTC | Update test for new interface. | 06 February 2018, 07:01:53 UTC |
b92856b | Axel Naumann | 29 January 2018, 08:36:57 UTC | Help older GCC, we want to return a converted local. | 06 February 2018, 07:01:53 UTC |
78ac2a4 | Axel Naumann | 26 January 2018, 08:42:30 UTC | Implement GetStateBefore(), Rewind(), Apply(). | 06 February 2018, 07:01:53 UTC |
490815d | Axel Naumann | 26 January 2018, 08:41:21 UTC | TCling needs a stack of initial mutex states: When user code is invoked, a new / recursive round of "initial" mutex state and recursion count is needed. | 06 February 2018, 07:01:53 UTC |
491edb7 | Axel Naumann | 25 January 2018, 14:24:31 UTC | Rewind lock to before-interpreter state: When locking an interpreter function we need to inform TCling, such that it can keep track of the topmost function and its lock state. Once user code execution happens, the lock state will be rewound to that state. All interpreter-related functions must thus use R__LOCKGUARD_CLING, not R__LOCKGUARD. | 06 February 2018, 07:01:53 UTC |
5a5acb2 | Axel Naumann | 25 January 2018, 14:23:52 UTC | Introduce R__LOCKGUARD_CLING: When locking an interpreter function we need to inform TCling, such that it can keep track of the topmost function and its lock state. Once user code execution happens, the lock state will be rewound to that state. All interpreter-related functions must thus use R__LOCKGUARD_CLING, not R__LOCKGUARD. | 06 February 2018, 07:01:53 UTC |
57e2c13 | Axel Naumann | 25 January 2018, 14:21:41 UTC | Remove R__LOCK_SUSPEND and TLockSuspend: no more users! | 06 February 2018, 07:01:53 UTC |
7280659 | Axel Naumann | 25 January 2018, 14:50:27 UTC | We really need the state *before* the lock was taken: The lock needs to be taken to be able to have a fixed state. But then we want to rewind to the state just before this lock was taken. | 06 February 2018, 07:01:53 UTC |
a63c995 | Axel Naumann | 25 January 2018, 14:21:16 UTC | Add "get state", "restore with getting delta", and "apply delta". | 06 February 2018, 07:01:53 UTC |
0c7f1d7 | Axel Naumann | 25 January 2018, 14:01:18 UTC | Rework locking: Use the scoped lock as a scoped lock. For that, first initialize ret and collect the function how to execute. Then end the lock scope and execute. This removes the only user of R__LOCK_SUSPEND. And a CPP macro. And chops a couple of functions into pieces. And in the end still saves a couple of code lines! | 06 February 2018, 07:01:53 UTC |
94056b4 | Axel Naumann | 18 January 2018, 11:04:06 UTC | Remove TVirtualMutex::Reset and Restore. | 06 February 2018, 07:01:53 UTC |
d18c442 | Philippe Canal | 05 February 2018, 21:31:20 UTC | Fix ROOT-9241, TQCommand GetName and GetTile no longer return stack values | 06 February 2018, 00:54:55 UTC |
a2869ef | Elizabeth Buckley-Geer | 05 February 2018, 20:51:03 UTC | Fix LOGICAL type suport in TFITSIO Solves a bug in the TFITSIO code when reading a FITS binary table that contained a column of type LOGICAL. The code in TFISTIO:LoadHDU only had tests for column types of strings or numeric so it was failing with the error “bad binary table datatype” | 05 February 2018, 22:23:44 UTC |
e69a058 | Philippe Canal | 05 February 2018, 15:37:03 UTC | Work around 'bug' in clang 5 C++17 overload resolution. Clang 5.0, and hence current Cling, support for explicit conversion is still inadequate even in c++17 mode. | 05 February 2018, 21:37:55 UTC |
4596317 | Philippe Canal | 02 February 2018, 21:48:29 UTC | Avoid nullptr dereference in TDirectoryFile::GetKey. Fixes ROOT-9238 | 05 February 2018, 21:37:55 UTC |
22a0910 | Philippe Canal | 01 February 2018, 19:57:25 UTC | Print a warning in ReSubstTemplateArg in case of unknown decl context kind | 05 February 2018, 21:37:55 UTC |
c2e3a62 | Philippe Canal | 31 January 2018, 21:59:19 UTC | Avoid deadlock caused by Cocoa code taking the ROOT lock In the example below, thread #11 is waiting on the ‘AppKit lock’ while thread #1 is waiting on the ROOT read lock and thread #12 is waiting on the ROOT write lock. In thread #11, the ROOT write lock is taken/held by frame #9, TCanvas::Update, to ‘serialize’ the update to the windowing system. In thread #1, the ‘AppKit lock’ is likely taken/held by a frame in the #16 to #40 range. This commit remove the dead lock by removing the unnecessary use of code needing the ROOT lock within code run under the AppKit lock so that in they case thread #1 no longer need to wait for the ROOT (read) lock. In addition it should be investigated whether the ROOT (write) lock should be taken in thread #1, frame 1 (TMacOSXSystem::ProcessPendingEvents) for the same reason it is taken in TCanvas::Update. thread #11 frame #0: 0x00007fffab109bf2 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x00007fffab1f57fa libsystem_pthread.dylib`_pthread_cond_wait + 712 frame #2: 0x00007fff93394e34 AppKit`-[NSViewHierarchyLock lockForReadingWithExceptionHandler:] + 287 frame #3: 0x00007fff934948ae AppKit`-[NSWindow _copyAcquiredViewHierarchyLock] + 126 frame #4: 0x00007fff9349442c AppKit`-[NSView lockFocusIfCanDraw] + 159 frame #5: 0x000000011c09063d libGCocoa.so`ROOT::MacOSX::X11::CommandBuffer::Flush(this=0x0000000100dbb080, impl=0x0000000100dbb000) at X11Buffer.mm:550 frame #6: 0x000000011c04e9c4 libGCocoa.so`TGCocoa::Update(this=0x0000000100ad1bc0, mode=1) at TGCocoa.mm:536 frame #7: 0x000000011c04ff3e libGCocoa.so`TGCocoa::UpdateWindow(this=0x0000000100ad1bc0, (null)=1) at TGCocoa.mm:776 frame #8: 0x000000011ad70827 libGpad.so`TCanvas::Flush(this=0x000000012274e740) at TCanvas.cxx:1096 frame #9: 0x000000011ad7830f libGpad.so`TCanvas::Update(this=0x000000012274e740) at TCanvas.cxx:2287 frame #10: 0x0000000100fe4e86 threadsh2_C.so`handle2((null)=0x0000000000000001) at threadsh2.C:105 frame #11: 0x0000000100f55680 libThread.so`TThread::Function(ptr=0x0000000122753b00) at TThread.cxx:821 frame #12: 0x00007fffab1f493b libsystem_pthread.dylib`_pthread_body + 180 frame #13: 0x00007fffab1f4887 libsystem_pthread.dylib`_pthread_start + 286 frame #14: 0x00007fffab1f408d libsystem_pthread.dylib`thread_start + 13 thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x00007fffab109bf2 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x00007fffab1f57fa libsystem_pthread.dylib`_pthread_cond_wait + 712 frame #2: 0x00007fffa9b734cd libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47 frame #3: 0x0000000100f76b6f libThread.so`void std::__1::condition_variable_any::wait<std::__1::unique_lock<std::__1::mutex> >(this=0x0000000122753a28, __lock=0x00007fff5fbf5cf8) at condition_variable:202 frame #4: 0x0000000100f6887e libThread.so`ROOT::TReentrantRWLock<std::__1::mutex, ROOT::Internal::RecurseCounts>::ReadLock() [inlined] void std::__1::condition_variable_any::wait<std::__1::unique_lock<std::__1::mutex>, ROOT::TReentrantRWLock<std::__1::mutex, ROOT::Internal::RecurseCounts>::ReadLock()::'lambda'()>(this=0x0000000122753a28, __lock=0x00007fff5fbf5cf8, __pred=(anonymous class) @ 0x00007fff5fbf5e08)::'lambda'()) at condition_variable:211 frame #5: 0x0000000100f68857 libThread.so`ROOT::TReentrantRWLock<std::__1::mutex, ROOT::Internal::RecurseCounts>::ReadLock(this=0x00000001227539d8) at TReentrantRWLock.cxx:95 frame #6: 0x0000000100f5c719 libThread.so`ROOT::TRWMutexImp<std::__1::mutex, ROOT::Internal::RecurseCounts>::ReadLock(this=0x00000001227539d0) at TRWMutexImp.cxx:33 frame #7: 0x00000001000f52d1 libCore.so`ROOT::TReadLockGuard::TReadLockGuard(this=0x00007fff5fbf5f48, mutex=0x00000001227539d0) at TVirtualRWMutex.h:89 frame #8: 0x00000001000f275d libCore.so`ROOT::TReadLockGuard::TReadLockGuard(this=0x00007fff5fbf5f48, mutex=0x00000001227539d0) at TVirtualRWMutex.h:88 frame #9: 0x00000001002fcebf libCore.so`THashTable::FindObject(this=0x0000000100b0e120, name="TGTextView") const at THashTable.cxx:242 frame #10: 0x00000001003a67fd libCore.so`TClass::GetClass(name="TGTextView", load=true, silent=true) at TClass.cxx:2900 frame #11: 0x00000001003c9e16 libCore.so`TClass::InheritsFrom(this=0x0000000118fe1250, classname="TGTextView") const at TClass.cxx:4683 frame #12: 0x000000010024cb6e libCore.so`TObject::InheritsFrom(this=0x0000000126908de0, classname="TGTextView") const at TObject.cxx:445 frame #13: 0x000000011c03e47f libGCocoa.so`ROOT::MacOSX::X11::ViewIsTextView(viewID=116) at QuartzWindow.mm:899 frame #14: 0x000000011c03e518 libGCocoa.so`ROOT::MacOSX::X11::ViewIsTextView(view=0x0000000126908ee0) at QuartzWindow.mm:907 frame #15: 0x000000011c04706c libGCocoa.so`::-[QuartzView drawRect:](self=0x0000000126908ee0, _cmd="drawRect:", dirtyRect=(origin = (x = 0, y = 0), size = (width = 29, height = 21))) at QuartzWindow.mm:2728 frame #16: 0x00007fff934a4f99 AppKit`-[NSView _drawRect:clip:] + 2276 frame #17: 0x00007fff934f4f2f AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1753 frame #18: 0x00007fff934f539a AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2884 frame #19: 0x00007fff934f539a AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2884 frame #20: 0x00007fff934f539a AppKit`-[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2884 frame #21: 0x00007fff934a2ad2 AppKit`-[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 837 frame #22: 0x00007fff934a22af AppKit`-[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 334 frame #23: 0x00007fff934a06d8 AppKit`-[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2452 frame #24: 0x00007fff9349bfca AppKit`-[NSView displayIfNeeded] + 1748 frame #25: 0x00007fff9349b8db AppKit`-[NSWindow displayIfNeeded] + 230 frame #26: 0x00007fff93bfbcb4 AppKit`___NSWindowGetDisplayCycleObserver_block_invoke.6228 + 277 frame #27: 0x00007fff9349b3b9 AppKit`__37+[NSDisplayCycle currentDisplayCycle]_block_invoke + 454 frame #28: 0x00007fff9b384cc6 QuartzCore`CA::Transaction::run_commit_handlers(CATransactionPhase) + 46 frame #29: 0x00007fff9b48e8ac QuartzCore`CA::Context::commit_transaction(CA::Transaction*) + 160 frame #30: 0x00007fff9b3837a1 QuartzCore`CA::Transaction::commit() + 475 frame #31: 0x00007fff9377e8b1 AppKit`__37+[NSDisplayCycle currentDisplayCycle]_block_invoke.31 + 323 frame #32: 0x00007fff95874d37 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 frame #33: 0x00007fff95874ca7 CoreFoundation`__CFRunLoopDoObservers + 391 frame #34: 0x00007fff958556d9 CoreFoundation`__CFRunLoopRun + 873 frame #35: 0x00007fff95855114 CoreFoundation`CFRunLoopRunSpecific + 420 frame #36: 0x00007fff94db5ebc HIToolbox`RunCurrentEventLoopInMode + 240 frame #37: 0x00007fff94db5bf9 HIToolbox`ReceiveNextEventCommon + 184 frame #38: 0x00007fff94db5b26 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71 frame #39: 0x00007fff9334ca54 AppKit`_DPSNextEvent + 1120 frame #40: 0x00007fff93ac87ee AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796 frame #41: 0x0000000100491031 libCore.so`TMacOSXSystem::ProcessPendingEvents(this=0x0000000100c06d60) at TMacOSXSystem.mm:473 frame #42: 0x000000010049097d libCore.so`TMacOSXSystem::DispatchOneEvent(this=0x0000000100c06d60, pendingOnly=true) at TMacOSXSystem.mm:365 frame #43: 0x0000000100294f4b libCore.so`TSystem::ProcessEvents(this=0x0000000100c06d60) at TSystem.cxx:429 frame #44: 0x0000000100fe5844 threadsh2_C.so`threadsh2() at threadsh2.C:196 frame #45: 0x0000000100fec06a frame #46: 0x0000000103d7dc2f libCling.so`cling::IncrementalExecutor::executeWrapper(this=0x0000000100a1d410, function=(Data = "_Z15__cling_Un1Qu30Pv", Length = 21), returnValue=0x00007fff5fbfbde0) at IncrementalExecutor.h:196 frame #47: 0x0000000103d7db1f libCling.so`cling::Interpreter::RunFunction(this=0x0000000100a0e3b0, FD=0x000000011780f6b0, res=0x00007fff5fbfbde0) at Interpreter.cpp:980 frame #48: 0x0000000103d7a92a libCling.so`cling::Interpreter::EvaluateInternal(this=0x0000000100a0e3b0, input="threadsh2()", CO=CompilationOptions @ 0x00007fff5fbfaae8, V=0x00007fff5fbfbde0, T=0x0000000000000000, wrapPoint=44) at Interpreter.cpp:1232 frame #49: 0x0000000103d79e27 libCling.so`cling::Interpreter::process(this=0x0000000100a0e3b0, input="threadsh2()", V=0x00007fff5fbfbde0, T=0x0000000000000000, disableValuePrinting=false) at Interpreter.cpp:684 frame #50: 0x0000000103e552a5 libCling.so`cling::MetaProcessor::process(this=0x0000000100b65aa0, input_line=(Data = "threadsh2()", Length = 11), compRes=0x00007fff5fbfb540, result=0x00007fff5fbfbde0, disableValuePrinting=false) at MetaProcessor.cpp:341 frame #51: 0x000000010397bd63 libCling.so`HandleInterpreterException(metaProcessor=0x0000000100b65aa0, input_line="threadsh2()", compRes=0x00007fff5fbfb540, result=0x00007fff5fbfbde0) at TCling.cxx:2053 frame #52: 0x000000010397a16e libCling.so`TCling::ProcessLine(this=0x0000000100a0de40, line=".X /opt/build/root_builds/master.debug/tutorials/thread/./threadsh2.C+", error=0x00007fff5fbfd694) at TCling.cxx:2170 frame #53: 0x0000000103984436 libCling.so`TCling::ProcessLineSynch(this=0x0000000100a0de40, line=".X /opt/build/root_builds/master.debug/tutorials/thread/./threadsh2.C+", error=0x00007fff5fbfd694) at TCling.cxx:3044 frame #54: 0x00000001001f3133 libCore.so`TApplication::ExecuteFile(file="threadsh2.C+", error=0x00007fff5fbfd694, keep=false) at TApplication.cxx:1143 frame #55: 0x00000001001f19e0 libCore.so`TApplication::ProcessFile(this=0x0000000100b113e0, file="threadsh2.C+", error=0x00007fff5fbfd694, keep=false) at TApplication.cxx:1015 frame #56: 0x00000001001f138f libCore.so`TApplication::ProcessLine(this=0x0000000100b113e0, line=".x threadsh2.C+", sync=false, err=0x00007fff5fbfd694) at TApplication.cxx:988 frame #57: 0x000000010009878d libRint.so`TRint::ProcessLineNr(this=0x0000000100b113e0, filestem="ROOT_cli_", line=".x threadsh2.C+", error=0x00007fff5fbfd694) at TRint.cxx:756 frame #58: 0x0000000100097daf libRint.so`TRint::Run(this=0x0000000100b113e0, retrn=false) at TRint.cxx:416 frame #59: 0x00000001000027a4 root.exe`main(argc=1, argv=0x00007fff5fbff780) at rmain.cxx:30 frame #60: 0x00007fffaafdb235 libdyld.dylib`start + 1 thread #12 frame #0: 0x00007fffab109bf2 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x00007fffab1f57fa libsystem_pthread.dylib`_pthread_cond_wait + 712 frame #2: 0x00007fffa9b734cd libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47 frame #3: 0x0000000100f76b6f libThread.so`void std::__1::condition_variable_any::wait<std::__1::unique_lock<std::__1::mutex> >(this=0x0000000122753a28, __lock=0x0000700009f18898) at condition_variable:202 frame #4: 0x0000000100f697b4 libThread.so`ROOT::TReentrantRWLock<std::__1::mutex, ROOT::Internal::RecurseCounts>::WriteLock() [inlined] void std::__1::condition_variable_any::wait<std::__1::unique_lock<std::__1::mutex>, ROOT::TReentrantRWLock<std::__1::mutex, ROOT::Internal::RecurseCounts>::WriteLock()::'lambda'()>(this=0x0000000122753a28, __lock=0x0000700009f18898, __pred=(anonymous class) @ 0x0000700009f18a28)::'lambda'()) at condition_variable:211 frame #5: 0x0000000100f69790 libThread.so`ROOT::TReentrantRWLock<std::__1::mutex, ROOT::Internal::RecurseCounts>::WriteLock(this=0x00000001227539d8) at TReentrantRWLock.cxx:175 frame #6: 0x0000000100f5c779 libThread.so`ROOT::TRWMutexImp<std::__1::mutex, ROOT::Internal::RecurseCounts>::WriteLock(this=0x00000001227539d0) at TRWMutexImp.cxx:42 frame #7: 0x0000000100f57df6 libThread.so`ROOT::TVirtualRWMutex::Lock(this=0x00000001227539d0) at TVirtualRWMutex.h:52 frame #8: 0x00000001039b2dd9 libCling.so`TLockGuard::TLockGuard(this=0x0000700009f18b48, mutex=0x00000001227539d0) at TVirtualMutex.h:85 frame #9: 0x000000010397ba8d libCling.so`TLockGuard::TLockGuard(this=0x0000700009f18b48, mutex=0x00000001227539d0) at TVirtualMutex.h:85 frame #10: 0x00000001039aa152 libCling.so`TCling::ClassInfo_Factory(this=0x0000000100a0de40, all=true) const at TCling.cxx:7216 frame #11: 0x00000001004150ba libCore.so`TMethodCall::Init(this=0x0000700009f18d80, cl=0x0000000100af0470, method="Print", params="", objectIsConst=false) at TMethodCall.cxx:259 frame #12: 0x0000000100414ff3 libCore.so`TMethodCall::TMethodCall(this=0x0000700009f18d80, cl=0x0000000100af0470, method="Print", params="") at TMethodCall.cxx:62 frame #13: 0x000000010041519d libCore.so`TMethodCall::TMethodCall(this=0x0000700009f18d80, cl=0x0000000100af0470, method="Print", params="") at TMethodCall.cxx:61 frame #14: 0x0000000100fe471a threadsh2_C.so`handle1((null)=0x0000000000000000) at threadsh2.C:48 frame #15: 0x0000000100f55680 libThread.so`TThread::Function(ptr=0x0000000122754790) at TThread.cxx:821 frame #16: 0x00007fffab1f493b libsystem_pthread.dylib`_pthread_body + 180 frame #17: 0x00007fffab1f4887 libsystem_pthread.dylib`_pthread_start + 286 frame #18: 0x00007fffab1f408d libsystem_pthread.dylib`thread_start + 13 | 05 February 2018, 21:37:55 UTC |
8ac53b7 | Philippe Canal | 31 January 2018, 15:18:05 UTC | Handle CXXDeductionGuide in ReSubstTemplateArg. This fixes ROOT-9147. Also avoid future cases of nullptr dereference | 05 February 2018, 21:37:55 UTC |
b28f7c9 | Philippe Canal | 19 January 2018, 20:33:47 UTC | Extent TString::Form[at] documentation | 05 February 2018, 21:37:55 UTC |
5412eac | Enrico Guiraud | 01 February 2018, 09:24:38 UTC | Fix ROOT-9232: [TDF] Entry loss when using Range and multiple actions | 01 February 2018, 11:23:29 UTC |
66dbd3e | Enrico Guiraud | 01 February 2018, 09:20:29 UTC | [TDF] Add regression test for ROOT-9232 One entry is lost when multiple actions hang from the same Range, for all but the first processed action. | 01 February 2018, 11:23:29 UTC |
f1ec796 | Enrico Guiraud | 28 January 2018, 14:18:17 UTC | [TDF] Add test for Snapshotting of branches with custom titles | 28 January 2018, 20:35:29 UTC |
38cb7c8 | Danilo Piparo | 26 January 2018, 14:38:00 UTC | [TDF] Fix ROOT-9219: keep constant the pointer exposed from the TCsvDS renovating the memory associated to it upon processing a new row of the csv file. When performing a Snapshot, the TDF expects the pointer associated to a certain column-event-slot to be constant throughout the entire event loop. | 27 January 2018, 18:53:11 UTC |
38f1b97 | Danilo Piparo | 26 January 2018, 14:28:42 UTC | [TDF] Test for ROOT-9219: snapshotting TDF built from a TCsvDS. | 27 January 2018, 18:53:11 UTC |
b18bb61 | Danilo Piparo | 26 January 2018, 08:58:04 UTC | [TDF] Whitespaces | 27 January 2018, 18:53:11 UTC |
2dfb6bf | Danilo Piparo | 26 January 2018, 08:57:28 UTC | [TDF] Use alias instead of typedef | 27 January 2018, 18:53:11 UTC |
bea331c | Danilo Piparo | 26 January 2018, 09:33:11 UTC | [TDF] Support (unsigned) long long (int) in TypeName2TypeID and improve documentation of the helper functions. | 27 January 2018, 18:53:11 UTC |
20b928e | Danilo Piparo | 26 January 2018, 08:25:41 UTC | [TDF] Adjust reference in the test | 27 January 2018, 18:53:11 UTC |
4fb1f6e | Danilo Piparo | 26 January 2018, 06:33:05 UTC | [TDF] Refactor TypeID2TypeName helper function returning the empty string in case the deduction did not succeed. | 27 January 2018, 18:53:11 UTC |
89ecba9 | Danilo Piparo | 25 January 2018, 20:25:39 UTC | [TDF] Tests for the exception thrown when accessing data source' columns specifying the wrong type. | 27 January 2018, 18:53:11 UTC |
391c484 | Danilo Piparo | 25 January 2018, 20:23:16 UTC | [TDF] Check for the csv, trivial and Root data sources the type of the columns previously the user could access, directly or through TDF, columns provided through a data source with the wrong type without causing an exception. For the ROOT and csv data sources, the fix leverages the newly introduced TypeID2Name helper function. | 27 January 2018, 18:53:11 UTC |
2c91fe9 | Danilo Piparo | 25 January 2018, 20:20:15 UTC | [TDF] Introduce in utils TypeID2TypeName and TypeName2TypeID helper functions TypeName2TypeID has been introduced from scratch. TypeID2TypeName has been factored out from ColumnName2ColumnTypeName to restore some symmetry. | 27 January 2018, 18:53:11 UTC |
d63ca77 | Enric Tejedor Saavedra | 15 January 2018, 11:00:23 UTC | [PyROOT] ROOT-9025: Fix memory leak when accessing an array branch. As reported in ROOT-9025, there was a memory leak when accessing a branch of a TTree in Python, that branch being of type array. The leak was actually not in the branch access itself via __getattr__, but when accessing one element of the array. This commit fixes the leak that happened when trying to retrieve a pointer to the buffer with the array content as a linear char array. It does so by adding a missing reference decrement for the array. | 26 January 2018, 14:41:52 UTC |
2673bcb | Enrico Guiraud | 24 January 2018, 08:45:44 UTC | [TDF] Document TColumnValue::Get (NFC) | 25 January 2018, 18:01:01 UTC |
8f4f8bf | Danilo Piparo | 22 January 2018, 10:45:11 UTC | [TDF] Fix for ROOT-9207 do not sort alphabetically the branches of the tree(s) associated to the tdf. This can lead to trouble in presence of variable size arrays and snapshot: the leafcount must always be present when crating a variable size array branch referring to it. | 25 January 2018, 18:01:01 UTC |
3da7ab6 | Enrico Guiraud | 22 January 2018, 10:38:16 UTC | [TDF] Fix leaflist of array branches in Snapshot We do not rely on the branch title to provide the leaflist anymore, but instead build it ourselves "from scratch". | 24 January 2018, 21:41:09 UTC |
ce5417b | Enrico Guiraud | 21 January 2018, 16:09:30 UTC | [TDF] Add gtest for type inference on tree branches with custom title | 24 January 2018, 21:41:09 UTC |
43130c5 | Enrico Guiraud | 19 January 2018, 15:38:06 UTC | [TDF] Adapt tests to change in type deduction logic We now refer to types with ROOT aliases (Int_t, Float_t) rather than the standard names, since these are the names returned by TLeaf::GetTypeName. | 24 January 2018, 21:41:09 UTC |
3aa63e4 | Enrico Guiraud | 19 January 2018, 15:00:29 UTC | [TDF] Do not rely on branches' titles for runtime type inference We now ask TLeaf for the type of data it stores directly. This fixes the first part of ROOT-9199: "TDF: improper handling of branches with leaflists". | 24 January 2018, 21:41:09 UTC |
1744c45 | Danilo Piparo | 22 January 2018, 13:43:01 UTC | [TDF] Fix ROOT-9210: validate columns before snapshotting - Format - Fix TDataFrameUtils.DeduceAllPODsFromTmpColumns test. The tdf being snapshot was not the one enriched with the tmp columns but rather the original one. The procedure went fine by chance before this fix! | 24 January 2018, 21:41:09 UTC |
45a0c74 | Enrico Guiraud | 22 January 2018, 12:56:39 UTC | [DOC] Fix Alias example usage in TDF user guide | 24 January 2018, 21:41:09 UTC |
1aa9066 | Sergey Linev | 23 January 2018, 09:23:34 UTC | xml: provide more comments, fix some spelling errors | 24 January 2018, 19:15:38 UTC |
b5607c0 | Sergey Linev | 23 January 2018, 09:08:12 UTC | xml: Use function instead of macro for GoodStartSymbol | 24 January 2018, 19:15:38 UTC |
d01dfc1 | Sergey Linev | 23 January 2018, 09:04:57 UTC | xml: fix problem with comments at the end of file Reported here: https://root-forum.cern.ch/t/27671 | 24 January 2018, 19:15:38 UTC |
edd844e | Olivier Couet | 24 January 2018, 16:35:56 UTC | In some cases (after projection) the x axis title offset might be 0. Reported here: https://sft.its.cern.ch/jira/browse/ROOT-9201 | 24 January 2018, 16:36:38 UTC |
7e68fb7 | Danilo Piparo | 16 January 2018, 09:23:00 UTC | [JupyROOT] Avoid to import unnecessary components | 24 January 2018, 13:05:20 UTC |
0e362af | Danilo Piparo | 10 January 2018, 14:54:45 UTC | [JupyROOT] Remove explicit creation of the parser in the ROOT Kernel as it is not needed. The regexes are proprly considered automatically. | 24 January 2018, 13:05:14 UTC |
eb4f147 | Danilo Piparo | 10 January 2018, 14:22:28 UTC | [JupyROOT] Optimise the regexes used by the ROOT kernel since the previous ones are slow to match in presence of long-ish strings (about 20 characters). Thanks Enric and Enrico! | 24 January 2018, 13:05:08 UTC |
ff48a82 | Danilo Piparo | 18 January 2018, 18:25:53 UTC | [TDF] Refine and clarify message printed by the exception. | 22 January 2018, 16:57:55 UTC |
b47958c | Danilo Piparo | 09 January 2018, 10:36:40 UTC | [TDF] Fix ROOT-9122: if the regex does not match any column, throw adapt tests accordingly. | 22 January 2018, 16:57:55 UTC |
7ac8a98 | Enrico Guiraud | 20 December 2017, 15:57:49 UTC | [TDF] Throw exception if we could not deduce the type of a tree branch | 22 January 2018, 16:57:55 UTC |
6e8374c | Danilo Piparo | 12 January 2018, 13:20:28 UTC | [TDF] Add an image of a TDF graph to the doxygen documentation | 22 January 2018, 15:41:28 UTC |
df8946e | Danilo Piparo | 21 December 2017, 15:56:41 UTC | [TDF] Document also TDataSource in the user guide | 22 January 2018, 15:41:28 UTC |
3026d72 | Danilo Piparo | 21 December 2017, 15:45:03 UTC | [TDF] Document better TArrayBranch<T> usage and callbacks. | 22 January 2018, 15:41:28 UTC |
7ead8c1 | Enrico Guiraud | 21 January 2018, 11:38:25 UTC | [TDF] Formatting | 22 January 2018, 15:41:28 UTC |
e16aa40 | Danilo Piparo | 21 December 2017, 15:18:29 UTC | [TDF] Add doc for ret type of Min, Max, Sum, Take + misc improvement of the documentation. | 22 January 2018, 15:41:28 UTC |
04e25b2 | Danilo Piparo | 21 December 2017, 15:03:56 UTC | [TDF] Avoid explicit usage of Internal types in the interface in favour of types in Detail. | 22 January 2018, 15:41:28 UTC |
a027902 | Danilo Piparo | 21 December 2017, 14:54:55 UTC | [TDF] Coding conventions, introduce shorter alias to ease doxy doc creation if the return type name is too long, the method name and input parameter together with its documentation is squeezed to the right. | 22 January 2018, 15:41:28 UTC |
ac2d78a | Enrico Guiraud | 24 November 2017, 12:29:12 UTC | [TDF] Turn off awkward clang-formatting | 22 January 2018, 15:41:28 UTC |
29879c6 | Danilo Piparo | 05 December 2017, 21:57:24 UTC | [TDF] Add alias for Jitted Define return type its lenght was making the documentation of TInterface hardly readable. | 22 January 2018, 15:41:28 UTC |
b257af4 | Danilo Piparo | 05 December 2017, 21:41:58 UTC | [TDF] Document Cache and DefineSlot[Entry] more in detail | 22 January 2018, 15:41:28 UTC |
9d91d4e | Enrico Guiraud | 24 December 2017, 19:27:57 UTC | [TypeTraits] Fix TakeFirstParameter_t documentation | 21 January 2018, 13:58:31 UTC |
5efb8d6 | Dan Riley | 15 January 2018, 22:02:05 UTC | don't mix fUsed state between threads if fgUseStaticMinuit is false | 19 January 2018, 21:56:45 UTC |
6efafef | Philippe Canal | 16 January 2018, 19:47:48 UTC | Add tutorials/roostats/rs_bernsteinCorrection.C to Minuit2 veto list | 18 January 2018, 16:13:08 UTC |
f5f6618 | Philippe Canal | 16 January 2018, 18:12:02 UTC | Use enum values in for TSocket::fSocket error values | 18 January 2018, 16:13:08 UTC |
b63851b | Philippe Canal | 12 January 2018, 22:10:03 UTC | Remove redundant lock taking. Now the ListOfSockets itself will take the lock as needed | 18 January 2018, 16:13:08 UTC |
59e1b90 | Philippe Canal | 12 January 2018, 22:01:55 UTC | Avoid taking the global lock in TSocket main functions. This solves ROOT-9182. The deadlock was as follow: User thread with IMT enabled: TBasket::ReadBasketBuffers * Take global lock (due to IMT enabled) call TTreeCache::ReadBuffer ... call TFilePrefetch::ReadBuffer * waiting on Prefetcher to update fReadBlockAdded while the prefetcher thread did: TWebFile::ReadBuffers ... (nesting suppressed for clarity) TWebFile::GetHunk TSocket::RecvRaw detect error condition (broken connection) call TSocket::Close (to mark the socket as invalid) * Attempt to Take global lock Remove from global ListOfSockets and was stuck in its attempt to take the global lock. | 18 January 2018, 16:13:08 UTC |
e537eed | Philippe Canal | 12 January 2018, 22:11:45 UTC | Tune RWLock test length. | 18 January 2018, 16:13:08 UTC |
6b2f909 | Philippe Canal | 12 January 2018, 18:00:19 UTC | Fix typo in the class name TCheckHashRecursiveRemoveConsistency | 18 January 2018, 16:13:08 UTC |
9bcacf3 | Philippe Canal | 12 January 2018, 16:54:17 UTC | Update release notes | 18 January 2018, 16:13:08 UTC |
0bed472 | moneta | 15 January 2018, 14:00:44 UTC | Fix constructing the GSL MC Integrator. This fix the failure observed sometimes in math core-testIntegration. (Fix ROOT-9178) | 16 January 2018, 18:24:00 UTC |
119995e | Axel Naumann | 10 January 2018, 15:00:58 UTC | Silence all minicern warnings. We will not fix them, some are even "fine". See https://sft.its.cern.ch/jira/browse/ROOT-9179 for more info. (cherry picked from commit d8215a8a898d1dca1373dccbd0eef40e9a5b5f99) | 15 January 2018, 07:23:49 UTC |
35c39a3 | Axel Naumann | 14 January 2018, 10:05:29 UTC | Silence FORTRAN warnings: Actual argument contains too few elements for dummy argument. (cherry picked from commit 16b076255050702b9789d49e9cde6a2e239b9d31) | 15 January 2018, 07:23:49 UTC |
c86ba6e | Philippe Canal | 11 January 2018, 21:37:01 UTC | Correct TReentrantRWLock::Restore when the state has no writer. The previous code was (for no known reasons) assuming that if there was no writer there was at least one reader | 12 January 2018, 02:10:22 UTC |
164be2e | Philippe Canal | 11 January 2018, 22:09:24 UTC | Assert on Add during THashTable::Rehash | 12 January 2018, 02:10:22 UTC |
3bb688f | Philippe Canal | 11 January 2018, 21:35:20 UTC | Add 'details' option to THashTable::Print. This new option allows to see the inner layout of the object in the hash table, i.e. per slot | 12 January 2018, 02:10:22 UTC |
faa8873 | Philippe Canal | 22 December 2017, 14:34:38 UTC | Reduce drastically the number of obj alloc in TCheckHashRecurveRemoveConsistency Now, only allocate (and test) the user object for the classes that actually overload the Hash function or one of its abstract base classes does. This should reduce significantly the side-effects of the check. | 12 January 2018, 02:10:22 UTC |
0a40852 | Philippe Canal | 21 December 2017, 21:59:21 UTC | Add TQClass to the list of know hash-consistent class. | 12 January 2018, 02:10:22 UTC |
1995db5 | Pere Mato | 11 January 2018, 13:32:31 UTC | Remove unwanted errors when looking for R modules. Fix typo. | 11 January 2018, 13:32:31 UTC |
b4208cc | Pere Mato | 11 January 2018, 11:18:18 UTC | Define PYTHIA8DATA if not defined | 11 January 2018, 11:18:18 UTC |
fc2f801 | Pere Mato | 10 January 2018, 13:30:52 UTC | Fix for ROOT-9180 - If R components Rcpp and RInside are missing the 'r' option should be disabled | 11 January 2018, 08:43:34 UTC |
a188173 | Pere Mato | 08 January 2018, 14:02:48 UTC | Fix for ROOT-7650 - Complete the 'hdfs' option with CMake | 10 January 2018, 07:32:48 UTC |
e50d3d3 | moneta | 09 January 2018, 10:04:59 UTC | Do not call an extra time the Map function when padding is not needed. This was happens only in Debug build, when MaskedAssign is not anymore an inline function | 09 January 2018, 10:50:30 UTC |
4df0628 | Olivier Couet | 20 December 2017, 15:52:21 UTC | On Mac High Sierra OpenGL was not found when build with the X11 backend. | 20 December 2017, 15:52:30 UTC |
6a49ce6 | Enrico Guiraud | 20 December 2017, 14:20:58 UTC | Fix ROOT-9116 "TDF: bad interaction between multi-thread execution and separate output TFile" | 20 December 2017, 15:23:38 UTC |
3e55518 | Enrico Guiraud | 24 November 2017, 12:26:44 UTC | [TDF] Add gtests for Reduce | 20 December 2017, 15:23:38 UTC |
945d4ec | Enrico Guiraud | 12 December 2017, 14:38:52 UTC | [TDF] Remove ambiguous Reduce overload Reduce("y", redFun, val) is ambiguous if the third argument can be either the column to reduce or the initialization value for the accumulator. This commit removes the second case, and requires users call either Reduce("y", redFun) or Reduce("y", redFun, "x", 1) | 20 December 2017, 15:23:38 UTC |
c7cd24b | Enrico Guiraud | 11 December 2017, 14:57:36 UTC | [NFC] Better documentation of TDataFrame::Reduce | 20 December 2017, 15:23:38 UTC |