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 做出贡献的每个人,他们在以下任何存储库中发表评论: