The following program:
/* test.rexx */
trace ?R
ok=rxfuncadd('sysloadfuncs','rexxutil','sysloadfuncs')
call sysloadfuncs
exit
produces this "trace:"
C:\>test.rexx
3 *-* ok=rxfuncadd('sysloadfuncs','rexxutil','sysloadfuncs')
+++ Interactive trace. TRACE OFF to end debug, ENTER to continue. +++
4 *-* call sysloadfuncs
The name specified is not recognized as an
internal or external command, operable program or batch file.
5 *-* exit
C:\>
The error message, "The name specified is not recognized..." indicates to me
that rexxutil.dll
is not loaded.
Can anyone suggest what I should do to get rexxutil.dll to work?
John Wirt
"John Wirt" <som...@toward.com> wrote in message
news:qt0m6.19023$Sl.8...@iad-read.news.verio.net...
Patrick Mcphee wrote:
> This is the reason. rexx.exe in Regina does not support dynamic loading of
> functions. You must use regina.exe instead.
Pat, the disease is spreading! I have the pleasure of getting stuck coding a
script for a project w/o a budget - thus Regina to the rescue thanks to the price
tag.
I have tested w/ both Regina 2 and 2.2 beta (using Regina.exe), both your RexxUtil
1.1.7 and came home where I had a back level 1.1.1 version. Always the same story!
/* snip..... */
call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
say 'result='result
call SysLoadFuncs
/* snip..... */
C:\InfrTool>regina test.rex
result=30
'SYSLOADFUNCS' is not recognized as an internal or external command,
operable program or batch file.
What in the world is a rc 30 out of RxFuncAdd?
I've tried both having the DLL's in the current dir, and in \WinNT\System32.
Running Win2K w/ SP1.
TIA!
--
Michael Lueck
Lueck Data Systems
Remove the upper case letters NOSPAM to contact me directly.
did you try it as
call rxfuncadd 'sysloadfuncs', 'rexxutil', 'sysloadfuncs'
call sysloadfuncs
? Regina is very fussy about capitalizations... (unlike the rest of
Rexx)
Toby T.
Toby Thurston wrote:
> did you try it as
>
> call rxfuncadd 'sysloadfuncs', 'rexxutil', 'sysloadfuncs'
> call sysloadfuncs
>
> ? Regina is very fussy about capitalizations... (unlike the rest of
> Rexx)
Thanks Toby, that was indeed the issue. BLAST this version of Rexx. So now
anytime code won't port to Regina I have to lower text everything? Any FAQ
somewhere outlining the extent of this fussy nature? I think I am going to
HaTe pOrTiNg code to Regina.
Thanks!
> Michael Lueck wrote:
> >
> > call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
> > say 'result='result
> > call SysLoadFuncs
[Bobbitt]
> did you try it as
>
> call rxfuncadd 'sysloadfuncs', 'rexxutil', 'sysloadfuncs'
> call sysloadfuncs
>
> ? Regina is very fussy about capitalizations... (unlike the rest of
> Rexx)
Which strikes me as exceedingly unfortunate, not to say pig-headed, when
IBM's standard documentation capitalizes as Michael had it.
Methinks the authors of Regina should try readind standard
documentation...
--
Brian {Hamilton Kelly} b...@dsl.co.uk
"We have gone from a world of concentrated knowledge and wisdom to one of
distributed ignorance. And we know and understand less while being incr-
easingly capable." Prof. Peter Cochrane, BT Labs
% > Michael Lueck wrote:
% > >
% > > call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
% > > say 'result='result
% > > call SysLoadFuncs
% [Bobbitt]
% > did you try it as
% >
% > call rxfuncadd 'sysloadfuncs', 'rexxutil', 'sysloadfuncs'
% > call sysloadfuncs
To be clear on this, exactly one of those `sysloadfuncs' needs to be
lower-case (the second one in the rxfuncadd call). The problem is
that the functions which return symbols from shared libraries in
NT & Unix are case-sensitive. Once the function has been loaded,
the case-sensitivity issue goes away.
% Which strikes me as exceedingly unfortunate, not to say pig-headed, when
% IBM's standard documentation capitalizes as Michael had it.
%
% Methinks the authors of Regina should try readind standard
% documentation...
What is your proposed solution? This issue is not on the list of known bugs,
which makes me believe nobody has reported it. It's a bit much to call
someone pig-headed for not fixing a problem which hasn't been raised.
--
Patrick TJ McPhee
Knightsbridge SW7
pt...@interlog.com
> In article <983653...@dsl.co.uk>,
> Brian {Hamilton Kelly} <b...@dsl.co.uk> wrote:
[snip]
>
> To be clear on this, exactly one of those `sysloadfuncs' needs to be
> lower-case (the second one in the rxfuncadd call). The problem is
> that the functions which return symbols from shared libraries in
> NT & Unix are case-sensitive. Once the function has been loaded,
> the case-sensitivity issue goes away.
Who wrote the rexxutil.dll? Is it one provided by IBM, or a clone
written by the Regina developers? If the latter, why did they not follow
the documented naming conventions used in IBM's standard libraries?
> % Which strikes me as exceedingly unfortunate, not to say pig-headed, when
> % IBM's standard documentation capitalizes as Michael had it.
> %
> % Methinks the authors of Regina should try readind standard
> % documentation...
>
> What is your proposed solution? This issue is not on the list of known bugs,
> which makes me believe nobody has reported it. It's a bit much to call
> someone pig-headed for not fixing a problem which hasn't been raised.
The function is NOT sysloadfuncs, and should not have been written in
that form when the DLL was compiled.
At least then when the punter found that his RxFuncAdd call didn't work,
one would be able to say "write the call as documented", ie as
SysLoadFuncs. It might, granted, catch out a lot of lazy folks, but one
expects sample code in official documentation to work, verbatim.
:> Michael Lueck wrote:
:> >
:> > call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
:> > say 'result='result
:> > call SysLoadFuncs
: [Bobbitt]
:> did you try it as
:>
:> call rxfuncadd 'sysloadfuncs', 'rexxutil', 'sysloadfuncs'
:> call sysloadfuncs
:>
:> ? Regina is very fussy about capitalizations... (unlike the rest of
:> Rexx)
: Which strikes me as exceedingly unfortunate, not to say pig-headed, when
: IBM's standard documentation capitalizes as Michael had it.
: Methinks the authors of Regina should try readind standard
: documentation...
As I'm the pig-headed maintainer of Regina, please send me the exact details
of where this is documented, and in what document. Also the exact wording
of the text would be appreciated.
As Patrick has pointed out, there is a good reason why things are the way they
are with Regina. The question I had to ask when I implemented this, this way
was "should I make Regina consistent across different platforms, or make
Regina consistent with other interpreters, but inconsistent across platforms ?"
I'll spend some more time investigating the possibilities of "compliance"
with a "standard", when I see the documentation.
Cheers, Mark
---------------------------------------------------------------------------
* Mark Hessling, M.Hes...@qut.edu.au http://www.lightlink.com/hessling/
* Author of THE; a Free XEDIT/KEDIT editor, Rexx/SQL, Rexx/Curses, Rexx/Wrapper
* Maintainer of PDCurses: Public Domain Curses and, Regina Rexx interpreter
* Use Rexx? join the Rexx Language Association: http://www.rexxla.org
> Brian {Hamilton Kelly} <b...@dsl.co.uk> wrote:
> : Which strikes me as exceedingly unfortunate, not to say pig-headed, when
> : IBM's standard documentation capitalizes as Michael had it.
>
> : Methinks the authors of Regina should try readind standard
> : documentation...
>
> As I'm the pig-headed maintainer of Regina, please send me the exact details
> of where this is documented, and in what document. Also the exact wording
> of the text would be appreciated.
>
> As Patrick has pointed out, there is a good reason why things are the way they
> are with Regina. The question I had to ask when I implemented this, this way
> was "should I make Regina consistent across different platforms, or make
> Regina consistent with other interpreters, but inconsistent across platforms ?"
>
> I'll spend some more time investigating the possibilities of "compliance"
> with a "standard", when I see the documentation.
Well, the only two places I've seen SysLoadFuncs documented is in the
"Object REXX for Windows NT and Windows 95 Reference" (4th edition May
1999) IBM SH12-6222-03 and in the online REXX.INF that comes with OS/2
Warp. Both of these are supposedly reference manuals.
However, the books on Rexx programming that I've read have also followed
(seemingly) IBM's conventions of writing all these functions' names in
mixed case; indeed SysLoadFuncs is mentioned in that capitalization on
p.285 of Turton & Wahli's "Object Rexx for OS/2 Warp", and, although I
don't have any others to hand right now, ISTR the same capitalization in
some of the other books I've read on Rexx. OTOH, Cowlishaw's book on
NetRexx doesn't mention these functions, but I notice that he seems to
eschew the use of mixed capitals in the methods and functions he provides
therein.
I'll throw it back to you: have *you* seen SysLoadFuncs (and other
functions of REXXUtil) all written in lower-case, and if so, on which
platforms?
% The function is NOT sysloadfuncs, and should not have been written in
% that form when the DLL was compiled.
Of course it is. I always write it in lower-case, and I always have. The
problem is that the load has to be case-insensitive (or seem like it is),
or somebody's code is going to break. I don't know who the hell you think
you are, but then, I don't care, either.
In case anyone else is interested, I have now submitted a fix which works
around this problem.
[pig-headed stuff removed]
:>
:> I'll spend some more time investigating the possibilities of "compliance"
:> with a "standard", when I see the documentation.
: Well, the only two places I've seen SysLoadFuncs documented is in the
: "Object REXX for Windows NT and Windows 95 Reference" (4th edition May
: 1999) IBM SH12-6222-03 and in the online REXX.INF that comes with OS/2
: Warp. Both of these are supposedly reference manuals.
: However, the books on Rexx programming that I've read have also followed
: (seemingly) IBM's conventions of writing all these functions' names in
: mixed case; indeed SysLoadFuncs is mentioned in that capitalization on
: p.285 of Turton & Wahli's "Object Rexx for OS/2 Warp", and, although I
: don't have any others to hand right now, ISTR the same capitalization in
: some of the other books I've read on Rexx. OTOH, Cowlishaw's book on
: NetRexx doesn't mention these functions, but I notice that he seems to
: eschew the use of mixed capitals in the methods and functions he provides
: therein.
: I'll throw it back to you: have *you* seen SysLoadFuncs (and other
: functions of REXXUtil) all written in lower-case, and if so, on which
: platforms?
Yes. All implementations of RegUtil, on Win32 and Unix, specify that
"sysloadfuncs" is the correct way to call the function ;-)
Reference manuals for a particular Rexx implementation don't constitute
a "standard" as far as I'm concerned. If they did, then we would have
many standards. What I find rather amusing about this whole issue, is that
I've been given the job by the ANSI Standards Committee of providing the
basis of a Rexx API standard, which would cover rxfuncadd!
hessling mark wrote:
Personally I like the IBM mixed case standard, but it is a problem in some OS's.
I guess all caps would probably be the best across the board.
> hessling mark wrote:
>
> >
> > Reference manuals for a particular Rexx implementation don't constitute
> > a "standard" as far as I'm concerned. If they did, then we would have
> > many standards. What I find rather amusing about this whole issue, is that
> > I've been given the job by the ANSI Standards Committee of providing the
> > basis of a Rexx API standard, which would cover rxfuncadd!
>
> Personally I like the IBM mixed case standard, but it is a problem in some OS's.
Why would it be a problem? If all implementations stuck to documenting
it in mixed-case, then on those platforms where case actually *matters*
those encountering difficulty could merely be referred to the
documentation. (IME, those familiar with operating systems with 52-
character alphabets are *more* aware of the problems, and thus endeavour
always to write identifiers as specified, than are those lazy individuals
to whom case doesn't [appear to] matter. For instance, I often find
students writing "string" instead of "String" in their Java programs, and
without exception they have never seen Unix: those who have never seem to
make that elementary mistake.)
> I guess all caps would probably be the best across the board.
Ugh, please no. O/Ss that can only manage upper-case already have
inbuilt provisions for folding lc->uc (don't they?) so one could persist
with mixed case.
I accept that some C compilers preserve case within libraries when
they're being used on single-case or case-insensitive O/Ss; this surely
only poses a difficulty where naming differences have been allowed to get
out of hand?
In IBM REXX, you can legally use SysLoadFuncs, sysloadfuncs SYSLOADFUNCS or
even SySlOaDfUnCS if that turns you on. Systems like MVS have hassles with
lower case. OO-REXX on NT and OS/2 (sorry I don't have an AIX to hand at the
moment) exports the name as SYSLOADFUNCS [Ordinal 31 on 1.0.3.0] (so for the
pedantic amongst the posters here, that would literally be the "correct"
spelling).
What's obviously happening is that RxFunc*** is converting its argument into
upper case, and using that converted name. Such a change to Regina would not
break any existing code, and add compatibility with IBM's REXX. I would like
to request from Mark Hessling, that he consider this compatibility
enhancement, regardless of inadequacies in the official documentation, which
"forgets" to specify anything here.
Regards, Mark Yudkin
"hessling mark" <hess...@pigeon.qut.edu.au> wrote in message
news:3aa7...@news.qut.edu.au...
% What's obviously happening is that RxFunc*** is converting its argument into
% upper case, and using that converted name. Such a change to Regina would not
% break any existing code, and add compatibility with IBM's REXX. I would like
% to request from Mark Hessling, that he consider this compatibility
I submitted a fix the other day which does something like this (in fact, it
first tries loading the function the way the user typed it, then all-lower-
case, then all-upper-case). The fact that the problem is resolved doesn't
make me vary from the opinion that the lad who thinks it was some kind of
crime against humanity to not have it work this way in the first place
should get stuffed.
> In IBM REXX, you can legally use SysLoadFuncs, sysloadfuncs SYSLOADFUNCS or
> even SySlOaDfUnCS if that turns you on. Systems like MVS have hassles with
> lower case. OO-REXX on NT and OS/2 (sorry I don't have an AIX to hand at the
> moment) exports the name as SYSLOADFUNCS [Ordinal 31 on 1.0.3.0] (so for the
> pedantic amongst the posters here, that would literally be the "correct"
> spelling).
>
> What's obviously happening is that RxFunc*** is converting its argument into
> upper case, and using that converted name.
It may be that this is what is happening; however, I somehow doubt it,
because I *have* seen some third-party DLLs for the OS/2 flavour of Rexx
which have had an admonishment to ensure that the third parameter to
RxFuncAdd is spelt correctly, since otherwise "OS/2 may be unable to find
the routine". That surely wouldn't be necessary if RxFuncAdd was
upcasing the parameter?
I agree with your feelings entirely. It wasn't until Mark elected to turn
this thread into something serious that I was even prepared to enter any
comment into the thread.
"Patrick Mcphee" <pt...@interlog.com> wrote in message
news:98c5cp$l...@shell1.interlog.com...
> I submitted a fix the other day which does something like this (in fact, it
> first tries loading the function the way the user typed it, then all-lower-
> case, then all-upper-case). The fact that the problem is resolved doesn't
> make me vary from the opinion that the lad who thinks it was some kind of
> crime against humanity to not have it work this way in the first place
> should get stuffed.
Whilst applauding your ingenuity, I should point out that if the user has
typed the function's name correctly AND the library supplier has followed
the 20+ years of Rexx tradition, then there will be a match on your first
attempt.
Oh, and less of the "lad"; I've been employed in professional programming
since 1964.
Moreover, can you not perform caseless comparison?
:> I submitted a fix the other day which does something like this (in fact, it
:> first tries loading the function the way the user typed it, then all-lower-
:> case, then all-upper-case). The fact that the problem is resolved doesn't
:> make me vary from the opinion that the lad who thinks it was some kind of
:> crime against humanity to not have it work this way in the first place
:> should get stuffed.
: Whilst applauding your ingenuity, I should point out that if the user has
: typed the function's name correctly AND the library supplier has followed
: the 20+ years of Rexx tradition, then there will be a match on your first
: attempt.
All of the discussions to date have concentrated on the fact that (currently)
Regina expects the third parameter of the RXFUNCADD() call to be case
sensitive.
While Patrick's fix (plus a possible other change I need to make), will allow
the user to specify the value in any case they like, it doesn't mean that
it will necessarily work!
The only way that this method will work is if all implementers of Rexx
external function packages actually specify the name of there external functions
as either all upper, all lower, or a specific case that the user enters.
If someone implements an external function with the internal function name
of "mYfUNC", then rxfuncadd( 'myfunc', 'mylib', 'myfunc' ) will not work.
Nor will rxfuncadd( 'myfunc', 'mylib', 'MyFunc' ) etc.
What seems to be lost in the discussions is that RXFUNCADD() is interfacing
to the underlying operating system, and on operating systems that are case-
sensitive, you MUST respect the case!
While there is a reasonable workaround for the third parameter of RXFUNCADD()
provided implementers follow the above rules as far as case is concerned with
function names, there is no getting round the fact that parameter 2 MUST be
specified exactly as the external function package implementer specifies.
Again this is because the second parameter is part of a file name, and once
again on those systems that are case-sensitive there is no way around this.
So complaining that Regina is case-sensitive WRT RXFUNCADD(), then you should
also complain about all other Rexx implementations on case-sensitive operating
systems. Even Object Rexx on Linux is case-specific for the second parameter
of RXFUNCADD().
The basic premise for implementing Regina the way I have is that if I allow
case-insensitivity on Windows/DOS/OS/2, then when someone ports their code
to Unix, the RXFUNCADD() call will possibly fail. So I ensured that the
user wouldn't have porting issues between platforms.
Putting this issue in context; it is one line of code!
: Oh, and less of the "lad"; I've been employed in professional programming
: since 1964.
: Moreover, can you not perform caseless comparison?
: --
: Brian {Hamilton Kelly} b...@dsl.co.uk
: "We have gone from a world of concentrated knowledge and wisdom to one of
: distributed ignorance. And we know and understand less while being incr-
: easingly capable." Prof. Peter Cochrane, BT Labs
--
Cheers, Mark
---------------------------------------------------------------------------
% Moreover, can you not perform caseless comparison?
Not portably. So far as I can see, the only way to do this is to find the
symbol table in the library file, load the symbol names, and find the
correct one case-insensitively. This is too much work given that I don't
really think it's a problem to start with.
I could also require people to type 'SysLoadFuncs', and never 'SysLOadFuncs'
or 'SysLoadfuncs', or any other common typo, but then I'd be requiring it
of myself, and it's ever so much easier to just type it all lower-case.
If somebody's scripts have got to fail, it might as well be someone who
had the time to do all that loopy capitalisation in the first place.
> Brian {Hamilton Kelly} <b...@dsl.co.uk> wrote:
>
> : Whilst applauding your ingenuity, I should point out that if the user has
> : typed the function's name correctly AND the library supplier has followed
> : the 20+ years of Rexx tradition, then there will be a match on your first
> : attempt.
>
> All of the discussions to date have concentrated on the fact that (currently)
> Regina expects the third parameter of the RXFUNCADD() call to be case
> sensitive.
>
> While Patrick's fix (plus a possible other change I need to make), will allow
> the user to specify the value in any case they like, it doesn't mean that
> it will necessarily work!
>
> The only way that this method will work is if all implementers of Rexx
> external function packages actually specify the name of there external functions
> as either all upper, all lower, or a specific case that the user enters.
Indeed; which was (i thought) my original point.
> If someone implements an external function with the internal function name
> of "mYfUNC", then rxfuncadd( 'myfunc', 'mylib', 'myfunc' ) will not work.
> Nor will rxfuncadd( 'myfunc', 'mylib', 'MyFunc' ) etc.
>
> What seems to be lost in the discussions is that RXFUNCADD() is interfacing
> to the underlying operating system, and on operating systems that are case-
> sensitive, you MUST respect the case!
>
> While there is a reasonable workaround for the third parameter of RXFUNCADD()
> provided implementers follow the above rules as far as case is concerned with
> function names, there is no getting round the fact that parameter 2 MUST be
> specified exactly as the external function package implementer specifies.
> Again this is because the second parameter is part of a file name, and once
> again on those systems that are case-sensitive there is no way around this.
Of course; this *filename* in the second parameter is necessarily
case-sensitive on relevant O/Ses. And I agree that similarly there *may*
be case-dependencies in the third parameter (because the linker, in
constructing the DLL [or whatever] has preserved the case of the original
programming language).
My point was that the mixed-case names have been in use for in excess of
ten years on the OS/2 implementation, albeit that there it *might* not
matter (depending upon the compiler and linker used to create the DLL).
My criticism was that *you* had chosen to depart from that tradition for
functions which you are mimicking in a clone of the RexxUtil.DLL, which
is making porting of code unnecessarily traumatic for some users.
> So complaining that Regina is case-sensitive WRT RXFUNCADD(), then you should
> also complain about all other Rexx implementations on case-sensitive operating
> systems. Even Object Rexx on Linux is case-specific for the second parameter
> of RXFUNCADD().
Of course it is; BTW, how are the function names documented for the
official IBM version of ORexx for Linux --- all lowercase, or mixed as
for IBM's other implementations? Has anyone access to relevant man or
texinfo documentation?
> The basic premise for implementing Regina the way I have is that if I allow
> case-insensitivity on Windows/DOS/OS/2, then when someone ports their code
> to Unix, the RXFUNCADD() call will possibly fail. So I ensured that the
> user wouldn't have porting issues between platforms.
But they *are* having porting problems coming from IBM's implementation,
where those who have followed the letter of the official documentation
are falling foul of your decision to use pure lower-case. Hmm, is it not
possible to include additional linker directives to permit aliasing of
code entry points?
Patrick Mcphee wrote:
>
<snip>
>
> I don't think either the substance or the nature of your criticism are valid.
> There is no correct answer, and I don't appreciate being called pig-headed
> for making my work available for people's benefit. I'm sorry that the
> occasional person has to change part of a single line of code to get
> the occasional script to work, but I honestly believe that a much larger
> group of people have been saved much more effort. I believe that the
> majority of people just type the stupid name in lower-case, because it's
> easier, and that's part of the goal with this language.
Yes..To put it in true perspective. I never even thought about the
subject
till this thread came up.
[lots of Patrick's replies snipped]
: I don't think either the substance or the nature of your criticism are valid.
: There is no correct answer, and I don't appreciate being called pig-headed
Hang on I thought I was being called pig-headed not you Patrick ;-)
: for making my work available for people's benefit. I'm sorry that the
: occasional person has to change part of a single line of code to get
: the occasional script to work, but I honestly believe that a much larger
: group of people have been saved much more effort. I believe that the
: majority of people just type the stupid name in lower-case, because it's
: easier, and that's part of the goal with this language.
: To make that clearer, I believe that I made the right decision, and I deny
: that you have any right to call me pig-headed regardless of whether the
: decision was right. Or at least, that I have as much right to tell you to
: get stuffed if you do.
OK Guys its time to end this. While I agree with Patrick's sentiments, there
is no need for name-calling from anyone.
What I (and Patrick seem) to find frustrating at times is excessive criticism
of our efforts at providing free software for people. The bottom line is, if
you really don't like the software don't use it, or better still provide
assistance in making it a better product or provide a product of your own.
> Brian {Hamilton Kelly} <b...@dsl.co.uk> wrote:
> [lots left out]
>
> : My criticism was that *you* had chosen to depart from that tradition for
> : functions which you are mimicking in a clone of the RexxUtil.DLL, which
> : is making porting of code unnecessarily traumatic for some users.
>
> Please be clear on who has done what.
My apologies: I realized that fact when I read something else from
Patrick in another thread. Hitherto I had indeed been conflating the two
of you.
> Patrick McPhee is the author of
> RexxUtil and he is the one who has implemented sysloadfuncs as lower-case; not
> me. If you have a look at all of my Rexx External function packages; Rexx/SQL,
> Rexx/Curses, Rexx/Tk, etc. they all use mixed case names like SQLLoadFuncs,
> CursesLoadFuncs, TkLoadFuncs.
Which I still perceive as the "tradition" of Rexx.
> I come into the picture purely from the perspective of trying to support Rexx
> on multiple platforms, and make everyone happy. An impossibility I've come
> to realise!
Indeed!
> : But they *are* having porting problems coming from IBM's implementation,
>
> I would have thought that my first priority would be support users of my
> product, not IBM's.
Fairy'nuff. However, I'm sure many people will be taking up Regina under
'Doze purely because IBM charges for their implementation (whereas the
AIX, Linux & OS/2 versions are free).
> : where those who have followed the letter of the official documentation
>
> The official documentation you refer to relates to IBM's implementation of
> Rexx.
>
> : are falling foul of your decision to use pure lower-case. Hmm, is it not
>
> Not MY decision.
OK.
> : possible to include additional linker directives to permit aliasing of
> : code entry points?
>
> Not on all platforms that Regina runs on; no.
Pity.
BTW, didn't there used to be a VMS implementation of Regina? I've a
vague memory of downloading it circa 1994, although I don't believe I
ever got around to installing it before that particular VAX was retired.
(Besides, I was quite adept at "real programming" in DCL, having written
a LISTSERV clone in it; wild recursing for syntax analysis of mail in
both RFC-822 and Grey Book formats.)
% My point was that the mixed-case names have been in use for in excess of
% ten years on the OS/2 implementation,
And my point has been that they haven't been. If you use
rxfuncadd 'sysloadfuncs', 'rexxutil', 'sysloadfuncs'
on OS/2, it works. Also 'SysLoadFUncs'. There is no choice of case which will
work for all users. Originally, I had used the loopy IBM capitilisation,
but as soon as I found that my scripts didn't work with it, I changed it,
because there isn't enough time in my life to type SysLoadFuncs every time
I want to write a script. I used the simplest to get right, and the one
that would always work for me.
% My criticism was that *you* had chosen to depart from that tradition for
% functions which you are mimicking in a clone of the RexxUtil.DLL, which
% is making porting of code unnecessarily traumatic for some users.
My decision was to make the large body of scripts which I have work. I don't
know how many people slavishly copy IBM's capitilisation. I get lots of
e-mail about these routines, but only two so far (in three years since they
were released) about the captilisation issue. I don't think it's been a
big problem.
I don't think either the substance or the nature of your criticism are valid.
There is no correct answer, and I don't appreciate being called pig-headed
for making my work available for people's benefit. I'm sorry that the
occasional person has to change part of a single line of code to get
the occasional script to work, but I honestly believe that a much larger
group of people have been saved much more effort. I believe that the
majority of people just type the stupid name in lower-case, because it's
easier, and that's part of the goal with this language.
To make that clearer, I believe that I made the right decision, and I deny
that you have any right to call me pig-headed regardless of whether the
decision was right. Or at least, that I have as much right to tell you to
get stuffed if you do.
: My criticism was that *you* had chosen to depart from that tradition for
: functions which you are mimicking in a clone of the RexxUtil.DLL, which
: is making porting of code unnecessarily traumatic for some users.
Please be clear on who has done what. Patrick McPhee is the author of
RexxUtil and he is the one who has implemented sysloadfuncs as lower-case; not
me. If you have a look at all of my Rexx External function packages; Rexx/SQL,
Rexx/Curses, Rexx/Tk, etc. they all use mixed case names like SQLLoadFuncs,
CursesLoadFuncs, TkLoadFuncs.
I come into the picture purely from the perspective of trying to support Rexx
on multiple platforms, and make everyone happy. An impossibility I've come
to realise!
[snip]
:> The basic premise for implementing Regina the way I have is that if I allow
:> case-insensitivity on Windows/DOS/OS/2, then when someone ports their code
:> to Unix, the RXFUNCADD() call will possibly fail. So I ensured that the
:> user wouldn't have porting issues between platforms.
: But they *are* having porting problems coming from IBM's implementation,
I would have thought that my first priority would be support users of my
product, not IBM's.
: where those who have followed the letter of the official documentation
The official documentation you refer to relates to IBM's implementation of
Rexx.
: are falling foul of your decision to use pure lower-case. Hmm, is it not
Not MY decision.
: possible to include additional linker directives to permit aliasing of
: code entry points?
Not on all platforms that Regina runs on; no.
Cheers, Mark
>What I (and Patrick seem) to find frustrating at times is excessive
>criticism of our efforts at providing free software for people. The
>bottom line is, if you really don't like the software don't use it,
>or better still provide assistance in making it a better product or
>provide a product of your own.
<AOL>
Yes! You have provided a valuable service to the community, and
deserve our thanks. I have no problem with someone sending you
wishlists, or with their saying that they've had problems because of
particular aspects of your software. But when they go from requests to
demands, they are grossly abusing your generosity. </AOL>
Note: I am not saying that I agree with Patrick's decision; I don't.
But it is his call. The last I heard he wasn't holding a gun at
anyone's head and demanding that they use his REXXUTIL.
--
-----------------------------------------------------------
Shmuel (Seymour J.) Metz, SysProg and JOAT
Atid/2
Team OS/2
Team PL/I
Any unsolicited commercial junk E-mail will be subject to legal
action. I reserve the right to publicly post or ridicule any
abusive E-mail.
I mangled my E-mail address to foil automated spammers; reply to
domain acm dot org user shmuel to contact me. Do not reply to
spam...@library.lspace.org
-----------------------------------------------------------
Would that also cover (the usage of) function (!) parameters, and how
an external function should return data? E.g.:
1. rc=FileList('MyStemName','*.*')
2. MyStemName.=FileList('*.*')
3. rc=FileUseThisMask('*.*'); rc=FileList('MyStemName.')
4. rc=FileList('*.*','EXPORTSTEM','STEMNAMESTRING='MySTemName')
Or perhaps another guide/"standard", related to the above. I hope/think
it's up to the author, BTW. I don't mean the "technical" return of data
but more what's expected to be returned (what, not how).
And a wishlist-item :-): to be able to return other default errors than
"OK" or "INVALID_ROUTINE" to the REXX interpreter. An external *.DLL is
also capable of detecting other errors (OS/2's REX??-error messages). I
think there's at least one error I would like to force where "40" isn't
true at all (parameters are 100% okay, but the hardware or OS isn't). I
know there's an ugly work-arround for that, which is telling the user a
REX40-error will occur in 5 seconds from now, but that's actually not a
REX40-error which caused the original problem.
(At least with OS/2 REX40 is "invalid call to routine": check the
call)