Boletim Fortran: Abril de 2022#
Welcome to the April 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#
Here’s what’s new in the fortran-lang.org repo:
#379: Boletim para Março de 2022
#383: Updated VS Code extensions
#381: add string array to learn
#384: Resolve erros de digitação #377
Trabalhos em desenvolvimento#
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:
#632: doc: fix some typos
#629: option to disable testing by setting BUILD_TESTING to OFF
#631: Preparation for 0.2.0 release
#637: Only set Fortran arguments for Fortran compiler
#642: Fix linking issue with shared libraries
Trabalhos em desenvolvimento#
#625 (WIP): Gamma special function
#611 (WIP): Hash maps
#604 (WIP): Add get_argument, get_variable and set_variable
#580 (WIP): Add terminal and color escape sequences
#552 (WIP): fixed bug in stringlist
#536 (WIP): Fix conversion warnings
#520 (WIP): [stdlib_io] add
disp
(display variable values formatted).#517 (WIP): adding SPEC_TEMPLATE.md #504
#514 (WIP): pop, drop & get with basic range feature for stringlist
#491 (WIP): Stdlib linked list
#473 (WIP): Error stop improvements
#363 (WIP): Sorting string’s characters according to their ASCII values
#286 (WIP): Probability Distribution and Statistical Functions – Beta Distribution Module
#278 (WIP): Probability Distribution and Statistical Functions – Gamma 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:
#675: Fix for backtrace error when file not found in: src/fpm_source_parsing.f90
#677: Fix issue with backend pretty output
#684: fix: remove remove unnecessary space in fpm new cmd
#8 (
setup-fpm
): Update to v4 in usage example in README
Trabalhos em desenvolvimento#
#685 (WIP): fix: function for getting executable path
#676 (WIP): Tree shaking for modules
#671 (WIP): Add
library-dir
to support-Lpath
#665 (WIP): add clean command
#653 (WIP): Enable profiles in toml
#608 (WIP): –env switch lets you specify the prefix of the compiler-related environment variables
#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:
FIR
Lower IO open and close statements
Lower basic IO file statements
Declaração inquire de baixo nível
Handle module in lowering pass
Lower more cases of assignments on allocatable variables
Add lowering for host association
Lower allocate and deallocate statements
soma intrínseca de baixo nível
Lower computed and assigned goto
construção associada de baixo nível
Update ArrayValueCopy to support array_amend and array_access
Lower more array character cases
Lower basic derived types
Declaração «where» de baixo nível
Lower general forall statement
Lower pointer component in derived type
Lower of elemental calls in array expression
Add tests for allocatable global
Add support for linkonce_odr in FIR
chamadas elementares de baixo nível
intrínseco ALL de baixo nível
bloco comum de baixo nível
Declaração «format» de baixo nível
Write a pass to annotate constant operands on FIR ops
intrínseco ANY de baixo nível
Add support for lowering the dot_product intrinsic
Add support for lowering the dim intrinsic
Add support for lowering of the ibits intrinsic
Lower more pointer assignments/disassociation cases
Declaração de entrada de baixo nível
Retorno alternativo de baixo nível
Alocado intrínseco de baixo nível
Add lowering for the following character related intrinsics: len, len_trim, lge, lgt, lle and llt
Adds lowering for min/max intrinsics: max, maxloc, maxval, minloc, minval
intrínsecos random_[init|number|seed] de baixo nível
Lower date_and_time and cpu_time intrinsics
Intrínseco system_clock de baixo nível
Add support for lowering of the ibset intrinsic
Intrínseco transfer de baixo nível
Lower adjustl and adjustr intrinsics
Intrínseco count de baixo nível
Add lowering for the set_exponent intrinsic
Driver
Adiciona suporte para -debug-dump-pft
Add support for -S and implement -c/-emit-obj
Adiciona suporte para -mllvm
OpenMP
[mlir]Generating enums in accordance with the guidelines
Added basic connect to lower OpenMP constructs
Support for dump OpenMP/OpenACC declarative directives PFT in module
Add OpenMP and OpenACC flags to bbc
Allow data transfer stmt control list errors to be caught
Extension: don’t require commas between most edit descriptors in formats
Fix result type of «procedure(abs) :: f»
Catch READ/WRITE on direct-access file without REC=
Honor RECL= in list-directed/namelist output
Accommodate module subprograms defined in the same module
Extend ProvenanceRange::Suffix() to handle crash case
Remove bogus messages for actual/dummy procedure argument compatibility
Support PDT type descriptors in codegen
Handle optional TARGET associate in ASSOCIATED runtime
Generate PDT runtime type info in the type definition scope
Accommodate arrays with a zero-extent dimension in location folding
Avoid crash case in provenance mapping
Make per-argument intrinsic error messages more localized
Use faster path for default formatted character input
Runtime validation of SPREAD(DIM=dim) argument
Make uninitialized allocatable components explicitly NULL() in structure constructors
Fix module file missing USE for shadowed derived type
Adiciona classes «nonfatal message»
Distinguish usage and portability warning messages
Use unix logical representation for fir.logical
Fix extent computation in finalization
Corrige processamento de ModuleLikeUnit evaluationList
Do not return true for pointer sub-object in IsPointerObject
Corrige builds DYLIB
Melhora as mensagens de falha de tempo de execução
Add runtime support for GET_COMMAND
IEEE_ARITHMETIC must imply USE IEEE_EXCEPTIONS
LBOUND() edge case: empty dimension
Hanlde COMPLEX 2/3/10 in runtime TypeCode(cat, kind)
fulfill -Msave/-fno-automatic in main programs too
Relax fir.rebox verifier with characters
Call notes are recorded and available upon request here. Please contact Alexis Perry-Holby at aperry@lanl.gov for document access.
LFortran#
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#
The «State of Fortran» paper by Kedward et al. has been accepted for publication in the IEEE journal Computing in Science and Engineering (CiSE). You can read the pre-print on arXiv, or find the paper in Early Access on the CiSE website.
The contributor application window for this year’s Google Summer of Code is approaching fast. It opens April 4 and closes April 19. See the Fortran-lang GSoC 2022 page for information about the projects and how to apply. To learn more about GSoC and what has changed since last year, please see the GSoC 2022 announcement. If you’d like to participate, please let us know and we’ll help you get started.
We had our 24th Fortran Monthly call on March 15. 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: