David Truby | 413467f | 2020-04-09 20:12:54 | [diff] [blame] | 1 | # Flang |
Steve Scalpone | 282358f | 2020-03-27 16:23:32 | [diff] [blame] | 2 | |
David Truby | 413467f | 2020-04-09 20:12:54 | [diff] [blame] | 3 | Flang is a ground-up implementation of a Fortran front end written in modern |
| 4 | C++. It started off as the f18 project (https://github.com/flang-compiler/f18) |
| 5 | with an aim to replace the previous flang project |
| 6 | (https://github.com/flang-compiler/flang) and address its various deficiencies. |
| 7 | F18 was subsequently accepted into the LLVM project and rechristened as Flang. |
Stephane Chauveau | 63141a0 | 2018-05-03 12:54:53 | [diff] [blame] | 8 | |
Sylvestre Ledru | f7bd4ef | 2023-01-06 16:09:21 | [diff] [blame] | 9 | Please note that flang is not ready yet for production usage. |
| 10 | |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 11 | ## Getting Started |
Stephane Chauveau | 63141a0 | 2018-05-03 12:54:53 | [diff] [blame] | 12 | |
sameeran joshi | eaff200 | 2020-08-18 09:35:51 | [diff] [blame] | 13 | Read more about flang in the [docs directory](docs). |
| 14 | Start with the [compiler overview](docs/Overview.md). |
psteinfeld | 1b50ccd | 2019-02-25 17:39:27 | [diff] [blame] | 15 | |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 16 | To better understand Fortran as a language |
David Truby | 413467f | 2020-04-09 20:12:54 | [diff] [blame] | 17 | and the specific grammar accepted by flang, |
sameeran joshi | eaff200 | 2020-08-18 09:35:51 | [diff] [blame] | 18 | read [Fortran For C Programmers](docs/FortranForCProgrammers.md) |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 19 | and |
brett koonce | f09587c | 2020-10-10 20:10:53 | [diff] [blame] | 20 | flang's specifications of the [Fortran grammar](docs/f2018-grammar.md) |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 21 | and |
brett koonce | f09587c | 2020-10-10 20:10:53 | [diff] [blame] | 22 | the [OpenMP grammar](docs/OpenMP-4.5-grammar.md). |
psteinfeld | 1b50ccd | 2019-02-25 17:39:27 | [diff] [blame] | 23 | |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 24 | Treatment of language extensions is covered |
sameeran joshi | eaff200 | 2020-08-18 09:35:51 | [diff] [blame] | 25 | in [this document](docs/Extensions.md). |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 26 | |
| 27 | To understand the compilers handling of intrinsics, |
sameeran joshi | eaff200 | 2020-08-18 09:35:51 | [diff] [blame] | 28 | see the [discussion of intrinsics](docs/Intrinsics.md). |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 29 | |
David Truby | 413467f | 2020-04-09 20:12:54 | [diff] [blame] | 30 | To understand how a flang program communicates with libraries at runtime, |
sameeran joshi | eaff200 | 2020-08-18 09:35:51 | [diff] [blame] | 31 | see the discussion of [runtime descriptors](docs/RuntimeDescriptor.md). |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 32 | |
| 33 | If you're interested in contributing to the compiler, |
sameeran joshi | eaff200 | 2020-08-18 09:35:51 | [diff] [blame] | 34 | read the [style guide](docs/C++style.md) |
Steve Scalpone | c90ce54 | 2019-03-20 06:47:18 | [diff] [blame] | 35 | and |
sameeran joshi | eaff200 | 2020-08-18 09:35:51 | [diff] [blame] | 36 | also review [how flang uses modern C++ features](docs/C++17.md). |
Stephane Chauveau | 63141a0 | 2018-05-03 12:54:53 | [diff] [blame] | 37 | |
Louis Dionne | 4ae83bb | 2022-02-09 17:08:44 | [diff] [blame] | 38 | If you are interested in writing new documentation, follow |
| 39 | [LLVM's Markdown style guide](https://github.com/llvm/llvm-project/blob/main/llvm/docs/MarkdownQuickstartTemplate.md). |
Sameeran joshi | bc9cdfa | 2020-08-24 14:21:45 | [diff] [blame] | 40 | |
Shivam Gupta | 85057c1 | 2023-04-12 06:54:15 | [diff] [blame] | 41 | Consult the [Getting Started with Flang](docs/GettingStarted.md) |
| 42 | for information on building and running flang. |