Having pressed send, I realise that I spoke to soon. Rick, if I understand you rightly, any module compiled with 5.0 would work with subsequent releases - unless a feature was removed.So a piece of code written for 5.0 and compiled with the 5.0 rexxc would work with 5.1 & 5.2 and so on unless features were dropped.
It would not work with 4.2, but it would be unreasonable to expect it to. If that is correct, then this is a good solid no-astonishment scenario and I don't think anything needs to appear in the manual, because there is no surprise waiting. I hope I got it right this time. Jon On Sun, 8 Mar 2020 at 21:51, Jon Wolfers <sahana...@gmail.com> wrote: > Hi, > > I'm sorry to have caused this difficulty. Rick - thanks for doing the > compatibility work. If I understand correctly, the 'feature level' is not > a number held somewhere. Just that if you use features introduced after > the rexxc program was created they won't be handled. > > Perhaps it is best to go back to Rony's serial approach and say that > compiled modules may need to be compiled when used with a different > language level interpreter or bitness. > > Jon > > On Sun, 8 Mar 2020 at 20:51, Chip Davis <c...@aresti.com> wrote: > >> OK, I understand that the limiting factor is the language *feature** >> level* employed by the program, not the *language level* of the >> interpreter. Unfortunately, many (most?) programmers are probably not >> going to be aware of that level of granularity. That leaves us with the >> more accurate but somewhat unhelpful ... >> >> "Binary programs produced by 'rexxc' can be run only on a Rexx >> interpreter of the same architecture (32/64-bit) that supports the highest >> feature level used in the program." >> >> ... because most of us won't have any idea what that "highest feature >> level" is. Are feature levels documented in the Reference? Is there a >> flag to tell the interpreter to display the highest feature level being >> employed in the program? >> >> -Chip- >> >> On 3/8/2020 3:44 PM, Rick McGuire wrote: >> >> Except for the fact it is not at all correct. The ability for a program >> to run does not depend at all on the interpreter it is compiled with, but >> just by the language features used by the program. For example, assuming >> there is a new 5.1 release available, a program that will run on 5.0 >> recompiled with the 5.1 interpreter will run just fine on either 5.0 or >> 5.1. However, if it is updated to take advantage of a new language feature >> that has been introduced by version 5.1, then the compiled image will be >> marked as requiring a 5.1 level of the interpreter. >> >> Rick >> >> On Sun, Mar 8, 2020 at 3:31 PM Rony G. Flatscher <rony.flatsc...@wu.ac.at> >> wrote: >> >>> On 08.03.2020 19:55, Chip Davis wrote: >>> >>> Well, as a grammar-nerd I must point out the misplaced "only" and to >>> being confused by the last clause. >>> >>> My re-cast would be: >>> >>> "Binary files produced by rexxc can be run only on an interpreter of the >>> same bitness and the same (or higher) language level as that of the rexxc >>> that created them." >>> >>> Grammatically it is cleaner; I'm just not sure why the phrase "the >>> interpreter that compiling copy of rexxc was supplied with" is necessary. >>> >>> Your version simplifies it even more and thereby making it clearer it >>> seems! Not being a native English speaker I leave it for others to judge >>> whether the phrase "the interpreter ..." should remain or not. The rexxpg >>> book now reflects Chip's suggestion without the phrase. >>> >>> ---rony >>> >>> >>> >>> On 3/8/2020 1:13 PM, Rony G. Flatscher wrote: >>> >>> How about formulating Jon's suggestion then as follows: >>> >>> Binary files produced by a version of rexxc can only be run on an >>> interpreter of the same or higher language level and the same bitness as >>> the interpreter that compiling copy of rexxc was supplied with. >>> >>> Would that be understandable and correct? >>> >>> ---rony >>> >>> >>> On 08.03.2020 17:58, Rick McGuire wrote: >>> >>> >>> >>> On Sun, Mar 8, 2020 at 12:50 PM Jon Wolfers <sahana...@gmail.com> wrote: >>> >>>> Hi Rony, >>>> >>>> The created binary file is dependent on the Rexx language level and the >>>>> bitness (32 or 64 bit) of the Rexx interpreter used for creating the >>>>> binary >>>>> file. Each time the Rexx language level gets increased by a new release of >>>>> Rexx or each time you switch the bitness of the Rexx interpreter you need >>>>> to run rexxc again. >>>> >>>> >>>> I think the English in this sentence is great, but I think it >>>> approaches the situation serially. Ie through time you have one language >>>> level & bitness interpreter and then you move to another. Having used >>>> ooRexx in a production environment this is not always what is going on. >>>> For much of the time, I had my test machine on a newer release than my >>>> clients as I was testing and making changes to support the upgrade as well >>>> as stepwise improvements to the program suite and coping with changes in >>>> the business. Most of my suite was deployed uncompiled, but for security & >>>> license reasons there were some modules that needed to be compiled. When I >>>> upgraded my programs and the language levels I had to be mindful to replace >>>> not only the modules where the source had changed, but also all the >>>> compiled ones where there was a change of interpreter. >>>> >>>> I think your sentence is good enough, but wonder if it would be better >>>> to say something like >>>> >>>> Binary files produced by a version of rexxc can only be run on >>>> (?with?by?) an interpreter of the same language level and bitness as the >>>> interpreter that compiling copy of rexxc was supplied with. The language >>>> level changes with each release of ooRexx. >>>> >>> >>> This is not strictly true. One of the goals with the rewrites I did with >>> this release was to try to maintain release-to-release compatibility >>> wherever possible. The translator keeps track of the minimum level needed >>> to execute the image. New features added in releases after 5.0 will flag >>> that they need a newer release, so the language level in the compiled image >>> is tied to the features being used, not to the level of interpreter used to >>> compile it. Of course currently, the only language level is that used by >>> 5.0, but the mechanism is in place to maintain that compatibility. >>> >>> Rick >>> >>> >>> >>>> >>>> what do you think? >>>> >>>> Jon >>>> >>>> On Sun, 8 Mar 2020 at 16:13, Rony G. Flatscher <rony.flatsc...@wu.ac.at> >>>> wrote: >>>> >>>>> Hi Jon, >>>>> >>>>> thank you very much for your fast feedback! >>>>> >>>>> On 08.03.2020 17:04, Jon Wolfers wrote: >>>>> >>>>> I think it reads well, but the last paragraph on the page about >>>>> rxmigrate needs to be replaced imho. >>>>> >>>>> My understanding is that a new version of rexxc is provided with each >>>>> release and programs compiled with rexxc will only run on the release of >>>>> the interpreter that they were compiled for. That is my experience - is >>>>> it >>>>> correct? If so then I think it would be good to say so. >>>>> >>>>> Hmm, excellent point! Also, one should mention that there is a >>>>> difference between 32- and 64-bit images. >>>>> >>>>> How about some text like: >>>>> >>>>> The created binary file is dependent on the Rexx language level and >>>>> the bitness (32 or 64 bit) of the Rexx interpreter used for creating the >>>>> binary file. Each time the Rexx language level gets increased by a new >>>>> release of Rexx or each time you switch the bitness of the Rexx >>>>> interpreter >>>>> you need to run rexxc again. >>>>> >>>>> How does that sound? >>>>> >>>>> ---rony >>>>> >>>>> On Sun, 8 Mar 2020 at 15:53, Rony G. Flatscher < >>>>> rony.flatsc...@wu.ac.at> wrote: >>>>> >>>>>> "RFB" is meant to mean "request for feedback"! >>>>>> >>>>>> Changed the rexxpg book in the section "Appendix A. Distributing >>>>>> Programs without Source" (i.e. "rexxc") to reflect changes that have >>>>>> occurred: >>>>>> >>>>>> - It would be great to get brief feedback whether this is >>>>>> understandable the way it is now. >>>>>> >>>>>> >>>>>> - Also, please note that I have changed "RexxC" and "REXXC" to >>>>>> "rexxc" (all in lowercase as one has to enter it on case-dependent >>>>>> operating systems on the command line). To emphasize that one is >>>>>> supposed >>>>>> to write the name as is "rexxc" gets formatted as a >>>>>> computeroutput-element >>>>>> (monotype font, bold). Is that change o.k. with everyone? >>>>>> >>>>>> If that is o.k. I would like to change the names of the Rexx >>>>>> programs in "Appendix B. Sample Rexx Programs" accordingly, i.e. show >>>>>> the >>>>>> names in exact case and as computeroutput-elements to make them stand >>>>>> out >>>>>> in the text. >>>>>> >>>>>> Temporarily "rexxpg.pdf" can be loaded from: >>>>>> <https://www.dropbox.com/sh/gxvvgskb04gdsqf/AACRo_ZLeFOdoBXUHroPY_-Ca?dl=0> >>>>>> <https://www.dropbox.com/sh/gxvvgskb04gdsqf/AACRo_ZLeFOdoBXUHroPY_-Ca?dl=0> >>>>>> . >>>>>> >>>>>> ---rony >>>>>> >>>>> >>> _______________________________________________ >>> Oorexx-devel mailing list >>> Oorexx-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/oorexx-devel >>> >> >> >> _______________________________________________ >> Oorexx-devel mailing >> listOorexx-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/oorexx-devel >> >> >> _______________________________________________ >> Oorexx-devel mailing list >> Oorexx-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/oorexx-devel >> >
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel