Version 6.9

This release includes the following new C23, C++23, and C++26 features:

- C23:   _BitInt support (EDGcpfe/25899 et al.)
- C23:   Old-style function declarations (EDGcpfe/25956 et al.)
- C++23: CTAD for inheriting constructors (EDGcpfe/25516)
- C++23: Relaxed ref-qualifier overloading (EDGcpfe/28870)
- C++23: Static and explicit-object member function overloading
         (EDGcpfe/26092)
- C++23: Constexpr ctor calling non-constexpr ctor (EDGcpfe/28758)
- C++26: Pack indexing (EDGcpfe/26823,EDGcpfe/28650)
- C++26: Structured binding packs (EDGcpfe/27775,EDGcpfe/28548)

This release includes the ability to handle certain standard variable and
alias templates and type members of standard class templates intrinsically,
i.e., directly providing the standard result instead of instantiating the
template declared in a header file, resulting in improved performance and
reduced memory usage.  See the Changes entries for EDGcpfe/28491,
EDGcpfe/28580, and EDGcpfe/28899 for further details.

The front end previously failed to do template argument substitution in
lambdas, resulting in a number of spurious errors.  This deficiency has now
been largely addressed; see the Changes entry for EDGcpfe/24618 et al. for
details.

This release includes new target-dependent variables.  If you are using
run-time target configurations (other than the default ones we provide),
you will need to update those to include these new target-specific
configuration macros with appropriate values for each of your target
configurations.  The new target configuration macros are:

        TARG_SUPPORTS_RISCV32
        TARG_SUPPORTS_RISCV64
       
Note that if you do not provide the necessary configuration macros, you
will get build errors along the lines of "TARG_XXX_my_config undefined".

The newly-added RISCV_VECTOR_BUILTINS_ENABLED configuration macro controls
whether the RISC-V vector builtin tables in builtin_defs.h are included
when building the front end.  The tables are large and can significantly
increase the resulting binary size; MSVC builds may require /bigobj when
they are included.  See the Changes entry for EDGcpfe/28669 for details.

The changes in 6.8 for EDGcpfe/26294 added the ability to determine the
template arguments used in every reference to a template instance, as well
as tracking name qualifiers in type names.  This additional information can
add significant size and complexity to the IL, affecting both performance
and memory usage, especially stack space when recursively traversing the
IL.  In applications where this additional information is not needed, the
new configuration macro CREATE_LEXICAL_TYPEREFS can be set to FALSE to
suppress it.  Note, however, that the C++-generating back end uses this
information in generating code, and some issues that had been addressed
thereby may manifest themselves.  See the Changes entry for EDGcpfe/28911
for more details.

The internal documentation has been converted from FrameMaker to the
reStructuredText markup language used by Sphinx.  The documentation is
in a new directory named "doc-sphinx".  There is a README.md file in
that directory containing additional information, including where to
get documentation on Sphinx, etc.  The "doc" directory, which formerly
contained a PDF version of the documentation, now instead contains a
version of the documentation converted to HTML.

Version 6.9 updates built-in function support to gcc version 15.3 and
clang version 22.1.0.

Support has been added for consuming Microsoft IFC version 0.44 module files,
but module support otherwise remains as it was in version 6.8.

The default settings have been changed in version 6.9 to accept source files
with UTF-8 encoding by default.  The previous behavior can be restored by
explicitly setting the UNICODE_SOURCE_SUPPORTED and/or
DEFAULT_UNICODE_SOURCE_KIND configuration macros.

Building the front end now requires support for C++14 features; it previously
only required C++11 support.  The earliest versions of compilers known
to build the front end successfully are:

    g++:    5.2.0
    clang:  3.4
    MSVC:   VS 2017 (build 15.0 or later)

The front end can be self-compiled with a C-generating back end version for
platforms that lack a native C++ compiler.  We do not use exception
handling or RTTI, so those can be disabled to produce more efficient code.

We use only the C subset of the C++ standard library, so if your code uses
the C++ standard library you don’t have to worry about possible collisions
between incompatible versions.

As usual, we have fixed bugs, added many minor features, and continued to
improve our various compatibility modes.  Full details are found in the
Changes_6.9 file (approximately 4000 lines).
