Skip to content

Add Vendor Version Info #463

@jdinan

Description

@jdinan

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
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions