Menu

#757 Add version information to rexxc image

None
wont-fix
nobody
None
none
1
2019-05-03
2019-04-26
No

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

Related

Feature Requests: #754

Discussion

  • Erich

    Erich - 2019-04-29

    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.

     
    • Rony G. Flatscher

      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.

       
  • Rony G. Flatscher

    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!

     
  • Erich

    Erich - 2019-05-03
    • status: unread --> wont-fix
     
  • Erich

    Erich - 2019-05-03

    closing as requested

     

Anonymous
Anonymous

Add attachments
Cancel