[Oorexx-devel] rxsoch and errno / h_errno - tracker ID: 2821430

2009-07-25 Thread Rainer Tammer
Hello,
I just read ID: 2821430.

Is it possible that this is not implemented at all?

I can find SetErrno() and SetH_Errno() in rxsock.cpp.
These two functions are never called.

The SetH_Errno() looks kinda fake:

/*--
 * set h_errno
 *--*/
void SetH_Errno(void)
{
char szBuff[20];
const char *pszErrno = szBuff;
int   theErrno;

theErrno = 1541; // -- FAKE ALARM

switch (theErrno)
{
case HOST_NOT_FOUND  : pszErrno = HOST_NOT_FOUND;   break;
case TRY_AGAIN   : pszErrno = TRY_AGAIN;break;
case NO_RECOVERY : pszErrno = NO_RECOVERY;  break;
case NO_ADDRESS  : pszErrno = NO_ADDRESS;   break;

default:
sprintf(szBuff,%d,theErrno);
}

RxVarSet(h_errno,pszErrno);
}

This function always set h_errno to 1541.

The SetErrno() looks better but no one calls it...

Is this intended ?
Is this a leftover ?



The ooRexx RxSock 3.2 documentation says:

Chapter 4. Special Variables
The following variables are maintained by the system: errno and h_errno.
...

What's your opinion ??

Bye
  Rainer

--
___
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel


Re: [Oorexx-devel] rxsoch and errno / h_errno - tracker ID: 2821430

2009-07-25 Thread Rick McGuire
It looks like the fact these were not getting called was my fault.  In
previous releases, the rxsock package registered all of the functions
using the same DLL entry point.  When called, it searched a table and
dispatched the call to the actual target.  This was a bit strange, and
the gateway function was removed when this got converted to the new
package format.  I completely missed the fact that the gateway also
did some termination work on behalf of each function.  I'll need to
fix that.

As for the value used for SetH_Errno(), it appears to have always been
that way.  There's nothing in the comments to indicate why this was
done, so I'm not really sure what should be done there.

Rick

On Sat, Jul 25, 2009 at 3:57 AM, Rainer Tammertam...@tammer.net wrote:
 Hello,
 I just read ID: 2821430.

 Is it possible that this is not implemented at all?

 I can find SetErrno() and SetH_Errno() in rxsock.cpp.
 These two functions are never called.

 The SetH_Errno() looks kinda fake:

 /*--
  * set h_errno
  *--*/
 void SetH_Errno(void)
 {
    char szBuff[20];
    const char *pszErrno = szBuff;
    int   theErrno;

    theErrno = 1541; // -- FAKE ALARM

    switch (theErrno)
    {
        case HOST_NOT_FOUND  : pszErrno = HOST_NOT_FOUND;       break;
        case TRY_AGAIN       : pszErrno = TRY_AGAIN;            break;
        case NO_RECOVERY     : pszErrno = NO_RECOVERY;          break;
        case NO_ADDRESS      : pszErrno = NO_ADDRESS;           break;

        default:
            sprintf(szBuff,%d,theErrno);
    }

    RxVarSet(h_errno,pszErrno);
 }

 This function always set h_errno to 1541.

 The SetErrno() looks better but no one calls it...

 Is this intended ?
 Is this a leftover ?

 

 The ooRexx RxSock 3.2 documentation says:

 Chapter 4. Special Variables
 The following variables are maintained by the system: errno and h_errno.
 ...

 What's your opinion ??

 Bye
  Rainer

 --
 ___
 Oorexx-devel mailing list
 Oorexx-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/oorexx-devel


--
___
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel


Re: [Oorexx-devel] rxsoch and errno / h_errno - tracker ID: 2821430

2009-07-25 Thread Rainer Tammer
Hello,

Rick McGuire wrote:
 It looks like the fact these were not getting called was my fault.  In
 previous releases, the rxsock package registered all of the functions
 using the same DLL entry point.  When called, it searched a table and
 dispatched the call to the actual target.  This was a bit strange, and
 the gateway function was removed when this got converted to the new
 package format.  I completely missed the fact that the gateway also
 did some termination work on behalf of each function.  I'll need to
 fix that.

   
OK
 As for the value used for SetH_Errno(), it appears to have always been
 that way.  There's nothing in the comments to indicate why this was
 done, so I'm not really sure what should be done there.

   
This function is a bit strange.

1. What the hack is 1541 ??
2. I think someone planed to somehow condense the errors into meta 
errors but never finished the work...
 Rick

   
Bye
  Rainer*
*
 On Sat, Jul 25, 2009 at 3:57 AM, Rainer Tammertam...@tammer.net wrote:
   
 Hello,
 I just read ID: 2821430.

 Is it possible that this is not implemented at all?

 I can find SetErrno() and SetH_Errno() in rxsock.cpp.
 These two functions are never called.

 The SetH_Errno() looks kinda fake:

 /*--
  * set h_errno
  *--*/
 void SetH_Errno(void)
 {
char szBuff[20];
const char *pszErrno = szBuff;
int   theErrno;

theErrno = 1541; // -- FAKE ALARM

switch (theErrno)
{
case HOST_NOT_FOUND  : pszErrno = HOST_NOT_FOUND;   break;
case TRY_AGAIN   : pszErrno = TRY_AGAIN;break;
case NO_RECOVERY : pszErrno = NO_RECOVERY;  break;
case NO_ADDRESS  : pszErrno = NO_ADDRESS;   break;

default:
sprintf(szBuff,%d,theErrno);
}

RxVarSet(h_errno,pszErrno);
 }

 This function always set h_errno to 1541.

 The SetErrno() looks better but no one calls it...

 Is this intended ?
 Is this a leftover ?

 

 The ooRexx RxSock 3.2 documentation says:

 Chapter 4. Special Variables
 The following variables are maintained by the system: errno and h_errno.
 ...

 What's your opinion ??

 Bye
  Rainer

 --
 ___
 Oorexx-devel mailing list
 Oorexx-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/oorexx-devel

 

 --
 ___
 Oorexx-devel mailing list
 Oorexx-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/oorexx-devel


   


--
___
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel


[Oorexx-devel] ooRexx RexxC front-end

2009-07-25 Thread Mark L. Gaubatz
I have undertaken a REXXCOMP (REXX/370 Compiler) front-end to RexxC (in
ooRexx) to satisfy both my requirements and the requirements of others
looking for REXXCOMP source features (including my previous development
group within IBM). Coding is nearly complete and is functional;
documentation, at present, is in its usual state -- lagging at least a
couple of weeks behind. Current class name used by REXXCOMP for the
actual front-end is REXXFANC, in honor of the FAN module and message
prefix assigned to the REXX/370 compiler, unless there is a better
suggestion. 

Basic logic, at present, has three phases: 1) Preprocess, 2) Tokenize
with RexxC, 3) Create final outputs, merge preprocessor and RexxC
messages, insert #!/usr/bin/rexx and mark tokenized output as executable
for open systems. Listing format is very similar to that of REXX/370
listings, although logic levels are neither determined or shown at
present. Total processing time for a 40K line program on a 1.7Ghz
single-core P4 is acceptable.

I have not wanted to announce the work to the primary ooRexx list,
until the work is a little further along, although I know there are some
folks who are looking for the capabilities. It is my intent to make the
work available to the project for inclusion.

For handling of the copyright directive, an address string;address;
sequence is inserted to preface the contents of the first line (second
line if #! detected on first) of the RexxC input only, providing an
interim solution for RFE 2759666. After further research, this action
and placement is equivalent to current operation of the REXX/370
compiler, does not set any variables nor alter any perceived state of
the target program at execution time.


Supported Options (at present):

CEXEC
IEXEC
LINECOUNT
MARGINS (including automatic handling of sequence numbers in
73-80)
PRINT
SOURCE
SYSIN

DDNAME library specifications are supported, including search orders
compatible with the REXX/370 compiler on both MVS and VM (this makes for
some very ugly lookups). Shell variable substitutions, for example, %
Path% on Windows and bash $PATH, are supported. Since more than a simple
search is involved in locating a filename or ddname(member). To come
close to the locate function operation under z/OS and z/VM, a blended
functionality is used.
  
1) filename (z/VM) or member (z/OS)   
  
   Search array of paths described by the DDNAME[SYSLIB]  array, and
then the source path, by appending the extensions described by
IncludeExtensions.
  
2) ddname(member) 
  
   Search array of paths described by the DDNAME[ddname]  array by
appending the extensions described by IncludeExtensions.
  
In all cases, a caseless search will be performed for compatability.
Should multiple matches be found, only the first match will be
used. 
  
Extensions:   
  
-  The filename may specify a file extension in the form
filename.ext.  
  
-  The filename or member name may not contain an asterisk (*), question
mark (?), slash (/), or backslash (\) [or in typesetting terms, virgule
(/) and reverse virgule (\)].  
  
Delfault IncludeExtensions and lookup order:
COPY, REXXINCL, EXEC, MEMBER, SREX, SREXX, REXX

Directive status:

%COPYRIGHT - complete
%INCLUDE - complete, except for include level and record number in
listing (in process)
%PAGE% - started
%SYSDATE - started
%SYSTIME - started
%TESTHALT - not started, TBD


Questions:

1) What standards, if any, do I need to adhere/conform to, should the
routines be accepted for inclusion?

2) Any additional feedback or input?

Mark L. Gaubatz
--
___
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel