[Info-vax] C99 updates to CRTL

John Reagan xyzzy1959 at gmail.com
Mon Jul 29 09:00:15 EDT 2019


On Monday, July 29, 2019 at 8:55:48 AM UTC-4, John E. Malmberg wrote:
> On 7/27/2019 3:56 PM, Craig A. Berry wrote:
> >  
> > As far as I know, the only reason to guard a function's prototype with
> > _ANSI_C_SOURCE is if you offer two different implementations of it, one
> > of which conflicts with the standard one.  Arguably this isn't even
> > necessary for the stdio functions with the RMS options because those
> > don't *conflict* with the standard, they just extend it with optional
> > arguments; a standard-compliant call would still work as-is.  But I know
> > the ship has long since sailed on those.
> 
> The stdio extensions do cause problems with porting, they cause problems 
> with trying to use gnulib and with gnu configure scripts.
> 
> While that ship has sailed for "DEC C", for a new compiler I would 
> strongly recommend:
> 
> All (DEC/VSI) extensions to the standard have their own uniquely named 
> routines.
> 
> All (DEC/VSI) extensions to the standard have their own header files.
> 
> And a notification to customers that the bugs fixed in the VMS 
> implementation of standard routines will have the fixed behavior be the 
> default entry point to the library for that routine.
> 
> The above may require a way of having a customer use an older shared 
> library for a specific image if their binaries depend on a buggy behavior.
> 
> Take the opportunity to drain the swamp a bit.
> 
> So if a customer wants to use the new compiler, they may need to make 
> some source code changes to make their code work to the standard, 
> otherwise they can stay with the old standard.
> 
> Regards,
> -John
> wb8tyw at qsl.net_work

That is hard to do in a mixed arch cluster of Alpha/Itanium/x86.  I already received feedback from a customer who now has to "undo" all their workarounds for things that now have appeared in stdint/inttypes.  They didn't guard with an "ifndef" 20 years ago.



More information about the Info-vax mailing list