Fortran 时事通讯:2021 年 4 月#
欢迎阅读 2021 年 4 月版 Fortran 月刊。该通讯每月初发布,详细介绍上个月的 Fortran 新闻。
fortran-lang.org#
本月我们对网站进行了几次更新:
#229: 修正快速入门迷你书中 π 的数值
#226: 将 DelaunaySparse 添加到包列表中
#222:避免在贡献指南中表述不清
#221:添加有关免费编译器版本的信息
#216:改进标签
#207:设置操作系统的正确副标题
正在进行的工作:
让我们知道 如果你对网站及其内容有任何建议。我们欢迎任何新的贡献者加入网站,尤其是教程页面 —— 请参阅 贡献者指南 了解如何开始。
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
中的新功能:
#352: 对帮助测试的一种临时修复
#357:Fortran fpm 的安装脚本
#369: 将构建目标与模块结构分开
#370: 更新 run 子命令
#377: 在清单中添加显式的 include-dir 键
#378: 在 fpm_strings.f90 中添加与 ford 兼容的文档
#386: 在 debug_fortran 选项中替换已弃用的标志
#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 正在 NumFOCUS 和 Fortran-lang 旗下参与 GSoC,如果您有兴趣,请申请:lfortran/lfortran/-/wikis/GSoC-2021-Ideas
7个人在上个月贡献了代码:Gagandeep Singh, Dominic Poerio, Himanshu Pandey, Thirumalai Shaktivel, Scot Halverson, Rohit Goswami, Ondřej Čertík.
过去一个月有 114 个合并请求被 merged,亮点
macOS 支持(Intel 和 ARM)、编译和 LFortran 本身的开发(堆栈跟踪工作正常)
初始实现:模块(modfiles、依赖项等)、接口、整数/实数类型、公共/私有属性、派生类型、字符串、变量初始化、指针、模块
许多其他修复
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) 进行介绍。
贡献者#
我们感谢过去一个月为 fortran-lang 做出贡献的每个人,他们在以下任何存储库中发表评论: