Fortran newsletter: December 2021

Welcome to the December 2021 edition of the monthly Fortran newsletter. The newsletter comes out at the beginning of every month and details Fortran news from the previous month.

fortran-lang.org

Here’s what’s new and ongoing in the fortran-lang.org repo:

  • #348: Fix typo in author field

Work in progress

  • #347 (WIP): Fortran Intrinsics

  • #201 (WIP):fortran-lang 的国际化

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

Fortran 标准库

Here’s what’s new in stdlib:

  • #558: Pin specific fpm version

  • #556: fix some FORD links

  • #494: Add testing module to allow better structuring of test suites

  • #562: Minor update pure/elemental in string_type module

  • #565: Make support for quadruple precision optional

  • #566: Create a call for reviewers pull request template

  • #578: Update error in case fypp preprocessor is not found

  • #579: Add module for handling version information of stdlib

Work in progress

  • #581 (WIP): Add routines for saving/loading arrays in npy format

  • #580 (WIP): Add terminal and color escape sequences

  • #573 (WIP): Revised Hash functions incorporating changes in the main Stdlib repository.

  • #552 (WIP): fixed bug in stringlist

  • #536 (WIP): Fix conversion warnings

  • #520 (WIP): [stdlib_io] add disp(display variable values formatted).

  • #517 (WIP): adding SPEC_TEMPLATE.md #504

  • #514 (WIP): pop, drop & get with basic range feature for stringlist

  • #500 (WIP): Selection algorithms

  • #499 (WIP): [stdlib_linalg] matrix property checks

  • #498 (WIP): [stdlib_math] add arg/argd/argpi

  • #491 (WIP): Stdlib linked list

  • #488 (WIP): [stdlib_math] add is_close routines.

  • #473 (WIP): Error stop improvements

  • #363 (WIP): Sorting string’s characters according to their ASCII values

  • #353 (进行中):实现一个用于实数宽松比较的模块的初始版本

  • #286 (WIP): Probability Distribution and Statistical Functions – Beta Distribution Module

  • #278 (WIP): Probability Distribution and Statistical Functions – Gamma Distribution Module

  • #276 (WIP): Probability Distribution and Statistical Functions – Exponential Distribution Module

  • #273 (WIP): Probability Distribution and Statistical Functions – Normal Distribution Module

  • #189 (WIP): Initial implementation of COO / CSR sparse format

请通过测试和审查拉取请求帮助改进 stdlib !

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

Fortran 包管理器

Here’s what’s new in fpm:

  • v0.5.0: Alpha release update

  • #598: Update README.md compiler, archiver, & link flags

  • #569: Add workflow for continuous delivery

  • #602: fix(fpm_compiler): intel windows release flag was incorrect

  • #607: Repair –list option and correct obsolete descriptions of the –list option

  • #612: Fix modules listing (for install)

  • #613: Add: critical section to mkdir in backend

  • #616: Add: workflow to make installer on push and release

  • #614: Bump version to 0.5.0

  • setup-fpm#7: Fix Latest Option

Work in progress

  • #622 (WIP): Cleanup the backend output

  • #608 (WIP): –env switch lets you specify the prefix of the compiler-related environment variables

  • #539 (WIP): Add parent packages into dependency tree

  • #498 (WIP): Compiler flags profiles

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

  • 使用它并告诉我们你的想法!阅读fpm 打包指南 了解如何使用 fpm 构建软件包,并阅读清单参考 了解可以在 fpm.toml 文件中指定哪些内容。

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

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

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

  • 改进文档。

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

编译器

Flang

最近的开发更新:

  • OpenMP

    • Use the ultimate symbol in a call to the IsPointer function

    • Add parsing/sema/serialization for ‘bind’ clause.

  • FIR

    • 将 FIR 的基础添加到 LLVM IR 通证中

    • 添加各种 FIR 到 LLVM IR 的转换模式:

      • fir.unreachable

      • fir.insert_on_range

      • fir.zero_bits

      • fir.select and fir.select_rank

      • fir.extract_value and fir.insert_value

      • types - fir.box, fir.logical, fir.char, fir.ptr

      • fir.box_rank, fir.box_addr, fir.box_dims, fir.box_elesize

      • fir.convert

      • fir.call

      • fir.store and fir.load

    • 为 fircg.ext_embox 和 fircg.ext_rebox 操作添加子字符串信息

    • Use notifyMatchFailure in fir.zero_bits conversion

    • Restrict array type on fir.insert_on_range

    • Add test for FIR types conversion

    • Use contralized values for indexing box

    • Add complex operations conversion from FIR LLVM IR

    • Add TargetRewrite pass and TargetRewrite: Rewrite COMPLEX values

  • Runtime

    • Read environment variables directly

  • flang-omp-report

    • Removed unnecessary comments in flang-omp-report plugin tests

    • 删除 nowait 子句的循环变通方法

    • 添加 flang-omp-report 总结脚本

  • 检查指向内置函数的指针

  • Fold SPREAD

  • Improve error message for misuse of NULL(mold) as data statement constant

  • Fix crash on “call system_clock(count_max=j)”

  • Fix combined folding of FINDLOC/MAXLOC/MINLOC

  • Implement GET_ENVIRONMENT_VARIABLE(VALUE)

  • Remove builder that takes SSA value instead of Attribute on ExtractValueOp, InsetValueOp, and InsertOnRangeOp

  • Remove getModelFortran::ISO::CFI_dim_t in DescriptorModel.h

  • Set the addendum when establishing pointer section in descriptor

  • Fix error in characteristics check at procedure pointer assignment

  • Initial parsing/sema for ‘align’ clause

  • Don’t reference non-invariant symbols in shape expressions

  • Make subscript list argument a nullable pointer

  • Distinguish error/warning cases for bad jumps into constructs

  • Fix folding of EPSILON()

Call notes are recorded and available upon request here. Please contact Alexis Perry-Holby at aperry@lanl.gov for document access.

LFortran

  • 32 Merge Requests merged in November 2021

  • Support for same name interface and subroutine/function

  • Compile-time evaluation for bit intrinsics

  • Implement the repeat and shape intrinsics

  • Variadic support for min and max intrinsics

  • Implement the scalar random_number function

  • Fixes and improved error message for read and write statements

  • Support the final, intrinsic, and private attributes

  • Implement the ieee_arithmetic intrinsic module

  • Support for the abstract class

  • Support for assignment(=) on use statement

We are looking for new contributors. Please do not hesitate to contact us if you are interested. We will help you get up to speed.

活动

  • Sebastian Ehlert presented the Fortran Package Manager at the PackagingCon 2021 conference. You can watch the recording below:

  • Recordings of all FortranCon 2021 presentations are now available to view in the FortranCon YouTube Channel. Enjoy!

  • We had our 20th Fortran Monthly call on November 15. You can watch the recording below:

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

贡献者

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