Fortran 时事通讯:2021 年 4 月

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

fortran-lang.org

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

  • #229: 修正快速入门迷你书中 π 的数值

  • #226: 将 DelaunaySparse 添加到包列表中

  • #223 #225:谷歌编程之夏(GSoC)公告

  • #222:避免在贡献指南中表述不清

  • #221:添加有关免费编译器版本的信息

  • #216:改进标签

  • #207:设置操作系统的正确副标题

正在进行的工作:

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

  • #220 (施工中):将学习资源纳入了在线课程

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

Fortran 标准库

这是 stdlib 中的新内容:

  • #320:实现非繁琐的函数式字符串类型

  • #362:修复了样式指南中关于维度属性的措辞

  • #352:将目录添加到自述性(README)文件中

  • #346 #356:在 stdlib_string_type 模块中添加了 to_lower、to_upper、reverse 和 to_title 函数

工作正在进行中:

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

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

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

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

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

  • #336 (施工中):添加将整数/逻辑值转换为字符值的函数

  • #343 (进行中):作为对 trim 的补充,实现 strip 和 chomp

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

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

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

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

  • #360(进行中):总结构建工具链工作流程和隐含规则

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

  • #367 (施工中):添加适用于 OSX 的英特尔编译器工作流程

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

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

Fortran 包管理器

以下是 fpm 中的新功能:

  • Alpha 发布版本 0.2.0

  • Fortran 包管理器嫌疑现已在 conda-forge 上可用

  • #352: 对帮助测试的一种临时修复

  • #357:Fortran fpm 的安装脚本

  • #369: 将构建目标与模块结构分开

  • #370: 更新 run 子命令

  • #377: 在清单中添加显式的 include-dir 键

  • #378: 在 fpm_strings.f90 中添加与 ford 兼容的文档

  • #386: 在 debug_fortran 选项中替换已弃用的标志

  • #390 #407: 为 Fortran fpm 实现 –flag 选项

  • #397: 在 README 中添加 Conda 安装说明

  • #398: 小修复:用于设置可执行链接库

  • #402: 添加 fpm 描述并重新组织 README 介绍

  • #404: 修正对空输入的连接

  • #409: 使程序能够访问子目录中的代码

  • #414: 在 README 中添加一些重要的链接

  • #412: 重复的模块定义

  • #413: 将 omp_lib 添加到内建模块列表中

  • #419: 将 Haskell 和 Fortran fpm 的工作流拆分

工作正在进行中:

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

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

  • #420 (进行中): 逐渐淘汰 Haskell fpm

  • fpm-haskell (进行中):Haskell 版本 fpm 的独立存储库

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

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

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

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

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

  • 改进文档。

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

编译器

经典 Flang

在二月份总共合并了 10 个拉取请求。

三月份总共合并了 8 个拉取请求。

LLVM Flang

最近的开发更新:

  • 新的驱动程序:

    • 添加 -fdefault* 和 -flarge-sizes 的选项

    • 完善模块搜索目录的测试

    • 添加 -fdebug-dump-parsing-log

    • 添加 -fdebug-module-writer 选项

    • 添加 debug dump、measure-parse-tree 和 pre-fir-tree 选项

    • 添加 -Xflang 并将 -test-io 设为仅前端的 flang

    • 将 -J 和 -module-dir 添加到 f18 驱动程序

    • 修复 -fdefault* 系列的错误

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

    • 为 FIR 操作验证器添加诊断测试

    • 添加 FIR 类型解析器的诊断测试

    • 上游预 FIR 树的更改(PFT 已更新以支持 Fortran 77)

    • 更新 flang 测试工具支持类

    • 添加 zero_bits、数组值和其他操作

    • 上游实用函数 valueHasFirAttribute(),以便在后续合并中使用

  • OpenMP - 添加语义检查:

    • OpenMP 4.5 - 2.7.1 Do Loop 中对 Threadprivate 的限制

    • 在 simd 指令的 aligned 子句中出现多个列表项

    • Flang OpenMP 4.5 - 2.15.3.6 Reduction 子句

    • 2.15.4.2 - Copyprivate 子句

    • 2.15.3.4 - Firstprivate 子句

    • 2.15.3.5 - 最后私条款

  • Update character tests to use gtest

  • Adaptations to MLIR API changes

  • 修复在覆盖错误的类型绑定过程时调用 CHECK() 的问题

  • 处理具有交替返回的类型绑定过程

  • 运行时间:执行INDEX内在功能

  • 修复在 MinGW-w64 上的编译问题

  • 扩展:将引用转发到 IMPLICIT NONE 下的虚拟参数

  • 检测循环定义的例程接口

  • 实现相关的字符内部函数 SCAN 和 VERIFY

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

LFortran

LFortran 仍处于 pre-alpha 阶段,但我们正在快速推进,使其能够编译更多的 Fortran 功能。我们正在寻找贡献者,如果您有兴趣,请与我们联系,我们将帮助您入门。您可以通过 Zulip Chat、mailinglist 或 GitLab 问题与我们联系(有关这三者的链接,请参阅 https://lfortran.org)。

活动

  • 我们在 3 月 24 日进行了第 10 次 Fortran 月度电话会议。您可以观看下面的记录:

  • 今年,Fortran-lang 是 Google Summer of Code 的导师组织。如果您是学生,或者认识 有资格参与 的学生,并且您想帮助构建 Fortran 生态系统,请联系我们并告诉我们。学生申请窗口于 3 月 29 日开放,并将于 4 月 13 日东部时间 14:00 关闭。

  • 美国 Fortran 标准委员会第 223 次会议于 3 月 2 日结束。讨论的主要议题是 Fortran 202X 标准修订计划的变更。以下是所有提交论文的列表,以及讨论和投票结果的摘要。委员会还欢迎新成员 Milan Curcic(@milancurcic),他是 Gary Klimowicz(@gklimowicz)的投票替代者。

    如果您对语言有新的改进意见,请在 此处 提出。

  • 即将举行的关于 Fortran 用于高性能计算 的免费网络研讨会的注册已开放。该网络研讨会由 Excellerat 组织,将由南安普顿大学的 Wadud Miah(@wadudmiah) 进行介绍。

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

贡献者

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