Boletim Fortran: Novembro de 2021#
Welcome to the November 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:
#345: Fix title in learning resources
#341: Add Cantera to package index
#329: Quantum Information book, WSL GUI, and typos
#340: Minor fixes in Best Practices
Trabalhos em desenvolvimento#
#201 (WIP): Internationalization for fortran-lang
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:
Trabalhos em desenvolvimento#
#554 (WIP): Funções Hash
#552 (WIP): Fix bug in stringlist
#536 (WIP): Fix conversion warnings
#520 (WIP): [stdlib_io] add
disp
(display your data).#517 (WIP): adding SPEC_TEMPLATE.md
#514 (WIP): pop, drop & get with basic range feature for stringlist
#500 (WIP): Algoritmos de seleção
#499 (WIP): [stdlib_linalg] matrix property checks
#498 (WIP): [stdlib_math] add
arg/argd/argpi
#494 (WIP): Add testing module to allow better structuring of test suites
#491 (WIP): Stdlib linked list
#488 (WIP): [stdlib_math] add
is_close
routines.#473 (WIP): Error stop improvements
#363 (WIP): Sorting string’s characters according to their ASCII values
#353 (WIP): Initial checkin for a module for tolerant comparison of reals
#286 (WIP): Probability Distribution and Statistical Functions – Beta Distribution Module
#278 (WIP): Probability Distribution and Statistical Functions – Gamma Distribution Module
#276 (WIP): Probability Distribution and Statistical Functions – Exponential Distribution Module
#273 (WIP): Probability Distribution and Statistical Functions – Normal Distribution Module
#189 (WIP): Initial implementation of COO / CSR sparse format
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:
#597: Add LFortran optimization flag to release profile
#595: List names without suffix (mainly for Windows)
#590: Change link command on Windows with
ifort
orifx
#575: Enable multiple build output directories
#587: Bootstrapping instructions version update
Trabalhos em desenvolvimento#
#598 (WIP): Update README.md compiler, archiver, & link flags
#569 (WIP): Add workflow for continuous delivery
#539 (WIP): Add parent packages into dependency tree
#498 (WIP): Compiler flags profiles
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#
Flang#
Atualizações de desenvolvimento recentes:
Em tempo de execução
Front-end and runtime support for CALL EXIT and ABORT
Fix formatted real input regression w/ spaces
Add runtime interface for GET_ENVIRONMENT_VARIABLE
More work on SYSTEM_CLOCK runtime API and implementation
Implementação do GET_ENVIRONMENT_VARIABLE(LENGTH)
OpenMP
Added OpenMP 5.0 specification based semantic checks for sections construct and test case for simd construct
Added test case for OpenMP 5.0 specification based semantic checks for parallel sections construct
Added OpenMP 5.0 specification based semantic checks for CRITICAL construct name resolution
Checks for THREADPRIVATE and DECLARE TARGET Directives
Initial parsing/sema for append_args clause for “declare variant”
FIR
Add typeparams to fir.array_update, fir.array_fetch and fir.array_merge_store operations. Add optional slice operands to fir.array_merge_store op.
Updated various ops - fir.extract_value, fir.insert_value, fir.allocmem, fir.alloca, fir.field_index, fir.freemem, fir.store
Move the parsers, printers and builders from the TableGen file to the .cpp file
Update fir.alloca op - Add pinned attributes and specific builders
Add ops: fir.char_convert and fir.array_modify
Add passes: external name interop, affine promotion, affine demotion, character conversion, abstract result conversion, cfg conversion
Adiciona canonalização de padrões fir.convert
Adiciona o DoLoopHelper
Add IfBuilder and utility functions
Adiciona funções utilitárias FIRBuilder
Add character utility functions in FIRBuilder
Adiciona Character helper
Add utility function to FIRBuilder and MutableBox
Add substring to fir.slice operation
Avoid slice with substr in fir.array_load, fir.array_coor and fir.array_merge_store
Driver
Error if uuidgen is not installed
Corrige
&
errôneoAdd actions that execute despite semantic errors
flang-omp-report
substitui std::vector por llvm::SmallVector
Switch from std::string to StringRef (where possible)
substitui std::map por llvm::DenseMap
Make builtin types more easily accessible; use them
Fix test regression from SQRT folding
Fold FINDLOC, MAXLOC, MINLOC, LGE/LGT/LLE/LLT, BTEST intrinsic functions
Take into account SubprogramDetails in GetInterfaceSymbol
Add debug dump method to evaluate::Expr and semantics::Symbol
Add a wrapper for Fortran main program
Improve runtime interface with C99 complex
Better error recovery for missing THEN in ELSE IF
Define IEEE_SCALB, IEEE_NEXT_AFTER, IEEE_NEXT_DOWN, IEEE_NEXT_UP
Catch mismatched parentheses in prescanner
Error checking for IBCLR/IBSET and ISHFT/SHIFT[ALR]
Document behavior for nonspecified/ambiguous cases
Add two negative tests for needExternalNameMangling
Expunge bogus semantic check for ELEMENTAL without dummies
Admit NULL() in generic procedure resolution cases
Fix bogus folding error for ISHFT(x, negative)
Emit unformatted headers & footers even with RECL=
Enforce rest of semantic constraint C919
Extension to distinguish specific procedures
Support NAMELIST input of short arrays
Corrige caso de resolução genérica
Speed common runtime cases of DOT_PRODUCT & MATMUL
Fix crash on empty formatted external READs
Extension: allow tabs in output format strings
Corrige DOT_PRODUCT por logical
Fix NAMELIST input bug with multiple subscript triplets
Support legacy usage of “A” edit descriptors for integer & real
Call notes are recorded and available upon request here. Please contact Alexis Perry-Holby at aperry@lanl.gov for document access.
LFortran#
155 Merge Requests merged in October 2021
AST to ASR transformation simplified and unified
Muitos intrínsecos novos adicionados
Rust style error messages, add first warnings and style suggestions
Fixed bugs in location information
Adicionado preprocessador C
We are looking for new contributors. Please do not hesitate to contact us if you are interested. We will help you get up to speed.
Eventos#
We have adopted two new Fortran-lang guidelines:
Governance document that describes how Fortran-lang projects are managed
Administration, moderation, and editing guide for Fortran Discourse Both documents are part of an effort to increase transparency between Fortran-lang administrators and the rest of the community.
The US Fortran Standards Committee (J3) held the meeting 225 October 18-27, 2021. The meeting was virtual and on Mondays and Wednesdays only. Discussions focused on resolving any outstanding issues to the Fortran 202X features. Here are the links to the meeting agenda, minutes, and papers. See also the Fortran-lang and LFortran liaison report to J3 submitted by Ondřej Čertík and Milan Curcic.
We had our 19th Fortran Monthly call on October 19. You can watch the recording below:
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: