On Sun, Mar 8, 2020 at 6:23 PM P.O. Jonsson <oor...@jonases.se> wrote:
> As a bystander I realize this may well cause some unpleasant surprises so > it needs to be explained in detail, summing up more or less all what Rick > writes I think should all go into the documentation. > > Say that you are indeed developing for clients. Most likely you will > always be „top-notch“ latest update of ooRexx, say 5.1. Now, when you ship > to clients they are invariably at a lower version (think of how many > companies are still on Windows 7) so when a *really* nice feature or > improvement is introduced in 5.1 (like address with) you are bound to pick > it up and start using it. Shipping to the client you will have some angry > phonecalls coming. > > Spelling it out with examples, as Rick just did will clarify the situation. > > Question: is there a good place to put a list of such features that may be > show-stoppers to the use of rexxc? > There are no such features yet because we are still at the 5.0 level. With future releases, we'll start documenting what language levels are required for new features. > > Another question: Would it be possible to warn the user of rexxc at > tokenizing time that he is using features from the latest upgrade? Or will > this be a mess? Warning for 5.0 -> 5.1 or 5.1 -> 5.2 changes would imo be > enough. > It might be a good idea for rexxc to indicate the minimum language level required. > > Hälsningar/Regards/Grüsse, > P.O. Jonsson > oor...@jonases.se > > > > Am 08.03.2020 um 23:07 schrieb Jon Wolfers <sahana...@gmail.com>: > > Thanks Rick > > I've got it now. That is how one would want it to work. > Not sure what should go in the rexxpg but will sleep on it. > > Jon > > On Sun, 8 Mar 2020 at 22:05, Rick McGuire <object.r...@gmail.com> wrote: > >> Still not right. It is actually the opposite of that. A program compiled >> with 5.0 should still continue to work with 5.1, but programs compiled with >> 5.1 will also work with 5.0 as long as they don't require any of the new >> language features in 5.1. >> >> Rick >> >> On Sun, Mar 8, 2020 at 5:59 PM Jon Wolfers <sahana...@gmail.com> wrote: >> >>> 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 >>> >> _______________________________________________ > 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 >
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel