Fortran 通讯:2021 年 1 月

新年快乐!欢迎阅读 2021 年 1 月版的每月 Fortran 通讯。时事通讯在每个月初发布,详细介绍上个月的 Fortran 新闻。

fortran-lang.org

本月我们对网站进行了一些更新:

  • #178#188:修复构建预览

  • #179:修复快速入门页面中的单词拼写错误

  • #173, [#180](https://github.com/fortran-lang/fortran-lang.org /pull/180)、#186:将缺少的包从流行的 Fortran 项目列表中添加到包索引中

  • #182:在 Intel oneAPI 发布后更新编译器页面

  • #160, [#171](https://github.com/fortran-lang/fortran-lang.org /pull/171):使用 Make 深入介绍 Fortran。

正在进行的工作:

  • #187(WIP):正确的编译器页面和关于 Intel oneAPI 和 PGI 到 NVIDIA 的教程

  • #174(WIP):我们正在为该网站寻找具有代表性的 Fortran 代码片段,并期待提出建议。

  • #190(WIP):添加指向 fpm 贡献指南的链接

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

Fortran 标准库

这是 stdlib 中的新内容:

  • #256:将方法 log_debug 添加到 stdlib_logger

  • #257:改进 CMake 检查 F18 错误停止

  • #260:将 Intel oneAPI Fortran 编译器添加到 CI

  • #261:添加一个级别选项以忽略日志消息

  • #263#267:小修复到 CI

  • #270:将 GFortran 10 添加到 CI

  • #275:将 MSYS2 系统添加到 Windows CI

  • #282:添加一个关于编译 stdlib 时内存问题的注释,支持数组最多 15 个维度数

  • #283:通过拆分子模块提高编译负载

工作正在进行中:

  • #269(WIP):用于处理字符串列表的模块的实现

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

  • #284 (WIP):需要更改才能在 CMake 中使用 stdlib 作为子项目

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

欢迎帮助测试和审查这些拉取请求!

否则,关于 stdlib 可用性的讨论仍在继续(#7, #215, #279, #280#285) 以及 stdlib 的新实现 (#135, #212, #234, #241, #258, #259, #262, #268, #277)。

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

Fortran 包管理器

以下是 fpm 中的新功能:

  • Alpha 发布版本 0.1.3

  • setup-fpm action:在 Ubuntu、MacOS 和 Windows 运行器上设置 Fortran 包管理器的 GitHub 操作

  • 讨论区:用于问答、分享想法、展示项目,当然还有围绕 fpm 的讨论

  • #248:重构后端以进行增量重建

  • #266:依赖管理和fpm update子命令

  • #255 设置编译器并指定测试或应用目标

  • #262:将 -fcoarray=single 添加到默认 gfortran 标志

  • #257:实现fpm install

  • #260:修复 CI 以测试发布版本

  • #267:修复非库链接对象的枚举

  • #268:修复引导版本中的依赖跟踪问题

  • #271:修复 Windows 运行和测试命令

  • #273:更新开发者文档(清单+命令行)

  • #274:更新 README 并附上 setup-fpm github 操作的链接。

  • #280:为示例部分创建规范

  • #281:清理:删除存档的 Rust 原型

  • #284:开发人员的文档模型和后端

  • #285: CI: 更新发布二进制文件的命名

  • #286: 实现重复程序名检查

  • #289: 添加对与 Fortran 版本到 Haskell 版本相同的编译器的支持

  • #291: fpm build --show-model 的初始实现

  • #292:为fpm run -h指定正确的帮助

  • #293: 修复: new_package 调用后缺少错误检查

  • #294:添加:支持检测 .f 和 .F文件

  • #300:从 ifort 编译器默认选项中删除 -coarray=single 选项

  • #303:修复源解析

  • #304:删除程序目标中不支持的依赖项的注释

  • #307:修复:程序对象文件冲突

  • #315:删除:gfortran 默认发布标志中的 -ffast-math

  • #322: 在模型中按包对源进行分组

工作正在进行中:

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

  • #230, #261 (WIP) : fpm CLI 的规范。

  • #316 (WIP):更新子命令“new”以反映添加对示例的支持

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

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

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

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

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

  • 改进文档。

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

编译器

经典 Flang

有几个拉取请求进行评估。

12 月只合并了一个拉取请求:

LLVM Flang

PR#951 修复原子指令生成中的 ICE

最近的开发更新:

  • FORALL 语句的索引名称的语义分析修复

  • 继续致力于解析器对“ALLOCATE”的支持

  • 构建整理

  • OpenMP 语义检查:atomic, flush

  • 继续开发新驱动程序

  • 修复了针对列表的 REAL 输出编辑

  • 错误修复:使用泛型、折叠崩溃 (#48437)、OpenMP 语义检查崩溃 (#48308)、IMPLICIT_NONE(EXTERNAL)

  • 实现 STORAGE_SIZE()SIZEOF()C_SIZEOF()

  • OpenACC:更新 3.1 的串行构造子句,对例程指令和子句实施限制

  • OpenMP:向 OmpClause 添加重要子句,任务减少子句

活动

  • 我们在 12 月 15 日举行了第 7 次 Fortran 月度电话会议。你可以观看下面的录音:

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

贡献者

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