blob: bbc7377412d631fd778a7a6682be37efa6cc89dc [file] [log] [blame]
========================================
Flang 11.0.0 (In-Progress) Release Notes
========================================
.. contents::
:local:
:depth: 2
.. warning::
These are in-progress notes for the upcoming LLVM 11.0.0 release.
Release notes for previous releases can be found on
`the Download Page <https://releases.llvm.org/download.html>`_.
Introduction
============
This document contains the release notes for the Flang Fortran
frontend, part of the LLVM Compiler Infrastructure, release 11.0.0. Here we
describe the status of Flang in some detail, including major
improvements from the previous release and new feature work. For the
general LLVM release notes, see `the LLVM
documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
releases may be downloaded from the `LLVM releases web
site <https://llvm.org/releases/>`_.
Note that if you are reading this file from a Git checkout, this document
applies to the *next* release, not
the current one. To see the release notes for a specific release, please
see the `releases page <https://llvm.org/releases/>`_.
Known Issues
============
These are issues that couldn't be fixed before the release. See the bug reports for the latest status.
- ...
Introducing Flang
=================
Flang is LLVM's Fortran front end and is new for the LLVM 11 release.
Flang is still a work in progress for this release and is included for
experimentation and feedback.
Flang status
------------
Flang is able to parse a comprehensive subset of the Fortran language
and check it for correctness. Flang is not yet able to generate LLVM IR for
the source code and thus is unable to compile a running binary.
Flang is able to unparse the input source code into a canonical form and emit
it to allow testing. Flang can also invoke an external Fortran compiler on this
canonical input.
Flang's parser has comprehensive support for:
- Fortran 2018
- OpenMP 4.5
- OpenACC 3.0
Major missing features
----------------------
- Flang is not supported on Windows platforms.
Using Flang
===========
Usage: ``flang hello.f90 -o hello.bin``
Flang will parse the Fortran file ``hello.f90`` then unparse it to a canonical
Fortran source file. Flang will then invoke an external Fortran compiler to
compile this source file and link it, placing the resulting executable
in ``hello.bin``.
To specify the external Fortran compiler, set the ``F18_FC`` environment
variable to the name of the compiler binary and ensure it is on your ``PATH``.
The default value for ``F18_FC`` is ``gfortran``.
When invoked with no source input, Flang will wait for input on standard in.
When invoked in this way, Flang performs the same actions as if called with
``-fdebug-measure-parse-tree -funparse`` and does not invoke ``F18_FC``.
For a full list of options that Flang supports, run ``flang --help``.
Additional Information
======================
Flang's documentation is located in the ``flang/docs/`` directory in
the LLVM monorepo.
If you have any questions or comments about Flang, please feel free to
contact us via the `mailing
list <https://lists.llvm.org/mailman/listinfo/flang-dev>`_.