# Announcing Chapel 1.24.0!

**URL:** <https://chapel.discourse.group/t/announcing-chapel-1-24-0/4014>\
**Category:** Announcements\
**Created:** [March 18, 2021, 9:58pm UTC](https://chapel.discourse.group/t/announcing-chapel-1-24-0/4014 "2021-03-18T21:58:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![bradcray](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/bradcray/32/72_2.png) [@bradcray](https://chapel.discourse.group/u/bradcray)\
**Post date:** [March 18, 2021, 9:58pm UTC](https://chapel.discourse.group/t/announcing-chapel-1-24-0/4014/1 "2021-03-18T21:58:04Z")

</div>

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](https://chapel-lang.org/docs/1.24/technotes/operatorMethods.html#defining-operators)
- clarifying the relationship between various ways of [converting between types](https://chapel-lang.org/docs/1.24/language/spec/conversions.html#implicit-conversions-for-initialization-and-assignment)
- improving the ergonomics of nilable class checks within conditionals and while-loops  
(e.g., `if const obj = foo() then obj.bar();` ensures `obj` is non-nilable)
- improving the definition and handling of [tertiary methods](https://chapel-lang.org/docs/1.24/language/spec/methods.html)
- unifying the handling of `out` intents and `return` statements
- adding initial support for [constrained generic interfaces](https://github.com/chapel-lang/chapel/blob/master/doc/rst/developer/chips/2.rst)

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](https://github.com/chapel-lang/chapel/blob/release/1.24/CHANGES.md).

To download and install the release, see: [Chapel: Download](https://chapel-lang.org/download.html).

And for a list of everyone who contributed to Chapel 1.24, please refer to [CONTRIBUTORS.md](https://github.com/chapel-lang/chapel/blob/release/1.24/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
