Announcing Chapel 1.24.0!

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; ensures obj is non-nilable)
  • improving the definition and handling of tertiary methods
  • unifying the handling of out intents and return 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 .

To download and install the release, see: Chapel: Download.

And for a list of everyone who contributed to Chapel 1.24, please refer to

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

1 Like