Skip to content

[clib] full isolation from ROOT - #23356

Open
ferdymercury wants to merge 3 commits into
root-project:masterfrom
ferdymercury:bclib2
Open

ferdymercury wants to merge 3 commits into
root-project:masterfrom
ferdymercury:bclib2

Conversation

@ferdymercury

@ferdymercury ferdymercury commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

@hageboeck this is a "variant" of your nice PR #23150

It builds on top of #23040 so only the last commit is relevant.

It follows your strategy and nomenclature (ROOTclib), but besides privatization, it fully isolates Clib from ROOT.

So the same strategy as libAfterImage, it's full standalone and no longer depends on RConfig headers, etc.

Needs first:
#23040
#23344

@ferdymercury ferdymercury added the skip ci Skip the full builds on the actions runners label Sep 14, 2026
@ferdymercury ferdymercury reopened this Sep 14, 2026
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown

Test Results

    20 files      20 suites   3d 8h 56m 22s ⏱️
 3 857 tests  3 852 ✅ 0 💤 5 ❌
68 392 runs  68 387 ✅ 0 💤 5 ❌

For more details on these failures, see this check.

Results for commit f05dd87.

♻️ This comment has been updated with latest results.

@ferdymercury ferdymercury removed the skip ci Skip the full builds on the actions runners label Sep 14, 2026
@ferdymercury ferdymercury reopened this Sep 14, 2026
This is all C code that was copy-pasted from external packages in 1990x and 200x. It was then slightly adapted for ROOT but most of the structure is the same.

Here, the code is put into the builtins directory. This is done for several reasons:

- consistency with libafterimage, mathtext, glad: they have been all forked from upstream and fixed / adapted for ROOT. Likewise for core/clib, put them in builtins directory to have a better overview of all "dependencies" or borrowed things with upstream counterparts.
- makes it clearer to deal with licensing and copyright notices by better separating source of the code
- builtins folder gives kind of more recognition/overview to original authors (before adaptions and modifications)
- system packagers (eg Debian) might complain less by better clarifying externals vs internals
- when a bug is found in those builtins, it easens the opportunity to crosscheck with upstream whether it was fixed there
- it allows in the future a more easy drop-in replacement with a more up-to-date library rather than a hard-coded copy paste
- Less annoying surface for clang-tidy etc, things from builtins can be filtered out.

[macosx] missing include path
@ferdymercury ferdymercury added the skip code analysis Skip the code analysis CI steps for this PR, including verifying clang-formatting and running Ruff. label Sep 14, 2026
@ferdymercury
ferdymercury force-pushed the bclib2 branch 5 times, most recently from e19c8d7 to 00cb6fb Compare September 14, 2026 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip code analysis Skip the code analysis CI steps for this PR, including verifying clang-formatting and running Ruff.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants