Fortran newsletter: October 2021#
Welcome to the October 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#
本月我们对网站进行了几次更新:
#305: September newsletter draft
#300: Add QCxMS to package index
#302: Update Silverfrost compiler description.
#307: Fixed typo
#308: remove excess ‘mpi’ tag from fortran2018-examples
#246: Transferring fortran90.org “Fortran Best Practices” into a mini-book
#314: grammar and spelling from issue #313
#317: more grammar, spelling, and rewording for Fortran Best Practices
#324: replaced “be found be found” with “be found”
#320: Alternative approach to avoiding integer division
#328: Add incompact3d to package index
#333: Add fparser to package index
#335: Adding two more packages to the index
#334: Add pFlogger to package index
#336: One more package
Work in progress#
#329 (WIP): Quantum Information book, WSL GUI, and typos
#201 (WIP): Draft: Internationalization for fortran-lang
让我们知道 如果你对网站及其内容有任何建议。我们欢迎任何新的贡献者加入网站,尤其是教程页面 —— 请参阅 贡献者指南 了解如何开始。
Fortran 标准库#
Here’s what’s new in stdlib:
#509: fixed typo
#503: refactor documentation regarding consistency
#511: Correctly set CMAKE_INSTALL_MODULEDIR cache variable
#513: Update issue templates
#523: Rename config.yaml -> config.yml
#508: github-ci: add fpm support
#475: Generating sorting subroutines specific to
character
type with fypp#525: Add files generated by tests to gitignore
#529: Add maintainer entry to fpm manifest
#530: Make it clearer how the user can control compiler optimization
#528: Reduce redundancy caused by optional arguments
#3 (
stdlib-cmake-example
): Add example integration with test-drive
Work in progress#
#543 (WIP): Fix string concat
#539 (WIP): Add function gcd
#538 (WIP): Bump stdlib version to 0.1.0
#537 (WIP): Add a changelog for the current features of stdlib
#536 (WIP): Fix conversion warnings
#521 (WIP): Ensure module output directory is generated in configure stage
#520 (WIP): [stdlib_io] add
disp
(display your data).#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
#494 (WIP): Add testing module to allow better structuring of test suites
#491 (WIP): Stdlib linked list
#488 (WIP): [stdlib_math] add
is_close
routines.#473 (WIP): Error stop improvements
#455 (WIP): stdlib_hash: waterhash algorithm
#452 (WIP): Implementation of a map data type
#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
#272 (WIP): Probability Distribution and Statistical Functions – Uniform Distribution Module
#189 (WIP): Initial implementation of COO / CSR sparse format
请通过测试和审查拉取请求帮助改进 stdlib !
@MarDiehl 和 @arjenmarkus 在 该仓库。请尝试一下,如果有任何问题,或者 API 是否可以改进,请告诉我们它是如何工作的。
Fortran 包管理器#
Here’s what’s new in fpm:
#521: expand tabs
#557: Update installer script to update subprojects first
#558: Add issue templates
#565: Default branch renaming aftermath
#562: Add new distributions where fpm is available to README
#563: Add workflow to create single source fpm version
#564: Separate upload stage in CI testing
#572: Build no tests by default
#549: Allow setting, archiver, C compiler flags and linker flags from commandline
#578: help text was truncated
#579: Fix dir not getting removed after testing fpm
#584: Actually read environment variables
Work in progress#
#575 (WIP): Enable multiple build output directories
#569 (WIP): Add workflow for continuous delivery
#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#
最近的开发更新:
New Driver and CMake integration:
flang-omp-report plugin - first full fledged frontend plugin has been contributed
CMake integration - waiting on a new PR
Code-generation work is ongoing - task list has been presented to the community for discussion and approval
FIR(Fortran IR - MLIR 的一种方言):
Fortran 95 lowering and runtime support is nearing completion
Code upstreaming has begun again
OpenMP
Merged: Critical, collapse clause, Fixes for SNAP.
In review: Firstprivate, Ordered, MLIR definitions for a few target side constructs, semantic checks for atomic, critical, sections, simd
OpenMP 5.0 metadirective
Runtime
Change complex type define in runtime for clang-cl
Implement READ(SIZE=) and INQUIRE(IOLENGTH=) in runtime
GET_COMMAND_ARGUMENT runtime implementation, handling the LENGTH, VALUE, STATUS and ERRMSG parameters.
COMMAND_ARGUMENT_COUNT runtime implementation
Add POSIX implementation for SYSTEM_CLOCK
Fix WRITE after BACKSPACE on variable-length file
Implement Posix version of DATE_AND_TIME runtime
Ported test scripts to Python, enables testing on Windows
More precise checks for NULL() operands
Enforce array conformance in actual arguments to ELEMENTALs
Constant folding for COUNT, SQRT, HYPOT, CABS, CSHIFT, EOSHIFT, PACK, UNPACK, and TRANSPOSE
Make this_image() an intrinsic function
Revamp C1502 checking of END INTERFACE [generic-spec]
Accept SIZE(assumed-rank, DIM=n)
Validate SIZE(x,DIM=n) dimension for assumed-size array x
Catch errors with intrinsic array inquiry functions
Correct overflow detection in folding of real->integer conversions
Upgrade warning to error in case of PURE procedure
Enforce fixed form rules about END continuation
Enforce specification function rules on callee, not call
Catch error: base of DATA statement object can’t be a pointer
Represent parentheses around derived types
Enforce constraint: defined ass’t in WHERE must be elemental
Catch branching into FORALL/WHERE constructs
Implement semantic checks for ELEMENTAL subprograms
Signal EOR in non advancing IO and move to next record
Extension: reduced scope for some implied DO loop indices
Take result length into account in ApplyElementwise folding
Apply double precision KindCode in specific proc interface
Call notes are recorded and available upon request here. Please contact Alexis Perry-Holby at aperry@lanl.gov for document access.
LFortran#
81 merged Merge Requests in September 2021
LFortran Minimum Viable Product (MVP) released
LFortran 0.13.0, 0.13.1 and 0.14.0 released in September
The following people have contributed code to LFortran in September:
Ondřej Čertík
Gagandeep Singh
Carlos Une
Thirumalai Shaktivel
Harris M. Snyder
Sebastian Ehlert
Mengjia Lyu
Many people have reported bugs (thank you all!)
Main features implemented in September:
Operator overloading (ASR, LLVM)
Goto (ASR, LLVM)
Runtime library improvements:
iand
,len
,trim
,len_trim
Interactive mode: get complex numbers, intrinsic functions working (Windows, macOS, Linux)
New driver options: –fast, –symtab-only, –target
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.
活动#
We had our 16th Fortran Monthly call on September 22. You can watch the recording below:
The second international Fortran Conference (FortranCon) 2021 was held virtually on September 23-24 Video recordings of the talks will be made available soon. For more information, visit the FortranCon website.
贡献者#
我们感谢过去一个月为 fortran-lang 做出贡献的每个人,他们在以下任何存储库中发表评论: