Will the "real" REXX plesae stand up?

  • Follow


OK, I got exposed (if that is the correct word) many years ago to REXX 
in an IBM/370 environment. It was kind of a fun language created, IIRC 
by some IBM fellow in the UK.

I just Googled REXX and there seems to be various versions out there.

If I want to run REXX on my Windows 7 PC, which REXX is the one that is 
linearly descended from that original REXX? And is it the best one to 
get for personal use on a computer?

Would be nice if it would also run in a Windows Server 2003 (aka Windows 
Home Server) environment.

Thanks!
0
Reply MikeB 9/14/2010 6:09:13 PM

MikeB wrote:
> OK, I got exposed (if that is the correct word) many years ago to REXX 
> in an IBM/370 environment. It was kind of a fun language created, IIRC 
> by some IBM fellow in the UK.
> 
> I just Googled REXX and there seems to be various versions out there.
> 
> If I want to run REXX on my Windows 7 PC, which REXX is the one that is 
> linearly descended from that original REXX? And is it the best one to 
> get for personal use on a computer?
> 
> Would be nice if it would also run in a Windows Server 2003 (aka Windows 
> Home Server) environment.
> 
> Thanks!

I recommend you visit http://rexxla.org There you will find links to lots of 
information about Rexx. RexxLA was given rights to the code of Object Rexx for 
OS/2 and has made Open Object Rexx (ooRexx) available for free on SourceForge.

I also have a Windows 7 machine and use ooRexx along with THE, a free 
Xedit/Kedit look-alike. The combination has let me port my skills from VM/CMS to 
the pc with a minimum amount of pain.

Other interpreter/editor combinations might be better for you and what you want 
to do with Rexx. Regina, for instance, has a lot of extensions to do special things.

-- 

Les               (Change Arabic to Roman to email me)
0
Reply LesK 9/14/2010 7:36:30 PM


On 09/14/2010 02:09 PM, MikeB wrote:
> If I want to run REXX on my Windows 7 PC, which REXX is the one that is
> linearly descended from that original REXX?

ooRexx is the open source version of IBM's Object Rexx, which is
directly descended from (but just shy of 100% compatible with) Mike
Cowlishaw's original Rexx that you know and love.  It has the most
active support, and of course all the added Object Oriented features.

Regina is probably the most highly recommended of the Classic (original)
Rexx implementations.

If you learned REXX together with XEDIT, you might also check out THE
(The Hessling Editor) from the developer of Regina.  It will work with
both of these and most other Rexx implementations.

Object Rexx compatibility gory details:

I think there are just two incompatibilities to watch out for in running
Classic Rexx programs in Object Rexx.  One is that it allows line
comments starting with "--".  If you have any expressions like "2--1",
they'll be broken at the dash.  Not something you'd expect to write in
ordinary code, since "--" just means "+", but it might show up if you're
building expressions that you then INTERPRET.

(Comments are also something to watch for possible problems with in
Classic Rexx implementations, since some of them have ways of specifying
options and such in comments at the start of the program.)

The other has to do with assigning the default values of stem variables.
 In Object Rexx, there are stem objects that include all the variables
with the same stem.  "STEM." with no tail may represent either just the
default value (as in Classic Rexx) or the entire object, depending on
the context.  When one stem object is assigned to another, Object Rexx
creates a reference, so that they are both actually the same object.
Also, a function may return a stem object, so this reference can be
created in assigning the result of a function to a stem:

  /* demonstrate stem differences */
  c.4 = 'Herbie'
  p. = same(c.)  /* assigns default value in Classic Rexx;
                    creates reference to stem in Object Rexx */
  Say p.4  /* says 'C.' in Classic Rexx, 'Herbie' in Object Rexx */

  p.2 = 'Horace' /* affects C. in Object Rexx, not in Classic Rexx */
  Say c.2  /* says 'C.2' in Classic Rexx, 'Horace' in Object Rexx */

  Exit

  same:
  Return Arg(1)  /* returns default value in Classic Rexx;
                    returns stem object in Object Rexx */

You can avoid this incompatibility the same way you avoid problems with
variable names matching Rexx keywords in issuing a command, by
concatenating with the null string, whenever you assign the default
value of a stem:

  p. = ''c. /* assigns default value concatenated with the
               null string, in either Classic or Object Rexx */

Note that, in Object Rexx, this assignment creates a whole new P. object
and doesn't affect C.:

  Say c.4 /* still says 'Herbie' in either Classic or Object Rexx */

There's a different construct for assigning the default value of an
existing object:

  p. = c.
  p.[] = 'new default value for both P. and C.' /* Object Rexx only! */
  Say c.4 /* says 'new default value for both P. and C.' */
  Say p.2 /* says 'new default value for both P. and C.' */

�R
0
Reply Glenn 9/14/2010 8:45:24 PM

In <4c8fba53$1@news.x-privat.org>, on 09/14/2010
   at 01:09 PM, MikeB <mpbrede@gmail.com> said:

>If I want to run REXX on my Windows 7 PC, which REXX is the one that
>is  linearly descended from that original REXX? 

None; the descendants of the original REXX implementation are on
mainframes. The implementations on PC's are from different code bases.

>And is it the best one to 
>get for personal use on a computer?

Regina for classic REXX, OOREXX for more expressive power.

-- 
Shmuel (Seymour J.) Metz, SysProg and JOAT  <http://patriot.net/~shmuel>

Unsolicited bulk E-mail subject to legal action.  I reserve the
right to publicly post or ridicule any abusive E-mail.  Reply to
domain Patriot dot net user shmuel+news to contact me.  Do not
reply to spamtrap@library.lspace.org

0
Reply Shmuel 9/14/2010 10:43:12 PM

Glenn Knickerbocker wrote:
> On 09/14/2010 02:09 PM, MikeB wrote:
>> If I want to run REXX on my Windows 7 PC, which REXX is the one that is
>> linearly descended from that original REXX?
> 
> ooRexx is the open source version of IBM's Object Rexx, which is
> directly descended from (but just shy of 100% compatible with) Mike
> Cowlishaw's original Rexx that you know and love.  It has the most
> active support, and of course all the added Object Oriented features.
> 
> Regina is probably the most highly recommended of the Classic (original)
> Rexx implementations.
> 
> If you learned REXX together with XEDIT, you might also check out THE
> (The Hessling Editor) from the developer of Regina.  It will work with
> both of these and most other Rexx implementations.
> 
> Object Rexx compatibility gory details:
> 
> I think there are just two incompatibilities to watch out for in running
> Classic Rexx programs in Object Rexx.  One is that it allows line
> comments starting with "--".  If you have any expressions like "2--1",
> they'll be broken at the dash.  Not something you'd expect to write in
> ordinary code, since "--" just means "+", but it might show up if you're
> building expressions that you then INTERPRET.
> 
> (Comments are also something to watch for possible problems with in
> Classic Rexx implementations, since some of them have ways of specifying
> options and such in comments at the start of the program.)
> 
> The other has to do with assigning the default values of stem variables.
>  In Object Rexx, there are stem objects that include all the variables
> with the same stem.  "STEM." with no tail may represent either just the
> default value (as in Classic Rexx) or the entire object, depending on
> the context.  When one stem object is assigned to another, Object Rexx
> creates a reference, so that they are both actually the same object.
> Also, a function may return a stem object, so this reference can be
> created in assigning the result of a function to a stem:
> 
>   /* demonstrate stem differences */
>   c.4 = 'Herbie'
>   p. = same(c.)  /* assigns default value in Classic Rexx;
>                     creates reference to stem in Object Rexx */
>   Say p.4  /* says 'C.' in Classic Rexx, 'Herbie' in Object Rexx */
> 
>   p.2 = 'Horace' /* affects C. in Object Rexx, not in Classic Rexx */
>   Say c.2  /* says 'C.2' in Classic Rexx, 'Horace' in Object Rexx */
> 
>   Exit
> 
>   same:
>   Return Arg(1)  /* returns default value in Classic Rexx;
>                     returns stem object in Object Rexx */
> 
> You can avoid this incompatibility the same way you avoid problems with
> variable names matching Rexx keywords in issuing a command, by
> concatenating with the null string, whenever you assign the default
> value of a stem:
> 
>   p. = ''c. /* assigns default value concatenated with the
>                null string, in either Classic or Object Rexx */
> 
> Note that, in Object Rexx, this assignment creates a whole new P. object
> and doesn't affect C.:
> 
>   Say c.4 /* still says 'Herbie' in either Classic or Object Rexx */
> 
> There's a different construct for assigning the default value of an
> existing object:
> 
>   p. = c.
>   p.[] = 'new default value for both P. and C.' /* Object Rexx only! */
>   Say c.4 /* says 'new default value for both P. and C.' */
>   Say p.2 /* says 'new default value for both P. and C.' */
> 
> �R

More ooRexx gory compatibility details:

Although Glen referred to Object Rexx (for OS/2 and its follow-on), not Open 
Object Rexx, I expect his observations hold true for both. Specifically for ooRexx:

The Rexx ANSI standard does not allow the mainframe characters: #@$ and 
cent-sign in variable names, so neither does ooRexx. If you import code from the 
mainframe, for instance the VM Download Library, you could easily trip over 
this. A simple THE macro can fix this.

Another gotcha is that the 'logical not-sign' of the old 3270 days (shift 6) is 
also illegal with an ANSI compliant Rexx interpreter. That includes ooRexx. Some 
interpreters allow the carat (^) in its place. They all, that I know of, accept 
the backslash (/), including zVM/CMS.

I think Regina is more lenient about characters in variable names but my memory 
is a little hazy on that. You can always go to SourceForge and get the pdf for 
either interpreter.	

-- 

Les               (Change Arabic to Roman to email me)
0
Reply LesK 9/15/2010 4:12:15 AM

On Wed, 15 Sep 2010 00:12:15 -0400, LesK wrote:
>Although Glen referred to Object Rexx (for OS/2 and its follow-on), not Open 
>Object Rexx, I expect his observations hold true for both.

Right, I meant the Object Rexx language, not the IBM Object Rexx or Open
Object Rexx implementation in particular.

>The Rexx ANSI standard does not allow the mainframe characters: #@$ and 
>cent-sign in variable names, so neither does ooRexx. 
>Another gotcha is that the 'logical not-sign' of the old 3270 days (shift 6) is 
>also illegal with an ANSI compliant Rexx interpreter.

I have Regina and Reginald handy, and both of those accept #@$ but not �
or � (i.e., they like the ASCII characters but not the non-ASCII ones).

>the backslash (/)

That's forward!  Backslash is the one that leans left:  \

�R
0
Reply Glenn 9/15/2010 6:59:18 AM

Glenn Knickerbocker wrote:
> On Wed, 15 Sep 2010 00:12:15 -0400, LesK wrote:
>> Although Glen referred to Object Rexx (for OS/2 and its follow-on), not Open 
>> Object Rexx, I expect his observations hold true for both.
> 
> Right, I meant the Object Rexx language, not the IBM Object Rexx or Open
> Object Rexx implementation in particular.
> 
>> The Rexx ANSI standard does not allow the mainframe characters: #@$ and 
>> cent-sign in variable names, so neither does ooRexx. 
>> Another gotcha is that the 'logical not-sign' of the old 3270 days (shift 6) is 
>> also illegal with an ANSI compliant Rexx interpreter.
> 
> I have Regina and Reginald handy, and both of those accept #@$ but not �
> or � (i.e., they like the ASCII characters but not the non-ASCII ones).
> 
>> the backslash (/)
> 
> That's forward!  Backslash is the one that leans left:  \
> 
> �R

Mea culpa! That should teach me to be *very* careful when posting just after 
midnight after coding and testing since 4am.

One other thing: ooRexx can interact with all of Microsoft's OLE applications, 
such as Excel, Word, etc. as well as Open Office via the BSF4Rexx package (which 
also enables ooRexx and Java to work together).

-- 

Les               (Change Arabic to Roman to email me)
0
Reply LesK 9/15/2010 10:21:23 AM

In <4c9047a3$0$6977$9a6e19ea@unlimited.newshosting.com>, on 09/15/2010
   at 12:12 AM, LesK <5mre20@tampabay.rr.com> said:

>Another gotcha is that the 'logical not-sign' of the old 3270 days
>(shift 6) is  also illegal with an ANSI compliant Rexx interpreter.

Shift 6 is ^ on an ASCII device; it is only � on an EBCDIC device or
with a keyboard mapping patterned after EBCDIC devices.

>That includes ooRexx.

Are you sure? Certainly the OS/2 OREXX accepts � as a not sign. Try
this on OOREXX and Regina:

 /* REXX */
 if 1 �= 2 then say '1 �= 2'

-- 
Shmuel (Seymour J.) Metz, SysProg and JOAT  <http://patriot.net/~shmuel>

Unsolicited bulk E-mail subject to legal action.  I reserve the
right to publicly post or ridicule any abusive E-mail.  Reply to
domain Patriot dot net user shmuel+news to contact me.  Do not
reply to spamtrap@library.lspace.org

0
Reply Shmuel 9/15/2010 3:09:27 PM

On 9/15/2010 11:09 AM, Shmuel (Seymour J.) Metz wrote:
> In<4c9047a3$0$6977$9a6e19ea@unlimited.newshosting.com>, on 09/15/2010
>     at 12:12 AM, LesK<5mre20@tampabay.rr.com>  said:
>
>> Another gotcha is that the 'logical not-sign' of the old 3270 days
>> (shift 6) is  also illegal with an ANSI compliant Rexx interpreter.
>
> Shift 6 is ^ on an ASCII device; it is only � on an EBCDIC device or
> with a keyboard mapping patterned after EBCDIC devices.
>
>> That includes ooRexx.
>
> Are you sure? Certainly the OS/2 OREXX accepts � as a not sign. Try
> this on OOREXX and Regina:
>
>   /* REXX */
>   if 1 �= 2 then say '1 �= 2'
>
In fact, the latest version of ooRexx accepts either 'AA'x or 'AC'x as a 
not character. 'AA'x is the upper-left box corner character and 'AC'x is 
the ISO 8859-1 logical not sign.

Rick
0
Reply Rick 9/15/2010 3:24:35 PM

Rick McGuire wrote:

> In fact, the latest version of ooRexx accepts either 'AA'x or 'AC'x as a
> not character. 'AA'x is the upper-left box corner character and 'AC'x is
> the ISO 8859-1 logical not sign.
>


SHould that not be the "upper RIGHT box corner?"

0
Reply MikeB 9/15/2010 4:20:00 PM

On 9/15/2010 12:20 PM, MikeB wrote:
> Rick McGuire wrote:
>
>> In fact, the latest version of ooRexx accepts either 'AA'x or 'AC'x as a
>> not character. 'AA'x is the upper-left box corner character and 'AC'x is
>> the ISO 8859-1 logical not sign.
>>
>
>
> SHould that not be the "upper RIGHT box corner?"
>
I have the same problem when giving directions :-)
0
Reply Rick 9/15/2010 4:21:41 PM

 > Are you sure? Certainly the OS/2 OREXX accepts � as a not sign.

   REX0219E: Error 13.1:  Incorrect character in program "�" ('AC'X)



---
0
Reply spamgate 9/15/2010 5:25:05 PM

 > RexxLA was given rights to the code of Object Rexx for OS/2
 
No, thanks goodness.



---
0
Reply spamgate 9/15/2010 5:26:31 PM

Rick McGuire wrote:
> On 9/15/2010 12:20 PM, MikeB wrote:
>> Rick McGuire wrote:
>>
>>> In fact, the latest version of ooRexx accepts either 'AA'x or 'AC'x as a
>>> not character. 'AA'x is the upper-left box corner character and 'AC'x is
>>> the ISO 8859-1 logical not sign.
>>>
>>
>>
>> SHould that not be the "upper RIGHT box corner?"
>>
> I have the same problem when giving directions :-)
'AC'x displays as 1/4 on my w7 laptop with THE! I'll have a look at some old VM 
code and see what it looks like on the pc.

-- 

Les               (Change Arabic to Roman to email me)
0
Reply LesK 9/15/2010 6:06:07 PM

On Wed, 15 Sep 2010 00:12:15 -0400, LesK <5mre20@tampabay.rr.com>
wrote:

>When one stem object is assigned to another, Object Rexx
>> creates a reference, so that they are both actually the same object.

This always causes me some confusion, as demonstrated in the following
sample code:

  Signal on Novalue  
  A. = B()
  Say A.z
  Exit

  B: Procedure
  Z.1 = 'A'
  return Z.

  Novalue:
  Say 'Variable' condition('D') 'is undefined at line' sigl
  Say sigl '*-*' sourceline(sigl)

The Novalue handler tells you that variable "Z.Z" is undefined on line
4, but libe 4 contains no reference to Z.Z

If you have a line of code that sets two stems in one go, you'd have a
hard time working out which one was undefined, especially if both had
been pointed at different incarnations of Z.

-- 
Steve Swift
http://www.swiftys.org.uk/swifty.html
http://www.ringers.org.uk
0
Reply Swifty 9/15/2010 6:32:36 PM

On 9/15/2010 2:06 PM, LesK wrote:
> Rick McGuire wrote:
>> On 9/15/2010 12:20 PM, MikeB wrote:
>>> Rick McGuire wrote:
>>>
>>>> In fact, the latest version of ooRexx accepts either 'AA'x or 'AC'x
>>>> as a
>>>> not character. 'AA'x is the upper-left box corner character and
>>>> 'AC'x is
>>>> the ISO 8859-1 logical not sign.
>>>>
>>>
>>>
>>> SHould that not be the "upper RIGHT box corner?"
>>>
>> I have the same problem when giving directions :-)
> 'AC'x displays as 1/4 on my w7 laptop with THE! I'll have a look at some
> old VM code and see what it looks like on the pc.
>
It all depends on what is used to display the source and what code page 
is in effect.  THE runs in a "dos box" and uses the DOS/OEM code page. 
'aa'x displays as the logical not and 'ac'x displays as "1/4".  With a 
graphical editor such as Visual SlickEdit, 'ac'x displays as the logical 
not, and 'aa'x is the "ordinal indicator" (a sort of superscripted a).

Rick
0
Reply Rick 9/15/2010 6:35:30 PM

On Wed, 15 Sep 2010 06:21:23 -0400, LesK <5mre20@tampabay.rr.com>
wrote:

>One other thing: ooRexx can interact with all of Microsoft's OLE applications

Does it interact with PowerPoint? I've been asked to extract some text
from a powerpoint presentation. I tried Office OCR, but that was
hopeless. The pages are highly graphical, so it's hard to see what I
might get out of an object view of the presentation.

-- 
Steve Swift
http://www.swiftys.org.uk/swifty.html
http://www.ringers.org.uk
0
Reply Swifty 9/15/2010 6:39:41 PM

On Wed, 15 Sep 2010 12:21:41 -0400, Rick McGuire
<object.rexx@gmail.com> wrote:

> have the same problem when giving directions :-)

Are you sure that you two haven't pressed the keystroke that turns
your display into mirror-image? It's something like Ctrl+Right, but is
dependant on the graphics card and installed S/W.

-- 
Steve Swift
http://www.swiftys.org.uk/swifty.html
http://www.ringers.org.uk
0
Reply Swifty 9/15/2010 6:42:54 PM

On Wed, 15 Sep 2010 19:25:05 +0200, spamgate@hotmai1.com (ML) wrote:

>REX0219E: Error 13.1:  Incorrect character in program "�" ('AC'X)

IBM Object Rexx under WinXP:

say �1
0

I don't trust it in any of my programs, though. I recall having to
translate all the "�" characters for code that I moved from CMS to
OS/2 - once bitten, twice shy.

-- 
Steve Swift
http://www.swiftys.org.uk/swifty.html
http://www.ringers.org.uk
0
Reply Swifty 9/15/2010 6:46:03 PM

On Sep 14, 1:09=A0pm, MikeB <mpbr...@gmail.com> wrote:
> OK, I got exposed (if that is the correct word) many years ago to REXX
> in an IBM/370 environment. It was kind of a fun language created, IIRC
> by some IBM fellow in the UK.
>
> I just Googled REXX and there seems to be various versions out there.
>
> If I want to run REXX on my Windows 7 PC, which REXX is the one that is
> linearly descended from that original REXX? And is it the best one to
> get for personal use on a computer?

As for Classic REXX, none did.  The first REXX available for the PC
was
REXX/PC or PC/REXX, written at that time by Mansfield Software.  Since
then, the guy that wrote the REXX part, er, parted, and formed Quercus
Software.  I believe the later versions are called Personal REXX  (or
REXX/Personal).  It wasn't (and still isn't) free.   Mansfield
Software
wrote the XEDIT clone KEDIT  (not free) which supported REXX/PC  (as
well as  KEXX,  a much simplier/restricted/smaller version of REXX).

Also, that REXX "package" has several CMS-like commands:  LISTFILE,
DESBUF, CONWAIT, MAKEBUF, DROPBUF, GLOBALV, SENTRIES, and the biggie,
EXECIO  (which was modeled after the CMS version).  I still prefer
LISTFILE's format (which supports the  TODAY  option)  instead of
DIR.

LISTFILE and EXECIO (above) suport REXX stemmed variables.


REXX/PC does support the #$@ characters for REXX symbols, but not the
cent sign.  It also supports the "not" symbol, and, of all the
REXXes,
has the fewest errors by far, and that's saying something about a
product that hasn't been updated since 1992.

R4 (Kilowatt Software, free) also supports the  $#@ symbols, and also
the cent sign.  It also supports the use of the   not   symbol.  R4
also has the distinction of actually fixing errors (at least, all of
the errors that I reported), and in a timely manner as well.   R4
has an  EXECIO  program,  it's modeled after the TSO version.

Ever since Regina went off ASCI compliant and allowed   x=3D2--1
statements as being partly a comment ... any double minuses are now
treated as a comment  (which form of comments are still not
documented)  and there isn't any way of disabling that "feature"
with any kind of REGINA (interpeter) option.   The above example
sets  X  to a value of  2,  not  3.   One of my biggest peeves is
ever since Regina 3.4, any REXX program with a large number of
stemmed variables (particularly double or triple stemmed) is very
very
very slow comparied to earilier versions, and as such, I have to use
the older buggier Regina 3.3, leastwise my programs take many  more
weeks to execute (I kid you not) --- it's about 30 or 40 times slower.
That particular slowness doesn't seem to be addressed and apparently,
no fix is forthcoming --- at least, there isn't any response to the
bug report (2663478) at (Regina) SourceForge, opened March 4, 2009.

------------------------------------------------ Gerard Schildberger



> Would be nice if it would also run in a Windows Server 2003 (aka Windows
> Home Server) environment.
>
> Thanks!
0
Reply GerardS 9/15/2010 6:52:37 PM

On 9/15/2010 2:32 PM, Swifty wrote:
> On Wed, 15 Sep 2010 00:12:15 -0400, LesK<5mre20@tampabay.rr.com>
> wrote:
>
>> When one stem object is assigned to another, Object Rexx
>>> creates a reference, so that they are both actually the same object.
>
> This always causes me some confusion, as demonstrated in the following
> sample code:
>
>    Signal on Novalue
>    A. = B()
>    Say A.z
>    Exit
>
>    B: Procedure
>    Z.1 = 'A'
>    return Z.
>
>    Novalue:
>    Say 'Variable' condition('D') 'is undefined at line' sigl
>    Say sigl '*-*' sourceline(sigl)
>
> The Novalue handler tells you that variable "Z.Z" is undefined on line
> 4, but libe 4 contains no reference to Z.Z
>
> If you have a line of code that sets two stems in one go, you'd have a
> hard time working out which one was undefined, especially if both had
> been pointed at different incarnations of Z.
>
That looks like a bug to me, but I'm betting you've never reported it, 
so it hasn't been fixed.

Rick
0
Reply Rick 9/15/2010 7:48:26 PM

In <Tl8ko.73065$sL7.65474@newsfe15.iad>, on 09/15/2010
   at 02:35 PM, Rick McGuire <object.rexx@gmail.com> said:

>It all depends on what is used to display the source and what code
>page  is in effect.

I use 437 and 850; AA display as not and AC displays as 1/4. I took a
look at the HTML character entities, which presumably are ISO 8859-1,
and &#172 is not.

-- 
Shmuel (Seymour J.) Metz, SysProg and JOAT  <http://patriot.net/~shmuel>

Unsolicited bulk E-mail subject to legal action.  I reserve the
right to publicly post or ridicule any abusive E-mail.  Reply to
domain Patriot dot net user shmuel+news to contact me.  Do not
reply to spamtrap@library.lspace.org

0
Reply Shmuel 9/15/2010 8:08:14 PM

In <xFQkMlQNARbT090yn@hotmai1.com>, on 09/15/2010
   at 07:25 PM, spamgate@hotmai1.com (ML) said:

>   REX0219E: Error 13.1:  Incorrect character in program " " ('AC'X)

What REXX and what character set?

-- 
Shmuel (Seymour J.) Metz, SysProg and JOAT  <http://patriot.net/~shmuel>

Unsolicited bulk E-mail subject to legal action.  I reserve the
right to publicly post or ridicule any abusive E-mail.  Reply to
domain Patriot dot net user shmuel+news to contact me.  Do not
reply to spamtrap@library.lspace.org

0
Reply Shmuel 9/15/2010 8:12:24 PM

In <bv4296d825rmmt6edt2oq37ha4e2qtlvpj@4ax.com>, on 09/15/2010
   at 07:46 PM, Swifty <steve.j.swift@gmail.com> said:

>I recall having to translate all the "�" characters for code that 
>I moved from CMS to OS/2 - once bitten, twice shy.

Any time that you move code between platforms with different character
sets your results will depend on the translation that you use. I ran a
test on OS/2 and it worked fine.

-- 
Shmuel (Seymour J.) Metz, SysProg and JOAT  <http://patriot.net/~shmuel>

Unsolicited bulk E-mail subject to legal action.  I reserve the
right to publicly post or ridicule any abusive E-mail.  Reply to
domain Patriot dot net user shmuel+news to contact me.  Do not
reply to spamtrap@library.lspace.org

0
Reply Shmuel 9/15/2010 8:15:37 PM

On 09/15/2010 03:48 PM, Rick McGuire wrote:
> On 9/15/2010 2:32 PM, Swifty wrote:
>> If you have a line of code that sets two stems in one go, you'd have a
>> hard time working out which one was undefined, especially if both had
>> been pointed at different incarnations of Z.
> That looks like a bug to me,

Bug or feechur, it matches the doc.  Condition('D') returns the derived
name of the variable that hit NOVALUE, and the description of compound
symbols says:

> More formally, the derived name of a compound variable that is 
> referenced by the symbol
> 
> s0.s1.s2. --- .sn
> 
> is given by
> 
> d0.v1.v2. --- .vn
> 
> where d0 is the name of the Stem object associated with the stem 
> variable s0 and v1 to vn are the values of the constant or simple 
> symbols s1 through sn.

It does seem a little bizarre--especially since the NEW method allows
the stem object to have any arbitrary string for a name, so the derived
name isn't even necessarily a valid symbol and doesn't necessarily
contain a dot marking the end of the stem name:

     4 *-* a. = .stem~new('a$b(c')
       >>>   "a$b(c"
     5 *-* x = a.z
     8 *-* Novalue:
     9 *-* Say 'Variable' condition('D') 'is undefined at line' sigl
       >>>   "Variable a$b(cZ is undefined at line 5"
Variable a$b(cZ is undefined at line 5

�R
0
Reply Glenn 9/15/2010 11:04:06 PM

On 9/15/2010 7:04 PM, Glenn Knickerbocker wrote:
> On 09/15/2010 03:48 PM, Rick McGuire wrote:
>> On 9/15/2010 2:32 PM, Swifty wrote:
>>> If you have a line of code that sets two stems in one go, you'd have a
>>> hard time working out which one was undefined, especially if both had
>>> been pointed at different incarnations of Z.
>> That looks like a bug to me,
>
> Bug or feechur, it matches the doc.  Condition('D') returns the derived
> name of the variable that hit NOVALUE, and the description of compound
> symbols says:
>
>> More formally, the derived name of a compound variable that is
>> referenced by the symbol
>>
>> s0.s1.s2. --- .sn
>>
>> is given by
>>
>> d0.v1.v2. --- .vn
>>
>> where d0 is the name of the Stem object associated with the stem
>> variable s0 and v1 to vn are the values of the constant or simple
>> symbols s1 through sn.

There's a big difference between the compound VARIABLE used to access 
the stem and the stem object itself. NOVALUE conditions are driven by 
the variable resolution process and the name given by the condition 
should be the derived name of the variable, not the resulting default 
value returned by the backing stem object.  The derived variable name is 
"A.Z".  The value of that variable retrieved from the stem backing it is 
"Z.Z".  The wrong version of this is ending up on the condition object.

Rick

>
> It does seem a little bizarre--especially since the NEW method allows
> the stem object to have any arbitrary string for a name, so the derived
> name isn't even necessarily a valid symbol and doesn't necessarily
> contain a dot marking the end of the stem name:
>
>       4 *-* a. = .stem~new('a$b(c')
>         >>>    "a$b(c"
>       5 *-* x = a.z
>       8 *-* Novalue:
>       9 *-* Say 'Variable' condition('D') 'is undefined at line' sigl
>         >>>    "Variable a$b(cZ is undefined at line 5"
> Variable a$b(cZ is undefined at line 5
>
> �R

0
Reply Rick 9/16/2010 9:30:14 AM

Hi,

On Sep 15, 1:52=A0pm, GerardS <gerar...@rrt.net> wrote:
>
> R4 (Kilowatt Software, free) also supports the =A0$#@ symbols, and also
> the cent sign. =A0It also supports the use of the =A0 not =A0 symbol. =A0=
R4
> also has the distinction of actually fixing errors (at least, all of
> the errors that I reported), and in a timely manner as well. =A0 R4
> has an =A0EXECIO =A0program, =A0it's modeled after the TSO version.

R4 is nice, but man is it's output slow (not line buffered??)! Also,
it's "classic" (TRL2, 4.00) only. Regina is ANSI (5.00), ooREXX is OOP
(duh), 6.00. (BRexx is something near ANSI but not quite.)

> Ever since Regina went off ASCI compliant and allowed =A0 x=3D2--1
> statements as being partly a comment ... any double minuses are now
> treated as a comment

Ada and Euphoria (and TMT Pascal) allow this, so Regina probably
thought it was safe. While rare, your point is valid. Ada claims "--"
makes it easier to easily know when something is commented (unlike C).
The other flaw I read was with this weird example, still compiles but
not as expected:

blah =3D a + b -- c
+ d;

In other words, "--" can be accidentally typed by a repeating or stuck
key. However, I don't think any of that's common enough to worry about
(and Ada hasn't, at least in thirty years). But it's indeed worth
mentioning. But surely test suites will uncover any obvious errors,
no? Or just strip the comments via sed!  ;-)

> (which form of comments are still not
> documented) =A0and there isn't any way of disabling that "feature"
> with any kind of REGINA (interpeter) option.

Recompile from source??   :-)

> The above example
> sets =A0X =A0to a value of =A02, =A0not =A03. =A0 One of my biggest peeve=
s is
> ever since Regina 3.4, any REXX program with a large number of
> stemmed variables (particularly double or triple stemmed) is very
> very
> very slow comparied to earilier versions, and as such, I have to use
> the older buggier Regina 3.3, leastwise my programs take many =A0more
> weeks to execute (I kid you not) --- it's about 30 or 40 times slower.
> That particular slowness doesn't seem to be addressed and apparently,
> no fix is forthcoming --- at least, there isn't any response to the
> bug report (2663478) at (Regina) SourceForge, opened March 4, 2009.

Mark is probably just busy. "Patches welcome" is the familiar cry when
developers can't (or won't) do everything.

While I admit that's less than ideal, the fact that Regina is freely
available (LGPL) and extremely portable, I can't complain. Thanks a
billion for your efforts, Mark (et al.)!

P.S. What platform(s) are you running? Surely somebody can do a
recompile for you if you need it. It can't be that hard to profile the
bottleneck (regression), can it? BTW, here's the URL for the bug
report (and a small example if somebody else wants to test):

http://sourceforge.net/tracker/?func=3Ddetail&aid=3D2663478&group_id=3D2810=
2&atid=3D392412
0
Reply Rugxulo 9/16/2010 7:41:35 PM

Hi again, Gerard,

On Sep 16, 2:41=A0pm, Rugxulo <rugx...@gmail.com> wrote:
>
> P.S. What platform(s) are you running? Surely somebody can do a
> recompile for you if you need it. It can't be that hard to profile the
> bottleneck (regression), can it? BTW, here's the URL for the bug
> report (and a small example if somebody else wants to test):
>
> http://sourceforge.net/tracker/?func=3Ddetail&aid=3D2663478&group_id=3D28=
10...

Even the bug report doesn't list platform, and the only example isn't
by you but someone else apparently ("I've noticed the same thing").
For real testing, we'd need your test case and data (or similar). But
here's other dude's silly example:

filename =3D 'file.txt'
DO WHILE LINES(filename) > 0
line =3D LINEIN(filename)
SAY WORD(line,1)
END

Anyways, large files wasn't very obvious to me, so I grabbed the
biggest single text file I could think of offhand, NASM 0.98.39's
NASMDOC.TXT (552 kb), did "ln -s nasmdoc.txt file.txt", and timed
Regina 3.5 and BRexx 2.1.8 (my own compiles? from a few months ago, at
least) on this P4 2.52 Ghz (Lucid Puppy 5.0.1):

# time ./regina ./tony.rex >regina.txt

real	0m0.216s
user	0m0.124s
sys	0m0.088s

# time ./brexx ./tony.rex >brexx.txt

real	1m13.172s
user	1m7.356s
sys	0m3.268s

This is not surprising at all (BRexx) since I know he doesn't cache
the LINES count. However, since Regina is instantaneous, I can't claim
to really reproduce your problem!

Even BRexx can be sped up to Regina's speed by this tiny change:

/* Regina needs: OPTIONS NOFAST_LINES_BIF_DEFAULT  */
blah=3DLINES(filename)
DO blah

P.S. I know this doesn't directly help you, but it's a start! Tell us
more!
0
Reply Rugxulo 9/16/2010 8:16:57 PM

 > ooREXX is OOP (duh), 6.00.
 
Wrong, 3 times in a simple sentence. 1999's Object Rexx is "6.00".
There is no programming language "ooREXX", which isn't "OOP". Duh.



---
0
Reply spamgate 9/17/2010 8:58:02 AM

Hi,

On Sep 17, 3:58=A0am, spamg...@hotmai1.com (ML) wrote:
> =A0> ooREXX is OOP (duh), 6.00.
>
> Wrong, 3 times in a simple sentence. 1999's Object Rexx is "6.00".
> There is no programming language "ooREXX", which isn't "OOP". Duh.

I don't understand your nitpicking here. There's also Roo! and
NetRexx, but I don't know how compatible those are with ooREXX.

Surely you aren't just complaining because I accidentally implied
implementation was same as language?

http://en.wikipedia.org/wiki/Object_Rexx

"On October 12, 2004, IBM released Object REXX as open source
software"

http://www.oorexx.org/docs/rexxref/c188.htm

"Open Object Rexx is compatible with earlier Rexx versions, both non-
object based Rexx and IBM's Object Rexx."

http://www-01.ibm.com/software/awdtools/rexx/opensource.html

"Object REXX for Windows was first announced in February 1997."

My "duh" sounds dumb, but it was because it's fairly obvious that Open
Object Rexx supports Object Oriented Programming!

http://en.wikipedia.org/wiki/Object-oriented_programming_language

"Object-oriented programming (OOP) is a programming paradigm that uses
"objects" =96 data structures consisting of data fields and methods
together with their interactions =96 to design applications and computer
programs."
0
Reply Rugxulo 9/17/2010 11:02:10 PM

On Wed, 15 Sep 2010 15:48:26 -0400, Rick McGuire
<object.rexx@gmail.com> wrote:

>That looks like a bug to me, but I'm betting you've never reported it, 
>so it hasn't been fixed.

Well, I'll put that right some time soon.

