[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:15:00 EDT 2019


On 2019-06-09 16:43:01 +0000, Bob Gezelter said:

> Quite. Many miss the point that a "type" definition is more than 
> storage space, it is also semantics. INTEGER*4 and REAL*4 (FORTRAN) are 
> not the same, even though they reserve the same amount of memory.
> 
> In C, pointers to different items (e.g., struct, long, long long, 
> unsigned long long) may be the same size, but are not the same "type" 
> for type matching purposes, hence the use of "void *" in many contexts.
> 
> In BASIC, BASIC$QUADWORD is a record of two longwords, whereas QUAD is 
> a signed quadword. Both refer to 64-bit memory areas, but they are not, 
> in the language context, equivalent. If nothing else, the syntax is 
> different, which will cause a compilation error.

Ayup.  There are additional wrinkles that can arise when porting some 
application code among different compilers and different platforms, too.

There are platforms and tools which dispense with the mental focus and 
the glue code that developers need expend around these storage 
allocations, and which can be quite nice to work with.

These akin to OpenVMS data descriptors, but with better flexibility, 
with less fiddly data access and conversions, and with encodings and 
other details evolved forward by a couple of decades.

With easy ways to convert between the formats and the encodings, well 
past LIB$CVT_DX_DX and suchlike.

Easier to update the size of and the internal organization of the 
associated data without requiring application changes, too.

And with less glue code involved.

BASIC is an obvious candidate for related updates, though the changes 
required would be rather more endemic and not isolated to BASIC.

VSI has more than a little (other) work ahead, of course.



-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list