From: Brad C. <br...@cr...> - 2019-03-22 00:02:41
|
Dear Chapel community -- Cray Inc. and the Chapel open-source community are proud to announce the release of Chapel version 1.19! (homebrew users: note that 1.19 is not yet available via homebrew, but should be soon). This release includes the following highlights: * support for compile-time operations on `param` floating point values * the ability to use underscores in numeric values to break long values into chunks (e.g., 1_000_000) * improvements to error-handling, initializers, and strings * improved lifetime checking, including language support for annotating the relative lifetimes of procedure arguments * compile-time nil-checking * a distinction between constructs that must be parallel (e.g., `forall` loops) and those that will use parallelism when available, but fall back to serial execution otherwise (e.g., promotions, reductions, and `[]`-loops) * index-preservation for promotions and loop expressions over ranges as well as index- and shape-preservation for scan expressions * support for distributed associative domains and arrays via the `Hashed` distribution * convenience functions for creating `Block`- and `Cyclic`-distributed domains and arrays * improved performance as a result of using C standard atomic operations by default when using GCC, Clang, or LLVM as the back-end compiler * optimized remote task spawns and communications on Cray systems that use `ugni` communication * a prototype optimization that applies unordered operations to the last statements of `forall` loops on Cray systems, enabled using --optimize-forall-unordered-ops * a prototype parallel implementation of scans over local and block-distributed 1D arrays, enabled using -senableParScan * a new OpenFabrics Interfaces option, `ofi`, for libfabric-based communication * a new `c_array` type that can be used to represent static arrays in external C code (or the equivalent) * improved support for Python interoperability as well as initial support for interoperating with Fortran including the ability to pass 1D arrays between Fortran and Chapel * improvements to the `Random`, `Sort`, and `Path` modules * significant improvements to the maturity of the LLVM back-end And of course, Chapel 1.19 contains many other feature enhancements, bug fixes, and documentation improvements. For a far more complete list of changes including pointers to supporting documentation, please refer to CHANGES.md within the release or online: https://github.com/chapel-lang/chapel/blob/release/1.19/CHANGES.md To download and install the release, see: https://chapel-lang.org/download.html And for a list of those who contributed to Chapel 1.19, please see: https://github.com/chapel-lang/chapel/blob/release/1.19/CONTRIBUTORS.md As always, we're interested in feedback on how we can make the Chapel language, implementation, libraries, and tools more useful to you. On behalf of the Chapel project, -Brad Chamberlain ------------------------------------ For further information about Chapel ------------------------------------ Whether you're a Facebook or Twitter user, or might simply enjoy checking in on us online from time-to-time, Chapel's social media pages have a steady stream of content about the project and language: https://www.facebook.com/ChapelLanguage https://twitter.com/ChapelLanguage Our development repository is hosted at GitHub, making it the best place to track, or contribute to, ongoing Chapel development: https://github.com/chapel-lang/chapel The Chapel website can be found at: https://chapel-lang.org and it remains the best place to find Chapel-related information such as videos, papers, presentations, blog posts, and tutorials. |