Dear Chapel community --

Cray Inc. and the Chapel open-source community are pleased to announce the release of version 1.11.0 of Chapel. This release's highlights include:

* Web-based Standard Library Documentation: Using our newly revamped
  'chpldoc' tool for creating source-based documentation (also part of
  this release), we've updated all of our standard library documentation
  and put it on the web:

        http://chapel.cray.com/docs/latest/

* A new FileSystem Module: As part of a recent effort to beef up our
  standard libraries, this release contains a new FileSystem module which
  supports copying, renaming, and moving files and directories, as well as
  a number of iterators for interacting with the file system serially or
  in parallel.  For more information, see its web-based documentation at:

        http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html

* A new FFTW Module: Contributed by Nikhil Padmanabhan (Yale University),
  this library module wraps a number of key 64-bit FFTW routines in a
  Chapel-oriented interface.  For more information, see:

        http://chapel.cray.com/docs/latest/modules/standard/FFTW.html

* Vectorization: When using the --fast or --vectorize flags and a back-end
  version of gcc/icc that supports vectorization, the serial inner loops
  generated for Chapel data parallel operations are now annotated
  to hint to the back-end compiler that the loop is safe for
  vectorization.  For more information see the --vectorize flag on the
  'chpl' man page.

* Less Conservative Communication: One of Chapel's traditional performance
  limiters in distributed-memory settings has been the generation of
  far-too-conservative communication code by the Chapel compiler.  This
  release contains a stepping stone toward remedying this situation by
  supporting a developer-oriented pragma that can be used to assert the
  locality of class references and applying it to the internal data
  structures used to implement arrays.  This results in cleaner generated
  scalar code, enabling additional back-end C compiler optimizations and
  reducing unnecessary runtime locality checks.

* Default to ugni/muxed on Crays: For users of the Cray module, this
  release makes the ugni/muxed runtime layers the default, resulting
  in significant performance gains over the previous default of
  gasnet/qthreads.  See doc/platforms/README.cray in the release for
  more details.

* Initial Support for Python->Chapel Interoperability: This release
  contains initial support for making calls from Python to Chapel as part
  of our ongoing interoperability effort, developed by Simon Lund of the
  University of Copenhagen.  For more information, see:

        http://pychapel.readthedocs.org/

* Prototype Chapel Interpreter: We have recently started on an effort to
  support Chapel in an interactive/interpreted mode in which the
  environment executes the Chapel code as it is entered, as in popular
  scripting and productivity languages.  This release contains an early
  prototype of this effort (chpl-ipe) for those who would like to
  preview the concept.  For more information, refer to:

        
https://github.com/chapel-lang/chapel/blob/release/1.11/doc/release/technotes/README.chpl-ipe.rst

* Standalone Parallel Iterators: Traditionally, Chapel's forall loops
  have been implemented using leader-follower iterators, which support
  the ability to perform zippered iteration over multiple collections.
  In the case of forall loops over a single object, however, this
  interface introduced unnecessary complexity and overheads.  To remedy
  this, Chapel now supports standalone parallel iterators which support
  the optimized implementation of non-zippered data parallel loops.

* Forall Intents and Improved Task Intents: Continuing work started in
  previous releases for task parallel constructs, version 1.11 extends
  task intent semantics to forall loops, reducing the chances of race
  conditions in common cases.  As with task intents, a with-clause may
  be applied to the forall loop to request semantics other than the
  default.  This release also adds support for intents other than 'ref',
  such as 'in' and 'const'.  Finally, it includes an early prototype of a
  new 'reduce' intent on forall loops.

* A 'chpltags' Utility: For those developing large Chapel codes,
  util/chpltags can be used to index Chapel source files, permitting emacs
  and vim users to jump to definitions of functions, iterators, and the
  like.

* Numerous other improvements to performance, generated code, and
  portability, as well as bug fixes, documentation improvements, etc.

...and much more! For more information on the features above, or to see a more complete list of changes in version 1.11.0, refer to the list at the end of this message, or to $CHPL_HOME/CHANGES within the release itself.


Contributors to this release include:

   Sean Billig, individual contributor
   Kyle Brady, Cray Inc.
   Brad Chamberlain, Cray Inc.
   Sung-Eun Choi, Cray Inc.
   Lydia Duncan, Cray Inc.
   Michael Ferguson, Cray Inc.
   Ben Harshbarger, Cray Inc.
   Tom Hildebrandt, Cray Inc.
   David Iten, Cray Inc.
   Vassily Litvinov, Cray Inc.
   Simon Lund, Københavns Universitet (University of Copenhagen)
   Tom MacDonald, Cray Inc.
   Phil Nelson, Western Washington University
   Michael Noakes, Cray Inc.
   Nikhil Padmanabhan, Yale University
   Elliot Ronaghan, Cray Inc.
   Francisco Souza, individual contributor
   Greg Titus, Cray Inc.
   Thomas Van Doren, Cray Inc.


To download the 1.11 release, visit its page at GitHub:

   https://github.com/chapel-lang/chapel/releases/tag/1.11.0

Our development repository is also hosted at GitHub, making it the best place to track or contribute to ongoing Chapel development:

   https://github.com/chapel-lang/chapel

Whether you're a Facebook user, or would simply like to stalk us, check our project Facebook page for a steady stream of informal posts about the project and language:

        https://www.facebook.com/ChapelLanguage

Chapel mailing lists devoted to users, developers, educators, and announcements like this one continue to be hosted from our SourceForge project page (which also hosts a mirror of the 1.11.0 release):

   http://sourceforge.net/p/chapel/mailman/

Our main project page continues to be hosted at:

   http://chapel.cray.com

and it remains the best place to find Chapel-related information such as papers, presentations, blog posts, tutorials, news items, collaborations, job listings and the like.

As always, we're interested in your feedback on how we can make the Chapel language and implementation more useful to you.

On behalf of the Chapel Development Team,
-Brad Chamberlain


=======================================
Release Changes List for version 1.11.0
=======================================

Fourteenth public release of Chapel, April 2, 2015

Highlights
----------
* revamped 'chpldoc' and used it to create web docs for all standard modules
  (see http://chapel.cray.com/docs/latest/)
* added a new FileSystem standard module supporting operations on files/dirs
  (see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* added a new FFTW standard module supporting key FFTW routines
  (see http://chapel.cray.com/docs/latest/modules/standard/FFTW.html)
* added task intents to forall loops, plus new intents such as 'in' and 'reduce'
  (see 'Semantic Changes' and 'New Features' sections below)
* added support for standalone parallel iterators, used by non-zippered foralls
  (see examples/primers/parIters.chpl)
* added support for vectorization of data parallel loops and operations
  (see '--vectorize' flag in 'man chpl')
* optimized away communication code for module-scope variables and local arrays
  (see release note slides at http://chapel.cray.com/download.html#releaseNotes)
* added an early prototype interactive/interpreted mode for writing Chapel code
  (see doc/technotes/README.chpl-ipe.rst for more details)
* initial support for Python->Chapel interoperability via PyChapel
  (see http://pychapel.readthedocs.org/ for more details)
* made 'ugni'/'muxed' the default comm/tasking choices for cray-x* module users
  (see doc/platforms/README.cray and doc/README.chplenv)
* added a new 'chpltags' utility to generate emacs/vim tags for Chapel code
  (see 'util/chpltags --help' and 'util/README')
* numerous other improvements for better performance and cleaner generated code
  (see 'Performance Improvements' section below)
* improved portability to NetBSD and additional flavors of Linux
  (see 'Portability Improvements' section below)
* upgraded the bundled versions of GASNet, hwloc, llvm, and dygraphs
  (see 'Third-Party Software Changes' section below)
* numerous bug fixes
  (see 'Bug Fixes' section below)

Environment/Configuration Changes
---------------------------------
* made the setchplenv.* scripts prepend to PATH and MANPATH rather than append
* made the "quickstart" scripts set CHPL_COMM to 'none' and not set CHPL_MEM
* improved the logic for auto-detecting when CHPL_ATOMICS should be 'intrinsics'
* added auto-detection of CHPL_*_PLATFORM for 'cray-xc'/'cray-xe' systems
* added support for building runtime/third-party with the bundled clang version
  (see references to 'clang-included' in README.chplenv)
* split the 'cygwin' CHPL_*_PLATFORM value into 'cygwin32' and 'cygwin64'
* added new 'netbsd32' and 'netbsd64' values for CHPL_*_PLATFORM
* changed CHPL_COMM/TASKS to default to ugni/muxed when using the cray-x* module
  (see doc/README.chplenv, doc/platforms/README.cray, and/or doc/README.tasks)
* made CHPL_TASKS default to 'fifo' for 'cray-prgenv-cray' CHPL_TARGET_COMPILER

Packaging Changes
-----------------
* updated Makefiles to support building Chapel in parallel via 'make -j'
* avoid rebuilding gmp and re2 speculatively when previous builds have failed

Tool Changes
------------
* added an early prototype interactive/interpreted mode for writing Chapel code
  (see doc/technotes/README.chpl-ipe.rst for more details)
* revamped 'chpldoc' to create HTML files via Sphinx for documenting Chapel code
  (see doc/technotes/README.chpldoc.rst and 'man chpldoc' for more details)
* added a new 'chpltags' utility to generate emacs/vim tags for Chapel code
  (see 'util/chpltags --help' and 'util/README' for more information)

Syntactic/Naming Changes
------------------------
* removed the placeholder keyword 'refvar' in favor of the new keyword 'ref'
* removed support for the use of 'var' as a return intent (use 'ref' instead)

Semantic Changes / Changes to Chapel Language
---------------------------------------------
* added support for task intent clauses and semantics to forall loops
  (see 'Data Parallelism: Forall Intents' in the language specification)
* added initial support for 'reduce' intents on forall loops
  (see doc/technotes/README.reduceIntents)
* removed the 'type select x' syntax in favor of simply using 'select x.type'
* made read()s of sync/single variables result in a compiler error

New Features
------------
* added "blank", 'const', 'in', 'const in' and 'const ref' task intents
  (see 'Task Parallelism: Task Intents' in the language specification)
* added "standalone parallel iterators", used by non-zippered forall loops
  (see examples/primers/parIters.chpl)
* added support for aliasing of domains via the '=>' operator

New Interoperability Features
-----------------------------
* inital support for Python->Chapel interoperability via PyChapel
  (see http://pychapel.readthedocs.org/ for more details)
* added a prototype capability to embed external dependences to source via 'use'
  (e.g., use "foo.h", "-lfoo"; is like adding these to the 'chpl' command-line)
* added support for passing multidimensional arrays to external routines
  (see doc/technotes/README.extern)
* added munging of all user identifiers by default to avoid naming conflicts
  (see --[no-]munge-user-idents in 'man chpl' and doc/README.executing)
* added an error when passing Chapel strings to C routines; use c_string instead

Standard Library/Modules
------------------------
* added a new module, FileSystem, containing numerous file system operations
  (see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* added support for key 64-bit FFTW routines (single- and multi-threaded)
  (see http://chapel.cray.com/docs/latest/modules/standard/FFTW.html and
   http://chapel.cray.com/docs/latest/modules/standard/FFTW_MT.html)
* added parity() and rotate() operations to the BitOps module
  (see http://chapel.cray.com/docs/latest/modules/standard/BitOps.html)
* added parallel versions of the glob(), walkdirs(), and findfiles() iterators
  (see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* started a new module, Path, supporting realPath(), curDir, parentDir, pathSep
  (see http://chapel.cray.com/docs/latest/modules/standard/Path.html)
* added a new module, Assert, defining a simple assertion capability
  (see http://chapel.cray.com/docs/latest/modules/standard/Assert.html)
* added support for C types c_ptrdiff, c_uintptr, and c_intptr to SysCTypes.chpl
  (see 
http://chapel.cray.com/docs/latest/modules/standard/gen/doc/SysCTypes.html)
* changed cwd() and chdir() from standalone functions to locale methods
  (see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* made mkdir(parents=true) behave more like 'mkdir -p'
* added a .safeCast() method to integer types to value-check downcasts
  (see http://chapel.cray.com/docs/latest/modules/standard/Types.html)
* changed min(t) and max(t) to return 'param' values for integral types 't'
  (see http://chapel.cray.com/docs/latest/modules/standard/Types.html)
* parameterized RandomStream by an 'eltType' and updated its methods accordingly
  (see http://chapel.cray.com/docs/latest/modules/standard/Random.html)
* removed the parSafe arguments from RandomStream's methods in the Random module
  (see http://chapel.cray.com/docs/latest/modules/standard/Random.html)
* added support for escaping pattern-style format strings using %{}
  (e.g., "writef("#%{##}", 10)" => "#10")
* added support for readf()/writef() of octal values
* changed 'BigInt' methods to use Chapel types rather than C types
* folded the prototypical 'Filerator' module into the new 'FileSystem' module
* retired the 'Containers' module in favor of vector operations on arrays
  (see examples/primers/arrayVectorOps.chpl)

Performance Improvements
------------------------
* added support for vectorization of data parallel loops and operations
  (see '--vectorize' flag in 'man chpl')
* optimized away the creation of anonymous ranges in loops
  (e.g., 'for i in 1..10' no longer creates an anonymous range object for 1..10)
* optimized away communication code for module-scope variables and local arrays
* optimized iterations over ranges in data parallel constructs like 'forall'
* added standalone parallel iterators for ranges and default domain maps
* extended loop-invariant code motion to include certain global variables
* added an 'assertNoSlicing' config that can be used to optimize array accesses
  (see $CHPL_HOME/PERFORMANCE)
* avoided creating new singleton tasks within serial execution contexts

Memory Improvements
-------------------
* reduced memory leaks due to compilerWarning()s and runtime string arguments
* distinguished between "owned" and "unowned" c_strings in implementation
* improved the handling of strings across multiple locales

Launcher-specific Changes
-------------------------
* in the 'pbs-aprun' launcher, removed reliance on the mpp* options
* added a --nodelist option to the 'slurm-srun' launcher
* in the 'slurm-srun' launcher, stopped using expect scripts

Platform-specific Changes
-------------------------
* fixed an issue in which Qthreads would not handle sleep() correctly for darwin
* added a micro-sleep when yielding threads on Cygwin to improve throughput
* changed CHPL_COMM/TASKS to default to ugni/muxed when using the cray-x* module
  (see doc/README.chplenv, doc/platforms/README.cray, and/or doc/README.tasks)
* enabled 'ugni' tasking to be usable with 'qthreads' as well as 'muxed'
* reduced default heap size used for CHPL_COMM='ugni' to 2/3 free node memory
  (see doc/platforms/README.cray)
* changed 'muxed' tasking to use # of threads equal to the # of CPUs by default
  (see doc/platforms/README.cray)
* disabled optimizations by default for cray-prgenv-cray compilations
* split the 'cygwin' platform value into 'cygwin32' and 'cygwin64'
* split the 'netbsd' platform value into 'netbsd32' and 'netbsd64'
* made CHPL_TASKS default to 'fifo' for 'cray-prgenv-cray' CHPL_TARGET_COMPILER

Portability Improvements
------------------------
* fixed several portability issues on NetBSD platforms
* fixed the use of the --llvm flag on Mac OS X ('darwin') platforms
* fixed some portability issues with the use of hwloc and -lnuma for 'qthreads'
* fixed some static/dynamic linking issues with certain platforms/compilers
* fixed a gmp build issue for 32-bit platforms

Third-Party Software Changes
----------------------------
* updated the bundled version of GASNet to 1.24.0
* updated the bundled version of hwloc to 1.10.1
* updated the bundled version of llvm to 3.6.0
* upgraded the bundled version of dygraphs to version 1.1.0
* added support for dynamically installing Python packages required by 'chpldoc'
  (see 'chpldov-venv' in third-party/README)
* rearchitected scripting framework for third-party dependences
* made the re2 build do a better job of propagating errors back to the Makefiles
* changed Qthreads to avoid using guard pages when mprotect() won't work
* fixed a bug in limiting the maximum size of Qthreads memory pools

Documentation
-------------
* added web-based docs for all standard modules and removed from spec/READMEs
  (see http://chapel.cray.com/docs/latest/)
* made some minor improvements to the Quick Reference document
* added documentation for class and record destructors to the spec
* removed an outdated distinction between function calls using () vs. [] in spec
* clarified that integer literals may be 'int' or 'uint' in the spec
* added a note for 'zsh' users to the top-level README
* added a note to CONTRIBUTORS noting mis-attributed code authors within GitHub
* improved the documentation of the slurm* launchers
  (see doc/README.launcher, doc/platforms/README.cray)
* added a note about ugni memory registration and concurrency with slurm
  (see doc/platforms/README.cray)
* added a note about a longstanding undocumented feature to squash ref counting
  (see $CHPL_HOME/PERFORMANCE)

Example Codes
-------------
* added a new primer example demonstrating use of the FFTW module
  (see examples/primers/FFTWlib.chpl)
* added standalone parallel iterators to the leader-follower primer and renamed
  (see examples/primers/parIters.chpl)
* updated and renamed the chpldoc primer example to reflect chpldoc's changes
  (see examples/primers/chpldoc.doc.chpl)
* updated the random numbers primer to reflect changes to the interface
  (see examples/primers/randomNumbers.chpl)
* fixed a bug in our lulesh implementation when using the 3D representation
* updated miniMD's Stencil distribution to track changes in BlockDist
* changed miniMD to work around a bug in passing remote records by blank intent
* updated the HPCC FFT example to use new BitOps
* updated SSCA2 to reflect new intent semantics for forall-loops
* updated the regexdna shootout to accept extra arguments as used by framework
* made stream and ra save their problem sizes when performance testing
* replaced the use of format() in example codes with writef()

Compiler Flags (see 'man chpl' for details)
-------------------------------------------
* added --[no-]use-noinit to permit 'noinit' to be ignored
* added support for setting --fast via environment variable CHPL_FAST
* added --[no-]ignore-classes to disable local class optimizations
* added --[no-]vectorize to enable/disable generation of vectorization hints
* added --[no-]cast-checks to enable/disable value checking in safeCast methods
* added --[no-]munge-user-idents to control munging of generated identifiers
* removed all documentation-related options; use 'chpldoc' instead
* added a flag --[no-]task-tracking to enable/disable runtime task tracking

New Semantic Checks (for old semantics)
---------------------------------------
* Improved 'const' checking for array/tuple fields and array/domain aliases

Error Message Improvements
--------------------------
* added an error when compiling for a configuration whose runtime is not built
* improved error messages for several range overflow conditions

Bug Fixes
---------
* fixed a bug with dynamically dispatched iterators
* fixed a bug with parallel iteration over non-naturally-aligned ranges
* fixed a bug in which record variables did not call user-defined constructors
* fixed a bug in which arrays of associative domains could cause a segfault
* fixed a bug in which user identifiers could easily conflict with C identifiers
* fixed a bug with formatted writes of integers using "###."
* fixed an infinite loop in binary reads of strings when EOF is reached
* fixed a bug preventing sparse domains from having 'uint' indices
* fixed a bug when casting param 'int(64)' and 'uint(?)' to 'c_string'
* fixed a bug in which secondary parentheses-less methods did not work well
* fixed a buffer overrun issue in certain I/O routines
* fixed a bug in which defining multiple destructors caused a segfault
* fixed some bugs in the standard Buffers module
* fixed a bug in which filenames generated by --cpp-lines would get corrupted
* fixed a bug in --cache-remote for 32-bit platforms
* fixed a bug with loop invariant code motion in the context of nested functions
* fixed a crash when using multiple formal type queries for primitives types
* fixed a bug in which iterators yielding locale types caused an internal error
* fixed a bug in which --no-remove-copy-calls would break certain extern records
* fixed a bug in the parser causing issues with &&= and ||= for --baseline
* fixed a bug in which developer pragmas were only attached to the first symbol

Platform-specific bug fixes
---------------------------
* fixed a bug in which I/O errors would print "unknown" for paths for 'cygwin'
* fixed a warning in our calls to glob() when compiling with 'prgenv-cray'
* fixed an issue in which generated identifiers could be too long for 'pgi'
* fixed a bug in which 'gmp' would not build cleanly for 32-bit Ubuntu systems
* fixed a bug in atomic operations on 'real' types for CHPL_COMM='ugni'

Runtime Library Changes
-----------------------
* enabled 'ugni' tasking to be usable with 'qthreads' as well as 'muxed'
* changed Qthreads to yield after uncontested sync var locks to avoid starvation

Compiler Performance
--------------------
* accelerated compilation times by disabling the task table by default
  (see '--[no-]task-tracking' on the 'chpl' man page and doc/README.executing)

Testing System
--------------
* added support for specifying 'skipif' files as executable scripts
* added a mode in which only futures with .skipif files are tested
* check for .skipif conditions before wasting any effort on a test
* switched to a consistent and simpler naming scheme for test configurations
* added timing measurements to the log for various aspects of testing
* revamped emails sent by testing scripts for maintainability and spam avoidance
* made the test system less sensitive to line/versions #s in .bad comparisons
* added a --test-root flag, improving start_test when run from outside CHPL_HOME
* fixed a bug in which '-nl' was passed to C tests for multilocale testing
* added support for jUnit XML-style report generation to start_test and paratest
* made paratest.server's compopts/execopts accumulate rather than overwrite
* added CHPL_TEST_UNIQUIFY_EXE to support simultaneous test runs on a directory
* added the ability to set the default testing timeout via CHPL_TEST_TIMEOUT
* added support for CHPL_TEST_NUM_TRIALS to be set by a user's environment
* squashed duplicate error messages due to sub_test failures
* fixed a bug with stdin redirects for tests with multiple .execopts
* made start_test smarter about stdin and launchers for multilocale testing
* improved the testing system's handling of timeouts when launchers are used
* added validation for CHPL_NIGHTLY_LOGDIR in nightly testing
* fixed a bug for tests with multiple execopts settings that timed out
* permitted suppression files to contain blank lines
* fix bug in which suppression-based issues only appeared in the test summary
* fixed a bad interaction between env. vars. set in sub_test vs. execenv files
* made sub_test ignore OS errors during unlinking to quiet false negatives

Performance Testing/Graphing System
-----------------------------------
* allow scrolling of the list of graphs independently from graphs themselves
* embed more information in the URL of performance graphs for sharing purposes
* improved the portability of URLs from the performance graphing system
* added support for 'today' as a date in the perf graph system's URL encodings
* accelerated graphs by moving sorting of graphs' legends into genGraphs script
* track top processes between performance runs to look for causes of noise
* improved support for comparing multiple performance testing configurations
* started logging the sha values for performance runs, for historical reference
* changed performance graphs to use json rather than csv
* automatically strip punctuation characters from the end of graph keys

Developer-oriented changes: Utility Changes
-------------------------------------------
* added a new compiler gdb command 'locid' which prints an AST's source location
* made build_configs.py support parallel execution

Developer-oriented changes: Compiler Flags
------------------------------------------
* added --report-order-independent-loops to note loops with vectorization hints
* added --remove-unreachable-blocks to attempt early removal of dead code
* fixed a code pointer in the --help message for --log

Developer-oriented changes: Module improvements
-----------------------------------------------
* added a pragma for asserting that a class field is local to the object
* moved routines in support of iterators to a new module ChapelIteratorSupport
* split _build_range() into several routines with better names
* refactored overloads of range operator definitions
* changed Filerator routines to use new isLink(), isDir(), and isFile() routines
* removed requirement to add 'no ChapelStandard' pragma to internal modules

Developer-oriented changes: Makefile improvements
-------------------------------------------------
* added a "WARNINGS" macro that can be used to turn on C-level warnings
* moved check for standard C headers into the post-commit smoke test
* simplified and regularized third-party Makefiles

Developer-oriented changes: Compiler improvements/changes
---------------------------------------------------------
* changed the parser to a "pure push" style of parser
* changed the compiler to require bison 2.5 (or later)
* dramatically reworked representation and manipulation of loop AST nodes
* made more AST members private and increased the use of query methods
* added a new, prototype AST pretty-printer for Chapel-oriented output
* made improvements to list_view()
* made flags on a symbol print in a deterministic order
* extended DeadCodeElimination to reclaim degenerate C for loops
* made 'narrowWideReferences' its own compiler pass and refactor it
* moved the 'docs' pass earlier in compilation
* reorder localCopyPropagation to avoid a ref-before-def bug
* improved verification of expressions to check correctness of AList links
* fixed a bug in which failed chpl__tryToken resolutions could roll back too far
* removed flags: FLAG_LABEL_BREAK, FLAG_LABEL_CONTINUE, FLAG_USER_NAMED
* distinguished FLAG_WIDE from FLAG_WIDE_REF
* deprecated the use of the MOD_MAIN tag
* simplified code related to calling user-defined constructors vs. _defaultOf
* converted the collapsing of nested BlockStmts to use a visitor
* added a predicate to determine if an expression is a "statement expression"
* converted some uses of C arrays to std::vector in compiler
* added binary operators to the BitVec implementation
* replaced the basic block macros with private static functions
* fixed a bug in basic block analysis
* moved the handling of boolean short-circuiting from 'parse' to 'normalize'
* renamed 'by' operators in the compiler's IR to avoid naming conflicts
* refactored fix_def_expr() in the normalize pass
* refactored constant folding vs. dead code elimination for CondStmts
* fixed several code issues identified by coverity scan
* many other code refactorings and improvements

Developer-oriented changes: Runtime improvements
------------------------------------------------
* simplified interactions between locale models and the runtime
* improved the non-blocking communication interface
* added support for the main process to run Chapel tasks
* guarded against some src==dst calls to memcpy()
* for optimized builds of the runtime, set NDEBUG to turn off assertions
* fixed several code issues identified by coverity scan

Developer-oriented changes: Generated Code improvements
-------------------------------------------------------
* improved the spacing when printing IDs via --gen-ids

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Chapel-announce mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-announce
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers

Reply via email to