I'm usually so far behind the times that I tend to assume that bugs
like this will have been found and fixed in newer versions long before
I get there. I don't have any production code running under 4.0+ yet,
so I've been keeping quiet.

-- 
Steve Swift
http://www.swiftys.org.uk/swifty.html
http://www.ringers.org.uk
0
Reply Swifty 9/19/2010 6:25:56 AM

On Tue, 14 Sep 2010 13:09:13 -0500, MikeB <mpbrede@gmail.com> wrote:

>OK, I got exposed (if that is the correct word) many years ago to REXX 
>in an IBM/370 environment. It was kind of a fun language created, IIRC 
>by some IBM fellow in the UK.

On a more practical level, you should have no great problems writing
REXX programs under Windows based on your S/370 experience until you
come to any of the parts that were implemented as host commands rather
than native REXX. Stuff like EXECIO and PIPE.

Some of these are easy to replace with pure REXX functions; I wrote a
records() function for reading a file into a stem variable, for
example. The resultant REXX is, if anything, more "pure" and I find it
more satisfying. My code can't compete on performance (especially with
PIPE), but it usually looks simpler (the complexity is hidden in the
add-on functions that I write).

I was rather wary when I migrated from VM REXX to Windows after
20+years in the S/370 environment, but I've enjoyed my Wondows/ooREXX
period far more.

I'm sure you will get plenty of help here.

-- 
Steve Swift
http://www.swiftys.org.uk/swifty.html
http://www.ringers.org.uk
0
Reply Swifty 9/19/2010 6:54:32 AM

Swifty wrote:
> On Tue, 14 Sep 2010 13:09:13 -0500, MikeB <mpbrede@gmail.com> wrote:
> 
>> OK, I got exposed (if that is the correct word) many years ago to REXX 
>> in an IBM/370 environment. It was kind of a fun language created, IIRC 
>> by some IBM fellow in the UK.
> 
> On a more practical level, you should have no great problems writing
> REXX programs under Windows based on your S/370 experience until you
> come to any of the parts that were implemented as host commands rather
> than native REXX. Stuff like EXECIO and PIPE.
> 
> Some of these are easy to replace with pure REXX functions; I wrote a
> records() function for reading a file into a stem variable, for
> example. The resultant REXX is, if anything, more "pure" and I find it
> more satisfying. My code can't compete on performance (especially with
> PIPE), but it usually looks simpler (the complexity is hidden in the
> add-on functions that I write).
> 
> I was rather wary when I migrated from VM REXX to Windows after
> 20+years in the S/370 environment, but I've enjoyed my Wondows/ooREXX
> period far more.
> 
> I'm sure you will get plenty of help here.
> 
Having made the transition a little over 3 years ago, I certainly agree!
See:
http://www.rexxla.org/events/2007/presentations/lesk1.html

As it turned out, I discovered that I needed to write some *real* programs in 
ooRexx as treasurer for our HOA. See:
http://www.rexxla.org/events/2007/presentations/lesk2.html

Don't download any of the above code except for education purposes. It's old and 
stale. Drop me a note if you'd like to have a copy of what I'm using today from 
the first presentation. I'm no longer treasurer of the HOA, and the code for 
that has been rewritten to use my own INCLUDE facility:

http://www.rexxla.org/events/2008/presentations/les/rexxsymp2008_lesk_experimen.htm

One thing that has helped me a lot is my wrapper for the ooRexx SysDumpVars

http://www.rexxla.org/events/2008/presentations/les/rexxsymp2008_lesk_dumpvars.html

I should probably mention that I do all my work from THE with ooRexx on Windows. 
  THE traps Rexx trace info, etc. and shows it to me as a new file in the ring. 
I have a macro to 'run' the .rex code I'm editing w/o my having to save it. More 
and more I find that ooRexx and THE, plus some code for a macro, makes my life 
on the pc easier and easier. I now have written an equivalent for
  FILELIST ... (FILELIST
to handle an arbitrary list of files, just like I could with VM and Xedit.

Life is good in THE!


-- 

Les               (Change Arabic to Roman to email me)
0
Reply LesK 9/19/2010 8:25:34 AM

On Sun, 19 Sep 2010 07:25:56 +0100, Swifty wrote:
><object.rexx@gmail.com> wrote:
>>That looks like a bug to me, but I'm betting you've never reported it, 
>>so it hasn't been fixed.
>Well, I'll put that right some time soon.

Rick already has!

http://sourceforge.net/tracker/?func=detail&aid=3067519&group_id=119701&atid=684730

(Rick, does your fix include wording for the doc?  .stem~new needs a new
description of its argument, maybe just substituting "initial value" for
"derived name.")

�R                http://users.bestweb.net/~notr/hassel.html
The worst thing that can happen is, tasty olives.  --Stevven
0
Reply Glenn 9/19/2010 1:26:01 PM

On Sun, 19 Sep 2010 09:26:01 -0400, Glenn Knickerbocker
<NotR@bestweb.net> wrote:

>Rick already has!

As I noticed just after creating, then closing as duplicate, my own
report. This is the price I pay for taking four days off for my
birthday. 

-- 
Steve Swift
http://www.swiftys.org.uk/swifty.html
http://www.ringers.org.uk
0
Reply Swifty 9/20/2010 12:40:48 PM

34 Replies
213 Views

(page loaded in 1.224 seconds)

Similiar Articles:


















7/22/2012 12:41:42 AM


Reply: