Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
a6fb037
[pyroot] rename CINT to Cling
ferdymercury Dec 10, 2025
ee7dc54
[cmake,config,etc,misc] rename CINT to Cling
ferdymercury Dec 10, 2025
17044d5
[net] TParallelMergingFile: don't rely on nbytes for UploadAndReset()
silverweed Oct 28, 2025
93bf5a9
[net] Add TParallelMergingFile test with RNTuple
silverweed Dec 3, 2025
0149b7d
[net] Add mutex to work around #20641
silverweed Dec 4, 2025
595eb4b
[net] disable testParallelMergingFile on windows
silverweed Dec 4, 2025
3bd8fec
[net] Add comment about testParallelMergingFile's mutexes
silverweed Dec 8, 2025
437df6e
[net] Use TempFileName() in testParallelMergingFile
silverweed Dec 9, 2025
89b641b
[skip-ci][docu] fix endcode position (#20680)
ferdymercury Dec 9, 2025
2f1ec75
[roottest] Fix invalid `setattr` call in test
guitargeek Dec 9, 2025
33209e2
[tutorials] Don't successfully exit tutorials if input files are missing
guitargeek Dec 7, 2025
a149703
[CMake] Fix vetoes for tutorials if numpy or xrootd are not available
guitargeek Dec 7, 2025
b110d1f
[cppyy] Remove code related to finding CPyCppyy API header path
guitargeek Dec 6, 2025
db95bf1
[RF] Fix RooLognormal analytical integral for xMin < zero
guitargeek Dec 9, 2025
e4a91a2
[main] rootbrowse: instance a TRint instead of TApplication
silverweed Dec 10, 2025
11837d4
[skip-ci] improve documentation
couet Dec 11, 2025
7df9d21
[graf,gui] rename CINT to Cling
ferdymercury Dec 11, 2025
3d6897b
[hist] rename CINT to Cling
ferdymercury Dec 11, 2025
54ef103
[io] rename CINT to Cling
ferdymercury Dec 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions bindings/pyroot/cppyy/CPyCppyy/src/Converters.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2502,7 +2502,7 @@ bool CPyCppyy::InstanceArrayConverter::ToMemory(
}

//___________________________________________________________________________
// CLING WORKAROUND -- classes for STL iterators are completely undefined in that
// Cling WORKAROUND -- classes for STL iterators are completely undefined in that
// they come in a bazillion different guises, so just do whatever
bool CPyCppyy::STLIteratorConverter::SetArg(
PyObject* pyobject, Parameter& para, CallContext* /* ctxt */)
Expand All @@ -2516,7 +2516,7 @@ bool CPyCppyy::STLIteratorConverter::SetArg(
para.fTypeCode = 'V';
return true;
}
// -- END CLING WORKAROUND
// -- END Cling WORKAROUND

//----------------------------------------------------------------------------
bool CPyCppyy::VoidPtrRefConverter::SetArg(
Expand Down Expand Up @@ -3348,12 +3348,12 @@ CPyCppyy::Converter* CPyCppyy::CreateConverter(const std::string& fullType, cdim
}

if (!result) {
// CLING WORKAROUND -- special case for STL iterators
// Cling WORKAROUND -- special case for STL iterators
if (Utility::IsSTLIterator(realType)) {
static STLIteratorConverter c;
result = &c;
} else
// -- CLING WORKAROUND
// -- Cling WORKAROUND
result = selectInstanceCnv(klass, cpd, dims, isConst, control);
}
} else {
Expand Down
4 changes: 2 additions & 2 deletions bindings/pyroot/cppyy/CPyCppyy/src/DeclareConverters.h
Original file line number Diff line number Diff line change
Expand Up @@ -334,13 +334,13 @@ class ComplexDConverter: public InstanceConverter {
};


// CLING WORKAROUND -- classes for STL iterators are completely undefined in that
// Cling WORKAROUND -- classes for STL iterators are completely undefined in that
// they come in a bazillion different guises, so just do whatever
class STLIteratorConverter : public Converter {
public:
bool SetArg(PyObject*, Parameter&, CallContext* = nullptr) override;
};
// -- END CLING WORKAROUND
// -- END Cling WORKAROUND


class VoidPtrRefConverter : public Converter {
Expand Down
2 changes: 1 addition & 1 deletion bindings/pyroot/cppyy/CPyCppyy/src/PyResult.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ CPyCppyy::PyResult::operator double() const
CPyCppyy::PyResult::operator void*() const
{
// Cast python return value to C++ object with dictionary (may fail; note that
// you have to use the void* converter, as CINT will not call any other).
// you have to use the void* converter, as Cling will not call any other).
if (fPyObject == Py_None)
return nullptr;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2417,12 +2417,12 @@ intptr_t Cppyy::GetDatamemberOffset(TCppScope_t scope, TCppIndex_t idata)
if (m->Property() & kIsStatic) {
if (strchr(cr->GetName(), '<'))
gInterpreter->ProcessLine(((std::string)cr->GetName()+"::"+m->GetName()+";").c_str());
offset = (intptr_t)m->GetOffsetCint(); // yes, CINT (GetOffset() is both wrong
offset = (intptr_t)m->GetOffsetCint(); // yes, Cling (GetOffset() is both wrong
// and caches that wrong result!
if (offset == (intptr_t)-1)
return (intptr_t)gInterpreter->ProcessLine((std::string("&")+cr->GetName()+"::"+m->GetName()+";").c_str());
} else
offset = (intptr_t)m->GetOffsetCint(); // yes, CINT, see above
offset = (intptr_t)m->GetOffsetCint(); // yes, Cling, see above
return offset;
}

Expand Down
2 changes: 1 addition & 1 deletion bindings/pyroot/cppyy/cppyy/doc/source/history.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,5 @@ Mid 2018, version 1.0 was released.
.. _`boost.python`: https://wiki.python.org/moin/boost.python/GettingStarted
.. _`sprint at CERN`: https://morepypy.blogspot.com/2010/07/cern-sprint-report-wrapping-c-libraries.html
.. _`PyPy`: https://www.pypy.org/
.. _`Cling`: https://github.com/vgvassilev/cling
.. _`Cling`: https://github.com/root-project/cling
.. _`PyPI`: https://pypi.org/
82 changes: 0 additions & 82 deletions bindings/pyroot/cppyy/cppyy/python/cppyy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -297,88 +297,6 @@ def add_library_path(path):
if os.path.exists(apipath) and os.path.exists(os.path.join(apipath, 'Python.h')):
add_include_path(apipath)

# add access to extra headers for dispatcher (CPyCppyy only (?))
if not ispypy:
try:
apipath_extra = os.environ['CPPYY_API_PATH']
if os.path.basename(apipath_extra) == 'CPyCppyy':
apipath_extra = os.path.dirname(apipath_extra)
except KeyError:
apipath_extra = None

if apipath_extra is None:
try:
if 0x30a0000 <= sys.hexversion:
import importlib.metadata as m

for p in m.files('CPyCppyy'):
if p.match('API.h'):
ape = p.locate()
break
del p, m
else:
import pkg_resources as pr

d = pr.get_distribution('CPyCppyy')
for line in d.get_metadata_lines('RECORD'):
if 'API.h' in line:
ape = os.path.join(d.location, line[0:line.find(',')])
break
del line, d, pr

if os.path.exists(ape):
apipath_extra = os.path.dirname(os.path.dirname(ape))
del ape
except Exception:
pass

if apipath_extra is None:
ldversion = sysconfig.get_config_var('LDVERSION')
if not ldversion:
ldversion = sys.version[:3]

apipath_extra = os.path.join(os.path.dirname(apipath), 'site', 'python'+ldversion)
if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')):
import glob
import platform

if platform.system() == "Windows":
# Install locations are handled differently on Windows
import libcppyy

ape = os.path.dirname(libcppyy.__file__)
else:
import cppyy.libcppyy as libcppyy

ape = os.path.dirname(libcppyy.__file__)
# a "normal" structure finds the include directory up to 3 levels up,
# ie. dropping lib/pythonx.y[md]/site-packages
for i in range(3):
if os.path.exists(os.path.join(ape, 'include')):
break
ape = os.path.dirname(ape)

ape = os.path.join(ape, 'include')
if os.path.exists(os.path.join(ape, 'CPyCppyy')):
apipath_extra = ape
else:
# add back pythonx.y or site/pythonx.y if present
for p in glob.glob(os.path.join(ape, 'python'+sys.version[:3]+'*'))+\
glob.glob(os.path.join(ape, '*', 'python'+sys.version[:3]+'*')):
if os.path.exists(os.path.join(p, 'CPyCppyy')):
apipath_extra = p
break

if apipath_extra.lower() != 'none':
if not os.path.exists(os.path.join(apipath_extra, 'CPyCppyy')):
warnings.warn("CPyCppyy API not found (tried: %s); "
"set CPPYY_API_PATH envar to the 'CPyCppyy' API directory to fix"
% apipath_extra)
else:
add_include_path(apipath_extra)

del apipath_extra

if os.getenv('CONDA_PREFIX'):
# MacOS, Linux
include_path = os.path.join(os.getenv('CONDA_PREFIX'), 'include')
Expand Down
2 changes: 1 addition & 1 deletion bindings/pyroot/cppyy/patches/using-data-members.patch
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ index ae52fbe635..d2faa2472c 100644
if (cr.GetClass()) {
- TDataMember* m = (TDataMember*)cr->GetListOfDataMembers()->At((int)idata);
+ TDataMember* m = GetDataMemberByIndex(cr, (int)idata);
// CLING WORKAROUND: the following causes templates to be instantiated first within the proper
// Cling WORKAROUND: the following causes templates to be instantiated first within the proper
// scope, making the lookup succeed and preventing spurious duplicate instantiations later. Also,
// if the variable is not yet loaded, pull it in through gInterpreter.
@@ -1944,6 +1963,10 @@ Cppyy::TCppIndex_t Cppyy::GetDatamemberIndex(TCppScope_t scope, const std::strin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
will be suspended until <space> key pressed by user. Simple example:

\code{.py}
\endcode
import ROOT

# block until space is pressed
Expand All @@ -28,6 +27,7 @@
br.Draw(block = True)

# continues after <space> is pressed
\endcode
\endpythondoc
'''

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
will be suspended until <space> key pressed by user. Simple example:

\code{.py}
\endcode
import ROOT

c = ROOT.TCanvas()
Expand All @@ -29,6 +28,7 @@

# continues after <space> is pressed
c.SaveAs("canvas.root")
\endcode
\endpythondoc
'''

Expand Down
2 changes: 1 addition & 1 deletion bindings/pyroot/pythonizations/src/TPyDispatcher.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
// ==========================
//
// The TPyDispatcher class acts as a functor that can be used for TFn's and GUIs
// to install callbacks from CINT.
// to install callbacks from Cling.

//- constructors/destructor --------------------------------------------------
TPyDispatcher::TPyDispatcher(PyObject *callable) : fCallable(0)
Expand Down
6 changes: 3 additions & 3 deletions cmake/modules/CTestCustom.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ set(CTEST_CUSTOM_WARNING_EXCEPTION ${CTEST_CUSTOM_WARNING_EXCEPTION}
"note: variable tracking size limit exceeded" # vc/tests/sse_blend.cpp
"warning is a GCC extension"
"bug in GCC 4.8.1"
"warning: please use fgets or getline instead" # deprecated use of std functions cint/ROOT
"is dangerous, better use" # deprecated use of std functions cint/ROOT
"function is dangerous and should not be used" # deprecated use of std functions cint/ROOT
"warning: please use fgets or getline instead" # deprecated use of std functions Cling/ROOT
"is dangerous, better use" # deprecated use of std functions Cling/ROOT
"function is dangerous and should not be used" # deprecated use of std functions Cling/ROOT
)
set(CTEST_CUSTOM_ERROR_EXCEPTION ${CTEST_CUSTOM_ERROR_EXCEPTION}
"fatal error: cannot open file"
Expand Down
7 changes: 0 additions & 7 deletions cmake/modules/RootConfiguration.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ foreach(v 0 OFF NO FALSE N IGNORE off no false n ignore)
set(value${v} no)
endforeach()

set(ROOT_DICTTYPE cint)
#set(ROOT_CONFIGARGS "")
set(top_srcdir ${CMAKE_SOURCE_DIR})
set(top_builddir ${CMAKE_BINARY_DIR})
Expand Down Expand Up @@ -105,11 +104,6 @@ if(IS_ABSOLUTE ${CMAKE_INSTALL_ICONDIR})
else()
set(iconpath ${prefix}/${CMAKE_INSTALL_ICONDIR})
endif()
if(IS_ABSOLUTE ${CMAKE_INSTALL_CINTINCDIR})
set(cintincdir ${CMAKE_INSTALL_CINTINCDIR})
else()
set(cintincdir ${prefix}/${CMAKE_INSTALL_CINTINCDIR})
endif()
if(IS_ABSOLUTE ${CMAKE_INSTALL_DOCDIR})
set(docdir ${CMAKE_INSTALL_DOCDIR})
else()
Expand Down Expand Up @@ -280,7 +274,6 @@ set(curseslib ${CURSES_LIBRARIES})
set(curseshdr ${CURSES_HEADER_FILE})
set(buildeditline ${value${editline}})
set(cppunit)
set(dicttype ${ROOT_DICTTYPE})


find_program(PERL_EXECUTABLE perl)
Expand Down
12 changes: 0 additions & 12 deletions cmake/modules/RootInstallDirs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
# DATADIR - read-only architecture-independent data (DATAROOTDIR/root)
# MANDIR - man documentation (DATAROOTDIR/man)
# MACRODIR - ROOT macros (DATAROOTDIR/macros)
# CINTINCDIR - CINT include files (LIBDIR/cint)
# ICONDIR - icons (DATAROOTDIR/icons)
# SRCDIR - sources (DATAROOTDIR/src)
# FONTDIR - fonts (DATAROOTDIR/fonts)
Expand Down Expand Up @@ -93,15 +92,6 @@ endif()
# the cache and store the defaults in local variables if the cache values are
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.

if(NOT CMAKE_INSTALL_CINTINCDIR)
if(gnuinstall)
set(CMAKE_INSTALL_CINTINCDIR "" CACHE PATH "cint includes and libraries libraries (LIBDIR/cint)")
set(CMAKE_INSTALL_CINTINCDIR "${CMAKE_INSTALL_LIBDIR}/cint")
else()
set(CMAKE_INSTALL_CINTINCDIR "cint" CACHE PATH "cint includes and libraries libraries (cint)")
endif()
endif()

if(NOT CMAKE_INSTALL_DATADIR)
set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)/root")
if(gnuinstall)
Expand Down Expand Up @@ -213,7 +203,6 @@ mark_as_advanced(
CMAKE_INSTALL_DATAROOTDIR
CMAKE_INSTALL_DATADIR
CMAKE_INSTALL_MACRODIR
CMAKE_INSTALL_CINTINCDIR
CMAKE_INSTALL_ICONDIR
CMAKE_INSTALL_FONTDIR
CMAKE_INSTALL_SRCDIR
Expand All @@ -233,7 +222,6 @@ foreach(dir BINDIR
DATAROOTDIR
DATADIR
MACRODIR
CINTINCDIR
ICONDIR
FONTDIR
SRCDIR
Expand Down
8 changes: 4 additions & 4 deletions cmake/modules/RootMacros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -627,7 +627,7 @@ function(ROOT_GENERATE_DICTIONARY dictionary)
#---what rootcling command to use--------------------------
if(ARG_STAGE1)
set(command $<TARGET_FILE:rootcling_stage1>)
set(ROOTCINTDEP rconfigure)
set(ROOTCLINGDEP rconfigure)
set(pcm_name)
else()
if(CMAKE_PROJECT_NAME STREQUAL ROOT)
Expand All @@ -636,7 +636,7 @@ function(ROOT_GENERATE_DICTIONARY dictionary)
else()
set(command ${CMAKE_COMMAND} -E env "ROOTIGNOREPREFIX=1" $<TARGET_FILE:rootcling> -rootbuild)
# Modules need RConfigure.h copied into include/.
set(ROOTCINTDEP rootcling rconfigure)
set(ROOTCLINGDEP rootcling rconfigure)
endif()
elseif(TARGET ROOT::rootcling)
set(command $<TARGET_FILE:ROOT::rootcling>)
Expand Down Expand Up @@ -694,7 +694,7 @@ function(ROOT_GENERATE_DICTIONARY dictionary)
ROOT_PCM_FILENAME "${cpp_module_file}")
endif()

#---call rootcint------------------------------------------
#---call rootcling------------------------------------------
add_custom_command(
OUTPUT ${dictionary}.cxx ${pcm_name} ${rootmap_name} ${cpp_module_file}
COMMAND ${command} -v2 -f ${dictionary}.cxx ${newargs} ${excludepathsargs} ${rootmapargs}
Expand All @@ -709,7 +709,7 @@ function(ROOT_GENERATE_DICTIONARY dictionary)
# dictionaries will be rebuilt if the C++ standard is changed in an incremental build.
-DR__DUMMY_CXX_STANDARD_${CMAKE_CXX_STANDARD}
IMPLICIT_DEPENDS ${_implicitdeps}
DEPENDS ${_list_of_header_dependencies} ${_linkdef} ${ROOTCINTDEP}
DEPENDS ${_list_of_header_dependencies} ${_linkdef} ${ROOTCLINGDEP}
${pcm_dependencies}
${MODULE_LIB_DEPENDENCY} ${ARG_EXTRA_DEPENDENCIES}
${runtime_cxxmodule_dependencies}
Expand Down
2 changes: 1 addition & 1 deletion config/rootrc.in
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ Rint.History: $(HOME)/.root_hist
# Rint.WelcomeLite: no
# When the interactive ROOT starts, it can automatically load some frequently
# used includes. However, this introduces several overheads
# - A long list of CINT and system files will be kept open during the session
# - A long list of Cling and system files will be kept open during the session
# - The initialisation takes more time (noticeable when using gdb or valgrind)
# - Memory overhead of about 5 Mbytes (1/3 of the base ROOT executable) when
# including <vector>
Expand Down
6 changes: 3 additions & 3 deletions etc/gdb-backtrace.sh
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,11 @@ fi
# The recommendations are based on the following assumptions:
# * More often than not, the crash is caused by user code.
# * The crash can be caused by the user's interpreted code,
# in which case sighandler() is called from CINT (G__...)
# in which case sighandler() is called from Cling (G__...)
# * The crash can be called by the user's library code,
# in which case sighandler() is called from non-CINT and
# in which case sighandler() is called from non-Cling and
# it's worth dumping the stack frames.
# * The user doesn't call CINT directly, so whenever we reach
# * The user doesn't call Cling directly, so whenever we reach
# a stack frame with "G__" we can stop.
# * The crash is caused by only one thread, the one which
# invokes sighandler()
Expand Down
2 changes: 1 addition & 1 deletion graf2d/cocoa/inc/TGCocoa.h
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ class TGCocoa : public TVirtualX {
static Atom_t fgDeleteWindowAtom;

private:
//I'd prefer to use = delete syntax from C++0x11, but this file is processed by CINT.
//TODO: use instead = delete syntax from C++0x11
TGCocoa(const TGCocoa &rhs);
TGCocoa &operator = (const TGCocoa &rhs);

Expand Down
2 changes: 1 addition & 1 deletion graf2d/cocoa/inc/TGQuartz.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class TGQuartz : public TGCocoa {
void AlignTTFString();
Bool_t IsTTFStringVisible(Int_t x, Int_t y, UInt_t w, UInt_t h);
void RenderTTFString(Int_t x, Int_t y, ETextMode mode);
//I have to use void * instead of QuartzPixmap * because of CINT :(
//TODO: use void * instead of QuartzPixmap *
void DrawFTGlyphIntoPixmap(void *pixmap, FT_Bitmap *source, ULong_t fore, ULong_t back, Int_t bx, Int_t by);

void SetAA();
Expand Down
2 changes: 1 addition & 1 deletion graf2d/fitsio/src/TFITS.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
///
/// Please have a look to the tutorials ($ROOTSYS/tutorials/fitsio/) to see
/// some examples. IMPORTANT: to run tutorials it is required that
/// you change the current working directory of ROOT (CINT) shell to the
/// you change the current working directory of ROOT (Cling) shell to the
/// tutorials directory. Example:
/// ~~~ {.cpp}
/// root [1] gSystem->ChangeDirectory("tutorials/fitsio")
Expand Down
Loading
Loading