Fixing a stupid typo from r18055

When I was nearly ready to commit r18055 Greg reviewed it and suggested
a name formatting change to the tasking layer's query to get the callstack
size which I adoped.  I re-ran the testing but forgot that new tests
wouldn't show up in my patch and didn't rerun the test manually, so didn't
catch that the new test callStackSize.chpl wouldn't pass.  When I saw the
failures, I assumed that I had done something that revealed different
default values on different platforms and didn't have time to look into it
before the break.  This should fix it for the common case, though I'll
have to make sure there aren't still problems across different OS versions.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18089 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added comments on the gasnet post-install step added in r18012
(nothing's changed, I just forgot to check in these comments that Brad
asked me to add).



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18090 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added TEPS graph to performance testing.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18091 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added an etags option so that tags are also generated for the flags in flags_list.h

git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18092 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Clean up and redesign of the graphing part of the performance testing
system.  All graphing is now performed in start_test *after* all the
performance tests have been run.  This breaks dependences if a .graph
file references .dat files that do not have the same name or are even
in the same directory.

start_test:

- Move all graphing related machinery to start_test (it was previously
  split between start_test and sub_test)

- General clean up:
  - better code reuse
  - hoist out environment variables setenvs (e.g., COMPOPTS, EXECOPTS)
    to the outer most level, since they do not change for the life of the
    program
  - replaced a couple of 'ls' commands strung together with multiple
    pipes to 'grep', 'sed', etc. with a single 'find' command (sorry,
    my pet peeve)
  - enabled -h to succeed even if other command line options were
    invalid (also another pet peeve)
  - Updated performance testing documentation in the comments
  - Did a slightly more thorough job of making it clear the the
    interpreter option is deprecated (both in the comments and in the
    test output)

sub_test:

- Remove all graphing related machinery
- Updated/fixed some comments

createGraphs:

- Cleaned up error messages and the reporting to be more consistent
  with the rest of the testing system
- Changed the first argument to be the name of the .graph file (since
  that made more sense)
- Fixed the startdate feature (which I broke with one of my previous
  commits)



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18093 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Move initialization of exectimeout into the test loop.  This caused
any tests that were run *after* a timed out test to skip the step that
printed out Success or Error (unless that test also timed out).



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18094 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added '_extern' as a keyword, so emacs can color it properly.

I did not investigate exactly what categories it should be added to,
so I added it to all the categories that "def" occurs in.
If that doesn't work in some case(s), we will need to investigate.

We could add the same to chpl-mode for earlier versions of emacs, too.


git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18095 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Fixed an off-by-one error in a comparison for determining is a file
was a Chapel source file.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18096 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Add support for extern consts; disable support for extern params

This commit adds support for extern consts.  The support was 99% there
based on our pre-existing support for extern vars, but there were a
few tiny changes required in normalize.cpp due to how constants are
initialized differently than variables.

It also generates an error message in build.cpp when trying to declare
extern params.  Extern params don't make particular sense because the
param's value must be known to the compiler, and short of being able
to parse your external C file, this cannot be done.

Added tests:

* externConsts.chpl : ensures that external constants can be declared
  and used to refer to external constant values such as #defines and
  enum values.

* externConsts2.chpl : ensures that the Chapel compiler disables
  assignments to external constants.

* externVars.chpl : I couldn't find a simple test of external
  variables like this one (?)

* externParams.chpl : locks in the behavior of generating an error
  message for an external parameter.


I also added a future test enum.chpl to capture the feature request of
supporting external enum types which seems very reasonable (and
probably quite easy?)




git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18097 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added a thorough check for duplicate data filenames for performance
testing.  Every time a performance test is run, this check is run.  If
a common output directory is being used (via CHPL_TEST_PERF_DIR as in
in the nightly testing), any duplicates are treated as errors and
testing stops.  Otherwise, duplicates result in warning messages.

So as to make this and any warnings more obvious, added warnings to
the testing summary line.  Unified warning messages issued by the
testing system (at least ones that I knew about) to match "^[Warning".

start_test:

- Added check for duplicate .dat filenames during performance testing
  (but not for --generate-graphs)

- Added warning messages to the test summary

- General clean up:
  - Unified warning messages
  - Removed CHPL_TEST_INVOKE_DIR (not used)
  - Removed setting of CHPL_TEST_PERF_DIR if the user did not set it
    (not needed)
  - Removed unnecessary pipes (grep | wc => grep -c)

createGraphs:

- Unified warning messages
- Improved gnuplot failure message



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18098 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
A start at a "best practices" notes repository

I got a late start on this this week (who wants to write when there
aren't regression tests being run?), but got a few notes typed up this
evening to get a sense of what I thought we might want.  I've also
started sorting the other things we wanted to cover into rough
categories and will try to go through them in tomorrow's meeting,
possibly looking for volunteers to help.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18099 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Removing expressions of the form (x = y)[i]

These have been tripping an assertion in the Cray compiler
and aren't crucial by any means, so this is a rewrite to
avoid that expression and try to get Cray compilation and
testing working again.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18100 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Fixing extern const regression from last night

I didn't test --no-local with my extern const change from
yesterday, and so failed to catch this case where the
compiler processes constants and should not process external
constants.  Added a check to skip over the externs which
fixed the issue.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18101 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
made CHPL_TASKING_CALL_MAIN() standard/reordered initialization of runtime

This change makes all tasking layers support CHPL_TASKING_CALL_MAIN()
as the means of kicking off the user's code via the chpl_main() call.
In particular, the tasking layer is passed a pointer to chpl_main()
and it can choose to simply call it directly, or to create a task and
have that task call it.  This removes the RUN_MAIN_AS_A_TASK macro and
the #if... conditionals that checked for it.

This change also moves the call to chpl_init_chpl_rt_utils() (which
initializes runtime/src/common-chpl/chpl_rt_utils.chpl to occur after
CHPL_TASKING_INIT().  The reason for this is that that Chapel code
contains sync vars and we shouldn't assume that a tasking layer can
support CHPL_SYNC calls before it is initialized (in particular,
qthreads cannot).

The reason these two changes are related is that the fifo tasking
layer used to insert the main task into the task table as part of its
INIT() routine, but this resulted in a cycle since the task table
isn't ready to use until after chpl_rt_utils.chpl has been
initialized.  Greg and I decided that it would be better to make
CHPL_TASKING_INIT() take care of all general initialization for the
tasking layer and then to have CHPL_TASKING_CALL_MAIN() do things
related to setting up the main task (including adding itself to the
task table).  To that end, a fair amount of code moved from
CHPL_TASKING_INIT to CHPL_TASKING_CALL_MAIN() in the fifo tasking
layer.

In the mta and none tasking layers, CHPL_TASKING_CALL_MAIN() simply
calls chpl_main().  It didn't seem like anything else in
CHPL_TASKING_INIT() related to establishing the main task.

We should now be at a point where no sync vars are used before
CHPL_TASKING_INIT() has been called.  With any luck, this should
permit us to run hello-multicore.chpl with qthreads now.




git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18102 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
These are the changes we made interactively at the meeting today.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18103 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added Potpourri.txt. Spaced out the file list in README

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

Save any timed out test data as a comment in the .dat file.  This way
gnuplot won't barf.

createGraphs:
- Remove exec_time_out argument (not needed)
- Improve getStartDate() and change it to get the first date even if it
  timed out

computePerfStats:
- Save timed out data as a comment and indicate that it timed out

start_test:
sub_test:
- Remove unneeded argument to createGraphs



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18105 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
This commit adds a best practices document for Compiler IR tricks.

This commit adds a best practices document for Compiler IR tricks. It contains
information about --html, --html-user, unique ID references, and how to break
on IDs (including multiples with checkid).



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18107 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
A couple of trivial changes to enums

This is probably my first five minute change in years.  Removed the
required semicolon from the end of the enumerated type declaration;
and permitted the final enumerated symbol to be followed by a comma.
Documented the changes.  Please give a shout if you disagree (nobody
did on the thread in time for me to hold off on this once testing
finished :).

Added a feature request future for being able to 'use' an enumerated
type to inject its symbols into the current scope.



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@18108 3a8e244f-b0f2-452b-bcba-4c88e055c3ca
Added pointers on running GASNet programs on a desktop machine.



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