|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Fortran newsletter: February 2021" |
| 4 | +category: newsletter |
| 5 | +author: Sebastian Ehlert, Milan Curcic, Laurence Kedward, Jérémie Vandenplas, Alexis Perry-Holby |
| 6 | +--- |
| 7 | + |
| 8 | +Welcome to the February 2021 edition of the monthly Fortran newsletter. |
| 9 | +The newsletter comes out at the beginning of every month and details |
| 10 | +Fortran news from the previous month. |
| 11 | + |
| 12 | +<ul id="page-nav"></ul> |
| 13 | + |
| 14 | +## fortran-lang.org |
| 15 | + |
| 16 | +This month we've had a few updates to the website: |
| 17 | + |
| 18 | +* [#190](https://github.com/fortran-lang/fortran-lang.org/pull/190): |
| 19 | + Add links to fpm contributing guidelines |
| 20 | + |
| 21 | +Ongoing work: |
| 22 | + |
| 23 | +* [#191](https://github.com/fortran-lang/fortran-lang.org/pull/191) (WIP): |
| 24 | + Fix author/maintainer output in fpm registry |
| 25 | +* [#187](https://github.com/fortran-lang/fortran-lang.org/pull/187) (WIP): |
| 26 | + Correct compiler page and tutorial regarding Intel oneAPI and PGI to NVIDIA |
| 27 | +* [#174](https://github.com/fortran-lang/fortran-lang.org/issues/174) (WIP): |
| 28 | + We are searching for a representative Fortran code snippet for the website and are looking forward to suggestions. |
| 29 | + |
| 30 | +[Let us know](https://github.com/fortran-lang/fortran-lang.org/issues) if you have any suggestions for the website and its content. |
| 31 | +We welcome any new contributors to the website and the tutorials page in particular - see the [contributor guide](https://github.com/fortran-lang/fortran-lang.org/blob/master/CONTRIBUTING.md) for how to get started. |
| 32 | + |
| 33 | +## Fortran Standard Library |
| 34 | + |
| 35 | +Here's what's new in `stdlib`: |
| 36 | + |
| 37 | +* [#303](https://github.com/fortran-lang/stdlib/pull/303), |
| 38 | + [#301](https://github.com/fortran-lang/stdlib/pull/301), |
| 39 | + [#294](https://github.com/fortran-lang/stdlib/pull/294): |
| 40 | + Fixes and improvements for the manual Makefile build |
| 41 | +* [#293](https://github.com/fortran-lang/stdlib/pull/293): |
| 42 | + Write a more verbose introduction to building stdlib |
| 43 | +* [#291](https://github.com/fortran-lang/stdlib/pull/291): |
| 44 | + Export package files (CMake and pkg-config) |
| 45 | +* [#290](https://github.com/fortran-lang/stdlib/pull/290): |
| 46 | + Rename CMake project from stdlib to fortran\_stdlib |
| 47 | +* [#288](https://github.com/fortran-lang/stdlib/pull/288): |
| 48 | + Follow GNU install conventions |
| 49 | +* [#284](https://github.com/fortran-lang/stdlib/pull/284): |
| 50 | + Required changes to be able to use `stdlib` as a subproject in CMake |
| 51 | +* [CMake example](https://github.com/fortran-lang/stdlib-cmake-example): |
| 52 | + Integration of the Fortran standard library in CMake projects |
| 53 | + |
| 54 | +Work in progress: |
| 55 | + |
| 56 | +* [#304](https://github.com/fortran-lang/stdlib/pull/304) (WIP): |
| 57 | + Add supported compilers MinGW 8, 9, 10 |
| 58 | +* [#269](https://github.com/fortran-lang/stdlib/pull/269) (WIP): |
| 59 | + Implementation of a module for handling lists of strings |
| 60 | +* [#271](https://github.com/fortran-lang/stdlib/pull/271) (WIP), |
| 61 | + [#272](https://github.com/fortran-lang/stdlib/pull/272) (WIP), |
| 62 | + [#273](https://github.com/fortran-lang/stdlib/pull/273) (WIP), |
| 63 | + [#276](https://github.com/fortran-lang/stdlib/pull/276) (WIP), |
| 64 | + [#278](https://github.com/fortran-lang/stdlib/pull/278) (WIP): |
| 65 | + Implementation of the `stdlib_stats_distribution` modules. |
| 66 | + It provides probability distribution and statistical functions. |
| 67 | +* [#189](https://github.com/fortran-lang/stdlib/pull/189) (WIP): |
| 68 | + Initial implementation of sparse matrices. |
| 69 | + |
| 70 | +Don't hesitate to test and review these pull requests! |
| 71 | + |
| 72 | +Otherwise, ongoing discussions continue about usability of `stdlib` |
| 73 | +([#7](https://github.com/fortran-lang/stdlib/issues/7), |
| 74 | +[#215](https://github.com/fortran-lang/stdlib/issues/215), |
| 75 | +[#279](https://github.com/fortran-lang/stdlib/issues/279), |
| 76 | +[#280](https://github.com/fortran-lang/stdlib/issues/280), |
| 77 | +[#285](https://github.com/fortran-lang/stdlib/issues/285)), |
| 78 | +and new implementations for `stdlib` |
| 79 | +([#135](https://github.com/fortran-lang/stdlib/issues/135), |
| 80 | +[#212](https://github.com/fortran-lang/stdlib/issues/212), |
| 81 | +[#234](https://github.com/fortran-lang/stdlib/issues/234), |
| 82 | +[#241](https://github.com/fortran-lang/stdlib/issues/241), |
| 83 | +[#258](https://github.com/fortran-lang/stdlib/issues/258), |
| 84 | +[#259](https://github.com/fortran-lang/stdlib/issues/259), |
| 85 | +[#262](https://github.com/fortran-lang/stdlib/issues/262), |
| 86 | +[#268](https://github.com/fortran-lang/stdlib/issues/268), |
| 87 | +[#277](https://github.com/fortran-lang/stdlib/issues/277)). |
| 88 | + |
| 89 | + |
| 90 | +The candidate for file system operations to be included in stdlib is being developed by |
| 91 | +[@MarDiehl](https://github.com/MarDiehl) and [@arjenmarkus](https://github.com/arjenmarkus) |
| 92 | +in [this repository](https://github.com/MarDiehl/stdlib_os). |
| 93 | +Please try it out and let us know how it works, if there are any issues, or if the API can be improved. |
| 94 | + |
| 95 | +## Fortran Package Manager |
| 96 | + |
| 97 | +Here's what's new in `fpm`: |
| 98 | + |
| 99 | +* [#342](https://github.com/fortran-lang/fpm/pull/342): |
| 100 | + Fix broken link in contributing guidelines |
| 101 | +* [#337](https://github.com/fortran-lang/fpm/pull/337): |
| 102 | + Allow hyphens in fpm project names in "fpm new" |
| 103 | +* [#335](https://github.com/fortran-lang/fpm/pull/335): |
| 104 | + Fix: performance regression |
| 105 | +* [#334](https://github.com/fortran-lang/fpm/pull/334): |
| 106 | + Remove a name clash in the fpm testsuite |
| 107 | + |
| 108 | +Work in progress: |
| 109 | + |
| 110 | +* [First beta release](https://github.com/fortran-lang/fpm/milestone/1) (WIP): |
| 111 | + First feature-complete release of the Fortran implementation. |
| 112 | +* [#230](https://github.com/fortran-lang/fpm/pull/230), |
| 113 | + [#261](https://github.com/fortran-lang/fpm/pull/261) (WIP): |
| 114 | + Specification of the fpm CLI. |
| 115 | +* [#316](https://github.com/fortran-lang/fpm/pull/316) (WIP): |
| 116 | + Update subcommand "new" to reflect the addition of support for examples |
| 117 | +* [#345](https://github.com/fortran-lang/fpm/pull/345) (WIP): |
| 118 | + Update: fpm\_backend with dynamic openmp scheduling |
| 119 | + |
| 120 | +`fpm` is still in early development and we need as much help as we can get. |
| 121 | +Here's how you can help today: |
| 122 | + |
| 123 | +* Use it and let us know what you think! Read the [fpm packaging guide](https://github.com/fortran-lang/fpm/blob/master/PACKAGING.md) to learn how to build your package with fpm, and the [manifest reference](https://github.com/fortran-lang/fpm/blob/master/manifest-reference.md) to learn what are all the things that you can specify in the fpm.toml file. |
| 124 | +* Browse existing *fpm* packages on the [fortran-lang website](https://fortran-lang.org/packages/fpm) |
| 125 | +* Browse the [open issues](https://github.com/fortran-lang/fpm/issues) and see if you can help implement any fixes or features. |
| 126 | +* Adapt your Fortran package for fpm and submit it to the [Registry](https://github.com/fortran-lang/fpm-registry). |
| 127 | +* Improve the documentation. |
| 128 | + |
| 129 | +The short-term goal of fpm is to make development and installation of Fortran packages with dependencies easier. |
| 130 | +Its long term goal is to build a rich and decentralized ecosystem of Fortran packages and create a healthy |
| 131 | +environment in which new open source Fortran projects are created and published with ease. |
| 132 | + |
| 133 | +## Compilers |
| 134 | + |
| 135 | +### Classic Flang |
| 136 | + |
| 137 | +There are a number of pull requests out for evaluation. |
| 138 | + |
| 139 | +A total of 12 pull requests were merged in January. |
| 140 | + |
| 141 | +* [PR#932 Do not assume unempty derived types](https://github.com/flang-compiler/flang/pull/932) |
| 142 | +* [PR#957 Support Prefetch Directive](https://github.com/flang-compiler/flang/pull/957) |
| 143 | +* [PR#947 Fix gcc-10 compilaton issues](https://github.com/flang-compiler/flang/pull/947) |
| 144 | +* [PR#948 Expand CI to run with GCC-9/10 and LLVM-9/10/11](https://github.com/flang-compiler/flang/pull/948) |
| 145 | +* [PR#949 USE rename should check if renamed sptr is available in the scope](https://github.com/flang-compiler/flang/pull/949) |
| 146 | +* [PR#971 Remove dwarfdump_prolog.f90 test since it is dependent on codegen](https://github.com/flang-compiler/flang/pull/971) |
| 147 | +* [PR#940 Flang should generate debug location for limited instructions in prolog](https://github.com/flang-compiler/flang/pull/940) |
| 148 | +* [PR#977 Update apt data before installing sphinx](https://github.com/flang-compiler/flang/pull/977) |
| 149 | +* [PR#751 Fix for len intrinsic returning int*8 in some cases](https://github.com/flang-compiler/flang/pull/751) |
| 150 | +* [PR#956 Minor FileCheck pattern fixes](https://github.com/flang-compiler/flang/pull/956) |
| 151 | +* [PR#978 Fix the readme to point to the correct flang-dev list](https://github.com/flang-compiler/flang/pull/978) |
| 152 | +* [PR#979 Rename direct header to avoid windows conflict](https://github.com/flang-compiler/flang/pull/979) |
| 153 | + |
| 154 | + |
| 155 | +### LLVM Flang |
| 156 | + |
| 157 | +Recent development updates: |
| 158 | + |
| 159 | +* OpenMP semantic checks: private, firstprivate, lastprivate, Workshare Construct, `DO` loop restrictions |
| 160 | +* Detect call to abstract interface |
| 161 | +* OpenMP - add task_reduction clause, make reduction clause part of OmpClause |
| 162 | +* New Driver - adding support for various options, testing improvements, standard macro pre-definitions, fixed-form detection, CMake improvements |
| 163 | +* OpenACC - semantic checks to enforce declare directive restrictions |
| 164 | +* Internal subprogram improvements |
| 165 | +* OpenMP/OpenACC - Extend CheckNoBranching to handle branching provided by LabelEnforce |
| 166 | +* Disallow `INTENT` attribute on procedure dummy arguments |
| 167 | +* Module file improvements and bug fixes |
| 168 | +* Add tests for procedure arguments with implicit interfaces |
| 169 | + |
| 170 | +Call notes will be sent to the _flang-dev_ email list and also recorded [here](https://docs.google.com/document/d/10T-S2J3GrahpG4Ooif93NSTz2zBW0MQc_RlwHi0-afY). |
| 171 | + |
| 172 | + |
| 173 | +## Events |
| 174 | + |
| 175 | +* We had our 8th Fortran Monthly call on January 19. |
| 176 | +You can watch the recording below: |
| 177 | + |
| 178 | +<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/QfiBUAgI3kw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> |
| 179 | + |
| 180 | +* This year fortran-lang will be applying as a mentor organisation for [Google Summer of Code](https://summerofcode.withgoogle.com/). |
| 181 | +We have started working on the application and the project ideas; you can join the ongoing discussion [here](https://fortran-lang.discourse.group/t/google-summer-of-code-2021/658). |
| 182 | +If you'd like to help us flesh out the ideas, or have a project idea of your own, please join our upcoming video calls on February 9 and 16 (call info will be posted in the Discourse thread), or write directly in the Discourse thread. |
| 183 | +If you're a student, or know students who are [eligible to participate](https://developers.google.com/open-source/gsoc/faq#what_are_the_eligibility_requirements_for_participation), and you'd like to help build the Fortran ecosystem please reach out and let us know. |
| 184 | + |
| 185 | +As usual, subscribe to the [mailing list](https://groups.io/g/fortran-lang) and/or |
| 186 | +join the [Discourse](https://fortran-lang.discourse.group) to stay tuned with the future meetings. |
| 187 | + |
| 188 | +## Contributors |
| 189 | + |
| 190 | +We thank everybody who contributed to fortran-lang in the past month by |
| 191 | +commenting in any of these repositories: |
| 192 | + |
| 193 | +* [fortran-lang/stdlib](https://github.com/fortran-lang/stdlib) |
| 194 | +* [fortran-lang/stdlib-cmake-example](https://github.com/fortran-lang/stdlib-cmake-example) |
| 195 | +* [fortran-lang/fpm](https://github.com/fortran-lang/fpm) |
| 196 | +* [fortran-lang/fpm-registry](https://github.com/fortran-lang/fpm-registry) |
| 197 | +* [fortran-lang/setup-fpm](https://github.com/fortran-lang/setup-fpm) |
| 198 | +* [fortran-lang/fortran-lang.org](https://github.com/fortran-lang/fortran-lang.org) |
| 199 | +* [fortran-lang/benchmarks](https://github.com/fortran-lang/benchmarks) |
| 200 | +* [j3-fortran/fortran\_proposals](https://github.com/j3-fortran/fortran_proposals) |
| 201 | + |
| 202 | +<div id="gh-contributors" data-startdate="January 01 2021" data-enddate="January 31 2021" height="500px"></div> |
0 commit comments