|
| 1 | +# Flang 11.0.0 (In-Progress) Release Notes |
| 2 | + |
| 3 | +> **warning** |
| 4 | +> |
| 5 | +> These are in-progress notes for the upcoming LLVM 11.0.0 release. |
| 6 | +> Release notes for previous releases can be found on [the Download |
| 7 | +> Page](https://releases.llvm.org/download.html). |
| 8 | +
|
| 9 | +## Introduction |
| 10 | + |
| 11 | +This document contains the release notes for the Flang Fortran frontend, |
| 12 | +part of the LLVM Compiler Infrastructure, release 11.0.0. Here we |
| 13 | +describe the status of Flang in some detail, including major |
| 14 | +improvements from the previous release and new feature work. For the |
| 15 | +general LLVM release notes, see [the LLVM |
| 16 | +documentation](https://llvm.org/docs/ReleaseNotes.html). All LLVM |
| 17 | +releases may be downloaded from the [LLVM releases web |
| 18 | +site](https://llvm.org/releases/). |
| 19 | + |
| 20 | +Note that if you are reading this file from a Git checkout, this |
| 21 | +document applies to the *next* release, not the current one. To see the |
| 22 | +release notes for a specific release, please see the [releases |
| 23 | +page](https://llvm.org/releases/). |
| 24 | + |
| 25 | +## Known Issues |
| 26 | + |
| 27 | +These are issues that couldn't be fixed before the release. See the bug |
| 28 | +reports for the latest status. |
| 29 | + |
| 30 | + * ... |
| 31 | + |
| 32 | +## Introducing Flang |
| 33 | + |
| 34 | +Flang is LLVM's Fortran front end and is new for the LLVM 11 release. |
| 35 | + |
| 36 | +Flang is still a work in progress for this release and is included for |
| 37 | +experimentation and feedback. |
| 38 | + |
| 39 | +Flang is able to parse a comprehensive subset of the Fortran language |
| 40 | +and check it for correctness. Flang is not yet able to generate LLVM IR |
| 41 | +for the source code and thus is unable to compile a running binary. |
| 42 | + |
| 43 | +Flang is able to unparse the input source code into a canonical form and |
| 44 | +emit it to allow testing. Flang can also invoke an external Fortran |
| 45 | +compiler on this canonical input. |
| 46 | + |
| 47 | +Flang's parser has comprehensive support for: |
| 48 | + * Fortran 2018 |
| 49 | + * OpenMP 4.5 |
| 50 | + * OpenACC 3.0 |
| 51 | + |
| 52 | +Interested users are invited to try to compile their Fortran codes with |
| 53 | +flang in and report any issues in parsing or semantic checking in |
| 54 | +[bugzilla](https://bugs.llvm.org/enter_bug.cgi?product=flang). |
| 55 | + |
| 56 | +### Major missing features |
| 57 | + |
| 58 | + * Flang is not supported on Windows platforms. |
| 59 | + |
| 60 | +## Using Flang |
| 61 | + |
| 62 | +Usage: `flang hello.f90 -o hello.bin` |
| 63 | + |
| 64 | +By default, Flang will parse the Fortran file `hello.f90` then unparse it to a |
| 65 | +canonical Fortran source file. Flang will then invoke an external |
| 66 | +Fortran compiler to compile this source file and link it, placing the |
| 67 | +resulting executable in `hello.bin`. |
| 68 | + |
| 69 | +To specify the external Fortran compiler, set the `F18_FC` environment |
| 70 | +variable to the name of the compiler binary and ensure that it is on your |
| 71 | +`PATH`. The default value for `F18_FC` is `gfortran`. |
| 72 | + |
| 73 | +When invoked with no source input, Flang will wait for input on stdin. |
| 74 | +When invoked in this way, Flang performs the same actions as if |
| 75 | +called with `-fdebug-measure-parse-tree -funparse` and does not invoke |
| 76 | +`F18_FC`. |
| 77 | + |
| 78 | +For a full list of options that Flang supports, run `flang --help`. |
| 79 | + |
| 80 | +## Additional Information |
| 81 | + |
| 82 | +Flang's documentation is located in the `flang/docs/` directory in the |
| 83 | +LLVM monorepo. |
| 84 | + |
| 85 | +If you have any questions or comments about Flang, please feel free to |
| 86 | +contact us via the [mailing |
| 87 | +list](https://lists.llvm.org/mailman/listinfo/flang-dev). |
0 commit comments