==========================
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
   Apache v2.0 license, which can be found in 'LICENSE.chapel' in
   this directory or at http://www.apache.org/licenses/LICENSE-2.0.html.

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 highlight/
   and third-party/ directories.  The following table provides a summary
   of the packages, their uses, and their licenses.

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

   third-party/
     chpl-venv        python packages supporting chpldoc & tests
       argparse       Back port of argparse to < python2.7         Python
       PyYAML         YAML parser and emitter for Python           MIT
       Sphinx         Python documentation generator               BSD
       sphinxcontrib-chapeldomain
                      The Chapel language domain for Sphinx        Apache v2.0
       sphinx_rtd_theme
                      ReadTheDocs.org theme for Sphinx             MIT
       Jinja2         A template engine written in Python          BSD
       MarkupSafe     XML/HTML/XHTML Markup safe string impl.      BSD
       Pygments       A syntax highlighting package                BSD
       docutils       Python Documentation Utilities               public domain
                                                                   Python
                                                                   BSD
                                                                   GPL 3
     gasnet           portable communication library               BSD-like
     gmp              optional multi-precision math library        L-GPL
     hwloc            portable NUMA compute node utilities         new BSD
     jemalloc         alternative memory allocator                 BSD-like
     libfabric        portable networking library                  BSD
     libunwind        used for runtime stack tracing               MIT
     llvm             CLANG C parsing/optional back-end compiler   Apache 2.0
     qthread          alternative lightweight tasking option       new BSD
     re2              optional regular expression parsing library  new BSD
     utf8-decoder     used for runtime UTF-8 string decoding       MIT
     whereami         for locating the _real binary in launchers   MIT

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

   Note that not all of these packages are used by Chapel by default. The
   following table summarizes the conditions under which each package is used
   (see chplenv.rst for details on CHPL_* settings):

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

   third-party/
     chpl-venv        only used when running 'chpldoc', 'start_test',
                        or the developer-only 'chplspell'
     gasnet           only used when CHPL_COMM is 'gasnet'
     gmp              only used when CHPL_GMP is 'gmp'
     hwloc            only used when CHPL_HWLOC is 'hwloc'
     jemalloc         only used when CHPL_TARGET_MEM/CHPL_HOST_MEM is 'jemalloc'
     libfabric        only used when CHPL_COMM is 'ofi'
     libunwind        only used when CHPL_UNWIND is 'libunwind'
     llvm             only used when CHPL_LLVM is 'llvm'
     qthread          only used when CHPL_TASKS is 'qthreads'
     re2              only used when CHPL_RE2 is 'bundled'
     utf8-decoder     bundled into the Chapel runtime to decode UTF-8 strings
     whereami         used when starting a program with a launcher

   For packages that are used based on a CHPL_* setting, note that this
   setting may either be explicitly or implicitly set. Additionally,
   some packages are only used if a speculative build was successful.
   See https://chapel-lang.org/docs/usingchapel/chplenv.html to
   see which packages are used by default and which ones are built
   speculatively. You can also check your CHPL_* settings by running
   $CHPL_HOME/util/printchplenv after Chapel has been built