Skip to content

Harden public struct ABI for future extensions. - #155

Merged
romerojosh merged 3 commits into
mainfrom
abi-struct-defaults
Jul 21, 2026
Merged

Harden public struct ABI for future extensions.#155
romerojosh merged 3 commits into
mainfrom
abi-struct-defaults

Conversation

@romerojosh

@romerojosh romerojosh commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Over the development history of cuDecomp, I have on several occasions modified the content of the public structure types (cudecompGridDescConfig_t, cudecompGridDescAutotuneOptions_t, and cudecompPencilInfo_t) which caused ABI breakages. For example, in this upcoming release, #154 and #119 added new fields to the config and autotune options structs.

While many users of this library rebuild their applications along with updating cuDecomp versions, this is not always convenient. This PR introduces an internal redesign to the public structure types, allowing future field additions without breaking the ABI. This will provide a forward ABI compatibility moving forward (e.g. applications built against cuDecomp v 0.y.z can link against v0.y.z+ but not the other way around). This PR itself is an ABI break, but starting with the next release, this PR will allow us to better maintain ABI stability.

Signed-off-by: romerojosh <joshr@nvidia.com>
@romerojosh

Copy link
Copy Markdown
Collaborator Author

/build

@github-actions

Copy link
Copy Markdown

🚀 Build workflow triggered! View run

@github-actions

Copy link
Copy Markdown

❌ Build workflow failed! View run

Signed-off-by: romerojosh <joshr@nvidia.com>
@romerojosh

Copy link
Copy Markdown
Collaborator Author

/build

@github-actions

Copy link
Copy Markdown

🚀 Build workflow triggered! View run

@github-actions

Copy link
Copy Markdown

✅ Build workflow passed! View run

Signed-off-by: romerojosh <joshr@nvidia.com>
@romerojosh
romerojosh merged commit d29e5d2 into main Jul 21, 2026
4 checks passed
@romerojosh
romerojosh deleted the abi-struct-defaults branch July 21, 2026 15:50
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.

1 participant