# Announcing Chapel 1.21.0!

**URL:** <https://chapel.discourse.group/t/announcing-chapel-1-21-0/27>\
**Category:** Announcements\
**Created:** [April 10, 2020, 6:34pm UTC](https://chapel.discourse.group/t/announcing-chapel-1-21-0/27 "2020-04-10T18:34:12Z")\
**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:** [April 10, 2020, 6:34pm UTC](https://chapel.discourse.group/t/announcing-chapel-1-21-0/27/1 "2020-04-10T18:34:12Z")

</div>

Dear Chapel community –

Cray, a Hewlett Packard Enterprise Company, and the Chapel open-source community are proud to announce the release of Chapel version 1.21!

[Mac users: the Homebrew formula is still working its way through the system… see [https://github.com/Homebrew/homebrew-core/pull/52790](https://github.com/Homebrew/homebrew-core/pull/52790) ]

This is the first of two releases that we will be making this month. Chapel 1.21 is our typical semi-annual release containing numerous feature and performance improvements. Chapel 1.22 will focus on changing Chapel’s implicitly indexed types to 0-based indexing from Chapel’s historical choice of 1-based. We recommend that users with existing Chapel code incrementally upgrade to version 1.21 before 1.22 in order to ease the transition.

Chapel 1.21 includes the following highlights, many of which support our goal of stabilizing Chapel’s core features for a forthcoming Chapel 2.0 release:

- Chapel’s modules and namespaces have improved in a number of ways, including:

- Chapel strings are now validated to ensure that they are UTF8, and the `bytes` type has been improved to be a true peer to strings.

- Chapel now supports split initialization of variables, constants, types, params, and refs, which permits the declaration of a symbol to occur in a distinct statement from its initialization.

- We added several features that support a more index-neutral style of programming, such as support for looping over heterogeneous tuples and a `.indices` query for most collection types.

- This release also contains several new performance improvements and optimizations including:

- The language specification has been converted from PDF to HTML to better integrate it with Chapel’s other online documentation (see [https://chapel-lang.org/docs/language/spec/index.html](https://chapel-lang.org/docs/language/spec/index.html))

- The `ofi`/libfabric implementation of the runtime has improved in terms of functionality, portability, and performance.

In addition, Chapel 1.21 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.21/CHANGES.md](https://github.com/chapel-lang/chapel/blob/release/1.21/CHANGES.md)

To download and install the release, see:

[https://chapel-lang.org/download.html](https://chapel-lang.org/download.html)

And for a list of everyone who contributed to Chapel 1.21, please see:

[https://github.com/chapel-lang/chapel/blob/release/1.21/CONTRIBUTORS.md](https://github.com/chapel-lang/chapel/blob/release/1.21/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 user of Twitter or Facebook, or would simply enjoy  
checking in on us from time-to-time, Chapel’s social media pages have  
a reasonably steady stream of content about the project and language:

[https://twitter.com/ChapelLanguage](https://twitter.com/ChapelLanguage)  
[https://www.facebook.com/ChapelLanguage](https://www.facebook.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](https://github.com/chapel-lang/chapel)

The Chapel website can be found at:

[https://chapel-lang.org](https://chapel-lang.org)

and it remains the best place to find Chapel-related information such  
as videos, papers, presentations, blog posts, and tutorials.
