# Announcing Chapel version 1.19!

**URL:** <https://chapel.discourse.group/t/announcing-chapel-version-1-19/18>\
**Category:** Announcements\
**Created:** [March 22, 2019, 12:18am UTC](https://chapel.discourse.group/t/announcing-chapel-version-1-19/18 "2019-03-22T00:18:24Z")\
**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 22, 2019, 12:18am UTC](https://chapel.discourse.group/t/announcing-chapel-version-1-19/18/1 "2019-03-22T00:18:25Z")

</div>

Dear Chapel community –

Cray Inc. and the Chapel open-source community are proud to announce  
the release of Chapel version 1.19! (homebrew users: note that 1.19  
is not yet available via homebrew, but should be soon).

This release includes the following highlights:

- support for compile-time operations on `param` floating point values

- the ability to use underscores in numeric values to break long  
values into chunks (e.g., 1\_000\_000)

- improvements to error-handling, initializers, and strings

- improved lifetime checking, including language support for  
annotating the relative lifetimes of procedure arguments

- compile-time nil-checking

- a distinction between constructs that must be parallel (e.g.,  
`forall` loops) and those that will use parallelism when available,  
but fall back to serial execution otherwise (e.g., promotions,  
reductions, and `[]`-loops)

- index-preservation for promotions and loop expressions over ranges  
as well as index- and shape-preservation for scan expressions

- support for distributed associative domains and arrays via the  
`Hashed` distribution

- convenience functions for creating `Block`- and `Cyclic`-distributed  
domains and arrays

- improved performance as a result of using C standard atomic  
operations by default when using GCC, Clang, or LLVM as the back-end  
compiler

- optimized remote task spawns and communications on Cray systems that  
use `ugni` communication

- a prototype optimization that applies unordered operations to the  
last statements of `forall` loops on Cray systems, enabled using  
–optimize-forall-unordered-ops

- a prototype parallel implementation of scans over local and  
block-distributed 1D arrays, enabled using -senableParScan

- a new OpenFabrics Interfaces option, `ofi`, for libfabric-based  
communication

- a new `c_array` type that can be used to represent static arrays in  
external C code (or the equivalent)

- improved support for Python interoperability as well as initial  
support for interoperating with Fortran including the ability to  
pass 1D arrays between Fortran and Chapel

- improvements to the `Random`, `Sort`, and `Path` modules

- significant improvements to the maturity of the LLVM back-end

And of course, Chapel 1.19 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.19/CHANGES.md](https://github.com/chapel-lang/chapel/blob/release/1.19/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 those who contributed to Chapel 1.19, please see:

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

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