A first live test of about 700 lines of actual converted code on both VMS
and unix proved successful, confirming the viability of the single-source
approach for the development of non-VM versions of LISTSERV.
In the last few days, a subset of the P-REXX library has been implemented
on VMS and unix in order to be able to run a first "live" test of
translated LISTSERV code under both the VAX PASCAL and p2c environments.
The RFC822 parser was selected for this purpose, because it is fairly
large but does not do any I/O or call system interface routines. It uses
many of the string manipulation functions, including the stem routines,
but is otherwise self-contained. These string manipulation functions have
been implemented in C with pre-processor macros generating the bindings
required by VAX PASCAL, VS PASCAL or p2c-generated C code, as desired. In
other words, we have the following picture:
VMS:
- LSW822IN PASCAL on VM -> LSW822IN.VMSPAS -> object code, and same for
a couple other PASCAL source files.
- P-REXX C implementation source files (*.C/*.H) + VMS.C -> library
object code.
unix:
- LSW822IN PASCAL on VM -> LSW822IN.UNIXPAS -> lsw822in.c -> lsw822in.o
and so on.
- P-REXX C implementation source files (*.C/*.H) + UNIX.C -> library
object code.
The C files contain conditional compilation directives and so do some of
the PASCAL include files on VM (mostly to put everyone in agreement on
the various types and structures manipulated by the library). However,
none of the intermediate files (LSW822IN.VMSPAS, LSW822IN.UNIXPAS and
lsw822in.c) is ever altered. They are treated as intermediate compilation
files, just like the C pre-processor's output.
I pulled a random IETF message from my mailbox and fed it to the header
parser through a main program that displays a formatted version of the
parser output. I am enclosing a copy of the output from both systems.
While this is a very positive result, it should be noted that I have not
yet delved into system-specific calls. It would be premature to claim
that all problems have been solved. This was a sizeable amount of real
code, with several levels of subroutines and memory allocation, but we
are still not attempting to read files or send mail to people. Not that
the theoretical problems haven't been carefully reviewed and solved (in
theory), but there are a lot of practical problems that one may not see
until the very last moment. For instance, until yesterday I thought that
all half-decent C compilers were ANSI compliant nowadays, and was very
surprised to see that the standard Sun cc isn't. Of course gcc is readily
available so I didn't have to idiotify 1000 lines of code, but it goes to
show that no matter how much planning you do, there will always be
something unexpected blocking the road.
Eric
sunic.sunet.se> a.out
PASCAL_MAIN
init_VM
Return code from LSW822IN: 0
>TAG Date: Tue, 21 Sep 93 12:54:42 EDT<
>TAG Return-Path: <@SEARN.SUNET.SE:[log in to unmask]><
>TAG Received: from SEARN (NJE origin SMTP@SEARN) by SEARN.SUNET.SE (LMail V1.2a/1.8a) with BSMTP id 0593; Wed, 22 Sep 1993 02:16:08 +0200<
>TAG Received: from sunic.sunet.se by SEARN.SUNET.SE (IBM VM SMTP V2R2) with TCP; Wed, 22 Sep 93 02:16:06 +0200<
>TAG Received: from nic.nordu.net by sunic.sunet.se (5.65c8-/1.49) id AA26772; Wed, 22 Sep 1993 02:18:26 +0200<
>TAG Received: from ietf.cnri.reston.va.us by nic.nordu.net (5.61-bind 1.5+ida/6.0) id AA01469; Wed, 22 Sep 93 02:18:09 +0200<
>TAG Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa10789; 21 Sep 93 18:05 EDT<
>TAG Received: from CNRI.RESTON.VA.US by IETF.CNRI.Reston.VA.US id aa10756; 21 Sep 93 18:04 EDT<
>TAG Received: from vela.acs.oakland.edu by CNRI.Reston.VA.US id aa03897; 21 Sep 93 18:04 EDT<
>TAG Received: from via.dsf5.merit.edu ([35.214.49.9]) by vela.acs.oakland.edu with SMTP id AA14783 (5.65c+/IDA-1.4.4); Tue, 21 Sep 1993 18:03:41 -0400<
>TAG Sender: [log in to unmask]<
>TAG From: William Allen Simpson <[log in to unmask]><
>TAG Message-Id: <[log in to unmask]><
>TAG To: [log in to unmask]<
>TAG Reply-To: [log in to unmask]<
>TAG Subject: Re: Interest in Accounting Working Group<
>SUBJECT Re: Interest in Accounting Working Group<
>REPLYTO bsimpson morningstar.com<
>MSGID <[log in to unmask]><
>OMSGID <[log in to unmask]><
>TO ietf CNRI.Reston.VA.US<
>FROM bill.simpson um.cc.umich.edu William Allen Simpson<
>SENDER ietf-request IETF.CNRI.Reston.VA.US<
>OFROM bill.simpson um.cc.umich.edu William Allen Simpson<
>ORIGIN ietf-request IETF.CNRI.Reston.VA.US<
><
-------------------------------------------------------------------------
SEJNET> r o
Return code from LSW822IN: 0
>TAG Date: Tue, 21 Sep 93 12:54:42 EDT<
>TAG Return-Path: <@SEARN.SUNET.SE:[log in to unmask]><
>TAG Received: from SEARN (NJE origin SMTP@SEARN) by SEARN.SUNET.SE (LMail V1.2a
/1.8a) with BSMTP id 0593; Wed, 22 Sep 1993 02:16:08 +0200<
>TAG Received: from sunic.sunet.se by SEARN.SUNET.SE (IBM VM SMTP V2R2) with TCP
; Wed, 22 Sep 93 02:16:06 +0200<
>TAG Received: from nic.nordu.net by sunic.sunet.se (5.65c8-/1.49) id AA26772; W
ed, 22 Sep 1993 02:18:26 +0200<
>TAG Received: from ietf.cnri.reston.va.us by nic.nordu.net (5.61-bind 1.5+ida/6
.0) id AA01469; Wed, 22 Sep 93 02:18:09 +0200<
>TAG Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa10789;
21 Sep 93 18:05 EDT<
>TAG Received: from CNRI.RESTON.VA.US by IETF.CNRI.Reston.VA.US id aa10756; 21 S
ep 93 18:04 EDT<
>TAG Received: from vela.acs.oakland.edu by CNRI.Reston.VA.US id aa03897; 21 Sep
93 18:04 EDT<
>TAG Received: from via.dsf5.merit.edu ([35.214.49.9]) by vela.acs.oakland.edu w
ith SMTP id AA14783 (5.65c+/IDA-1.4.4); Tue, 21 Sep 1993 18:03:41 -0400<
>TAG Sender: [log in to unmask]<
>TAG From: William Allen Simpson <[log in to unmask]><
>TAG Message-Id: <[log in to unmask]><
>TAG To: [log in to unmask]<
>TAG Reply-To: [log in to unmask]<
>TAG Subject: Re: Interest in Accounting Working Group<
>SUBJECT Re: Interest in Accounting Working Group<
>REPLYTO bsimpson morningstar.com<
>MSGID <[log in to unmask]><
>OMSGID <[log in to unmask]><
>TO ietf CNRI.Reston.VA.US<
>FROM bill.simpson um.cc.umich.edu William Allen Simpson<
>SENDER ietf-request IETF.CNRI.Reston.VA.US<
>OFROM bill.simpson um.cc.umich.edu William Allen Simpson<
>ORIGIN ietf-request IETF.CNRI.Reston.VA.US<
><
|