Fortran newsletter: October 2021#

Welcome to the October 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#

本月我们对网站进行了几次更新:

  • #305: September newsletter draft

  • #300: Add QCxMS to package index

  • #302: Update Silverfrost compiler description.

  • #307: Fixed typo

  • #308: remove excess ‘mpi’ tag from fortran2018-examples

  • #246: Transferring fortran90.org “Fortran Best Practices” into a mini-book

  • #314: grammar and spelling from issue #313

  • #317: more grammar, spelling, and rewording for Fortran Best Practices

  • #324: replaced “be found be found” with “be found”

  • #320: Alternative approach to avoiding integer division

  • #328: Add incompact3d to package index

  • #333: Add fparser to package index

  • #335: Adding two more packages to the index

  • #334: Add pFlogger to package index

  • #336: One more package

Work in progress#

  • #329 (WIP): Quantum Information book, WSL GUI, and typos

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

让我们知道 如果你对网站及其内容有任何建议。我们欢迎任何新的贡献者加入网站,尤其是教程页面 —— 请参阅 贡献者指南 了解如何开始。

Fortran 标准库#

Here’s what’s new in stdlib:

  • #509: fixed typo

  • #503: refactor documentation regarding consistency

  • #511: Correctly set CMAKE_INSTALL_MODULEDIR cache variable

  • #513: Update issue templates

  • #523: Rename config.yaml -> config.yml

  • #508: github-ci: add fpm support

  • #475: Generating sorting subroutines specific to character type with fypp

  • #525: Add files generated by tests to gitignore

  • #529: Add maintainer entry to fpm manifest

  • #530: Make it clearer how the user can control compiler optimization

  • #528: Reduce redundancy caused by optional arguments

  • #3 (stdlib-cmake-example): Add example integration with test-drive

Work in progress#

  • #543 (WIP): Fix string concat

  • #539 (WIP): Add function gcd

  • #538 (WIP): Bump stdlib version to 0.1.0

  • #537 (WIP): Add a changelog for the current features of stdlib

  • #536 (WIP): Fix conversion warnings

  • #521 (WIP): Ensure module output directory is generated in configure stage

  • #520 (WIP): [stdlib_io] add disp(display your data).

  • #517 (WIP): adding SPEC_TEMPLATE.md #504

  • #514 (WIP): pop, drop & get with basic range feature for stringlist

  • #500 (WIP): Selection algorithms

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

  • #455 (WIP): stdlib_hash: waterhash algorithm

  • #452 (WIP): Implementation of a map data type

  • #363 (WIP): Sorting string’s characters according to their ASCII values

  • #353 (进行中):实现一个用于实数宽松比较的模块的初始版本

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

  • #272 (WIP): Probability Distribution and Statistical Functions – Uniform Distribution Module

  • #189 (WIP): Initial implementation of COO / CSR sparse format

请通过测试和审查拉取请求帮助改进 stdlib !

@MarDiehl@arjenmarkus该仓库。请尝试一下,如果有任何问题,或者 API 是否可以改进,请告诉我们它是如何工作的。

Fortran 包管理器#

Here’s what’s new in fpm:

  • #521: expand tabs

  • #557: Update installer script to update subprojects first

  • #558: Add issue templates

  • #565: Default branch renaming aftermath

  • #562: Add new distributions where fpm is available to README

  • #563: Add workflow to create single source fpm version

  • #564: Separate upload stage in CI testing

  • #572: Build no tests by default

  • #549: Allow setting, archiver, C compiler flags and linker flags from commandline

  • #578: help text was truncated

  • #579: Fix dir not getting removed after testing fpm

  • #584: Actually read environment variables

Work in progress#

  • #575 (WIP): Enable multiple build output directories

  • #569 (WIP): Add workflow for continuous delivery

  • #539 (WIP): Add parent packages into dependency tree

  • #498 (WIP): Compiler flags profiles

fpm 仍处于早期开发阶段,我们需要尽可能多的帮助。以下是你今天可以提供的帮助:

  • 使用它,让我们知道你的想法!阅读 fpm 打包指南 了解如何使用 fpm 构建你的包,以及 清单参考 了解你可以在 fpm.toml 文件中指定的所有内容。

  • fortran-lang 网站 上浏览现有的 fpm

  • 浏览 开启的 issues,看看你是否可以帮助实施任何修复或功能。

  • 为 fpm 调整 Fortran 包并将其提交到 Registry

  • 改进文档。

