Jump to content

Category talk:OoRexx: Difference between revisions

→‎ooRexx fully compatible with classic REXX: added serveral (it not many) comments. --- ~~~~
(→‎Plagiarism: more on deprecated characters)
(→‎ooRexx fully compatible with classic REXX: added serveral (it not many) comments. --- ~~~~)
Line 49:
 
:: What I had in mind here particularly was permitted character sets. I am not an expert in different interpreters - I have used VM\SP on CMS, the Rexx interpreter that came with PCDos7, Kexx, Personal rexx, and for the last decade or more ooRexx (or Object rexx as it was back then) with a little Kexx thrown in. I don't remember it all, but I remember that the not symbol on sp6 was ¬, I don't now remember what was not on PC Dos7. On personal rexx it was ~ which is the message operator on ooRexx. On SP6 you had to start your code with a comment /* */ so the correct interpreter was invoked. In Kexx comments are lines starting with a * - that is a standard, but not a Rexx one.
 
::: Yes, KEXX was a subset of REXX, a few other notable restrictions is that every clause had to be complete within one line, and that included comments. KEXX also accepted the normal REXX comments, but again, they had to be complete within one line (no multi-line comments). There were many other restrictions, most of which aren't probably germane to this discusion.
 
I would say that the main difference between ooRexx as a classic rexx interpreter and the other classic rexx interpreters is that ooRexx syntax checks the whole code before running any of it thus you cannot have syntactically invalid code in a clause even if it is never run.
Line 64 ⟶ 66:
 
:: I have met roo, though I find it as baffling as some people seem to find the oo side of ooRexx. Again, I'm not an expert on the developments that rexx has gone through, and I could be wrong about this, but I understand that the decision to dissallow those particular characters pre-dates Object Rexx, and I assume that there was some reason behind the decision.
 
::: I don't know where (or when) that happened (the disallowing). What classic REXX doesn't allow those national characters? -- [[User:Gerard Schildberger|Gerard Schildberger]] 20:14, 27 June 2012 (UTC)
 
Perhaps you might explain to me why you would object to the rexx code examples here being written in such a way that they would be portable between what are probably the two most popular rexx interpreters. I would see that as an improvement that would serve visitors to this site and cannot understand why you would object. If you do object, then it might be as well to know which of the rexx examples are yours.
Line 69 ⟶ 73:
: I never thought about "signing" my REXX examples, if that would help someone's understanding of where it would run, I'll do it. It would take me a while to go through the 380+ REXX examples. As I stated elsewhere, I wrote all my code to work on Classic REXX and don't assume it runs anywhere else, nor do I test it for a REXX iterpereter that I don't have installed. I don't write the classic REXX code and keep thinking if this will or will not run on ooRexx. I concern myself to make sure it runs as intended for the Rosetta Code REXX entry for classic REXX. If writing code for maximum portability is good, then writing ooRexx code that doesn't need object-oriented features would also be good, this would lead to more ooRexx code being portable to classic REXX. I hope that one can see the obvious absurdity of that fallacious statement. Of course, you could always look in the history of who entered the code (for the example program). I have noticed that very very very few people sign their code. It seems rather egocentric to do so. -- [[User:Gerard Schildberger|Gerard Schildberger]] 00:23, 27 June 2012 (UTC)
 
:: I think this is the nub of the problem, not wishing to repeat myself, but to many people ooRexx is just another classic Rexx interpreter. For them, I assume that portability is important. Anders and Mark have done a good job, and there is a fantastic product there. Were it not for an accident of history I might have been a Regina user too. There are things you can do in Regina that cannot be done with ooRexx (address-with springs to mind, some of the options). ooRexx also has it's strengths, and if someone wants to meet the oo paradigm it is a jolly good place to start. Of course I see that it is absurd to value compatibility so highly that you deny yourself the power of the language. I just didn't see that choosing particular single character variable names should rank that highly as a priority. However, I did write that before you said that these variable names have a consistent meaning.
 
