20 likes | 129 Views
PyCool evolution ( interactivity, dictionary, rootmap). Very old (as still done in ROOT5): Create .so with both interactive (python) and dictionary (I/O) information Very large selection.xml: many classes included in dictionary and rootmap
E N D
PyCool evolution (interactivity, dictionary, rootmap) • Very old (as still done in ROOT5): • Create .so with both interactive (python) and dictionary (I/O) information • Very large selection.xml: many classes included in dictionary and rootmap • Autoload .so into python using one of the classes in rootmap • Current ROOT6 strategy (see 2013 Nov 27 meeting) • Use “interpreteronly” flag to remove dictionary (I/O) information from .so • The .so only includes interactive (python) information – the headers for JIT • Keep very large selection.xml: many classes included in rootmap • Misunderstanding – I thought selection.xml was ignored because of “interpreteronly” • Autoload .so into python using one of the classes in rootmap • New ROOT6 strategy (still to be implemented in PyCool): • Manually load .so into python – rootmap is no longer needed • Use an empty selection.xml – no need to include any classes in rootmap • OK also in the long term – selection.xml will be irrelevant to pcm creation • Keep “interpreteronly” – even if empty selection file makes this ~irrelevant • Different PyCool implementations for ROOT5 and ROOT6 • This is something we already considered (and ~worked on) before using “interpreteronly”
Summary of ROOT6 pending issues in PyCool • Blocker: class _global_cpp has no attribute 'cool‘ (ROOT-5965) • High: use empty PyCool selection.xml (bug #103298) – to be fixed in COOL • High: c++ exception propagation to Python (ROOT-5603) • Medium: undefined std::transform (ROOT-5869 aka ROOT-5838) – fixed? • Medium: avoid deprecation warning (ROOT-5870) – to be fixed in COOL • Low: wrong return code from failed ProcessLine (ROOT-5698) • Low: Tok assertions if LLVMDEV is enabled (ROOT-5697)