
We’re happy to announce the release of Chapel 2.10 today! This new version of Chapel continues the project’s goals of making scalable parallel programming more productive, accessible, and portable.
Highlights of Chapel 2.10
Version 2.10 of Chapel includes the following highlights, which focus on improvements to the project’s software development methodology and user-facing features.
- Improved Testing via GitHub Actions and CI
During this release cycle, a large number of test suites that have historically been run within HPE by the core development team have been moved into the public sphere, running using GitHub Actions during commits, after merging pull requests, and on a nightly basis with results logged publicly in Chapel’s Discourse community. These changes take significant steps toward making the project more accessible to community developers. - Undefined Behavior Sanitization
After this summer’s Chapel 2.9 release, we kicked off a new nightly testing configuration that runs the Chapel compiler and its generated executables with an undefined behavior sanitizer enabled, to track down cases where we were unknowingly relying on such behaviors. In Chapel 2.10, we have closed the vast majority of these loopholes in Chapel’s code base and test suite, resulting in code that is more portable and future-proof. - Full-fledged ‘union’ types
In Chapel 2.10, Chapel’s ‘union’ type has reached a new level of maturity, supporting compiler- and user-generated initializers as well as a new stylized ‘union select’ statement that supports taking actions on a union value based on pattern-matching which of its fields is active. - Stack Traces for thrown errors
Chapel 2.10 also provides a new method for inspecting the stack trace for a caught error while also generating stack traces for errors that are thrown but uncaught.
Learn More
For further details on the highlights above, or other improvements in Chapel 2.10 not covered here, see the official Chapel 2.10 announcement on the Chapel project blog.