[Info-vax] VAX Macro to C conversion
    Stephen Hoffman 
    seaohveh at hoffmanlabs.invalid
       
    Sat Jul 13 00:30:10 EDT 2019
    
    
  
On 2019-06-24 23:43:45 +0000, Andrew Shaw said:
> ...This is also true and for this I am going to have to do some deeper 
> analysis of the code (as has been pointed out by others in here) in 
> order to understand the subtleties of what is going on - hopefully get 
> an understanding of why it was written in MACRO in the first place. Our 
> system is a curious mix of languages - MACRO-32, C, FORTRAN and RATFOR 
> forms the bulk of the system code...
The use of RATFOR here implies this is an older code-base and/or 
long-established developers, but that combination of languages is 
otherwise not particularly unusual.
It's fairly common to find that much of the existing Macro32 code can 
be replaced with rather less C or C++ code, and/or by making calls to 
now-available system service calls or features.  Or a combination.
There's a lot of Macro32 around that largely exists for historical 
reasons and organizational inertia.  "It works" is a strong contributor 
toward "doing nothing".
More than a little of the Macro32 was implemented as workarounds for 
features or APIs that were then-missing, or for APIs that were not 
easily callable.
Where folks get in trouble with Macro32 is when Macro32 was used for 
the last few crumbs of system performance and/or of memory usage.  Or 
when the developers were too clever. Or a combination.
Whether separately or as a prolog to the source code conversions, I'd 
look at adding instrumentation and debugging into the app, and at 
enabling and cranking up the now-available compiler diagnostics.  If 
you've VAX C code lurking, switch that all over to C99.
Starting a source code conversion with latent bugs and/or insufficient 
test coverage and/or poor telemetry and/or little or no documentation 
(q.v. doxygen) is not fun.  (n.b. I'm not aware of a doxygen port for 
OpenVMS, but it does exist for most other platforms.)
-- 
Pure Personal Opinion | HoffmanLabs LLC 
    
    
More information about the Info-vax
mailing list