Added a few rank change tests that collapse various dimensions.

All pass with default and block.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16747 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added a future for using => to set a field of a class as an array alias.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16748 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added a check for CHPL_COMM == mpi in the nightly script next to checks for
gasnet or pvm.

Also removed a mismatched quote in the nightly script.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16749 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Adding HPL to the distribution robustness suite.

This is the same version as in release/examples with the arrays
distributed by Dist2D and the local block removed in schurComplement.

The problem size used for nightly testing is reduced to 40x40 to
reliably avoid timing out for the block distribution.  The bulk of the
time is spent performing remote gets, which is not unexpected for
block.

I have confirmed that this works for gasnet on our workstations as
well as on seal (XT system).



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16750 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Updated text in the future files to reflect changes in aliasing.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16751 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Double quote the args to the script to preserve quoting, etc.

This should fix Steve's issue with 'grepmod "new realm"'.

Let me know if there are additional issues.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16752 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added a test of naming a variable '_' that I meant to commit with r16734.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16753 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Removed support for using => on arrays that have already been
declared.  It used to be restricted to new variable declarations.
Conveniently, the spec was never updated to suggest that you could use
the alias operator on existing arrays or array aliases.

Added initial support for alias-named-argument passing for
constructors so that an array field can be an alias to an array passed
to the constructor.

Test Changes and Additions:
--------------------------

Fixed arrays/diten/arrayAliasing and arrays/diten/arrayAliasing2D to
use the array alias operator only on new variable declarations.  My
other option was to make them fail with a syntax error, but this seems
better in preserving the functionality of these tests.

Added a test of using => on an array that has already been declared to
make sure the compiler issues an error.

Added a test of using => to alias an array passed to a function (not a
constructor) to make sure the compiler issues an error.

Module Changes:
--------------

Reworked the BlockDist, CyclicDist, and BlockCycDist to use
alias-named-argument passing instead of the alias operator to
construct class instances with aliases.

Removed the dsiCreateAlias method from the array classes for the
Default, GPUDist, and BlockDist distributions.  Removed the makeAlias
function that implemented => on arrays that have already been
declared.

Added a function chpl__getDomainFromArrayType that takes an array type
and returns the domain value associated with it.

Refactored the code that builds up the realms to use
alias-named-argument passing when setting up the Locales array field.
I had to change this code to use the default constructor in order to
support this functionality.  When we support alias-named-argument
passing to user-defined constructors, we can refactor this code to use
a user-defined constructor and remove the 'initialize' method that I
also added for the realm class.  Note that the only thing that the
'initialize' method does is to issue an error if a realm is created
too late during program execution.

Compiler Changes:
----------------

compiler/parser/chapel.ypp:

  Added support for using => when passing actuals to functions by name
  in order to support alias-named-argument passing for constructors.

compiler/include/build.h,
compiler/AST/build.cpp:

  Added functions to support parsing named actuals, aliases or not.

compiler/passes/scopeResolve.cpp:

  Added code to deal with alias-named-argument passing in two steps:

    1. Collect the names specified in alias-named-argument passing.

    2. For each field in a class that has one of these names, add a
    field with the same name prepended by "chpl__aliasField_" to allow
    for alias-named-argument passing.  Give this field a default value
    so that it does not have to be specified when constructing the
    class.  Each alias-named argument is parsed as two alias-named
    arguments, one for this new field to indicate that the array ought
    to alias.

compiler/include/flags.h,
compiler/AST/flags.cpp:

  Added a new flag "implicit alias field" used to mark fields in
  classes that were inserted by the compiler to support constructing
  classes with fields that are array aliases.

compiler/resolution/wrappers.cpp

  Added code to alias an array passed to a constructor if the implicit
  alias field is specified.  Since constructors are built up in their
  default wrapper, this is a natural place to handle this
  functionality.  To create the alias, the default wrapper gets the
  domain from the runtime array type via chpl__getDomainFromArrayType
  and reindexes via this domain.

compiler/passes/buildDefaultFunctions.cpp

  Add code to ignore the implicit alias fields when building
  compiler-inserted default methods and functions.

Future Work:
-----------

  * Support for aliasing array fields via user-defined constructors.
  * Support for aliasing array fields without specified types.
  * Document aliasing array fields in the spec.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16754 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Removed future for test working with commit 16754.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16755 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Removed futures of using => on arrays that have already been declared; this
functionality is no longer.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16756 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Started clean-up of Block distribution definition.  Commented and
rearranged class declarations and module beginning.  Removed
LocBlockDom.wholeDom (a reference in the local block domain class to
the global block domain class) as it is not used.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16757 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
This change refactors the comm, launch, and mem layers in the runtime.

This change refactors the comm, launch, and mem layers in the runtime. The directories move from runtime/comm-xxxxx, runtime/launch-xxxxx, and runtime/mem-xxxxx to runtime/src/comm/xxxxx, runtime/src/launch/xxxxxx, and runtime/src/mem/xxxxx. No changes to the include directories are here (pending).



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16758 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Change these tests so they don't expect an runtime error, but rather
test what they were intended to test.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16759 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Continued clean-up of Block distribution definition:

  - Grouped all privatization-related code at the end of the module.

  - Made debug printing slightly more verbose and unified the debug
    printing with the dsiDisplayRepresentation format.  By more
    verbose, I mean that when it prints out information based on
    creating a new distribution, it now says that it has created a new
    distribution.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16760 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Reindexing mods:

- Changed name of over/underflow routines to safeAdd and safeSub (as
  per Steve's suggestion), and "reversed" logic to return true if safe
  since that's what the name suggests

- Fixed a bug in safeSub for when the first term was zero

- Updated futures with correct output and updated future info



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16761 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Fixed a bug in which recursive functions called within local blocks
would lead to an infinite recursion during compilation when cloning
the function.  Thanks to Srini for sending in this bug and fix.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16762 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Renamed method ind2loc to dsiIndexLocale.  This implements the user
visible method on distributions ind2loc.

Refactored dsiIndexLocale in the Block distribution to avoid
replicated code.  Renamed ind2locInd in the Block distribution to
targetLocsIdx since this function computes the index into the
targetLocs array for any index in the distributed space.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16763 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Updated .comm-none.good for test as necessitated by commit 16760.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16764 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Fixed bug in isDefaultDist().  Should check types of distributions not
the actual distributions themselves.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16765 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Updating REGRESSIONS based on last ~5 days runs

Note that many of the cray xt failures are not necessarily due to
changes over these five days, but due to the fact that testing has
been broken for quite some time.

- noted that most cyclic distribution tests are failing due to SSH problems
- noted that many mpi tests are failing due to exit-without-finalize issues
- xmt getting new unreachable line errors for almost all examples tests
- cray-xt-cray and -pgi complain about duplicate symbol for waynew/indef2
- cray-xt-cray gets wrong answer for test_module_Norm and EstimatePi5opt
- cray-xt-cray gets integer conversion warning for test_scan1
- cray-xt-pgi gets internal failures MIS0216 for bradc/html/testit
- added a few more valgrind task layer errors
- glibc corruption error for marybeth/ra3 on GASNet -- probably spurious
- multipleDomains2 generating incorrect output (should now be fixed)
* spurious failures



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@16766 3a8e244f-b0f2-452b-bcba-4c88e055c3ca