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 做出贡献的每个人,他们在以下任何存储库中发表评论: