Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add backward compatibility workflow and tests #1063

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

bratpiorka
Copy link
Contributor

@bratpiorka bratpiorka commented Jan 28, 2025

Add backward compatibility workflow and tests.

Suppose we have umfFunc_0_11 and umfFunc_0_10. With this PR:

  • "umfFunc" == "umfFunc_0_11" in compile time (using #define)
  • UMF exports 2 symbols: "umfFunc@@UMF_0.10" and "umfFunc_0_11@@UMF_0.11"
  • dlsym("umfFunc") == "umfFunc_0_10"
  • dlsym("umfFunc_0_11") == "umfFunc_0_11"

Major changes:

  • use UMF_PROVIDER_OPS_VERSION_CURRENT and UMF_POOL_OPS_VERSION_CURRENT for versioning memory provider and pools struct instead of UMF_VERSION_CURRENT that would be used only for versioning the lib
  • add new implementation for umfDevDaxMemoryProviderOps and umfFileMemoryProviderOps ver 0.11
  • handle old (0.10) provider ops in umfMemoryProviderCreate
  • do not assert when the user pass an old provider/pool version of ops to umfMemoryProvider/PoolCreate and print a warning instead
  • add tests for multiple symbols (file and DevDax providers ops) - assume that calling dlsym without a specified version returns the oldest implementation

fixes #908

@bratpiorka bratpiorka force-pushed the rrudnick_compat_wflow branch 3 times, most recently from b4226c3 to a341c50 Compare January 29, 2025 11:25
src/memory_provider.c Outdated Show resolved Hide resolved
src/memory_provider.c Outdated Show resolved Hide resolved
@bratpiorka bratpiorka force-pushed the rrudnick_compat_wflow branch 10 times, most recently from 2a23695 to be7dbb6 Compare January 31, 2025 12:45
@bratpiorka bratpiorka changed the title [DRAFT] compat Add backward compatibility workflow and test Jan 31, 2025
@bratpiorka bratpiorka changed the title Add backward compatibility workflow and test Add backward compatibility workflow and tests Jan 31, 2025
@bratpiorka bratpiorka force-pushed the rrudnick_compat_wflow branch from be7dbb6 to 51391d7 Compare January 31, 2025 17:32
@oneapi-src oneapi-src deleted a comment from github-actions bot Jan 31, 2025
@oneapi-src oneapi-src deleted a comment from github-actions bot Jan 31, 2025
@bratpiorka bratpiorka force-pushed the rrudnick_compat_wflow branch 3 times, most recently from 143d33a to 965b918 Compare January 31, 2025 17:57
@bratpiorka bratpiorka force-pushed the rrudnick_compat_wflow branch 6 times, most recently from 41fa453 to 30985f0 Compare January 31, 2025 20:41
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.

Implement backward compatibility support in UMF
3 participants