-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Milestone
Description
Problem
OpenSHMEM specifies only the string SHMEM_VENDOR_STRING for implementations to convey version information. This does not give programmers an easy way to determine what version of an OpenSHMEM library they are using.
OpenSHMEM also does not provide a single integer to identify the spec version supported, which complicates version checks in user code.
Proposed Solution
Add compile-time integer constants:
SHMEM_MAJOR_VERSION // Already have this
SHMEM_MINOR_VERSION // Already have this
SHMEM_VERSION // Specify as 100*MAJOR + MINOR
SHMEM_VERSIONIFY
SHMEM_VENDOR_+NAME+ // e.g. SHMEM_VENDOR_NVSHMEM (Vendors must declare one or more)
// skip // SHMEM_VENDOR_MAJOR_VERSION
// skip // SHMEM_VENDOR_MINOR_VERSION
// skip // SHMEM_VENDOR_PATCH_VERSION
SHMEM_VENDOR_VERSION // Vendor defined, e.g. 10000*MAJOR + 100*MINOR + PATCH, monotonic increasing
SHMEM_VENDOR_VERSIONIFY // Macro to generate compile time constant for vendor version, component parts implementation defined
Add runtime query functions:
void shmem_info_get_version(int *major, int *minor); // Already have this
long shmem_info_get_version_number(void);
// skip // void shmem_info_get_vendor_version(int *major, int *minor, int *patch);
long shmem_info_get_vendor_version_number(void);
Metadata
Metadata
Assignees
Labels
No labels