VSI BASIC V1.10-001 for OpenVMS x86-64

Release Notes


1. Overview of VSI BASIC

This document contains information about VSI BASIC V1.10-001 including new and changed features, differences between V1.10-001 and previous versions, corrections included, and other topics. This file is of interest to both system managers and application programmers.

VSI BASIC V1.10-001 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 prior BASIC V1.9 kit contained a private RTL that matched the compiler as some of the interfaces changed in size to allow for 64-bit code addresses. This RTL is now available in OpenVMS V9.2-3 (with even more fixes than the version in the V1.9 kit). To prevent confusion with getting the right RTL, the V1.10 kit simply requires OpenVMS V9.2-3.

Images built with the V1.9 compiler and running on OpenVMS V9.2-2 will continue to work on OpenVMS V9.2-3.

The BASIC/VERSION string is:

VSI BASIC V1.10-001 (GEM 50nnn) on OpenVMS x86-64 Systems

2. VSI BASIC Documentation

The VSI BASIC documentation set on the VSI website (https://docs.vmssoftware.com/) 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 produce a list of the machine code instructions generated by the compiler.

  • The /SEPARATE_COMPILATION qualifier is ignored. We will investigate 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 does not generate full debug information, but it is much improved over the V1.9 release. In addition, the debugger in OpenVMS V9.2-3 contains additional fixes for BASIC.

4. Problems Corrected Since Field Test of VSI BASIC

  • 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 contained a very large variable that was initialized at compile-time. This problem has been fixed.

  • The compiler created 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.