[Info-vax] Error Messages in Basic - %BASIC-E-PARMODNOT, mode for parameter <n> of routine <procedure-name> not as declared

Bob Gezelter gezelter at rlgsc.com
Fri Jun 7 14:22:09 EDT 2019


On Wednesday, June 5, 2019 at 11:08:40 PM UTC-4, Robert A. Brooks wrote:
> On 6/5/2019 10:35 PM, Stephen Hoffman wrote:
> > On 2019-06-05 14:27:57 +0000, Jeffrey H. Coffield said:
> > 
> >> The following compiles and runs for me on both Alpha and Itanium. You must 
> >> have something wrong in how you are declaring the function.
> >> ...
> >>          external long function lib$convert_date_string
> > 
> > Try it again with the system-provided declarations, rather than the classic and 
> > old-school add-an-external-and-who-cares-about-the-arguments approach.
> > You'll find the compiler will be recalcitrant.
> > Replacing these old-style declarations with the system declarations might also 
> > find latent bugs in existing applications, particularly around argument 
> > specifications and missing arguments.
> 
> It's amazing how many people create their own item list and IOSB structures, 
> instead of using the STARLET-provided ILEDEF and IOSBDEF.
> 
> Over the course of rebuilding all the layered products, I've come across this
> repeatedly, so even within DEC/CPQ/HP folks "rolled their own".
> 
> -- 
>                   -- Rob

Rob,

Sometimes it is lack of knowledge, sometimes it is a question of history.

My recollection is that some early versions of the OpenVMS languages lacked fully typed declarations. Thus, code which originated earlier often lacks type-checked definitions. It is rare for developers to backfill such usages when they become superseded.

Have encountered these problems at client sites on many occasions, in a variety of languages. As Hoff mentioned in one of his posts in this thread, forcing correct typing has uncovered various latent bugs.

- Bob Gezelter, http://www.rlgsc.com



More information about the Info-vax mailing list