==========================
Chapel License Information
==========================

The Chapel implementation is composed of two categories of code:

1) code that was specifically developed for, or contributed to, the
   Chapel project.  This code comprises the core of the Chapel
   implementation: the compiler, runtime, and standard/internal
   modules.  Code in this category is made available under the
   3-clause BSD license, which can be found in 'LICENSE.chapel' in
   this directory.

2) code from other open-source projects that we package and
   redistribute for the convenience of end-users.  Packages in this
   category are made available under the terms of their original
   licenses, respectively.

   Packages in this second category are redistributed in the etc/ and
   third-party/ directories.  The following table provides a summary
   of the packages, their uses, and their licenses.

   directory/package  use                                          license
   -----------------  -------------------------------------------  -------
   etc/
     emacs            emacs-based syntax coloring                  GPL
     vim              vim-based syntax coloring                    VIM

   third-party/
     creoleparser     used to generate Chapel documentation        MIT/new BSD
     dlmalloc         alternative memory allocator option          public domain
     dygraphs         Javascript graph generator and display       MIT
     gasnet           portable communication library               BSD-like
     gmp              optional multi-precision math library        L-GPL
     hwloc            portable NUMA compute node utilities         new BSD
     llvm             CLANG C parsing/optional back-end compiler   U of I/NCSA
     massivethreads   alternative lightweight tasking option       2-clause BSD
     qthread          alternative lightweight tasking option       new BSD
     re2              optional regular expression parsing library  new BSD
     tcmalloc         alternative memory allocator                 new BSD
     txt2man          creation of man pages (developer-only)       GPL
     utf8-decoder     used for runtime UTF-8 string decoding       MIT

   For a more complete introduction to these packages and their
   licensing terms, refer to etc/README, third-party/README, and the
   README and license files in the subdirectories listed above.

   Note that most of these packages are not used by Chapel unless
   specifically requested.  The following table summarizes the
   conditions under which each package is used:

   directory/package  when used
   -----------------  ----------------------------------------------------
   etc/
     emacs            only used if a user modifies their emacs environment
     vim              only used if a user modifies their vim environment

   third-party/
     creoleparser     only used when running 'chpldoc'/'chpl --docs'
     dlmalloc         only used when CHPL_MEM is 'dlmalloc'
     dygraphs         only used to make and display performance graphs
     gasnet           only used when CHPL_COMM is 'gasnet'
     gmp              only used when CHPL_GMP is 'gmp' 
     hwloc            only used when CHPL_HWLOC is 'hwloc'
     llvm             only used when CHPL_LLVM is 'llvm'
     massivethreads   only used when CHPL_TASKS is 'massivethreads'
     qthread          only used when CHPL_TASKS is 'qthreads'
     re2              only used when CHPL_REGEXP is 're2'
     tcmalloc         only used when CHPL_MEM is 'tcmalloc'
     txt2man          only used by developers to create the Chapel man page
     utf8-decoder     bundled into the Chapel runtime to decode UTF-8 strings

   For packages that are only used based on a CHPL_* setting, note
   that this setting may either be explicitly or implicitly set.  To
   verify your settings, run $CHPL_HOME/util/printchplenv.