fpm 的短期目标是使具有依赖关系的 Fortran 包的开发和安装更容易。其长期目标是构建一个丰富且分散的 Fortran 软件包生态系统,并创建一个健康的环境,在该环境中轻松创建和发布新的开源 Fortran 项目。

编译器#

Flang#

最近的开发更新:

  • New Driver and CMake integration:

    • flang-omp-report plugin - first full fledged frontend plugin has been contributed

    • CMake integration - waiting on a new PR

    • Code-generation work is ongoing - task list has been presented to the community for discussion and approval

  • FIR(Fortran IR - MLIR 的一种方言):

    • Fortran 95 lowering and runtime support is nearing completion

    • Code upstreaming has begun again

  • OpenMP

    • Merged: Critical, collapse clause, Fixes for SNAP.

    • In review: Firstprivate, Ordered, MLIR definitions for a few target side constructs, semantic checks for atomic, critical, sections, simd

    • OpenMP 5.0 metadirective

  • Runtime

    • Change complex type define in runtime for clang-cl

    • Implement READ(SIZE=) and INQUIRE(IOLENGTH=) in runtime

    • GET_COMMAND_ARGUMENT runtime implementation, handling the LENGTH, VALUE, STATUS and ERRMSG parameters.

    • COMMAND_ARGUMENT_COUNT runtime implementation

    • Add POSIX implementation for SYSTEM_CLOCK

    • Fix WRITE after BACKSPACE on variable-length file

    • Implement Posix version of DATE_AND_TIME runtime

  • Ported test scripts to Python, enables testing on Windows

  • More precise checks for NULL() operands

  • Enforce array conformance in actual arguments to ELEMENTALs

  • Constant folding for COUNT, SQRT, HYPOT, CABS, CSHIFT, EOSHIFT, PACK, UNPACK, and TRANSPOSE

  • Make this_image() an intrinsic function

  • Revamp C1502 checking of END INTERFACE [generic-spec]

  • Accept SIZE(assumed-rank, DIM=n)

  • Validate SIZE(x,DIM=n) dimension for assumed-size array x

  • Catch errors with intrinsic array inquiry functions

  • Correct overflow detection in folding of real->integer conversions

  • Upgrade warning to error in case of PURE procedure

  • Enforce fixed form rules about END continuation

  • Enforce specification function rules on callee, not call

  • Catch error: base of DATA statement object can’t be a pointer

  • Represent parentheses around derived types

  • Enforce constraint: defined ass’t in WHERE must be elemental

  • Catch branching into FORALL/WHERE constructs

  • Implement semantic checks for ELEMENTAL subprograms

  • Signal EOR in non advancing IO and move to next record

  • Extension: reduced scope for some implied DO loop indices

  • Take result length into account in ApplyElementwise folding

  • Apply double precision KindCode in specific proc interface

Call notes are recorded and available upon request here. Please contact Alexis Perry-Holby at aperry@lanl.gov for document access.

LFortran#

  • 81 merged Merge Requests in September 2021

  • LFortran Minimum Viable Product (MVP) released

  • LFortran 0.13.0, 0.13.1 and 0.14.0 released in September

  • The following people have contributed code to LFortran in September:

    • Ondřej Čertík

    • Gagandeep Singh

    • Carlos Une

    • Thirumalai Shaktivel

    • Harris M. Snyder

    • Sebastian Ehlert

    • Mengjia Lyu

  • Many people have reported bugs (thank you all!)

  • Main features implemented in September:

    • Operator overloading (ASR, LLVM)

    • Goto (ASR, LLVM)

    • Runtime library improvements: iand, len, trim, len_trim

    • Interactive mode: get complex numbers, intrinsic functions working (Windows, macOS, Linux)

    • New driver options: –fast, –symtab-only, –target

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.

活动#

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

  • The second international Fortran Conference (FortranCon) 2021 was held virtually on September 23-24 Video recordings of the talks will be made available soon. For more information, visit the FortranCon website.

像往常一样,订阅 邮件列表 和/或加入 Discourse 继续关注未来的会议。

贡献者#

我们感谢过去一个月为 fortran-lang 做出贡献的每个人,他们在以下任何存储库中发表评论: