From: Brad C. <br...@cr...> - 2018-09-20 22:30:36
|
Hi Chapel community -- Cray Inc. and the Chapel open-source community are proud to announce the release of Chapel version 1.18! This release includes the following highlights: * classes now support multiple flavors of lifetime management, where the default has changed from 'unmanaged' (user must delete) to 'borrowed' (objects will be auto-freed at the end of their scope); other options include 'owned' and 'shared', which support ownership transfers and reference counting, respectively * a new compile-time lifetime checker helps guard against referring to previously freed class objects * Chapel's package manager, 'mason' now supports external dependencies for both system- and 'Spack'-managed packages; 'mason' also now supports the ability to test packages and add examples to them * loop expressions and promoted calls over domains and arrays now preserve the shape and index set of the leading expression * forall loops now support task-private variables * all records and classes now use initializers by default, and constructors have been deprecated due to the increased power and flexibility of initializers * child classes that want to override ancestor class methods must now use the 'override' keyword to do so, as a means of guarding against common errors * enumerated types are now purer with respect to casts, coercions, and underlying integer values; users can also now declare ranges, domains, and arrays whose indices are enum values (e.g., red..violet) * initial support has been added for UTF-8 strings * new 'HDF5' and 'NetCDF' package modules have been added for reading data from files in those formats * the 'LinearAlgebra' module has improved in terms of both performance and usability * new buffered versions of the non-fetching atomic operations are available, which can lead to performance improvements on Cray systems * 'sync' variables and parallel I/O have been optimized when using 'qthreads' tasking * large data transfers, non-fetching atomics, and on-clauses have all been optimized for Cray systems * task stacks have been improved in terms of memory utilization and reduced fragmentation * Chapel's support for creating libraries that can be called from C or Python has improved significantly * Chapel's support for ARM systems has improved * new scripts are now provided to help build and maintain Chapel configurations * compilation time has been reduced for most programs And of course, Chapel 1.18 contains a very large number of other feature enhancements, bug fixes, and documentation improvements. For a far more complete list of its changes including pointers to related documentation, please refer to CHANGES.md within the release or online: https://github.com/chapel-lang/chapel/blob/release/1.18/CHANGES.md To download and install the release, see: https://chapel-lang.org/download.html And for a list of those who contributed to the release, refer to: https://github.com/chapel-lang/chapel/blob/release/1.18/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 devoted Facebook or Twitter user, or might simply enjoy checking in on us from time-to-time, our project's social media pages have a steady stream of content about the project and language: https://www.facebook.com/ChapelLanguage https://twitter.com/ChapelLanguage https://www.youtube.com/channel/UCHmm27bYjhknK5mU7ZzPGsQ/ 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 Our main project page is located at: https://chapel-lang.org and it remains the best place to find Chapel-related information such as videos, papers, presentations, blog posts, tutorials, and the like. |