KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
Versioning

KOS version information and utility API More...

Topics

 Compile-Time
 API providing compile-time KOS version and utilties.
 
 Run-Time
 API providing run-time KOS version and utilties.
 
 Utilities
 Utilities for creating version info and checks.
 

Files

file  version.h
 API versioning and requirements checks.
 

Detailed Description

KOS version information and utility API

This API provides both access to the current KOS version as well as utilities that can be used to check for or require a particular version.

Format

KOS's versioning scheme follows the following format: major.minor.patch where a change in the revision number of any component typically suggests:

Component Description
Major Massive, sweeping changes to major APIs and subsystems.
Minor Small, incremental updates and new features.
Patch Usually simply bugfixes.

Version Types

The versioning information is split into two different groups:

Version Type Description
Compile-Time The version of KOS your code is being compiled against.
Run-Time The version of KOS your code has been linked against.

Ideally, these two versions would be the same; however, it is possible for them to differ in certain circumstances:

Version Checking

Version checks are handled differently depending on whether you want to use the version at compile-time or run-time.

Version Type Mechanism
Compile-Time Preprocessor directives, conditional compilation.
Run-Time if statements, conditional branches
Warning
It is very important that you use the provided version-check mechanisms when comparing two different versions together, as no assurance is made that versions can be correctly compared as integers.

App Versioning

The same Utilities used to implement the KOS versioning API are available as part of the public API so that they may be used to implement your own similar versioning scheme at the app-level.