Compatibility of RCODE between OE11.6 and OE11.7 - Forum - OpenEdge General - Progress Community

Compatibility of RCODE between OE11.6 and OE11.7

 Forum

Compatibility of RCODE between OE11.6 and OE11.7

This question is answered

Hi,

Doing some research on the above and found this in the KB;

knowledgebase.progress.com/.../20922

3.  R-code Version Change

A recompile will always be required when moving to a different Major OpenEdge release as the r-code version always changes between major versions. 
Between Minor OpenEdge releases, forward-compatibility is guaranteed for r-code, but not backwards-compatibility. Code compiled in a lower minor release will run in a higher minor release; the other way around is not guaranteed.
Between Minor versions, the r-code version number may remain the same, but using new ABL features added in a later minor release will break compatibility with earlier minor versions.

Is this correct? Backwards compatibility is not guaranteed between minor RCODE versions?

Many Thanks,

Mark.

Verified Answer
  • Correct.

    I have experienced this.

    I accidentally compiled in 11.3 and some of the r-code would not run on 11.2.

All Replies
  • Correct.

    I have experienced this.

    I accidentally compiled in 11.3 and some of the r-code would not run on 11.2.

  • Backwards compatibility means the newer minor release can run r-code compiled under the older minor release.

    This does work for the most part, although class-based ABL code in libraries supplied with OpenEdge can cause hiccups. And I think there may have been some data-server related bugs that required breaking compatibiltiy to fix bigger issues, but my memory may be failing there. Never did do much with that particular bit of tech.

    Compiling in a newer release and running on an older one implies forward compatibiltiy.

    That is not always guaranteed, as the newer code can use AVM-level features that the old release simply did not have yet. And there may be more or less obvious issues as a result. Sometimes it outright errors (which IMHO is the better outcome), sometimes parts of the code may just be skipped and general weirdness ensues instead (knowledgebase.progress.com/.../P175091 was a good example of that).