Archived

This forum has been archived. Please start a new discussion on GitHub.

slice2cpp generated code and Ice versions

Here's a snippet of preprocessor code output by slice2cpp:
#ifndef ICE_IGNORE_VERSION
#   if ICE_INT_VERSION / 100 != 303
#       error Ice version mismatch!
#   endif
#   if ICE_INT_VERSION % 100 > 50
#       error Beta header file detected
#   endif
#   if ICE_INT_VERSION % 100 < 0
#       error Ice patch level mismatch!
#   endif
#endif

This code requires an exact match of Ice major and minor versions when compiling slice-generated code (in this case version 3.3.0) while permitting (possibly mismatched) patch versions, as long as the patch range is 0 to 50 (51 I believe is your beta).

Would it be correct, then, to consider the Ice "ABI" level as the the major and minor version (at least w.r.t. generated source code)? Is that your intention?

Comments

  • matthew
    matthew NL, Canada
    Correct. All patch level versions are binary compatible. For example, 3.3.0 and 3.3.1 are fully binary compatible. 3.3 and 3.2 are not.