[Info-vax] Error Messages in Basic - %BASIC-E-PARMODNOT, mode for parameter <n> of routine <procedure-name> not as declared
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Sun Jun 9 14:31:12 EDT 2019
On 2019-06-08 18:21:42 +0000, Jeffrey H. Coffield said:
> There are a number of places in both text libraries as well as .BAS
> files that have the following "patch":
>
> %IF %DECLARED(%BASIC$QUADWORD_DECLARED) = 0 %THEN
> RECORD BASIC$QUADWORD
> LONG FILL(2)
> END RECORD
> %LET %BASIC$QUADWORD_DECLARED = 1
> %END %IF
>
> because Basic didn't have a quad data type. It does now and this
> could/should be cleaned up.
C and C++ use similar fencing around their declarations.
Cleanup means a refactoring tool, or manual edits, or implementing
"tolerance" in the compilers.
This as BASIC$QUADWORD used is all over.
I'd usually prefer refactoring and/or manual edits, and to clean up the
old code.
Entrenching this sort of stuff in the compilers or in the RTLs adds to
the complexity of the source code and the run-time, makes what the
developers and maintainers experience more complex, and generally
defers the reconciliation.
Preferably with some other benefits arising from the associated work.
This to sweeten the changes. Kind of like OpenVMS releases causing
interest in upgrades, and which really haven't been happening in most
of twenty years.
For this case, that sweetening might be better integer support, and/or
UTF-8 support, the far-larger implementation of object support, and/or
whatever else.
llvm makes running different compiler phases easier, which can not only
make source code completion nearly prescient, makes debugging better,
but can make source translation and refactoring tools more reliable and
capable.
But here? I'd be willing to have a couple of releases to get rid of
the old dreck manually, if that was the option. And if there was
another and better reason to upgrade to newer.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list