VSI BASIC V1.11-1 for OpenVMS x86-64

Release Notes


1. Overview of VSI BASIC

VSI BASIC V1.11-1 is a release of BASIC on OpenVMS x86-64. It is based on VSI BASIC on OpenVMS IA-64 for source compatibility. There may be platform-specific features from OpenVMS Alpha and OpenVMS IA-64 that may not be supported.

The compiler requires OpenVMS x86-64 version 9.2-3 or higher.

The BASIC/VERSION string is:

VSI BASIC V1.11-1 (GEM 50nnn) on OpenVMS x86-64 Systems

2. VSI BASIC Documentation

The VSI BASIC documentation set on the VSI documentation website has not yet been updated with x86-64 support. It will be updated in the next several months.

3. VSI BASIC for x86-64 Systems Known Issues

  • The /MACHINE_CODE qualifier is ignored. Use the ANALYZE/OBJECT/DISASSEMBLE command to product a list of the machine code instructions generated by the compiler.

  • The /SEPARATE_COMPILATION qualifier is ignored. We will investigating how to implement this feature with the LLVM code generator.

  • XFLOAT floating is not currently supported due to missing support in the BASIC RTL, the Math RTL, and in conversion routines in LIBRTL.EXE. All of this will be provided in a future release.

  • The compiler does not produce a warning on decimal overflow in an initializer.

  • The compiler has much improved debug information compared to the V1.10 release. In addition, the debugger in OpenVMS V9.2-3 update 2 contains additional fixes for BASIC.

4. Problems Corrected Since VSI BASIC V1.10

  • The compiler now correctly parses XFLOAT literals. However XFLOAT support is only partially working as many of the RTLs on the system to read/write XFLOATs do not yet support these 128-bit long double floating types.

  • The optimizer would cause the compiler to generate incorrect debug information for tracebacks. A traceback might print something like

    Error: traceback pc= 0000xxxx was not found

    This problem has been fixed.

  • The debug information for routine prologues and epilogues have been improved for better debugging stepping.

  • Correctly detect and signal integer divide by zero errors.

  • The compiler would generate invalid DWARF for certain filenames resulting in incorrect source line debugger. This problem has been fixed.

  • The compiler would generate invalid DWARF for STRING variables. This problem has been fixed.

  • The compiler could run out of memory and ACCVIO if the BASIC source contain a very large variable that is initialized at compile-time. The problem has been fixed.

  • The compiler would create a memory leak when using the WHEN ERROR clause resulting in an ACCVIO. This problem has been fixed.

  • Various bugs related to optimizations found by other compilers are also included.