Fortran 通讯:2020 年 11 月#

欢迎阅读 2020 年 11 月版的每月 Fortran 通讯。时事通讯在每个月的第一个日历日发布,详细介绍上个月的 Fortran 新闻。

fortran-lang.org#

本月,我们对网站进行了一些补充和改进:

  • #152:关于设置 Fortran 开发环境的新迷你书。你可以在 这里 阅读它。

  • #147:使用 twitter-together 自动发布到 @fortranlang Twitter。

  • #155:修复 GitHub 安全团队报告的安全漏洞。

  • 以下软件包已添加到 软件包索引:atomsk、ddPCM、DFTB+、DFT-D4、ELPA、ELSI、FortJSON、fypp、HANDE、libmbd、libnegf、mpifx 、NTPoly、NWChem、OpenMolcas、PoisFFT、QMD-PROGRESS、scalapackfx、tapenade、wannier90 和 xtb。

  • #145, #146#154#158:小修复和改进。

正在进行的工作:

  • #160 (WIP): Fortran with Make 的深入介绍。

  • #156 (wip): 更新关于建设方案的小册子。

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

Fortran 标准库#

这个月在一些拉取请求上取得了进展:

  • #239: stdlib_bitsets 模块的实现。它提供了一个位集数据类型。

  • #240: 实现 stdlib_stats_distribution 模块。 它提供概率分布和统计功能。

  • #243:在提供给日志器的消息中支持换行符的提议。

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

否则,正在进行的讨论将继续;

  • #220:用于文件系统操作的 API:路径操作

  • #241:包含一个 split 函数(202X 特性)

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

Fortran 包管理器#

新内容:

  • #213:引导 fpm 子模块支持

  • #208: 对 fpm_filesystem 中的 list_filesmkdir 进行了小修复

  • #206:在install.sh中添加安装脚本

  • #193:本地和远程包依赖(Fortran fpm 现在可以实现自举构建)

  • #190:自动发现可执行文件

  • #189#204# 203:在 Fortran fpm 中实现fpm new

工作正在进行中:

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

  • #221 (WIP):测试和可执行运行器选项

  • #220 (WIP): 编译器和标志

  • #216(WIP):从 install.sh 中删除 bashism

  • #209 (WIP):为 Fortran fpm 添加自动文档

  • #202 (WIP): 使用 toml-f 构建接口创建包清单

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

  • 尝试使用它。它是否正常工作?没有吗?请让我们知道!阅读 fpm 打包指南 了解如何使用 fpm 构建你的包。

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

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

  • 改进文档。

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

编译器#

经典 Flang#

我们继续评估并再次将拉取请求合并到原始 Flang 编译器中。我们在 10 月份进行了几项更改。

最近合并到 Classic Flang 中的拉取请求包括:

Classic Flang 每两周一次的电话会议已经建立,以讨论下一个要验证和合并的拉取请求的问题和计划。我们的下一个电话将是太平洋时间 11 月 4 日星期三和 18 日上午 8:00(注意时间变化)。可以在 此处 找到之前电话会议的笔记、即将举行的议程和加入电话会议的链接。

LLVM Flang#

LLVM Flang 的工作仍在继续,专注于语义、降低和运行时。

结合 fir-dev fork(用于降低的 Fortran IR)中基于 MLIR 的代码,Flang 可以编译和运行大多数 F77 程序,包括 Fortran 编译器验证套件 (FCVS)。

Pat McCormick 正在制定一个 RFC,用于将 fir-dev 分叉中的降低代码合并到 LLVM 主控中。目标是以 Flang 社区可以接受的方式加快这一进程,这样我们就可以在单个 master 分支中做进一步的工作。

Arm 继续为 flang 的成熟驱动程序做出改变。

AMD 继续增加对 OpenMP 语义和降低的支持。

Valentin Clement 继续为 OpenACC 支持贡献解析和语义更改。

Michael Kruse 继续添加对使用 MSVC 在 Windows 上构建 Flang 的支持,以至于他可以在 Windows 上构建和测试 Flang。

LFortran#

LFortran 的新功能:

  • 2020 年 10 月合并了 9 个合并请求并修复了 5 个问题

  • 我们在 JupyterCon 2020 上进行了 LFortran talk

  • 用于 2020 年 10 月 Fortran 标准委员会会议的条件表达式的原型编译器实现(!645

  • 更好的代码格式化支持(lfortran fmt

  • 对 AST 的改进

  • 在 Jupyter 笔记本中捕获 Windows 上的标准输出 (!642)

你可以在 Twitter 上关注 LFortran 以获取最新更新:@lfortranorg

活动#

  • 美国 Fortran 标准委员会于 10 月 12 日至 14 日举行了一次虚拟会议。您可以阅读摘要和讨论 这里 和所有文档 这里

  • 我们在 10 月 27 日举行了第 5 次福特兰月度电话会议。你可以观看下面的录音:

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

贡献者#

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