Branch: refs/heads/master
Revision: f561755
Author: mppf
Log Message:
Merge pull request #17585 from mppf/new-ast-build-changes
responsive compiler prototype: build system changes
This PR contains build changes for the prototype compiler library effort.
The Makefile targets are not run yet and refer to files that will be
added in other PRs (#17586, #17587, #17588, #17589).
This PR is split out from PR #17583, which is a start at the compiler
revamp effort described in the 1.24 release notes ongoing
efforts.
- The new effort uses
cmake - The new code includes docs comments with doxygen+breathe+sphinx. As
such, it addsbreatheas a Python requirement forchpldoc. (These
requirements are normally automatically installed). For now,make docswill continue to work ifdoxygenis not installed and has not
been run on the compiler sources. To support that, there are actually
twoindex.rstfiles forcompiler-internalsin thedoc/templates
directory. The Makefiles will use one or the other based upon whether
or not the doxygen materials are found. In the future we might want to
simplify the situation by requiringdoxygenin order formake docs
to succeed. - The new effort uses a different directory structure from the old
effort. For now it is stored incompiler/nextbut the expectation
is that eventually we will move all of the compiler code into this
directory structure. The change in directory structure is described a
bit in
compiler/next/README. - There are now C++ tests of portions of the compiler but since this PR
doesn't add any C++ sources they can't run yet. When they are present
though they can be built and run withmake test-libchplcomp. - I was having trouble debugging the tests linked with a dynamic
library. So, the tests to using a CMake object library for these
tests. That just means that the test source code is compiled and
linked with the.ofiles in the library (rather than a library.a
or.so). The object library is also useful because it allows one to create both a.aand a.so` for the same library. Anyway, the
library itself builds with the default of shared/static for the build
library (and the default depends on the BUILD_SHARED_LIBS setting). - While there, updated
make testto run only the tests in examples/
because what it had would run all of the tests (which takes something
like a day). Note thatmake testis only available in source
checkouts and not included in releases.
- [x] full local testing
Reviewed by @lydia-duncan @gbtitus @dlongnecke-cray - thanks!
Modified Files:
A compiler/next/CMakeLists.txt
A compiler/next/Makefile.help
A compiler/next/README
A compiler/next/doc/CMakeLists.txt
A compiler/next/include/chpl/CMakeLists.txt
A compiler/next/include/chpl/Config/config.h.cmake
A compiler/next/lib/AST/CMakeLists.txt
A compiler/next/lib/CMakeLists.txt
A compiler/next/lib/Frontend/CMakeLists.txt
A compiler/next/lib/Frontend/Parser/CMakeLists.txt
A compiler/next/lib/Queries/CMakeLists.txt
A compiler/next/lib/Util/CMakeLists.txt
A compiler/next/test/AST/CMakeLists.txt
A compiler/next/test/CMakeLists.txt
A compiler/next/test/Frontend/CMakeLists.txt
A doc/templates/compiler-internals-doxygen/index.rst
A doc/templates/compiler-internals-no-doxygen/index.rst
M Makefile
M Makefile.devel
M doc/.gitignore
M doc/Makefile
M doc/Makefile.sphinx
M doc/rst/conf.py
M doc/rst/index.rst
M doc/util/nitpick_ignore
M third-party/chpl-venv/chpldoc-requirements.txt
M util/buildRelease/add_license_to_sources.py
Compare: https://github.com/chapel-lang/chapel/compare/913c0a3eeae3...f561755541de