Boletim Fortran: Maio de 2021#

Welcome to the May 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.

fortran-lang.org#

This month we’ve had several updates to the website:

  • #244: Add a first year announcement

  • #236: Add dl_poly_4 to package index

  • #220: Include learn resources to online courses

Trabalhos em andamento:

  • #201 (WIP): Internationalization for fortran-lang

  • #246 (WIP): Transferring fortran90.org “Fortran Best Practise” into a mini-book

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.

Biblioteca Padrão Fortran (Fortran Standard Library)#

Here’s what’s new in stdlib:

  • #391: Adiciona modelos de issue

  • #388: Changed filenames for bitset tests

  • #384: Implement starts_with and ends_with functions

  • #367: Add Intel compiler workflow for OSX

  • #360: Summarize build toolchain workflow and implied rules

  • #343: Implement strip and chomp as supplement to trim

  • #336: Add functions to convert integer/logical values to character values

Trabalhos em andamento:

  • #189 (WIP): Initial implementation of sparse matrices.

  • #272 (WIP), #273 (WIP), #276 (WIP), #278 (WIP): Implementation of the stdlib_stats_distribution modules. It provides probability distribution and statistical functions.

  • #311 (WIP): Implementation of a module for handling lists of strings

  • #313 (WIP): Legendre polynomials and Gaussian quadrature

  • #333 (WIP): Provide abstract base class for a string object

  • #349 (WIP): Simplify test makefile

  • #353 (WIP): Initial checkin for a module for tolerant comparison of reals

  • #355 (WIP): Implement clip function

  • #359 (WIP): Add general contributing guidelines to stdlib

  • #363 (WIP): Add sort to stdlib_string_type module

  • #372 (WIP): Correct implementation of to_title

  • #386 (WIP): Start the addition of the module stdlib_sorting

Please help improve stdlib by testing and reviewing 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.

Gerenciador de Pacotes Fortran#

Here’s what’s new in fpm:

  • #420: Phase out Haskell fpm

  • #468: Identifica OpenBSD

  • #465: Fix typo in README

  • #442: Use lib instead of ar on Windows

  • #440: Minor edits to README

  • #438: Add external-modules key to build table for non-fpm modules

  • #437: Remove coarray single from default Intel flags

  • #433: Fix to allow compiling C with Intel CC

  • #431: Use different compiler flags on differnt platforms for Intel

  • #429: Use wget if curl is missing in install.sh

Trabalhos em andamento:

  • First beta release (WIP): First feature-complete release of the Fortran implementation.

  • #364 (WIP): Plugin alpha version

  • #423 (WIP): Use default instead of master to reference the repository HEAD

  • #444 (WIP): Allow to find include files / modules in CPATH environment variable

  • #449 (WIP): Response files with ar on Windows

  • #450 (WIP): Remove coarray flag from intel debug settings

  • #451 (WIP): Refactor: use objects to represent compilers and archiver

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.

  • Navegue pelos pacotes fpm existentes no site fortran-lang

  • 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.

  • Ajude a melhorar a documentação.

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.

Compiladores#

Classic Flang#

A total of 5 pull requests were merged in April.

LLVM Flang#

Atualizações de desenvolvimento recentes:

  • OpenMP

    • [OPENMP5.1]Initial support for novariants clause.

    • [OPENMP5.1]Initial support for nocontext clause.

    • Add functionality to check «close nesting» of regions, which can be used for Semantic checks

    • [OpenMP5.1] Initial support for masked directive and filter clause

    • Modify semantic check for nesting of ordered regions to include close nesting check.

    • Remove OmpEndLoopDirective handles from code.

    • Add General Semantic Checks for Allocate Directive

  • Novo Driver

    • Adiciona opções para -Werror

    • Modify the existing test cases that use -Mstandard in f18, to use -pedantic and %flang_fc1 to share with the new driver

    • Adiciona suporte para -cpp/-nocpp

    • Correção do -fdebug-dump-provenance

    • Add debug options not requiring semantic checks

    • Remove %flang-new from the LIT configuration

    • Update the regression tests to use the new driver when enabled

    • Adiciona suporte para -fget-definition

  • Move .f77 to the list of fixed-form file extensions

  • Em tempo de execução

    • Implementação de reduções

    • Implementa funções numéricas intrínsecas

    • função intrínseca TRANSFER()

    • RANDOM_NUMBER, RANDOM_SEED, RANDOM_INIT

    • Implement IPARITY, PARITY, and FINDLOC reductions

  • Fix unit test failure on POWER

  • Improve constant folding for type parameter inquiries

  • Check for conflicting BIND(C) names

  • Enforce a limit on recursive PDT instantiations

  • Aceita & dobra IEEE_SELECTED_REAL_KIND

  • Define missing & needed IEEE_ARITHMETIC symbols

  • Handle instantiation of procedure pointer components

  • Fix checking of argument passing for parameterized derived types

  • Fix spurious errors from runtime derived type table construction

  • Check for attributes specific to dummy arguments

  • Handle structure constructors with forward references to PDTs

Call notes will be sent to the flang-dev email list and also recorded here.

LFortran#

  • 98 Merge Requests merged in April

  • Working towards compiling the SNAP proxy app (#313):

    • Code can be parsed to AST and transformed back to source code which compiles with other compilers and works

    • About 3rd of the files can be transformed from AST to ASR and the modules saved

  • Outras melhorias:

    • Runtime library (more functions work)

    • Funções Aninhadas

    • Tipos derivados

Eventos#

  • We had our 11th Fortran Monthly call on April 22. You can watch the recording below:

  • Wadud Miah (@wadudmiah) from the University of Southampton presented a webinar on Fortran for High Performance Computing, organized by Excellerat. You can find the slides and the recording here.

As usual, subscribe to the mailing list and/or join the Discourse to stay tuned with the future meetings.

Colaboradores#

We thank everybody who contributed to fortran-lang in the past month by commenting in any of these repositories: