|
2 | 2 | layout: post
|
3 | 3 | title: "Fortran newsletter: May 2022"
|
4 | 4 | category: newsletter
|
5 |
| -author: Milan Curcic |
| 5 | +author: Milan Curcic, Alexis Perry-Holby |
6 | 6 | ---
|
7 | 7 |
|
8 | 8 | Welcome to the May edition of the monthly Fortran newsletter.
|
@@ -162,7 +162,148 @@ environment in which new open source Fortran projects are created and published
|
162 | 162 |
|
163 | 163 | ### Flang
|
164 | 164 |
|
165 |
| -TODO @alexisperry |
| 165 | +Recent development updates: |
| 166 | + |
| 167 | +* FIR |
| 168 | + * Lower various intrinsics: |
| 169 | + * character related intrinsics, array related intrinsics, index intrinsics, present, exit, btest, ceiling, nearest, scale, matmul, trim, transpose, command, environment, repeat, aint, anint, cmplx, conjg, dble, dprod, sign, spacing, rrspacing, merge intrinsics, lbound, ubound, ior, exp, log, log10, sqrt, atan, sinh, cosh, sin, cos, mvbits, achar |
| 170 | + * Add IO lowering test |
| 171 | + * Add more lowering tests for dummy arguments |
| 172 | + * Add equivalence lowering tests |
| 173 | + * Add array constructor lowering tests |
| 174 | + * Lower more array expressions |
| 175 | + * Lower statement function |
| 176 | + * Lower length on character storage |
| 177 | + * Lower select case statement |
| 178 | + * Add OpenMP Conversion patterns |
| 179 | + * Lower procedure designator |
| 180 | + * Lower boxed procedure |
| 181 | + * Flush and master constructs |
| 182 | + * Add lowering C interoperability test |
| 183 | + * Add misc lowering tests |
| 184 | + * Handle zero extent case in LBOUND |
| 185 | + * Lower some coarray statements to their runtime function |
| 186 | + * Options to lower math intrinsics to relaxed, precise variants |
| 187 | + * Lower optionals in GET_COMMAND_ARGUMENT and GET_ENVIRONMENT_VARIABLE |
| 188 | + * Added lowering support for atomic read and write constructs |
| 189 | + * fix LBOUND lowering with KIND and no DIM arguments |
| 190 | + * Keep fully qualified !fir.heap type for fir.freemem op |
| 191 | + * Update the conversion code for fir.coordinate_of |
| 192 | + * Set lower bounds of array section fir.embox to one |
| 193 | + * Fix fir.embox codegen with constant interior shape |
| 194 | + * Do not fold fir.box_addr when it has a slice |
| 195 | +* Driver |
| 196 | + * Make --version and -version consistent with clang |
| 197 | + * Add support for -mmlir |
| 198 | + * Make the plugin API independent of the driver internals |
| 199 | + * Add support for generating executables |
| 200 | +* OpenMP |
| 201 | + * Lowering critical construct |
| 202 | + * Added assembly format for omp.wsloop and remove parseClauses |
| 203 | + * Added lowering support for sections construct |
| 204 | + * Added ReductionClauseInterface |
| 205 | + * Added parallel sections translation |
| 206 | + * Revert "[Flang][OpenMP] Add semantic check for OpenMP Private, Firstprivate and Lastprivate clauses." |
| 207 | + * Added allocate clause translation for OpenMP block constructs |
| 208 | + * Support export/import OpenMP Threadprivate Flag |
| 209 | + * Add implementation of privatisation |
| 210 | + * Add checks and tests for hint clause and fix empty hint |
| 211 | +* OpenACC |
| 212 | + * Lower enter data directive |
| 213 | + * Lower exit data directive |
| 214 | + * Lower init/shutdown directive |
| 215 | + * Lower update directive |
| 216 | + * Lower data directive |
| 217 | + * Lower wait directive |
| 218 | +* Runtime |
| 219 | + * Error recovery improvement in runtime (IOMSG=) |
| 220 | + * Initial UTF-8 support in runtime I/O |
| 221 | + * Ensure PointerDeallocate actually deallocate pointers |
| 222 | + * Add runtime API to catch unit number out of range |
| 223 | + * Prefer process time over thread time in CPU_TIME |
| 224 | + * Raise FP exceptions from runtime conversion to binary |
| 225 | + * Preserve effect of positioning in record in non-advancing output |
| 226 | + * Don't skip input spaces when they are significant |
| 227 | + * Fix ENDFILE for formatted stream output |
| 228 | + * Don't emit empty lines for bad writes |
| 229 | + * Ignore leading spaces even in BZ mode |
| 230 | + * Fix edge-case FP input bugs |
| 231 | + * Enforce some limits on kP scale factors |
| 232 | + * Signal record read overrun when PAD='NO' |
| 233 | + * Fix KIND=16 real/complex component I/O |
| 234 | + * Fix total MAXLOC/MINLOC for non-integer data |
| 235 | +* Handle allocatable components when creating array temps |
| 236 | +* [Parser] Add a node for individual sections in sections construct |
| 237 | +* Add explanatory messages to grammar for language extensions |
| 238 | +* Convert RUNTIME_CHECK to better error for user errors in transformational.cpp |
| 239 | +* Accept legacy aliases for intrinsic function names |
| 240 | +* Expose error recovery cases in external I/O |
| 241 | +* Fix crash: ENTRY with generic interface of the same name |
| 242 | +* Fold DBLE |
| 243 | +* Single construct translation from PFT to FIR |
| 244 | +* UBOUND() edge case: empty dimension |
| 245 | +* Make not yet implemented messages more consistent |
| 246 | +* Fix LBOUND rewrite on descriptor components |
| 247 | +* Ensure descriptor lower bounds are LBOUND compliant |
| 248 | +* Fix cycle-catcher in procedure characterization |
| 249 | +* Fix bogus error from assignment to CLASS(*) |
| 250 | +* Mark C_ASSOCIATED specific procedures as PURE |
| 251 | +* Catch bad OPEN(STATUS=) cases |
| 252 | +* Fold NEAREST() and its relatives |
| 253 | +* Prevent undefined behavior in character MAXLOC folding |
| 254 | +* Fix invalid overflow check |
| 255 | +* Skip D when including D debug line |
| 256 | +* Allow user to recover from bad edit descriptor with INTEGER |
| 257 | +* Fold instantiated PDT character component length when needed |
| 258 | +* Add one semantic check for allocatable/pointer argument association |
| 259 | +* [cmake] Make CMake copy "omp_lib.h" into the build directory |
| 260 | +* Handle dynamically optional argument in EXIT |
| 261 | +* Fix semantic analysis for "forall" targeted by "label" |
| 262 | +* Emit a portability warning for padding in COMMON |
| 263 | +* Expand the num_images test coverage |
| 264 | +* Fold IBITS() intrinsic function |
| 265 | +* Error handling for out-of-range CASE values |
| 266 | +* Respect left tab limit with Tn editing after ADVANCE='NO' |
| 267 | +* Allow IMPLICIT NONE(EXTERNAL) with GenericDetails |
| 268 | +* Do not ICE on out-of-range data statement designator |
| 269 | +* Fix ICE for sqrt(0.0) evaluation |
| 270 | +* Fix float-number representation bug |
| 271 | +* Fix intrinsic interface for DIMAG/DCONJG |
| 272 | +* Improve appearance of message attachments |
| 273 | +* Fix combining cases of USE association & generic interfaces |
| 274 | +* Defer all function result type processing |
| 275 | +* Always encode multi-byte output in UTF-8 |
| 276 | +* Fix shape analysis of RESHAPE result |
| 277 | +* Use full result range for clock_gettime implementation of SYSTEM_CLOCK |
| 278 | +* Correct interaction between generics and intrinsics |
| 279 | +* Make F0.1 output editing of zero edge case consistent |
| 280 | +* Inner INTRINSIC must not shadow host generic |
| 281 | +* Local generics must not shadow host-associated generics |
| 282 | +* Fix TYPE/CLASS IS (T(...)) in SELECT TYPE |
| 283 | +* Allow modification of construct entities |
| 284 | +* Defer NAMELIST group item name resolution |
| 285 | +* Accept TYPE(intrinsic type) in declarations only for non-extension type |
| 286 | +* Finer control over error recovery with GetExpr() |
| 287 | +* Handle parameter-dependent types in PDT initializers |
| 288 | +* Upgrade short actual character arguments to errors |
| 289 | +* Allow POINTER attribute statement on procedure interfaces |
| 290 | +* Accept KIND type parameter inquiries on RE, IM, etc. |
| 291 | +* Add & use a better visit() |
| 292 | +* Fix regression with recent work on intrinsic/generic interactions |
| 293 | +* Do not pass derived type by descriptor when not needed |
| 294 | +* Fix LBOUND() folding for constant arrays |
| 295 | +* Set LBOUND() folding for (x) expression as ones |
| 296 | +* Semantics limits on kP scale factors |
| 297 | +* Do not ICE on recursive function definition in function result |
| 298 | +* Fold transformational bessels when host runtime has bessels |
| 299 | +* Do not create arith.extui with same from/to type |
| 300 | +* Disambiguate F(X)=Y case where F is a function returning a pointer |
| 301 | +* Avoid global name conflict when BIND(C,NAME=) is used |
| 302 | +* Accept "INFINITY" as real input |
| 303 | +* Add semantic checks for intrinsic function REDUCE() |
| 304 | +* Fix crash from PDT component init in module file |
| 305 | + |
| 306 | +Call notes are recorded and publicly available [here](https://docs.google.com/document/d/1Z2U5UAtJ-Dag5wlMaLaW1KRmNgENNAYynJqLW2j2AZQ/edit). |
166 | 307 |
|
167 | 308 | ### LFortran
|
168 | 309 |
|
|
0 commit comments