Do not insert a nil check before the call to a destructor method
Convert &&= and ||= to use scoped rather than scope-less BlockStmts to preserve logical abstraction
Enabling parallelism for lammps and lsms and filing a .future.
Merge pull request #794 from vasslitvinov/enable-parallelism-in-lammps-and-lsms-tests

Enabling parallelism for lammps and lsms and filing a .future.

These tests:
  test/studies/lammps/shemmy/s-lammps.chpl
  test/studies/lammps/shemmy/m-lammps.chpl
  test/studies/lsms/shemmy/s-lsms.chpl
  test/studies/lsms/shemmy/m-lsms.chpl

have been tested with --dataParTasksPerLocale=1
since they were added to the repository, I believe.

I tried removing that, and they all continue to succeed -
except for m-lsms.chpl, which crashes mysteriously.

So I remove --dataParTasksPerLocale=1 from all .execopts
and modify m-lsms.chpl so (a) it runs without --dataParTasksPerLocale=1
and (b) I can create a .future for the crash, m-lsms.par-forall.chpl.
The .future is a symlink to the original, and adds
--serialForall=false to .execopts.

From m-lsms.par-forall.future: the test crashes with:

m-lsms.par-forall.chpl:67: error: halt reached - array index out of bounds: (1)

where in a single multilocale run I have seen three errors with the erroneous
indices of 1, 6, and 9.

Briefly looking at the code, I did not even see any array indexing operations
there, and did not investigate further. Valgrind did not turn up anything,
and the program runs successfully under valgrind. It is unclear to me
whether it is an application code bug or a Chapel bug.

Serializing that particular forall, the code runs successfully.
So I am putting a 'serial serialForall do' around it where serialForall
defaults to 'true' and is 'false' for this .future.
Update based on gasnet.fifo runs; also updated comments at top of file
Merge pull request #795 from bradcray/triage-sep-blc

Update comments at top of REGRESSIONS file

(It seems that the last time I was working on them, I was
interrupted before I finished?)

Also incorporated this morning's gasnet.fifo returns.
Merge pull request #796 from noakesmichael/assignOp

Alter the "parsers" representation of &&= and ||= to fix a --baseline regression.

The "parser" represents the &&= and ||= compound assignment operators using a temporary variable
and a nested function that references that variable; the whole thing is wrapped in a scopeless BlockStmt.
Certain transformations can then occur which separate the "nested" function from the scope in which
the outer variable is defined.  This goes unnoticed in the few cases that we use these operators and
with sufficient optimizations.

Convert the outer BlockStmt to a scoped BlockStmt to ensure the scope is not broken.


Compiled: STD clang on Darwin, STD/LLVM gcc on linux

Tests: Fixes the --baseline regression for this operator (trivial/deitz/test_assignop.chpl) and passes paratest

Review: None
Refine the comments
Add 4 more symbols to support --baseline
Merge pull request #797 from noakesmichael/reserved-baseline

Add 4 more symbols to support --baseline

Compiled: STD clang on darwin  STD/LLVM gcc on linux64
Tested: Solved the --baseline errors on darwin and run the full paratest
Reviewed: None
Merge pull request #783 from noakesmichael/nil-check

Fix a --baseline regression.

The Chapel Spec asserts that it is permitted to delete "nil".  However the NIL-checks are
inserted before every member access/call including the call to a destructor.  Add special
case code to catch this case.

Compiled  STD clang/darwin  STD/LLVM gcc/linux64
Tested: Fixed the --baseline and full paratest
Reviewed: Tom
Test no-local on linux32 instead of gasnet.

32bit clusters are becoming less common and we are really more interested in
testing the linux32 --no-local story.
Merge pull request #799 from thomasvandoren/test-32bit-no-local

Test no-local on linux32 instead of gasnet.

32bit clusters are becoming less common and we are really more interested in
testing the linux32 --no-local story.