You can subscribe to this list here.
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2020 |
Jan
|
Feb
|
Mar
(4) |
Apr
(3) |
May
(6) |
Jun
(7) |
Jul
(10) |
Aug
(9) |
Sep
(9) |
Oct
(1) |
Nov
(3) |
Dec
(5) |
2021 |
Jan
|
Feb
(1) |
Mar
(5) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
(3) |
Oct
(9) |
Nov
(1) |
Dec
(14) |
2022 |
Jan
(8) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(165) |
Jul
(8) |
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(5) |
2023 |
Jan
(19) |
Feb
(14) |
Mar
(2) |
Apr
(3) |
May
|
Jun
(2) |
Jul
(10) |
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
(10) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: René J. <rvj...@xs...> - 2022-06-21 07:12:49
|
It should be absolutely safe to use only one of the jars. René. > On 20 Jun 2022, at 23:37, J Leslie Turriff <jlt...@ma...> wrote: > > Is it safe to drop these jars into my 4.03-GA packages, or should I download the whole of > 4.04-ALPHA? > > Leslie > > On 2022-06-20 09:20:34 René Jansen wrote: >> There are refreshed jars of 4.04-alpha at netrexx.org >> <http://netrexx.org/>: >> >> www.netrexx.org/files/NetRexxC. >> <http://www.netrexx.org/files/NetRexxC.org>jar >> www.netrexx.org/files/NetRexxF.jar >> <http://www.netrexx.org/files/NetRexxF.jar> >> >> René. > -- > Operating System: Linux > Distribution: openSUSE Leap 15.4 x86_64 > java version "18" 2022-03-22 > NetRexx portable processor 4.03-GA build 260-20220503-1730 > > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: J L. T. <jlt...@ma...> - 2022-06-20 21:38:15
|
Is it safe to drop these jars into my 4.03-GA packages, or should I download the whole of 4.04-ALPHA? Leslie On 2022-06-20 09:20:34 René Jansen wrote: > There are refreshed jars of 4.04-alpha at netrexx.org > <http://netrexx.org/>: > > www.netrexx.org/files/NetRexxC. > <http://www.netrexx.org/files/NetRexxC.org>jar > www.netrexx.org/files/NetRexxF.jar > <http://www.netrexx.org/files/NetRexxF.jar> > > René. -- Operating System: Linux Distribution: openSUSE Leap 15.4 x86_64 java version "18" 2022-03-22 NetRexx portable processor 4.03-GA build 260-20220503-1730 |
From: J L. T. <jlt...@ma...> - 2022-06-20 21:30:07
|
On 2022-06-19 04:40:13 hp...@we... wrote: > Hello Leslie! > > First -- I have to confess, the 'csvcln' stage I showed recently > is an example from VM/CMS running on codepage 273, not tested with > double-byte characters. The goal was, get rid of all superfluous > extras to make CSV tables comparable, whatever provenience. Thus > my suggestion of masking word separators might not work with > today's UTF-8 or -16 content. > > Next -- following remarks are neither NetRexx- nor Java-specific. > > Your succession of change stages makes me shiver ... > > > change /\n"/ /\n“/ | > > change / "/ / “/ | > > change /"\n/ /â€\n/ | > > ... because it uses arguments which /could/ be subject of > interpretation by a "funny" editor or other "helpful" tools I > don't know. You may consider my suggestion as paranoid to use only > hex values as arguments for Change (I didn't so in my csvcln, but > that was for a rather stable OS). You're quite right. I changed these to | change /\u000A\u0022/ /\u000A\u201C/ | | change /\u0020\u0022/ /\u0020\u201C/ | | change /\u0022\u000A/ /\u201D\u000A/ | etc., which should be safe. > > > loop while execOptions.words > 0 > > parse execOptions execOption execOptions > > select > > when 'help'.abbrev(execOptions.lower,1) then > > The variable execOption is very close to execOptions what is > pretty confusion prone. (BTW, there is a programming language > which allows looong variable names but the compiler utilizes the > first eight letters only.) > I'm not sure, the first When condition, could there be a little > 's' too much? This is intentional; execOptions, obtained from the previous parse command, | parse arg filePaths '[' execOptions ']' . contains (or can contain) multiple words. As the loop command, | loop while execOptions.words > 0 implies, the following parse command, | parse execOptions execOptions execOptions takes the first word (maybe the only word) from the variable execOptions and places it into execOption (the absence of the trailing s indicates it is only one option) and returns the rest of the list (maybe empty) to execOptions; this is a well-understood paradigm of the parse command. Since execOptions is used only to provide this list of options to the loop and is used for nothing else, there is little chance for harm. I could have given it a longer name, e.g. execOptionList, but as you say, some compilers have variable name length limitations. (The only one I can think of is FORTRAN, and that limit may have been removed by now.) Leslie > > Best, > M. -- Operating System: Linux Distribution: openSUSE Leap 15.4 x86_64 java version "18" 2022-03-22 NetRexx portable processor 4.03-GA build 260-20220503-1730 |
From: <hp...@we...> - 2022-06-20 20:22:05
|
Hi! Sorry, could not resist and tried to migrate another program, less pipelines, no GUI. > ... !unique w2 mult!count lines! ... returns 1. I expected either 0 or 2 and above, but for sure not 1. Best, M. |
From: René J. <rvj...@xs...> - 2022-06-20 14:22:59
|
Something wrong with the first, try again: www.netrexx.org/files/NetRexxC.jar <http://www.netrexx.org/files/NetRexxC.jar> www.netrexx.org/files/NetRexxF.jar <http://www.netrexx.org/files/NetRexxF.jar> René. > On 20 Jun 2022, at 16:20, René Jansen <rvj...@xs...> wrote: > > There are refreshed jars of 4.04-alpha at netrexx.org <http://netrexx.org/>: > > www.netrexx.org/files/NetRexxC. <http://www.netrexx.org/files/NetRexxC.org>jar > www.netrexx.org/files/NetRexxF.jar <http://www.netrexx.org/files/NetRexxF.jar> > > René. > >> On 20 Jun 2022, at 15:08, Marc Remes <re...@gm... <mailto:re...@gm...>> wrote: >> >> Hi Leslie, >> >> I push a fix for this to the repo. >> >> Marc >> >> On 6/19/22 17:51, Marc Remes wrote: >>> Hi Leslie, >>>> | address bash 'cat' progName'.help' >>>> fails, complaining of a missing 'with' clause (see fixQuotes.addressFail). It appears >>>> that Address expects either a simple variable or a literal here, but in any case, the >>> I also just noticed this. I'll see how to fix this. >>> Marc >> _______________________________________________ >> netrexx-pipelines mailing list >> net...@li... <mailto:net...@li...> >> https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: René J. <rvj...@xs...> - 2022-06-20 14:20:48
|
There are refreshed jars of 4.04-alpha at netrexx.org <http://netrexx.org/>: www.netrexx.org/files/NetRexxC. <http://www.netrexx.org/files/NetRexxC.org>jar www.netrexx.org/files/NetRexxF.jar <http://www.netrexx.org/files/NetRexxF.jar> René. > On 20 Jun 2022, at 15:08, Marc Remes <re...@gm...> wrote: > > Hi Leslie, > > I push a fix for this to the repo. > > Marc > > On 6/19/22 17:51, Marc Remes wrote: >> Hi Leslie, >>> | address bash 'cat' progName'.help' >>> fails, complaining of a missing 'with' clause (see fixQuotes.addressFail). It appears >>> that Address expects either a simple variable or a literal here, but in any case, the >> I also just noticed this. I'll see how to fix this. >> Marc > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines |
From: Marc R. <re...@gm...> - 2022-06-20 13:08:57
|
Hi Leslie, I push a fix for this to the repo. Marc On 6/19/22 17:51, Marc Remes wrote: > Hi Leslie, > >> | address bash 'cat' progName'.help' >> fails, complaining of a missing 'with' clause (see fixQuotes.addressFail). It appears >> that Address expects either a simple variable or a literal here, but in any case, the > > I also just noticed this. I'll see how to fix this. > > Marc |
From: <hp...@we...> - 2022-06-20 01:23:58
|
>> [...] > That's a good moment to pause and judge this migration project. > Stop or go? [...] I abandon my plan to migrate OS/2 Pipelines used in ooRexx to NetRexx Pipelines. From my point of view the effort is too demanding, not worth the result of just having a program I could publish. It works for me is not reason enough to make it work for others too. Summary: The program chosen by chance to test the migration has 25 pipes, up to now I've converted five of them to plain REXX (partly because it was simpler, partly because NetRexx lacks some special stages like varload, or the limited I/O with ooRexx), one single pipe is migrated and takes 0,2 seconds to process a file of ten lines. So there are still 19 remaining to convert or migrate. Quite possible it's the brain-sizzling heat of the summer, I lost the zest to continue. The next group of pipes analyses an Emu71 state file, to find if there is an HP-IL module and its port-numbers and IP address. Sorry, I give up. Thank you for all who helped. Best, Mike |
From: <hp...@we...> - 2022-06-19 11:00:21
|
Hello Leslie! First -- I have to confess, the 'csvcln' stage I showed recently is an example from VM/CMS running on codepage 273, not tested with double-byte characters. The goal was, get rid of all superfluous extras to make CSV tables comparable, whatever provenience. Thus my suggestion of masking word separators might not work with today's UTF-8 or -16 content. Next -- following remarks are neither NetRexx- nor Java-specific. Your succession of change stages makes me shiver ... > change /\n"/ /\n“/ | > change / "/ / “/ | > change /"\n/ /â€\n/ | ... because it uses arguments which /could/ be subject of interpretation by a "funny" editor or other "helpful" tools I don't know. You may consider my suggestion as paranoid to use only hex values as arguments for Change (I didn't so in my csvcln, but that was for a rather stable OS). > loop while execOptions.words > 0 > parse execOptions execOption execOptions > select > when 'help'.abbrev(execOptions.lower,1) then The variable execOption is very close to execOptions what is pretty confusion prone. (BTW, there is a programming language which allows looong variable names but the compiler utilizes the first eight letters only.) I'm not sure, the first When condition, could there be a little 's' too much? Best, M. Am 19.06.2022 um 10:12 schrieb J Leslie Turriff: > Hi, > I've written a little routine to replace plain quotes and apostrophes (' ") with the > [...] |
From: J L. T. <jlt...@ma...> - 2022-06-19 08:12:27
|
Hi, I've written a little routine to replace plain quotes and apostrophes (' ") with the curly variety (‘ ’ “ ”) but I'm having fun getting it to compile. Chapter 16.2 of the NetRexx Programming Guide shows this example: | loop i=1 while lines('testdata.txt') > 0 | say i linein('testdata.txt') | end but when I compile fixQuotes.njp (attached) the compiler says it can't find both lines() and lineIn() methods (see attached fixQuotes.streamIOfail). I tried replacing the loop with the Address command, but | address bash 'cat' progName'.help' fails, complaining of a missing 'with' clause (see fixQuotes.addressFail). It appears that Address expects either a simple variable or a literal here, but in any case, the with clause is supposed to be optional (Language Reference, pg 60)? I didn't want to use the stream I/O paradigm for creating a backup of the file to be processed, so I tried the example shown in Core Java Volume II 11th Ed. by Cay S. Horstmann, pgs.114, 115: | Files.copy(fromPath, toPath, StandardCopyOption.REPLACE_EXISTING, | StandardCopyOption.COPY_ATTRIBUTES) The document says this method is provided by java.nio.file.Files, but pipc complains about the StandardCopyOptions clauses (see fixQuotes.FileCopyFail), though I added | include java.nio. in my source. Suggestions for workarounds are welcome. :-) Leslie -- Operating System: Linux Distribution: openSUSE Leap 15.4 x86_64 java version "18" 2022-03-22 NetRexx portable processor 4.03-GA build 260-20220503-1730 |
From: J L. T. <jlt...@ma...> - 2022-06-19 07:33:41
|
On 2022-06-18 04:49:56 hp...@we... wrote: > Hi Jeff! > > Am 18.06.2022 um 00:56 schrieb Jeff Hennick: > > The WORDS option of the SPECs stage is supported in NetRexx Pipelines. > > FIELDS, and the SEPERATORs are not yet. (WORDS uses a simple PARSE, but > > using a non-SPACE separator will require more code, probably PARSE in a > > loop.) > > More code for sure, but PARSE in a loop? How about masking blanks, > if there are more word-separators mask them too, change the fs to > blank, parse "words" as you are used to, and undo all masking. > Drawback: chars used for masking must not exist in input, else you > have a problem. But, IMO, it's worth it, otherwise, how do you > handle CSV files? Assuming one is processing text, any of these ASCII codes can be used to translate white space characters; they're hardly ever used for anything: 1C FS FileSeparator 1D GS Group Separator 1E RS Record Separator 1F US Unit Separator Leslie -- Operating System: Linux Distribution: openSUSE Leap 15.4 x86_64 java version "18" 2022-03-22 NetRexx portable processor 4.03-GA build 260-20220503-1730 |
From: J L. T. <jlt...@ma...> - 2022-06-19 07:27:41
|
On 2022-06-18 08:02:19 hp...@we... wrote: > Hi Leslie! > > Am 18.06.2022 um 07:50 schrieb J Leslie Turriff: > >> [...] > > > > Courier and Courier New, IMO, should be deprecated; there are plenty of > > other monospace fonts available that make the distinction clear, so > > clinging to an outmoded typeface designed for use on a mechanical device > > with limited number of keys seems like bad practice to me, and ought not > > outweigh the advantages of using abbreviations. > > You are right in respect of my own PC, but I can't impede others > which font to use reading my programs. Even prefixing every file > with something like > /* To view this REXX restrain from using Courier or Courier New, > it could cause serious confusions */ > it might still be bad habit to code Do l = 1 to i ... This is just a philosophical observation, not 'I do this, so everyone else must also' mandate. :-) For readability, with single-letter loop variables I use uppercase (except for 'o') to help with this issue. > > > I generally only use the abbreviations when writing pipelines 'on the > > fly' to be executed directly from the command line; when writing them in > > source code I use the fully expanded word because it better documents > > what the pipeline is doing. > > What makes 'SFSDIRectory' document better what's going on than > using 'SFSDIR'? -- I'm not convinced. I use shortcuts only, i) > less typo-prone, ii) faster to catch, simpler to grasp. An example > neither pipe nor REXX related: mnemonics for firmware programs. > There is an emulator for HP's classic calculators which lists > firmware unabbreviated -- awful tiresome for the eyes. For some > reverse-engineering I had to convert it to mnemonics first. Well, I wouldn't say that 'SFSDIRectory' is a good example; something like | specs fs # f 2 f5 w 8... is not very understandable to newcomers, and sometimes if the spec is complicated enough I find it worthwhile to use | specs fieldseparator # field 2 field 5 word 8... which helps my old brain, as well as any third parties who are trying to understand my code. Leslie > > Best, > M. > > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines -- |
From: <hp...@we...> - 2022-06-19 00:47:13
|
Am 16.06.2022 um 00:02 schrieb ((ich)): > Error (specs) - pd673a59 - Missing data selector at field2 > Roaring silence of NetRexx 4.03 Pipelines Guide and Reference > regarding 'data selector'. Still nothing found what explains a. m. error message. But: "CMS only. Not yet implemented in NetRexx Pipelines" for 'FIELDSEparator' _and_ 'Fields' of Specs. Result: another pipe migration skipped, converted to plain REXX. /M. |
From: <hp...@we...> - 2022-06-18 13:13:58
|
Hi Leslie! Am 18.06.2022 um 07:50 schrieb J Leslie Turriff: >> [...] > Courier and Courier New, IMO, should be deprecated; there are plenty of other monospace > fonts available that make the distinction clear, so clinging to an outmoded typeface > designed for use on a mechanical device with limited number of keys seems like bad > practice to me, and ought not outweigh the advantages of using abbreviations. You are right in respect of my own PC, but I can't impede others which font to use reading my programs. Even prefixing every file with something like /* To view this REXX restrain from using Courier or Courier New, it could cause serious confusions */ it might still be bad habit to code Do l = 1 to i ... > I generally only use the abbreviations when writing pipelines 'on the fly' to be executed > directly from the command line; when writing them in source code I use the fully expanded > word because it better documents what the pipeline is doing. What makes 'SFSDIRectory' document better what's going on than using 'SFSDIR'? -- I'm not convinced. I use shortcuts only, i) less typo-prone, ii) faster to catch, simpler to grasp. An example neither pipe nor REXX related: mnemonics for firmware programs. There is an emulator for HP's classic calculators which lists firmware unabbreviated -- awful tiresome for the eyes. For some reverse-engineering I had to convert it to mnemonics first. Best, M. |
From: Jeff H. <Je...@Je...> - 2022-06-18 11:47:17
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>Mike,</p> <p>Beautiful!</p> <p>Yes, I use CSV files in places.</p> <p>To use the stage in NetRexx Pipelines, it must be in NetRexx, an easy enough translation, and we have the promise that that won't be needed in the next release.</p> <p>Yes, you can use DIY stages in NetRexx Pipelines.<br> </p> <p>We added some stages in the 4.01 release that are not in the IBM cannon, mostly for Java convenience, but also SQL and using PARSE notation as an alternative to SPECs. I think this stage would be a great addition.</p> <p>And I like the concept for the LOCATE stage's FIELDS. <br> </p> <p>Jeff<br> </p> <div class="moz-cite-prefix">On 6/18/2022 5:49 AM, <a class="moz-txt-link-abbreviated" href="mailto:hp...@we...">hp...@we...</a> wrote:<br> </div> <blockquote type="cite" cite="mid:a40...@we...">Hi Jeff! <br> <br> Am 18.06.2022 um 00:56 schrieb Jeff Hennick: <br> <blockquote type="cite">The WORDS option of the SPECs stage is supported in NetRexx Pipelines. FIELDS, <br> and the SEPERATORs are not yet. (WORDS uses a simple PARSE, but using a <br> non-SPACE separator will require more code, probably PARSE in a loop.) <br> </blockquote> <br> More code for sure, but PARSE in a loop? How about masking blanks, <br> if there are more word-separators mask them too, change the fs to <br> blank, parse "words" as you are used to, and undo all masking. <br> Drawback: chars used for masking must not exist in input, else you <br> have a problem. But, IMO, it's worth it, otherwise, how do you <br> handle CSV files? <br> <br> CSV files? Yes, this "simple as that"-format for tables. It would <br> be my next challenge after the OS/2 to NetRexx migration. Is it <br> possible to run such "DIY" stages in NetRexx Pipelines: <br> <br> <blockquote type="cite">/* CSVCLN REXX: brush-up a CSV file */ <br> /* (CSV = character separated values, a table transfer format) */ <br> /* Operation: change separating comma to TAB, single doubled quotes */ <br> /* and strip quotes from quoted values */ <br> /* */ <br> /* Ð×××××××××××××××××××××××××××××××××××××××××××××××××××××××××ׯ */ <br> /* ³ ³ */ <br> /* ³ >>××CSVCLN×ײ×××××××××××××××××××××××××××××××××××ײ××××>< ³ */ <br> /* ³ ¿××oldsep××ײ××××××××××××××××××××××ײ| ³ */ <br> /* ³ ¿××newsep××ײ×××××××××ײ| ³ */ <br> /* ³ ¿××nixbix××| ³ */ <br> /* ³ ³ */ <br> /* ¿××××××××××××××××××××××××××××××××××××××××××××××××××××××××××| */ <br> /* */ <br> /* OLDSEP specify the separation character used in input CSV, */ <br> /* default is comma (,) */ <br> /* NEWSEP define the separation character in output, */ <br> /* default is TAB (hex 05) */ <br> /* (OLDSEP and NEWSEP may be defined in hex or as a single */ <br> /* character, but % or § will fail) */ <br> /* NIXBIX is used as a place-holder for treatment of double quotes */ <br> /* its occurrence in input is not tested */ <br> /* Note: if you specify a wrong OLDSEP, output is chopped at quotes */ <br> /* .....Mike 190299 */ <br> /* ----------------------------------------------------------------- */ <br> /* Change 050799: Now doubled speed by Melinda's suggestion. */ <br> /* Note 1: Now a wrong OLDSEP will chop at leading quotes. */ <br> /* Note 2: Now two new "nixbix" are hardcoded: x00 and x01 should */ <br> /* not occur in input. */ <br> /* ----------------------------------------------------------------- */ <br> trace o /* in case of stall */ <br> signal on novalue /* No uninitialised variables */ <br> signal on failure /* Allow RC > 0 for a moment */ <br> 'STAGENUM' /* Where are we? */ <br> first? = RC = 1 /* first or not? */ <br> 'MAXSTREAM IN' /* Check only one stream */ <br> signal on error /* now stop for any error */ <br> if RC ^= 0 then 'ISSUEMSG 264 PIPCSV' /* too many streams: crash */ <br> if first? then 'ISSUEMSG 127 PIPCSV' /* if first: stop and say why */ <br> parse arg oc nc ph z /* args in mixed case */ <br> if z ^='' then 'ISSUEMSG 111 PIPCSV "' z '"' /* too many args */ <br> if oc = '' then oc = ',' /* default old sep char */ <br> else do /* user defined sep char */ <br> oc = strip(oc) /* no blanks arround it */ <br> l = length(oc) /* how many letters? */ <br> select /* marginal test */ <br> when l = 1 then nop /* a single character is ok */ <br> when l = 2 then oc = x2c(oc) /* hex assumed */ <br> otherwise 'ISSUEMSG 50 PIPCSV "' oc '"' /* invalid argument: stop */ <br> end; end /* end Select and Else Do */ <br> if nc = '' then nc = '05'x /* default new sep char */ <br> else do /* user defined sep char */ <br> nc = strip(nc) /* no blanks around it */ <br> l = length(nc) /* how many letters? */ <br> select /* marginal test */ <br> when l = 1 then nop /* a single character is ok */ <br> when l = 2 then nc = x2c(nc) /* hex assumed */ <br> otherwise 'ISSUEMSG 50 PIPCSV "' nc '"' /* invalid argument: stop */ <br> end; end /* end Select and Else Do */ <br> if ph = '' then ph = 'NixBix' /* default place holder for "" */ <br> 'CALLPIPE (sep % end § name CSVCLN.REXX) *:', /* ------- in ------ */ <br> '% change /""""/'ph'/', /* single inch-sign */ <br> '% change /'oc'"""/'oc'"'ph'/', /* leading inch-sign */ <br> '% change 1.3 /"""/"'ph'/', /* same in fst column */ <br> '% change /'oc'""/'oc'/', /* empty cells */ <br> '% change 1.2 /""//', /* same in fst column */ <br> '% change /""/'ph'/', /* example: "zizu = 8"" etc." */ <br> '% strip trailing' oc, /* no empty cells at end of record */ <br> '% xlate 1-* 40 00', /* Mask the blanks. */ <br> '% tokenize /"/ x01', /* Tokenize and delimit. */ <br> '%q:outside /"/ /"/', /* branch quoted values */ <br> '% xlate 1-*' oc nc, /* replace old by new sep-char */ <br> '%f:faninany', /* collect all parts of record */ <br> '% deblock linend 01 terminate', /* Re-form original records. */ <br> '% change /'ph'/"/', /* place holder to inch-sign */ <br> '% xlate 1-* 00 40', /* Unmask the blanks. */ <br> '%*:', /* ----------- out ----------- */ <br> '§q:', /* from OUTSIDE */ <br> '% nfind "' !!, /* Get rid of the quotes. */ <br> '%f:' /* to FANINAY */ <br> failure:; error: exit (RC * (RC ^= 12 & RC ^= 8)) /* RC = 0 if EOF */ <br> </blockquote> <br> I'm retired, so I stipulate as license: don't ask, don't tell ;) <br> (Alter codepage for nice railroad tracks in header.) <br> <br> I hope your answer will be 'yes, no problem.' <br> <br> Best, <br> M. <br> <br> <br> <br> _______________________________________________ <br> netrexx-pipelines mailing list <br> <a class="moz-txt-link-abbreviated" href="mailto:net...@li...">net...@li...</a> <br> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a> <br> </blockquote> </body> </html> |
From: Rony G. F. <Ron...@wu...> - 2022-06-18 11:26:06
|
Hi Jeff, On 17.06.2022 20:44, Jeff Hennick wrote: > > My ERROR! I apologize. > > In getting NetRexx Pipelines stages updated last year, I did not look at the working LOCATE stage, > and did not inspect the IBM documentation to see it could be abbreviated to just L. I will supply > the needed short class files (one is needed for each "word": L, LO, LOC, etc. to call the LOCATE > stage) to do this. When I have time, I'll scan the IBM documentation to see if there are other > such stages I have missed. > having read the other postings just a little remark: it would be possible to have a single class for all of these variants and dynamically load the single class that should be employed for all of these abbreviations. So a mapping of the various abbreviations to the class would be needed and then that class gets dynamically loaded and used. ---rony P.S.: The ooRexx-Java bridge BSF4ooRexx, due to match [oo]Rexx dynamic nature does exactly that: demand/dynamically load Java classes. |
From: <hp...@we...> - 2022-06-18 09:55:55
|
Hi Jeff! Am 18.06.2022 um 00:56 schrieb Jeff Hennick: > The WORDS option of the SPECs stage is supported in NetRexx Pipelines. FIELDS, > and the SEPERATORs are not yet. (WORDS uses a simple PARSE, but using a > non-SPACE separator will require more code, probably PARSE in a loop.) More code for sure, but PARSE in a loop? How about masking blanks, if there are more word-separators mask them too, change the fs to blank, parse "words" as you are used to, and undo all masking. Drawback: chars used for masking must not exist in input, else you have a problem. But, IMO, it's worth it, otherwise, how do you handle CSV files? CSV files? Yes, this "simple as that"-format for tables. It would be my next challenge after the OS/2 to NetRexx migration. Is it possible to run such "DIY" stages in NetRexx Pipelines: > /* CSVCLN REXX: brush-up a CSV file */ > /* (CSV = character separated values, a table transfer format) */ > /* Operation: change separating comma to TAB, single doubled quotes */ > /* and strip quotes from quoted values */ > /* */ > /* Ð×××××××××××××××××××××××××××××××××××××××××××××××××××××××××ׯ */ > /* ³ ³ */ > /* ³ >>××CSVCLN×ײ×××××××××××××××××××××××××××××××××××ײ××××>< ³ */ > /* ³ ¿××oldsep××ײ××××××××××××××××××××××ײ| ³ */ > /* ³ ¿××newsep××ײ×××××××××ײ| ³ */ > /* ³ ¿××nixbix××| ³ */ > /* ³ ³ */ > /* ¿××××××××××××××××××××××××××××××××××××××××××××××××××××××××××| */ > /* */ > /* OLDSEP specify the separation character used in input CSV, */ > /* default is comma (,) */ > /* NEWSEP define the separation character in output, */ > /* default is TAB (hex 05) */ > /* (OLDSEP and NEWSEP may be defined in hex or as a single */ > /* character, but % or § will fail) */ > /* NIXBIX is used as a place-holder for treatment of double quotes */ > /* its occurrence in input is not tested */ > /* Note: if you specify a wrong OLDSEP, output is chopped at quotes */ > /* .....Mike 190299 */ > /* ----------------------------------------------------------------- */ > /* Change 050799: Now doubled speed by Melinda's suggestion. */ > /* Note 1: Now a wrong OLDSEP will chop at leading quotes. */ > /* Note 2: Now two new "nixbix" are hardcoded: x00 and x01 should */ > /* not occur in input. */ > /* ----------------------------------------------------------------- */ > trace o /* in case of stall */ > signal on novalue /* No uninitialised variables */ > signal on failure /* Allow RC > 0 for a moment */ > 'STAGENUM' /* Where are we? */ > first? = RC = 1 /* first or not? */ > 'MAXSTREAM IN' /* Check only one stream */ > signal on error /* now stop for any error */ > if RC ^= 0 then 'ISSUEMSG 264 PIPCSV' /* too many streams: crash */ > if first? then 'ISSUEMSG 127 PIPCSV' /* if first: stop and say why */ > parse arg oc nc ph z /* args in mixed case */ > if z ^='' then 'ISSUEMSG 111 PIPCSV "' z '"' /* too many args */ > if oc = '' then oc = ',' /* default old sep char */ > else do /* user defined sep char */ > oc = strip(oc) /* no blanks arround it */ > l = length(oc) /* how many letters? */ > select /* marginal test */ > when l = 1 then nop /* a single character is ok */ > when l = 2 then oc = x2c(oc) /* hex assumed */ > otherwise 'ISSUEMSG 50 PIPCSV "' oc '"' /* invalid argument: stop */ > end; end /* end Select and Else Do */ > if nc = '' then nc = '05'x /* default new sep char */ > else do /* user defined sep char */ > nc = strip(nc) /* no blanks around it */ > l = length(nc) /* how many letters? */ > select /* marginal test */ > when l = 1 then nop /* a single character is ok */ > when l = 2 then nc = x2c(nc) /* hex assumed */ > otherwise 'ISSUEMSG 50 PIPCSV "' nc '"' /* invalid argument: stop */ > end; end /* end Select and Else Do */ > if ph = '' then ph = 'NixBix' /* default place holder for "" */ > 'CALLPIPE (sep % end § name CSVCLN.REXX) *:', /* ------- in ------ */ > '% change /""""/'ph'/', /* single inch-sign */ > '% change /'oc'"""/'oc'"'ph'/', /* leading inch-sign */ > '% change 1.3 /"""/"'ph'/', /* same in fst column */ > '% change /'oc'""/'oc'/', /* empty cells */ > '% change 1.2 /""//', /* same in fst column */ > '% change /""/'ph'/', /* example: "zizu = 8"" etc." */ > '% strip trailing' oc, /* no empty cells at end of record */ > '% xlate 1-* 40 00', /* Mask the blanks. */ > '% tokenize /"/ x01', /* Tokenize and delimit. */ > '%q:outside /"/ /"/', /* branch quoted values */ > '% xlate 1-*' oc nc, /* replace old by new sep-char */ > '%f:faninany', /* collect all parts of record */ > '% deblock linend 01 terminate', /* Re-form original records. */ > '% change /'ph'/"/', /* place holder to inch-sign */ > '% xlate 1-* 00 40', /* Unmask the blanks. */ > '%*:', /* ----------- out ----------- */ > '§q:', /* from OUTSIDE */ > '% nfind "' !!, /* Get rid of the quotes. */ > '%f:' /* to FANINAY */ > failure:; error: exit (RC * (RC ^= 12 & RC ^= 8)) /* RC = 0 if EOF */ I'm retired, so I stipulate as license: don't ask, don't tell ;) (Alter codepage for nice railroad tracks in header.) I hope your answer will be 'yes, no problem.' Best, M. |
From: <hp...@we...> - 2022-06-18 08:01:51
|
Hi René! Am 16.06.2022 um 08:18 schrieb ((me, myself and I)): > [...] > At the moment I'm stuck with: > >> "Error - pipe as stage definition VILMA_1.CLASS is missing a >> period" In short -- it works. Why? Well, since I did not find any explanation about this message the only option left was a check of the given examples, if they still work. They do so. O yes, to obey the documentation exactly has its advantages ;) More lessons learned: in a .njp file, the pipe's name, obviously the first word after the opening bracket after 'pipe', will define the filename of the output file (filetype .class). Upper/lower case matters (but that was outlined somewhere I remember). Gain of plain pipe vs the pre-compiled: 1,7 seconds vs 0,2 what is about factor 8, something less than the hoped for speed-up of 100 times faster. That's a good moment to pause and judge this migration project. Stop or go? Since for me it's hobby only, there is no gain to compensate the effort. The only asset would be a program I possibly /could/ publish. Alas, running somehow slow and with an additional prerequisite to install. Questions: i) is there a chance to keep the java environment active to achieve the 100x speed-up? For example start NetRexx and call from it the yet available ooRexx routine? ii) Is it possible to keep all pre-compiled pipes in one file, comparable to a Loadlib? Otherwise there would be for each and every pipe of a program an extra .class file. My objective is typically to keep the number of files as low as possible. Best, M. |
From: J L. T. <jlt...@ma...> - 2022-06-18 06:37:00
|
This is quite frustrating. In CMS/TSO Pipelines Author's Edition 1.1.12, Chapter 2 (pg 14 in my edition) it says, "Most stages in the PIPE command in Figure 19 have been described already; cons is an abbreviation of console. A few program names have an abbreviation, but most must be spelt out." In Chapter 20, pg 220, it says, "Keywords are shown in a Gothic font with the minimum abbreviation in upper case. When writing the keyword, you must provide at least the minimum abbreviation. Write the keyword in upper case or lower case; write it mIxEd if you like." but I'm fairly sure that the editor merely incorporated the boiler-plate syntax diagram help information from another manual. Otherwise, the author seems to have forgotten to tell us WHICH program names have abbreviations; in the rest of the manual they are either given entirely in upper case (Chapter 23) or entirely in lower case (Appendix A). Strangely, keywords other than the stage name are presented in the usual IBMish manner of upper case letters denoting minimum abbreviations, but not the stage names themselves. I suppose you can get some of the abbreviations from the z/VM CMS Pipelines Reference, but there are so many stages that are not documented there... Leslie On 2022-06-17 13:44:27 Jeff Hennick wrote: > My ERROR! I apologize. > > In getting NetRexx Pipelines stages updated last year, I did not look at > the working LOCATE stage, and did not inspect the IBM documentation to see > it could be abbreviated to just L. I will supply the needed short class > files (one is needed for each "word": L, LO, LOC, etc. to call the LOCATE > stage) to do this. When I have time, I'll scan the IBM documentation to > see if there are other such stages I have missed. Jeff Hennick -- |
From: J L. T. <jlt...@ma...> - 2022-06-18 05:54:07
|
My use of the term 'Rexxish' is a bit of a nod to the term 'pipethink' in the pipeline world, and is intended to refer to the entire family of Rexx-inspired dialects. My thought was that using abbrev() would eliminate the need for multiple stubs, but I suppose it's a bit late to switch. Leslie -- Operating System: Linux Distribution: openSUSE Leap 15.4 x86_64 java version "18" 2022-03-22 NetRexx portable processor 4.03-GA build 260-20220503-1730 |
From: J L. T. <jlt...@ma...> - 2022-06-18 05:50:32
|
On 2022-06-17 17:39:10 hp...@we... wrote: > Hi! > > Am 17.06.2022 um 20:44 schrieb Jeff Hennick: > > My ERROR! I apologize. > > IMO no need to apologize, since the "documentation" of its > possible abbreviation is only a well hidden hint given by denoting > the stage name in upper case/lower case. This is shown in the CMS > help files, but not in the author's edition of 'the Book' as I > know it. > > In addition, editing using a fixed font like 'Courier New' the > lower case 'L' is very close to the number '1'. As such it is > regarded as bad habit using 'l' as variable name. Maybe same holds > true for the stage Locate. (Nonetheless I mostly use !strip!l to > remove blank lines.) > > Best, > M. Courier and Courier New, IMO, should be deprecated; there are plenty of other monospace fonts available that make the distinction clear, so clinging to an outmoded typeface designed for use on a mechanical device with limited number of keys seems like bad practice to me, and ought not outweigh the advantages of using abbreviations. I generally only use the abbreviations when writing pipelines 'on the fly' to be executed directly from the command line; when writing them in source code I use the fully expanded word because it better documents what the pipeline is doing. Leslie > > > In getting NetRexx Pipelines stages updated last year, I did not look at > > the working LOCATE stage, and did not inspect the IBM documentation to > > see it could be abbreviated to just L. I will supply the needed short > > class files (one is needed for each "word": L, LO, LOC, etc. to call the > > LOCATE stage) to do this. When I have time, I'll scan the IBM > > documentation to see if there are other such stages I have missed. > > > > Jeff Hennick > > _______________________________________________ > netrexx-pipelines mailing list > net...@li... > https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines -- |
From: Jeff H. <Je...@Je...> - 2022-06-17 22:56:59
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>Leslie and Mike and All,</p> <p>The WORDS option of the SPECs stage is supported in NetRexx Pipelines. FIELDS, and the SEPERATORs are not yet. (WORDS uses a simple PARSE, but using a non-SPACE separator will require more code, probably PARSE in a loop.)</p> <p>These stages are in the test files (specs_tests2.njp) and work:</p> <p>-- specs words space range</p> <p>specs words 2-4 1 | </p> <p>-- specs words no-space range</p> <p>specs words2-4 1 |</p> <p>Jeff<br> </p> <div class="moz-cite-prefix">On 6/13/2022 7:45 AM, J Leslie Turriff wrote:<br> </div> <blockquote type="cite" cite="mid:202...@ma..."> <pre class="moz-quote-pre" wrap=""> I too was disappointed that specs field- and word-ranges aren't yet supported in NetRexx Pipelines; I always found it so very useful for rearranging fields of records, and there's no equivalent to that in the Unixish world. Leslie On 2022-06-13 05:04:49 <a class="moz-txt-link-abbreviated" href="mailto:hp...@we...">hp...@we...</a> wrote: </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">Am 13.06.2022 um 02:27 schrieb ((ich)): </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">[...] Hmm... no, that looks quite similar like the first case, so this one too I will not convert to NetRexx Pipelines. But the third pipe is worth it: </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">call RxPipe '< "' || fn || '"!l fs ; f1!stem loc.!spec fs 09 f1 1!stem n.' </pre> </blockquote> </blockquote> <pre class="moz-quote-pre" wrap=""> No-no-no-no: </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">Error (specs) - fs 09 f1 1 write - Unrecognized option: fs </pre> </blockquote> <pre class="moz-quote-pre" wrap=""> A quick glance into the documentation reveals: </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">(3) CMS only. Not yet implemented in NetRexx Pipelines </pre> </blockquote> <pre class="moz-quote-pre" wrap=""> Therefore this OS/2 pipe is converted to plain ooRexx without support from NetRexx Pipelines. Same for next one: </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">if syswinver() = 'WindowsNT 6.01' then, /* Win7 only */ gehon = '< C:\Windows\System32\drivers\etc\hosts', /* mappings of dotIP to host names */ '!spec fs # f1!strip!l!spec w2!' /* keep name only */ else gehon = '' call RxPipe gehon 'literal localhost!stem honam.' /* no sort as ComboBox will do so */ </pre> </blockquote> <pre class="moz-quote-pre" wrap=""> Again spec fs char is the show-stopper. Next one? </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">selni = ctlcbx~selected call RxPipe '(end ?) var selni!a:lookup f1 master!spec f2', '!spec fs ; f1!strip!var fid!reverse!spec fs . f1!reverse!xlate!var sfx', '?stem loc.!a:' </pre> </blockquote> <pre class="moz-quote-pre" wrap=""> Forget it, no way! Two times spec fs ... Next one is: </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap=""> call RxPipe '(end ?) var fid!strip /"/!get asis BIN', '!a:take 16 bytes!spec *-* c2x!var sig', '?a:!b:take 4 bytes!reverse!spec *-* c2x!var kml', '?b:!stem rst.' </pre> </blockquote> <pre class="moz-quote-pre" wrap=""> Finally, the perfect candidate for NetRexx Pipelines, read a file binary, sip off two strings from the beginning, convert and deliver them to ooRexx, also the untouched remnant of the file for further investigation. New thereby, maybe a challenge, are the two strings and an unknown number of records returned. But first I'll "rexxify" all skipped before I attack this one. /M. _______________________________________________ netrexx-pipelines mailing list <a class="moz-txt-link-abbreviated" href="mailto:net...@li...">net...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a> </pre> </blockquote> <pre class="moz-quote-pre" wrap=""> -- _______________________________________________ netrexx-pipelines mailing list <a class="moz-txt-link-abbreviated" href="mailto:net...@li...">net...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines">https://lists.sourceforge.net/lists/listinfo/netrexx-pipelines</a> </pre> </blockquote> </body> </html> |
From: <hp...@we...> - 2022-06-17 22:40:46
|
Hi! Am 17.06.2022 um 20:44 schrieb Jeff Hennick: > My ERROR! I apologize. IMO no need to apologize, since the "documentation" of its possible abbreviation is only a well hidden hint given by denoting the stage name in upper case/lower case. This is shown in the CMS help files, but not in the author's edition of 'the Book' as I know it. In addition, editing using a fixed font like 'Courier New' the lower case 'L' is very close to the number '1'. As such it is regarded as bad habit using 'l' as variable name. Maybe same holds true for the stage Locate. (Nonetheless I mostly use !strip!l to remove blank lines.) Best, M. > In getting NetRexx Pipelines stages updated last year, I did not look at the > working LOCATE stage, and did not inspect the IBM documentation to see it could > be abbreviated to just L. I will supply the needed short class files (one is > needed for each "word": L, LO, LOC, etc. to call the LOCATE stage) to do this. > When I have time, I'll scan the IBM documentation to see if there are other such > stages I have missed. > > Jeff Hennick |
From: Jeff H. <Je...@Je...> - 2022-06-17 22:33:49
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>Leslie,</p> <p>Thank you for your input.</p> <p>One small consideration is it is in NetRexx, not ooRexx, but that is doable.</p> <p>The way the NetRexx Pipelines scheduler is implemented is the stages are directly called as classes.</p> <p>The "stub" classes are simple boilerplate like this sample from strfrlab.nrx for <b>strfrlab</b> -> the full <b>strfrlabel</b>:</p> <p> <blockquote type="cite">options nostrictcase nostrictargs nostrictsignal<br> package org.netrexx.njpipes.stages<br> import org.netrexx.njpipes.pipes.<br> class strfrlab extends strfrlabel</blockquote> </p> <p>The fact that LOCATE did not get the stubs was my hasty misreading the IBM documentation. (And there could be a few others yet.)</p> <p>Jeff<br> </p> <div class="moz-cite-prefix">On 6/17/2022 4:39 PM, J Leslie Turriff wrote:<br> </div> <blockquote type="cite" cite="mid:202...@ma..."> <pre class="moz-quote-pre" wrap=""> Would it not be possible to use something more Rexxish, like this abbrev() function? | #include <locale> | #include <string> | | using namespace std; | // ------------------------------------------------------------------------------- // | inline const bool abbrev(const string pattern, | const string candidate, | const unsigned int minLength = pattern.length()) | {return candidate.length() <= pattern.length() & | candidate.length() >= minLength & | candidate.toupper() == pattern.substr(1,candidate.length()).toupper(); | } so e.g. | : | if (abbrev("locate",stagename,1) | call LOCATEstage | : and abbrev() could be used for other components as well. Leslie On 2022-06-17 13:44:27 Jeff Hennick wrote: </pre> <blockquote type="cite"> <pre class="moz-quote-pre" wrap="">From: Jeff Hennick <a class="moz-txt-link-rfc2396E" href="mailto:Je...@je..."><Je...@je...></a> To: <a class="moz-txt-link-abbreviated" href="mailto:net...@li...">net...@li...</a> My ERROR! I apologize. In getting NetRexx Pipelines stages updated last year, I did not look at the working LOCATE stage, and did not inspect the IBM documentation to see it could be abbreviated to just L. I will supply the needed short class files (one is needed for each "word": L, LO, LOC, etc. to call the LOCATE stage) to do this. When I have time, I'll scan the IBM documentation to see if there are other such stages I have missed. Jeff Hennick </pre> </blockquote> <pre class="moz-quote-pre" wrap=""> </pre> </blockquote> </body> </html> |
From: J L. T. <jlt...@ma...> - 2022-06-17 20:39:28
|
Would it not be possible to use something more Rexxish, like this abbrev() function? | #include <locale> | #include <string> | | using namespace std; | // ------------------------------------------------------------------------------- // | inline const bool abbrev(const string pattern, | const string candidate, | const unsigned int minLength = pattern.length()) | {return candidate.length() <= pattern.length() & | candidate.length() >= minLength & | candidate.toupper() == pattern.substr(1,candidate.length()).toupper(); | } so e.g. | : | if (abbrev("locate",stagename,1) | call LOCATEstage | : and abbrev() could be used for other components as well. Leslie On 2022-06-17 13:44:27 Jeff Hennick wrote: > From: Jeff Hennick <Je...@je...> > To: net...@li... > > My ERROR! I apologize. > > In getting NetRexx Pipelines stages updated last year, I did not look at > the working LOCATE stage, and did not inspect the IBM documentation to see > it could be abbreviated to just L. I will supply the needed short class > files (one is needed for each "word": L, LO, LOC, etc. to call the LOCATE > stage) to do this. When I have time, I'll scan the IBM documentation to > see if there are other such stages I have missed. Jeff Hennick -- |