Fortran 通讯:2020 年 12 月#
欢迎阅读 2020 年 12 月版的每月 Fortran 通讯。时事通讯在每个月初发布,详细介绍上个月的 Fortran 新闻。
fortran-lang.org#
本月我们对网站进行了一些更新:
正在进行的工作:
#160 (WIP): Fortran with Make 的深入介绍。
让我们知道 如果你对网站及其内容有任何建议。我们欢迎任何新的贡献者加入网站,尤其是教程页面 —— 请参阅 贡献者指南 了解如何开始。
Fortran 标准库#
这是 stdlib
中的新内容:
工作正在进行中:
欢迎帮助测试和审查这些拉取请求!
否则,正在进行的讨论将继续:
@MarDiehl 和 @arjenmarkus 在 该仓库。请尝试一下,如果有任何问题,或者 API 是否可以改进,请告诉我们它是如何工作的。
Fortran 包管理器#
以下是 fpm
中的新功能:
#259:更新 README.md 中从源代码构建的说明。
#246:CI 中的自动二进制发布。
#233:允许与外部库链接。
#224:添加包清单的参考文档(fpm.toml)。
#220:在 Haskell fpm 中实现编译器和标志设置。
工作正在进行中:
第一个 beta 版本 (WIP):Fortran 实现的第一个功能完整的版本。
(WIP)#232:允许 fpm.toml 中的“额外”部分。
(WIP)#248:重构后端以进行增量重建。
(WIP)#251:依赖管理。
(WIP)#255:设置编译器并指定测试或应用程序目标。
(WIP)#257:实现
fpm install
。(WIP)#260:修复 CI 以测试发布版本。
fpm
仍处于早期开发阶段,我们需要尽可能多的帮助。以下是你今天可以提供的帮助:
使用它,让我们知道你的想法!阅读 fpm 打包指南 了解如何使用 fpm 构建你的包,以及 清单参考 了解你可以在 fpm.toml 文件中指定的所有内容。
浏览 开启的 issues,看看你是否可以帮助实施任何修复或功能。
为 fpm 调整 Fortran 包并将其提交到 Registry。
改进文档。
fpm 的短期目标是使具有依赖关系的 Fortran 包的开发和安装更容易。其长期目标是构建一个丰富且分散的 Fortran 软件包生态系统,并创建一个健康的环境,在该环境中轻松创建和发布新的开源 Fortran 项目。
编译器#
经典 Flang#
我们将继续评估拉取请求并将其合并到 Classic Flang 中。最近合并到 Classic Flang 中的拉取请求包括:
合并到支持项目中的拉取请求:
Classic Flang 每两周一次的电话会议已经建立,以讨论下一个要验证和合并的拉取请求的问题和计划。我们的下一个电话是太平洋时间 12 月 16 日星期三和 30 日上午 8:00。可以在 此处 找到之前电话会议的笔记、即将举行的议程和加入电话会议的链接。
LLVM Flang#
LLVM Flang 的工作仍在继续,专注于语义、降低和运行时。正在为 OpenMP 和 OpenACC 支持做出重大贡献。
结合 fir-dev fork(用于降低的 Fortran IR)中基于 MLIR 的代码,Flang 可以编译和运行大多数 F77 程序,包括 Fortran 编译器验证套件 (FCVS)。
Pat McCormick (仍在)致力于将 fir-dev 分叉中的降低代码合并到 LLVM 主控中的 RFC。 (这被 Supercomputing 2020 和其他 ECP 职责打断了。)我们的目标是以 Flang 社区可以接受的方式加快这一进程,这样我们就可以在单个 master 分支中做进一步的工作。
最近的更新包括:
Johannes Doerfert 在 https://flang.llvm.org 创建了一个网页;你可以在那里找到 call 和 Slack 物流
Nichols Romero 有一个 llvm-dev RFC,用于将 Fortran 测试添加到 llvm-tests 项目:http://lists.llvm.org/pipermail/llvm-dev/2020-November/146873.html
Andzrej Warzynski 有一个关于法兰选项名称的法兰开发 RFC:http://lists.llvm.org/pipermail/flang-dev/2020-November/000588.html
Andzrej Warzynski 有一个 cfe-dev RFC 关于重构 clang 以帮助 flang 驱动程序独立于 clang:http://lists.llvm.org/pipermail/cfe-dev/2020-November/067263.html
更改了类型系统中 CHARACTER 数据的表示,以使其与其他类型更加一致(对于数组)
更改了 COMPLEX 表达式表示以提供更好的降低处理
支持 Fortran 77 程序的更多改进
为基本的 ALLOCATE/DEALLOCATE 和进一步的工作实现了运行时支持
继续为派生类型实现表驱动运行时;发布的文档
继续执行降低数组表达式
改进了对正向引用的错误检查
对 flang 驱动的更多更新(选项处理。 -E 现在可以用来只调用 Flang 预处理程序)
OpenACC 对输入/输出数据的修饰词进行语义检查,设置指令
OpenACC 降低(输入/退出数据、更新、初始化、关闭、等待指令)
OpenMP 结构检查器更新;copyin 子句的语义检查;schedule 类
活动#
Brian Friesen(劳伦斯伯克利国家实验室)被选为 PL22.3(J3,美国标准委员会)的新主席。布赖恩的第一个任期将持续到 2023 年 11 月。恭喜,布赖恩!
我们在 11 月 17 日举行了第 6 次 Fortran 月度电话会议。你可以观看下面的录音:
贡献者#
我们感谢过去一个月为 fortran-lang 做出贡献的每个人,他们在以下任何存储库中发表评论: