LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Eric Thomas <[log in to unmask]>
Mon, 20 Sep 1993 16:14:07 +0200
text/plain (42 lines)
The PASCAL pre-processor development has completed ahead of schedule.
 
As mentioned in a previous message, there are currently 104 PASCAL source
files for the VM  version of LISTSERV, of which 11 (and  not 10 as stated
last time) contain VM-specific code, PASCAL interfaces to functions which
are still  written in REXX  and are not expected  to be available  in the
Patchwork stage, or  code which is otherwise not useful  at the moment on
systems other than VM.
 
The VMS version  of the pre-processor (which translates  VS PASCAL idioms
to VAX  PASCAL) was  finished a few  days ago, and  all 93  files compile
without error using both VAX PASCAL and DEC PASCAL. In order to check the
bindings  and identify  any problem  with parameter  passing, the  string
formatting routines  of the P-REXX  library (the "LDFxx"  functions) were
implemented in  C and tested  with a few simple  programs. A series  of C
preprocessor macros  were developed to  make it  possible for the  same C
source code to generate the bindings required by VAX/DEC PASCAL, p2c, and
VS PASCAL.
 
The unix version of the pre-processor (which generates input suitable for
p2c) was finished today. After the obligatory 3 hours of underdimensioned
sprintf buffer hunting, a couple of bug fixes and some changes to promote
char constants  to string as  necessary, p2c  now processes all  93 files
without error. A couple thousand lines of code were cursorily scanned and
a couple  hundred randomly selected  lines were examined  more carefully,
and the code looks generally correct. 92  out of the 93 resulting C files
compile without error. The file that doesn't compile and 2 others contain
incorrectly  translated  string  constants  which  we  will  have  to  do
something about, presumably  by coding the accurate C  idioms directly in
the VS PASCAL  source file, using the special p2c  comment sequences that
will copy them  as is to the  C output. Another problem is  that p2c uses
native C strings  for PASCAL strings, whereas  LISTSERV occasionally uses
null bytes in  string constants (LISTSERV doesn't use  PASCAL strings for
anything but  string constants). It may  be necessary to translate  a few
routines to C manually, which is annoying but not a major inconvenience.
 
All things  considered this  is very encouraging,  although of  course it
will not  be possible to  run any  full-scale test until  a comprehensive
implementation of the PREXX library is available.
 
  Eric

ATOM RSS1 RSS2