Fortran newsletter: January 2021#
Happy New Year! Welcome to the January 2021 edition of the monthly Fortran newsletter. The newsletter comes out at the beginning of every month and details Fortran news from the previous month.
This month we’ve had a few updates to the website:
#179: Fix word spelling error in quickstart page
#182: Update compilers page following Intel oneAPI release
#187 (WIP): Correct compiler page and tutorial regarding Intel oneAPI and PGI to NVIDIA
#174 (WIP): We are searching for a representative Fortran code snippet for the website and are looking forward to suggestions.
#190 (WIP): Add links to fpm contributing guidelines
Let us know if you have any suggestions for the website and its content. We welcome any new contributors to the website and the tutorials page in particular - see the contributor guide for how to get started.
Fortran Standard Library#
Here’s what’s new in
#256: Add the method
#257: Improve CMake check for F18 error stop
#260: Add Intel oneAPI Fortran compiler to CI
#261: Add a level option to ignore logging messages
#270: Add GFortran 10 to CI
#275: Add MSYS2 systems to Windows CI
#282: Add a note about memory issues when compiling stdlib with the support of arrays to up 15 ranks
#283: Improve the compilation load by splitting submodules
Work in progress:
#269 (WIP): Implementation of a module for handling lists of strings
#284 (WIP): Required changes to be able to use
stdlibas a subproject in CMake
#189 (WIP): Initial implementation of sparse matrices.
Don’t hesitate to test and review these pull requests!
The candidate for file system operations to be included in stdlib is being developed by @MarDiehl and @arjenmarkus in this repository. Please try it out and let us know how it works, if there are any issues, or if the API can be improved.
Fortran Package Manager#
Here’s what’s new in
setup-fpm action: GitHub Action to setup the Fortran Package Manager on Ubuntu, MacOS and Windows runners
Discussion board: For questions & answers, sharing of ideas, showing off projects and, of course, discussions around fpm
#248: Refactor backend for incremental rebuilds
#266: Dependency management and
#255 Setting the compiler and specifying test or app target
#262: Add -fcoarray=single to default gfortran flags
#260: Fix CI to test release build
#267: Fix enumeration of non-library link objects
#268: Fix dependency tracking issue in bootstrap version
#271: Fix Windows run and test commands
#273: Update developer documentation (manifest + command line)
#274: Update README with link to setup-fpm github action.
#280: Create specification for example section
#281: Cleanup: Remove archived Rust prototype
#284: Document model and backend for developers
#285: CI: update naming of release binaries
#286: Implement check for duplicated program names
#289: Add support for same compilers as Fortran version to Haskell version
#291: Initial implementation of
fpm build --show-model
#292: Specify the correct help for
fpm run -h
#293: Fix: missing error check after
#294: Add: support for detecting .f and .F files
#300: Remove -coarray=single option from ifort compiler default options
#303: Fixes to source parsing
#304: Remove note on not supported dependencies in program targets
#307: Fix: program object file collision
#315: Remove: -ffast-math in gfortran default release flags
#322: Group sources by package in the model
Work in progress:
First beta release (WIP): First feature-complete release of the Fortran implementation.
#316 (WIP): Update subcommand “new” to reflect the addition of support for examples
fpm is still in early development and we need as much help as we can get.
Here’s how you can help today:
Use it and let us know what you think! Read the fpm packaging guide to learn how to build your package with fpm, and the manifest reference to learn what are all the things that you can specify in the fpm.toml file.
Browse existing fpm packages on the fortran-lang website
Browse the open issues and see if you can help implement any fixes or features.
Adapt your Fortran package for fpm and submit it to the Registry.
Improve the documentation.
The short-term goal of fpm is to make development and installation of Fortran packages with dependencies easier. Its long term goal is to build a rich and decentralized ecosystem of Fortran packages and create a healthy environment in which new open source Fortran projects are created and published with ease.
There are several pull requests out for evaluation.
Only one pull request was merged in December:
Alexis-Perry Holby (firstname.lastname@example.org) has taken over the Flang biweekly calls. An invitation was sent to the flang-dev LLVM email list on December 22nd. Call notes will be sent to the flang-dev email list and also recorded here.
Recent development updates:
Semantic analysis fix for index-names of
Continued work on parser support for
OpenMP semantic checks: atomic, flush
Continued work on new driver
Fix for list-directed REAL output editing
Bug fixes: USE of USE of generic, crash in folding (#48437), crash in OpenMP semantic check (#48308),
OpenACC: update serial construct clauses for 3.1, enforce restriction on routine directive and clauses
OpenMP: adding important clauses to OmpClause, task reduction clause
We had our 7th Fortran Monthly call on December 15. You can watch the recording below:
We thank everybody who contributed to fortran-lang in the past month by commenting in any of these repositories: