Fortran 通讯:2021 年 1 月#
新年快乐!欢迎阅读 2021 年 1 月版的每月 Fortran 通讯。时事通讯在每个月初发布,详细介绍上个月的 Fortran 新闻。
fortran-lang.org#
本月我们对网站进行了一些更新:
#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:添加一个级别选项以忽略日志消息
#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
中的新功能:
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 实现的第一个功能完整的版本。
#316 (WIP):更新子命令“new”以反映添加对示例的支持
fpm
仍处于早期开发阶段,我们需要尽可能多的帮助。以下是你今天可以提供的帮助:
使用它,让我们知道你的想法!阅读 fpm 打包指南 了解如何使用 fpm 构建你的包,以及 清单参考 了解你可以在 fpm.toml 文件中指定的所有内容。
在 fortran-lang 网站 上浏览现有的 fpm 包
浏览 开启的 issues,看看你是否可以帮助实施任何修复或功能。
为 fpm 调整 Fortran 包并将其提交到 Registry。
改进文档。
fpm 的短期目标是使具有依赖关系的 Fortran 包的开发和安装更容易。其长期目标是构建一个丰富且分散的 Fortran 软件包生态系统,并创建一个健康的环境,在该环境中轻松创建和发布新的开源 Fortran 项目。
编译器#
经典 Flang#
有几个拉取请求进行评估。
12 月只合并了一个拉取请求:
LLVM Flang#
最近的开发更新:
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 继续关注未来的会议。
第 6 集 的算法+数据结构=程序 (ADSP) 播客讨论了 Fortran 和最近的 fortran-lang 发展。
Fortran-lang 的第一年,作者 Milan Curcic。
贡献者#
我们感谢过去一个月为 fortran-lang 做出贡献的每个人,他们在以下任何存储库中发表评论: