Skip to content

Record alignment of class in dictionary and use in TStreamerInfo#231

Open
smuzaffar wants to merge 269 commits intocms-sw:cms/master/c7a2f850099from
pcanal:tclass-alignof
Open

Record alignment of class in dictionary and use in TStreamerInfo#231
smuzaffar wants to merge 269 commits intocms-sw:cms/master/c7a2f850099from
pcanal:tclass-alignof

Conversation

@smuzaffar
Copy link
Copy Markdown

testing root-project#21669 for CMSSW

linev and others added 30 commits March 23, 2026 10:40
Use when TGX11TTF instance must be created.
Copy constructor it too complicated.
So one can specify window where drawing operation is performed
Old signatures redirects to new methods
Remember context of selected window and use this context
when performing drawing on the pad
Provide protected methods to return window, GC and textAlign for selected window context.
And use context in TTF rendering methods.

So now TGX11TTF also correctly implementes API,
but not yet thread-safe because of TTF global states.
Instead set individiual line or fill attributes use new
methods with TAtt... object as instance.
In TPadPainter it is redirected to selected window context
So even if there are several canvases displayed - attributes will be modified in the correct window context.
While some objects painters analyze attributes
like gVirtualX->GetLineWidth(), provide such getters.
But only for transition phase - later one can dismiss methods again
line width and fill style used in drawing.
While attributes set anyway via pad painter interface,
just remember them to avoid need provide getters from TVirtualX
To avoid complication with derived classes
For some special applications like TASImage provide
access to PS instance from pad painter. So one
do not need to duplicate interface several times.
Instead of gVirtualX or gVirtualPS use pad painter instance
Use pad painter for exclusive text drawing on
screen or on PS device. In rare cases provide
special handling of PS output (like tilde).
One cannot use TGX11 itself while one access
attributes via getter methods which already redefined
in TGX11. So make copy of stored attributes
Replace usage of gVirtualX
While both TPad and TWbox uses same code,
put it together in TWbox::PaintBorderOn method.
So fully avoid usage of PaintBorderPS method,
can be removed in the future
Now border decorations of the sub-pad drawn slightly
different using TWbox method. So ref file size
is slightly changed
…t#21582)

* [tmva] Fix SOFIE tests exclusion with builtin GSL  (use_gsl_cblas=ON)

* build: replace BLAS::BLAS with ROOT::BLAS for GSL fallback compatibility

* [Cmake][tmva]  Fix: Replace TARGET ROOT::BLAS instead of BLAS_FOUND

Replace all BLAS_FOUND and (BLAS_FOUND OR use_gsl_cblas) condition gates
with if(TARGET ROOT::BLAS). ROOT::BLAS is only instantiated inside the
tmva-cpu AND imt block in SearchInstalledSoftware.cmake, so querying the
target directly is the correct gate rather than relying on proxy boolean
variables that can be stale or inconsistent across configurations.

Also replace BLAS::BLAS with ROOT::BLAS in all LIBRARIES sections as
ROOT::BLAS is the public compatibility alias for both external BLAS and
GSL CBLAS configurations.
And simplify the way it is included in Core, by replicating
what is done for lzma.
1. with the R__HAS_ZLIB_NG preprocessor variable, that replaces
R__HAS_CLOUDFLARE_ZLIB.
2. with the CMake variable ZLIB_NG that replaces ZLIB_CF
Replace uses of TH1::AddDirectory by TDirectory::TContext. It is
thread-local and uses the RAII idiom, so state changes cannot
inadvertently leak out of TMVA functions.
Adapt the directory and CMake structure to use a builtin Freetype that
comes from the web and is not vendored.
Unify the configuration of macOS/Linux and Windows with a single
ExternalProject_add call that uses the builtin zlib if available.
@cmsbuild
Copy link
Copy Markdown

cmsbuild commented Apr 2, 2026

This PR contains too many commits (244 >= 240) and will not be processed.
Please ensure you have selected the correct target branch and consider squashing unnecessary commits.
The processing of this PR will resume once the commit count drops below the limit.

@cmsbuild
Copy link
Copy Markdown

This PR contains too many commits (266 >= 240) and will not be processed.
Please ensure you have selected the correct target branch and consider squashing unnecessary commits.
The processing of this PR will resume once the commit count drops below the limit.

@cmsbuild
Copy link
Copy Markdown

This PR contains too many commits (267 >= 240) and will not be processed.
Please ensure you have selected the correct target branch and consider squashing unnecessary commits.
The processing of this PR will resume once the commit count drops below the limit.

@cmsbuild
Copy link
Copy Markdown

This PR contains too many commits (268 >= 240) and will not be processed.
Please ensure you have selected the correct target branch and consider squashing unnecessary commits.
The processing of this PR will resume once the commit count drops below the limit.

@cmsbuild
Copy link
Copy Markdown

This PR contains too many commits (269 >= 240) and will not be processed.
Please ensure you have selected the correct target branch and consider squashing unnecessary commits.
The processing of this PR will resume once the commit count drops below the limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.