Skip to content

Please consider the following formatting changes to #15818 - #400

Closed
alibuild wants to merge 18 commits into
ktf:pr15818from
alibuild:alibot-cleanup-15818
Closed

alibuild wants to merge 18 commits into
ktf:pr15818from
alibuild:alibot-cleanup-15818

Conversation

@alibuild

Copy link
Copy Markdown
Collaborator

Your PR AliceO2Group#15818 cannot be merged as is. You should either run clang-format yourself and update the pull request, or merge this PR in yours.
You can find the AliceO2 coding conventions at https://github.com/AliceO2Group/CodingGuidelines.

Same treatment the TPC constants already had. MSL requires every variable at
program scope to name an address space, and diagnoses it at the declaration,
so a header full of plain constexpr breaks any device translation unit that
merely includes it -- whether or not the constants are used. GPUglobalconstexpr()
expands to constexpr everywhere except Metal, where it adds constant.

Class-scope static members need it too: MSL counts them as program scope.
constexpr functions do not, and are left alone.

The six vDrift and ExB calibration defaults are double, which does not exist in
MSL at all. They are host-only -- nothing under GPU/ refers to them -- so they
are now compiled out of device code rather than converted, which would have
changed their precision on CUDA and HIP.

Preprocessed output is unchanged for host, CUDA, HIP and cling; device code
sees the same constants minus those six doubles. Together this takes the TRD
headers from 144 errors to 0 in a Metal translation unit.
@alibuild
alibuild force-pushed the alibot-cleanup-15818 branch 2 times, most recently from 7e84e57 to 4b1b774 Compare September 19, 2026 18:05
ktf added 10 commits September 19, 2026 20:40
MSL requires every variable at program scope to name an address space and
diagnoses it at the declaration, so these headers broke any device translation
unit that included them. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, where it adds constant.

Preprocessed declarations are unchanged for host, CUDA, HIP and cling.
MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
…ress space

MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
…ress space

MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
… space

MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.
MSL requires every variable at program scope, class-scope statics included, to
name an address space and diagnoses it at the declaration, so these headers
broke any device translation unit that included them regardless of whether the
constants were used. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, where it adds constant.

Last of the series: with this the Metal translation unit has no program-scope
diagnostics left, down from 208.
@alibuild
alibuild force-pushed the alibot-cleanup-15818 branch 2 times, most recently from b0c9218 to e7fa162 Compare September 19, 2026 18:47
ktf added 6 commits September 19, 2026 20:51
…address space

MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.

These were missed by the earlier pass: the header they sit in only started
being compiled once the errors ahead of it were gone.
…s space

MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.

These were missed by the earlier pass: the header they sit in only started
being compiled once the errors ahead of it were gone.
… in the constant address space

MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.

These were missed by the earlier pass: the header they sit in only started
being compiled once the errors ahead of it were gone.
MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.

These were missed by the earlier pass: the header they sit in only started
being compiled once the errors ahead of it were gone.
MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.

These were missed by the earlier pass: the header they sit in only started
being compiled once the errors ahead of it were gone.
…tant address space

MSL requires every variable at program scope, class-scope statics included, to
name an address space. GPUglobalconstexpr() expands to constexpr everywhere
except Metal, so this is a no-op for host, CUDA, HIP, OpenCL and cling.

These were missed by the earlier pass: the header they sit in only started
being compiled once the errors ahead of it were gone.
@alibuild
alibuild force-pushed the alibot-cleanup-15818 branch from e7fa162 to a0ad4b5 Compare September 19, 2026 18:57
@alibuild
alibuild deleted the alibot-cleanup-15818 branch September 20, 2026 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants