From: Brad C. <bra...@hp...> - 2020-04-09 21:48:06
|
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 ] 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: - the addition of a new `import` statement that provides a more precise way of referring to a module's contents - a new ability to rename modules when they're used via `as` (e.g., `use MyLongModuleName as M;`) - prototypical support for storing a module's sub-modules in their own files - reduced bleeding of symbols between modules by making `use` private by default and leveraging it in Chapel-provided modules * 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: - better performance and scalability when creating distributed domains and arrays - improvements to the unordered operation optimization and its associated `unorderedCopy()` routine - optimized `on`-statement performance for InfiniBand networks - improved performance (and correctness) of mis-aligned `ugni` data transfers * 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) * 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 To download and install the release, see: 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 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://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 The Chapel website can be found at: https://chapel-lang.org and it remains the best place to find Chapel-related information such as videos, papers, presentations, blog posts, and tutorials. |