Fortran 时事通讯:2021 年 5 月#

欢迎阅读 2021 年 5 月版 Fortran 月刊。该通讯每月初发布,详细介绍上个月的 Fortran 新闻。

fortran-lang.org#

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

  • #244: Add a first year announcement

  • #236: Add dl_poly_4 to package index

  • #220: Include learn resources to online courses

正在进行的工作:

  • #201 (WIP):fortran-lang 的国际化

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

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

Fortran 标准库#

这是 stdlib 中的新内容:

  • #391: Add issue templates

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

工作正在进行中:

  • #189 (WIP):稀疏矩阵的初始实现。

  • #272(开发中), #273 (开发中),#276(开发中),#278(开发中):stdlib_stats_distribution 模块的实现。它提供概率分布和统计功能。

  • #311(开发中):用于处理字符串列表的模块的实现

  • #313 (WIP):勒让德多项式和高斯求积

  • #333 (施工中):为字符串对象提供抽象基类

  • #349(进行中):简化测试 Makefile

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

  • #355(进行中):实现 clip 函数

  • #359 (施工中):向 stdlib 添加一般贡献指南

  • #363 (进行中):在 stdlib_string_type 模块中添加 sort

  • #372 (WIP): Correct implementation of to_title

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

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

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

Fortran 包管理器#

以下是 fpm 中的新功能:

  • #420: Phase out Haskell fpm

  • #468: Identify 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

工作正在进行中:

  • 第一个 beta 版本 (WIP):Fortran 实现的第一个功能完整的版本。

  • #364 (施工中):插件的 alpha 版本

  • #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 仍处于早期开发阶段,我们需要尽可能多的帮助。以下是你今天可以提供的帮助:

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

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

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

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

  • 改进文档。

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

编译器#

经典 Flang#

四月份总共合并了 5 个请求拉取。

LLVM Flang#

最近的开发更新:

  • 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

    • 修改对ordered 区域嵌套的语义检查,以包括 close 嵌套检查。

    • Remove OmpEndLoopDirective handles from code.

    • Add General Semantic Checks for Allocate Directive

  • New Driver

    • Add options for -Werror

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

    • Add support for -cpp/-nocpp

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

    • Add support for -fget-definition

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

  • Runtime

    • Implement reductions

    • Implement numeric intrinsic functions

    • TRANSFER() intrinsic function

    • 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

  • Accept & fold 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

  • 修复运行时所派生的类型表构建中的假性错误

  • Check for attributes specific to dummy arguments

  • Handle structure constructors with forward references to PDTs

通话记录将发送到 flang-dev 电子邮件列表,并记录在 此处

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

  • Other improvements:

    • Runtime library (more functions work)

    • 嵌套函数

    • Derived types

活动#

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

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

贡献者#

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