From: <hp...@we...> - 2022-07-01 17:11:58
|
Hello René! To keep my promise I now published my first successful migration from OS/2 to NetRexx Pipelines. Since this list impedes ZIP attachments you find it here: https://forum.hp41.org/viewtopic.php?f=13&t=372#p1892 It is the fruit of all the kind help I received from this list. Thank you. The resulting files work flawlessly in V41, https://hp.giesselink.com/v41.htm Well, it's still work in progress, since I am able to pack .class files to a .jar, but found no description yet how to run pipelines in the .jar file. Is there an example somewhere? > Am 29.06.2022 um 18:37 schrieb René Jansen: >> I mostly compile the stages with ’trace results’ and see what >> flows. In the new 4.04 you can even use Marc’s ’trace interactive’. I tried, but neither 'trace result' nor 'trace interactive' show something like "data flow", it compiles and runs as without this line: > /* MkR_9b.njp: show prgms in 4 colums side by side */ > > trace results > > pipe (MkR_9b sep ! end ?) cons!x: strfrlab /nixbix/!drop ! > a: lookup *-* w1-2 master ! > spec w3-* 1 ! > b: locate 1 /'/ ! > change 1 x27 x22 ! > insert x22 after ! > insert /XROM / ! > c: faninany ! > spec pad 0 recno 1.4 r *-* nw ! > change x20FA4C424C xFA4C424C ! > d: take 9!spec 3-* 1 ! > e: faninany!pad 20!snake 4!chop 79 ! > literal!term > ?x:!a:!c:?b:!c: > ?d:! > strip leading str /0/!e: === I found some more errors in NetRexx Pipelines: spec fails badly > literal MOD1!pad 5 00!spec *-* c2x 1!term returns : 4D4F44310 expected: 4D4F443100 === diskr fails (IMO) 'FA'x in file is converted to 'FFFD'x in NetRexx Pipeline. In cmd window 'FA'x shows as · (cdot) while 'FFFD'x as "?" === change error > ... '! change x20FFFD4C424C xFA4C424C', does not alter the given sequence whilst actually present in data. === stage ending not propagated in time > ... > '!d: take 9!spec 3-* 1', > '!e: fanin' clmsho '!chop 79!term', > '?d:', > '!copy', > '! strip leading str /0/!e:' > ... To prevent a stall I had either to insert a copy stage as shown or change fanin to faninany. Theoretically unnecessarily. Totally. (After nine records take changes operation but the information about that should also propagate forward to Fanin so it will switch to next stream.) === snake fails Try: > literal!dup 8!spec recno 1!pad 20!snake 4!term' > literal!dup 8!spec recno 1!pad 27!snake 3!term' === Nasty surprise in ooRexx (at leat for me) I had do learn that it makes a big difference > in. = xrom. or > in. = xrom.~copy In first case, altering in. also modifies xrom. (Who needs this?) === RC=4, alas not found why. > ... > d: take 9!spec 3-* 1 ! > e: fanin!pad 27!snake 3!chop 79 ! > literal!term > ?x:!a:!c:?b:!c: > ?d:! > copy ! -- ... it is what it is: NetRexx Pipelines > strip leading str /0/!e: works with 8 records arriving at d:, while it fails with > ... e: fanin!pad 20!snake 4 ... Here I hoped 'trace interactive' could shed some light onto the dark matter behind the scenes. === Next steps? Yep, why not migrate this little toy from ooRexx to NetRexx? a) would it be possible and b) would there be a gain in execution speed? Currently, using pre-compiled pipes, it is not overwhelming fast, but "within the realms of bearable". Best, M. |