::: The very definition of a classic REXX interpreter excludes an object-oriented REXX. Some people may think that ooRexx is a classic interpreter, after all, some people believe that ooRexx will run any classic REXX code without change. It'll be interesting to see the list (matrix) of incompatibles (or differences, if you prefer) between the various classic REXX interpreters and ooRexx. I whould hope that ''roo'' would be included in that matrix. ROO (as far as I can tell) has fewer restrictions in that regard. -- [[User:Gerard Schildberger|Gerard Schildberger]] 20:14, 27 June 2012 (UTC)
 
::: Also, keep in mind, some of these classic REXX programs were written before there was an ooRexx, and the choice of variable names was made for (and under) classic REXX, others were simply inherited from older code that couldn't/shouldn't be changed. Some of the decision making was colored by PC/REXX's restrictions, and at the time, that was the only game in town as far as coding REXX on a PC in a Windows world (or MS' DOS). The PC/REXX's restrictions that were applicable (and still are): no single REXX line could be longer than 250 characters (a limit that my tested and true ''one-liner'' subroutines share), and a limit of a 40k memory pool (called an ISA) of literals and symbols. There is also a limit on the length of a REXX clause. Now 40k isn't that much when you start writing a serious REXX program. I had often wished that limit was raised or elminated entirely. (I still wish for world peace also, but there ya have it). I still use PC/REXX in syntax checking (without actual execution). I wonder why the the '''S''' option (Scan) for the '''TRACE''' instruction was dropped from non-IBM REXX interpreters, it was a very useful option for debugging. Oh well, water under the bridge. I regularly use PC/REXX's "optimize" option for that purpose, in addition to creating an "optimized" version of the program, it checks for syntax errors at the same time (without executing the program, of course). It should be noted that the word ''optimized'' would better be replaced with ''tokenized'', but ... that's the word used, and it does optimize the REXX program's execution. One nice thing is that ''R4'' will execute the optimized REXX program correctly, but Regina doesn't (execute it at all). It has to do with Regina's ignoring the end-of-file character. -- [[User:Gerard Schildberger|Gerard Schildberger]] 20:14, 27 June 2012 (UTC)
:: I certainly don't want to be an irritant to you, and I am incredibly busy at the moment, but I could offer to take a bit at a time the classic Rexx samples here and see what it would take to make them run on ooRexx. I could then pass them back to you and if I hadn't broken them for regina etc., then you could choose to post them or not. I quite understand if you are not interested. --[[User:Sahananda|Sahananda]] 12:24, 27 June 2012 (UTC)
 
::: If you're going to change them for ooRexx, why not also test them to see if they still work with the three class REXX interpreters that they were intended to work for (and also already tested)? I really don't want to spend that amount of time re-testing other people's code. I'm pretty sure your time is as valuable to you as my time is to me. I'm not sure if you appreciate the amount of time that will be spent in just visiting each of the classic REXX programs, updating (changing) them, added summaries, and testing for (at least) four REXX environments, and that's assuming that you have the aforementioned classic REXX interpreters. Some (ok, ok, a few) of the classic REXX programs were also tested under CMS and/or TSO (by obliging dear friends) [--- if it works on one, it'll most likely work on the other, as it's the same REXX interpretor] --- and I certainly don't want to put them through that again (running of non-business work on the company's dime). This avenue of testing is water over the dam ... most of them have retired. I started to go through the REXX examples, trying to removed the extra blanks lines that my earlier REXX examples had at the beginning and end of the REXX programs, and even that was taking a lot of my time. So far, I got through the '''A'''s abd '''B'''s. -- [[User:Gerard Schildberger|Gerard Schildberger]] 20:14, 27 June 2012 (UTC)
 
::: One option would be to include a 2nd version, with a comment or note that it was changed to run under ooREXX and only tested under ooRexx. I suppose that just placing that version in the ooREXX language section would be simplier. By the way (and this is no small thing), it was this multiple testing of my classic REXX example programs that led to me finding numerous errors in the Regina and R4 classic REXX interpreters. I never assume that even writting simple code will correctly work on all REXX interpreters until I actually execute them. Ya never can tell when something will rise up and bit ya in the hinder. -- [[User:Gerard Schildberger|Gerard Schildberger]] 20:14, 27 June 2012 (UTC)
 
thanks. --[[User:Sahananda|Sahananda]] 22:48, 26 June 2012 (UTC)
Cookies help us deliver our services. By using our services, you agree to our use of cookies.