Dear Chapel community –
We’re proud to announce the release of Chapel version 1.24 today!
This release continues our push towards a future Chapel 2.0 release, by:
- significantly improving the syntax and semantics of operator overloads
- clarifying the relationship between various ways of converting between types
- improving the ergonomics of nilable class checks within conditionals and while-loops
if const obj = foo() then obj.bar();ensures
- improving the definition and handling of tertiary methods
- unifying the handling of
- adding initial support for constrained generic interfaces
In addition, we've deprecated implicit reads and writes of
single variables, in favor of explicit methods like
From a performance perspective, Chapel 1.24.0 contains some nice improvements. We've:
- improved the performance of
--cache-remoteand enabled it by default
- added a new opt-in
--auto-aggregationoptimization that combines communications
- improved the generality and reporting for the
- improved performance of scan operations for a number of 1D array cases
- improved compile times for programs that make heavy use of zippered forall-loops
Some other niceties in this release include:
- support for Chapel syntax highlighting in the
- significant portability and performance improvements for
- significant improvements to the LLVM-based compiler back-end
- closing the last known cases of memory leaks from Chapel 1.23
We have also upgraded our code base to make better use of Python 3, and to make better choices with respect to default launchers.
For a more complete list of changes, including pointers to supporting documentation, please refer to CHANGES.md .
To download and install the release, see: Chapel: Download.
And for a list of everyone who contributed to Chapel 1.24, please refer to 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 and your work.
On behalf of the Chapel project,