rexxc currently creates a Rexx image that is preceeded by the strings:
#!/usr/bin/env rexx /**/@REXX
Whether a rexxc produced image can be executed by ooRexx is determined by the following three properties:
the language level of ooRexx
the bitness of ooRexx
* the endianness (big or little)
If one needs to maintain rexxc'd images for (complex) ooRexx applications, then it is important to learn about these properties, such that it becomes possible to deploy rexxc'd images that work with the ooRexx interpreter on different target systems.
This would also allow one to create tools that would be able to create new rexxc-images e.g. in the case that a new version of ooRexx would increase the language level.
Hence requesting a string with such version information, e.g. in form of a line comment right before the string
/**/@REXX
in the following form:
-- rexxc image: languageLevel=6.06 architecture=32 endianness=big dateTime=2019-04-26T15:44:48.126000 sourcefile=fully-qualified-path
Anonymous
Rony, the rexxc compiled format is not (and also probably is not designed to be) a reliable, platform-independent code. Beyond bitness, endian-ness, and language level, different compiler padding strategies, or C language differencies regarding object type sizes, different platform character sets, or simple changes to the metadata header will make compiled code unreadable for a specific interpreter version and will require a new rexxc compilation.
Erich, thank you for pointing this out!
What would then be sensible information for maintaining a set of Rexx programs that constitute together a (complex) application that may be deployed on different operating systems (and for the time being in different architectures, 32- and 64-bit) at the same time?
In such a scenario (need to deploy complex Rexx applications consisting of many scripts) it would be quite helpful to know for each compiled Rexx script what factors were in place (language level, architecture, endianness, operating system, c-compiler, metaversion) in order to create a script that would inform which compiled scripts are incompatible (or outdated )for a specific target to be deployed to.
As all of this information is already part of the image file and can be retrieved with a little Rexx program, this RFE is not really needed.
So please close this RFE!
closing as requested