Skip to content

Commit e84433f

Browse files
milancurcicAlexisPerrycertik
authored
Newsletter for March 2022 (#379)
* Add GitHub stats data for February 2022 * Add draft of March newsletter * Flang updates * Add GSoC 2022 announcement to events * Fix author tag * Update _posts/2022-03-01-Fortran-Newsletter-March-2022.md * Update _posts/2022-03-01-Fortran-Newsletter-March-2022.md * Update _posts/2022-03-01-Fortran-Newsletter-March-2022.md * Fix typo * Use today's date Co-authored-by: AlexisPerry <aperry@lanl.gov> Co-authored-by: Ondřej Čertík <ondrej@certik.us>
1 parent 9d32441 commit e84433f

File tree

5 files changed

+4511
-101
lines changed

5 files changed

+4511
-101
lines changed
Lines changed: 301 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,301 @@
1+
---
2+
layout: post
3+
title: "Fortran newsletter: March 2022"
4+
category: newsletter
5+
author: Milan Curcic, Alexis Perry-Holby, Ondřej Čertík
6+
---
7+
8+
Welcome to the March edition of the monthly Fortran newsletter.
9+
The newsletter comes out at the beginning of every month and details
10+
Fortran news from the previous month.
11+
12+
<ul id="page-nav"></ul>
13+
14+
## fortran-lang.org
15+
16+
Here's what's new in the fortran-lang.org repo:
17+
18+
* [#369](https://github.com/fortran-lang/fortran-lang.org/pull/369):
19+
Resolves Issue #217
20+
* [#359](https://github.com/fortran-lang/fortran-lang.org/pull/359):
21+
Fix time calculation in the PRs script
22+
23+
### Work in progress
24+
25+
* [#347](https://github.com/fortran-lang/fortran-lang.org/pull/347) (WIP):
26+
Fortran Intrinsics
27+
28+
[Let us know](https://github.com/fortran-lang/fortran-lang.org/issues)
29+
if you have any suggestions for the website and its content.
30+
We welcome any new contributors to the website and the tutorials page in particular - see the
31+
[contributor guide](https://github.com/fortran-lang/fortran-lang.org/blob/HEAD/CONTRIBUTING.md)
32+
for how to get started.
33+
34+
## Fortran Standard Library
35+
36+
Here's what's new in stdlib:
37+
38+
* [#624](https://github.com/fortran-lang/stdlib/pull/624):
39+
[stdlib_math] Minor update to `stdlib_math` module and document
40+
41+
### Work in progress
42+
43+
* [#625](https://github.com/fortran-lang/stdlib/pull/625) (WIP):
44+
Gamma special function
45+
* [#611](https://github.com/fortran-lang/stdlib/pull/611) (WIP):
46+
Hash maps
47+
* [#604](https://github.com/fortran-lang/stdlib/pull/604) (WIP):
48+
Add get_argument, get_variable and set_variable
49+
* [#580](https://github.com/fortran-lang/stdlib/pull/580) (WIP):
50+
Add terminal and color escape sequences
51+
* [#552](https://github.com/fortran-lang/stdlib/pull/552) (WIP):
52+
fixed bug in stringlist
53+
* [#536](https://github.com/fortran-lang/stdlib/pull/536) (WIP):
54+
Fix conversion warnings
55+
* [#520](https://github.com/fortran-lang/stdlib/pull/520) (WIP):
56+
[stdlib_io] add `disp`(display variable values formatted).
57+
* [#517](https://github.com/fortran-lang/stdlib/pull/517) (WIP):
58+
adding SPEC_TEMPLATE.md #504
59+
* [#514](https://github.com/fortran-lang/stdlib/pull/514) (WIP):
60+
pop, drop & get with basic range feature for stringlist
61+
* [#491](https://github.com/fortran-lang/stdlib/pull/491) (WIP):
62+
Stdlib linked list
63+
* [#473](https://github.com/fortran-lang/stdlib/pull/473) (WIP):
64+
Error stop improvements
65+
* [#363](https://github.com/fortran-lang/stdlib/pull/363) (WIP):
66+
Sorting string's characters according to their ASCII values
67+
* [#286](https://github.com/fortran-lang/stdlib/pull/286) (WIP):
68+
Probability Distribution and Statistical Functions -- Beta Distribution Module
69+
* [#278](https://github.com/fortran-lang/stdlib/pull/278) (WIP):
70+
Probability Distribution and Statistical Functions -- Gamma Distribution Module
71+
* [#189](https://github.com/fortran-lang/stdlib/pull/189) (WIP):
72+
Initial implementation of COO / CSR sparse format
73+
74+
Please help improve stdlib by testing and [reviewing pull requests](https://github.com/fortran-lang/stdlib/issues?q=is%3Apr+is%3Aopen+label%3A%22reviewers+needed%22)!
75+
76+
The candidate for file system operations to be included in stdlib is being developed by
77+
[@MarDiehl](https://github.com/MarDiehl) and [@arjenmarkus](https://github.com/arjenmarkus)
78+
in [this repository](https://github.com/MarDiehl/stdlib_os).
79+
Please try it out and let us know how it works, if there are any issues, or if the API can be improved.
80+
81+
## Fortran Package Manager
82+
83+
Here's what's new in fpm:
84+
85+
* [#652](https://github.com/fortran-lang/fpm/pull/652):
86+
get user name and email using git config if available else use defaults
87+
* [#654](https://github.com/fortran-lang/fpm/pull/654):
88+
Ignore hidden source files
89+
* [#622](https://github.com/fortran-lang/fpm/pull/622):
90+
Cleanup the backend output
91+
* [#648](https://github.com/fortran-lang/fpm/pull/648):
92+
Add note about relocation of manifest reference
93+
- [fpm-docs#42](https://github.com/fortran-lang/fpm-docs/issues/42):
94+
Dutch translation
95+
- [fpm-docs#48](https://github.com/fortran-lang/fpm-docs/pull/48):
96+
Chinese translation improvements
97+
- [fpm-docs#52](https://github.com/fortran-lang/fpm-docs/pull/52):
98+
Update plugin tutorial
99+
100+
### Work in progress
101+
102+
* [#665](https://github.com/fortran-lang/fpm/pull/665) (WIP):
103+
add clean command
104+
* [#653](https://github.com/fortran-lang/fpm/pull/653) (WIP):
105+
Enable profiles in toml
106+
* [#608](https://github.com/fortran-lang/fpm/pull/608) (WIP):
107+
--env switch lets you specify the prefix of the compiler-related environment variables
108+
* [#539](https://github.com/fortran-lang/fpm/pull/539) (WIP):
109+
Add parent packages into dependency tree
110+
* [#498](https://github.com/fortran-lang/fpm/pull/498) (WIP):
111+
Compiler flags profiles
112+
- [fpm-docs#51](https://github.com/fortran-lang/fpm-docs/pull/51) (WIP):
113+
Add page about fpm logo
114+
115+
`fpm` is still in early development and we need as much help as we can get.
116+
Here's how you can help today:
117+
118+
* Use it and let us know what you think! Read the [fpm packaging guide](https://fpm.fortran-lang.org/en/tutorial)
119+
to learn how to build your package with fpm, and the [manifest reference](https://fpm.fortran-lang.org/en/spec/manifest.html)
120+
to learn what are all the things that you can specify in the fpm.toml file.
121+
122+
* Browse existing *fpm* packages on the [fortran-lang website](https://fortran-lang.org/packages/fpm)
123+
* Browse the [open issues](https://github.com/fortran-lang/fpm/issues) and see if you can help implement any fixes or features.
124+
* Adapt your Fortran package for fpm and submit it to the [Registry](https://github.com/fortran-lang/fpm-registry).
125+
* Improve the documentation.
126+
127+
The short-term goal of fpm is to make development and installation of Fortran packages with dependencies easier.
128+
Its long term goal is to build a rich and decentralized ecosystem of Fortran packages and create a healthy
129+
environment in which new open source Fortran projects are created and published with ease.
130+
131+
## Compilers
132+
133+
### Flang
134+
135+
Recent development updates:
136+
137+
* FIR
138+
* Initial lowering for empty program
139+
* Upstream partial lowering of COMMAND_ARGUMENT_COUNT intrinsic
140+
* Add lowering placeholders
141+
* Add lowering for basic empty SUBROUTINE
142+
* Upstream partial lowering of EXIT intrinsic
143+
* Lower basic STOP statement
144+
* Lower PAUSE statement
145+
* Add lowering for integer constant
146+
* Lower integer constant code for STOP stmt
147+
* Add fir.array_access op
148+
* Add fir.array_amend operation definition
149+
* Handle logical constant value for quiet in STOP stmt
150+
* Upstream partial lowering of GET_COMMAND_ARGUMENT intrinsic
151+
* Basic local variable lowering
152+
* Add lowering for ASCII character constant
153+
* Handle character constant for error code in STOP stmt
154+
* Upstream partial lowering of GET_ENVIRONMENT_VARIABLE intrinsic
155+
* Add missing CFI case for REAL and COMPLEX
156+
* Add support for lowering the goto statement
157+
* Add type conversion for !fir.box<none>
158+
* Add FIRInlinerInterface
159+
* Lower simple RETURN statement
160+
* Upstream fix to allocmem codegen to deal with missing dimensions for sequence of character types
161+
* Lower basic function with scalar integer/logical return value
162+
* Enable scalar real type in lowering
163+
* Enable complex type in function lowering
164+
* Handle lowering of ranked array
165+
* Lower simple scalar assignment
166+
* Lower scalar negation
167+
* Lower basic binary operation for scalars
168+
* Initial patch to lower a Fortran intrinsic
169+
* Lower real constant
170+
* Lower complex constant
171+
* Lower function and subroutine calls
172+
* Handle allocatable dummy arguments
173+
* Lower allocatable assignment for scalar
174+
* Simple array assignment lowering
175+
* Lower simple character return
176+
* Lower Fortran intrinsic to a runtime call/llvm intrinsic
177+
* Lower integer comparison operation
178+
* Lower real comparison operations
179+
* Lower logical comparison and logical operations
180+
* Lower power operations
181+
* Add complex operations lowering tests
182+
* Lower basic IO statement
183+
* Handle dynamic array lowering
184+
* Driver
185+
* Add support for `-emit-mlir`
186+
* Add support for `-emit-llvm`
187+
* Make `flang-new` always generate run-time type info
188+
* Add support for `--target`/`--triple`
189+
* OpenMP
190+
* Added OpenMP 5.0 specification based semantic checks for atomic update construct
191+
* The device expression must evaluate to a non-negative integer value
192+
* Remove clauses from OpenMP Dialect that are handled by the flang frontend instead:
193+
* private, firstprivate, lastprivate, shared, default, copyin, copyprivate
194+
* Runtime
195+
* Implement a runtime routine to report fatal errors with source position
196+
* Rename the runtime routine that reports a fatal user error
197+
* runtime perf: larger I/O buffer growth increments
198+
* Add runtime interface for GET_COMMAND
199+
* Upstream runtime changes for inquiry intrinsics
200+
* Improve error message (initialized variable in pure subprogram)
201+
* Accept BOZ literals for some actual arguments
202+
* Accept sparse argument keyword names for MAX/MIN
203+
* Accept INDEX(..., BACK=array)
204+
* Fix OPEN/WRITE(SIGN='SUPPRESS')
205+
* Handle FLUSH(unknown unit)
206+
* Allow explicit '+' in NAMELIST input subscripts
207+
* Extension: skip over NAMELIST groups
208+
* Add array operations documentation
209+
* Fix crash from USE-associated defined I/O subprograms
210+
* Allow INQUIRE() on a child unit in user-defined I/O procedure
211+
* Don't drop format string for external child I/O
212+
* Support DECIMAL='COMMA' mode in namelist I/O
213+
* Update tco tool pipline and add translation to LLVM IR
214+
* Add MemoryAllocation pass to the pipeline
215+
* Add ieee_is_normal/ieee_is_negative to ieee_arithmetic module.
216+
* Add a custom target for the "flang" wrapper script.
217+
* split character procedure arguments in target-rewrite pass
218+
* Expand the semantics test for co_sum
219+
* Correct interpretation of RECL=
220+
* Distinguish intrinsic from non-intrinsic modules
221+
* Make NEWUNIT= use a range suitable for INTEGER(KIND=1) and recycle unit numbers
222+
* Modify right modes for READ/WRITE vs OPEN
223+
* Add a semantics test for co_broadcast
224+
* catch implicit interface incompatibility with global scope symbol
225+
* Add an assert to guard against nullptr dereferencing
226+
* Fix FlangOptimizerTests link on Solaris
227+
* Handle "type(foo) function f" when foo is defined in f
228+
* Refine pointer/target test for ASSOCIATED intrinsic
229+
* Allow mixed association of procedure pointers and targets
230+
* Fix edge case in USE-associated generics
231+
* Fail at link time if derived type descriptors were not generated
232+
* Allow for deferred-length character in EstablishDescriptor
233+
* Allow DATA initialization of derived types w/ allocatable components
234+
* Accept NULL(mold=x) as constant component value in constant structure constructor
235+
* Ensure a characterized ENTRY in a PURE subprogram is also marked PURE
236+
* Accept structure constructor value for polymorphic component
237+
* Remove deprecated parser/printer/verifier utilities
238+
* Accept pointer assignment w/ remapping to function result
239+
* Allow extension cases of EQUIVALENCE with optional warnings
240+
* Handle CALL C_F_POINTER(without SHAPE=)
241+
* Make source location more accurate for actual arguments
242+
* Add Win32 to the list of supported triples
243+
* Allow tabs as white space in formats
244+
* Do not print format tabs
245+
* Catch I/O of bad derived type at compile time
246+
* Allow more concurrently open NEWUNIT= values, with recycling
247+
248+
Call notes are recorded and available upon request [here](https://docs.google.com/document/d/10T-S2J3GrahpG4Ooif93NSTz2zBW0MQc_RlwHi0-afY). Please contact Alexis Perry-Holby at aperry@lanl.gov for document access.
249+
250+
### LFortran
251+
252+
* LFortran is participating in GSoC, please see [GSoC 2022 Student Instructions for LFortran](https://gitlab.com/lfortran/lfortran/-/wikis/GSoC%202022%20Student%20Instructions) for instructions how to apply
253+
* 19 Merge Requests merged
254+
* New ASR optimizations
255+
* Addes support for fma (fused-multiply add) in LLVM
256+
* Semantic improves to compile more of stdlib
257+
258+
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.
259+
260+
## Events
261+
262+
* Fortran-lang has been selected as a mentoring organization for Google Summer of Code 2022!
263+
Thanks to everybody who helped prepare the application.
264+
[GSoC](https://summerofcode.withgoogle.com/) is Google's global, online program that allows newcomers to open-source to work on a project and get paid for it.
265+
See the [Fortran-lang GSoC 2022 page](https://summerofcode.withgoogle.com/programs/2022/organizations/fortran-lang) for information about the projects and how to apply.
266+
Applications for contributors open **April 4** and close **April 19**.
267+
To learn more about GSoC and what has changed since last year, please see the [GSoC 2022 announcement](https://opensource.googleblog.com/2021/11/expanding-google-summer-of-code-in-2022.html).
268+
If you'd like to participate as a contributor or a mentor, please let us know in this thread and we'll help you get started.
269+
* Fortran-lang community now maintains a modernized fork of the classic library
270+
[minpack](https://github.com/fortran-lang/minpack). Give it a try!
271+
* We had our 23rd Fortran Monthly call on February 15.
272+
You can watch the recording below:
273+
<iframe width="560" height="315" src="https://www.youtube.com/embed/oi0F-4QSdIY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
274+
* US Fortran Standards Committee meeting #226 started on February 28.
275+
See the draft agenda [here](https://j3-fortran.org/doc/year/22/agenda226.txt)
276+
and the submitted papers [here](https://j3-fortran.org/doc/meeting/226).
277+
278+
As usual, subscribe to the [mailing list](https://groups.io/g/fortran-lang) and/or
279+
join the [Discourse](https://fortran-lang.discourse.group) to stay tuned with the future meetings.
280+
281+
## Contributors
282+
283+
We thank everybody who contributed to fortran-lang in the past month by
284+
commenting in any of these repositories:
285+
286+
* [fortran-lang/stdlib](https://github.com/fortran-lang/stdlib)
287+
* [fortran-lang/stdlib-cmake-example](https://github.com/fortran-lang/stdlib-cmake-example)
288+
* [fortran-lang/fpm](https://github.com/fortran-lang/fpm)
289+
* [fortran-lang/fpm-registry](https://github.com/fortran-lang/fpm-registry)
290+
* [fortran-lang/fpm-docs](https://github.com/fortran-lang/fpm-docs)
291+
* [fortran-lang/setup-fpm](https://github.com/fortran-lang/setup-fpm)
292+
* [fortran-lang/fpm-haskell](https://github.com/fortran-lang/fpm-haskell)
293+
* [fortran-lang/fortran-lang.org](https://github.com/fortran-lang/fortran-lang.org)
294+
* [fortran-lang/benchmarks](https://github.com/fortran-lang/benchmarks)
295+
* [fortran-lang/fortran-forum-article-template](https://github.com/fortran-lang/fortran-forum-article-template)
296+
* [fortran-lang/fftpack](https://github.com/fortran-lang/fftpack)
297+
* [fortran-lang/minpack](https://github.com/fortran-lang/minpack)
298+
* [fortran-lang/test-drive](https://github.com/fortran-lang/test-drive)
299+
* [j3-fortran/fortran\_proposals](https://github.com/j3-fortran/fortran_proposals)
300+
301+
<div id="gh-contributors" data-startdate="February 01 2022" data-enddate="February 28 2022" height="500px"></div>

0 commit comments

Comments
 (0)