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
(e.g.,if const obj = foo() then obj.bar();
ensuresobj
is non-nilable) - improving the definition and handling of tertiary methods
- unifying the handling of
out
intents andreturn
statements - adding initial support for constrained generic interfaces
In addition, we've deprecated implicit reads and writes of sync
and single
variables, in favor of explicit methods like .readFE()
and writeEF()
.
From a performance perspective, Chapel 1.24.0 contains some nice improvements. We've:
- improved the performance of
--cache-remote
and enabled it by default - added a new opt-in
--auto-aggregation
optimization that combines communications - improved the generality and reporting for the
--auto-local-access
optimization - 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
geany
editor - significant portability and performance improvements for
ofi
-based communication - 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,
-Brad Chamberlain