[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