Skip to content

feat: dlopen-based geometry *module* support#5253

Open
paulgessinger wants to merge 23 commits intoacts-project:mainfrom
paulgessinger:feat/geo-dylib
Open

feat: dlopen-based geometry *module* support#5253
paulgessinger wants to merge 23 commits intoacts-project:mainfrom
paulgessinger:feat/geo-dylib

Conversation

@paulgessinger
Copy link
Copy Markdown
Member

@paulgessinger paulgessinger commented Mar 17, 2026

This PR adds a (completely optional) mechanism to compile a geometry module. This module exposes a C API to construct a tracking geometry and send it to a host program over a shared library boundary opened via dlopen.
The host library manages lifetime of the geomerty transparently.

@github-actions github-actions bot added Component - Core Affects the Core module Infrastructure Changes to build tools, continous integration, ... Component - Plugins Affects one or more Plugins labels Mar 17, 2026
@github-actions github-actions bot added this to the next milestone Mar 17, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 17, 2026

📊: Physics performance monitoring for 6202b37

Full contents

physmon summary

@github-actions github-actions bot added the Component - Documentation Affects the documentation label Mar 20, 2026
@paulgessinger paulgessinger marked this pull request as ready for review March 20, 2026 13:05
andiwand
andiwand previously approved these changes Mar 25, 2026
Copy link
Copy Markdown
Contributor

@andiwand andiwand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks pretty solid to me.

In terms of adding vs not adding this: I don't really have an opinion. If this is useful to clients we should definitely go for this. Even if it is not immediately useful I see no harm. We can see how this evolves and collect feedback afterwards. I don't see a big impact on maintainability right now as this code should be stable compared to other parts of our software.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this and cmake/ActsDD4hepGeometryModuleHelpers.cmake look quite similar but I think it's fine for these kinds of cases

andiwand
andiwand previously approved these changes Mar 27, 2026
…pers

- Add GeometryModule, GeometryModuleLoader, GeometryModuleHelpers
- Add DownstreamProject tests for geometry module loading
- Update CI workflows and CMake for geometry module support
…plugin

- Rename GeometryModuleHelpers to GeometryModuleHelper
- Add DD4hep-specific GeometryModuleHelper in plugin
- Move loader to plugin, add DD4hep-specific test
- Add ActsDD4hepGeometryModuleHelpers CMake module
- Rename to ActsDD4hepGeometryModuleHelpers for DD4hep plugin
- Update CMake and package config
- Add user_data_type to ActsGeometryModuleV1
- Add loadGeometryModuleImpl with typed user data validation
- Remove public loadGeometryModule(userData) overload
- Add compile-time #error in headers for non-Unix platforms
- Add CMake FATAL_ERROR in geometry module helper functions
- Remove runtime #ifdef guards in implementation
- validate runtime geometry modules against the loader's explicit ABI tag
- extend DD4hep module ABI tags with the resolved DD4hep version
- document DD4hep-specific runtime module ABI matching and errors
- simplify static geometry module descriptor initialization
@sonarqubecloud
Copy link
Copy Markdown

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

Labels

Component - Core Affects the Core module Component - Documentation Affects the documentation Component - Plugins Affects one or more Plugins Infrastructure Changes to build tools, continous integration, ...

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants