This PR adds new targets, `build-cppapitests` and `cppapitests`, for
building and running the C++ API tests, and uses `build-apitests` and
`apitests` for building and running the API tests across all languages
(C++, C, Python, etc.). It also adds a new target, `pyapitests`, for
running the Python API tests, and fixes the `capitests` target to run
the correct set of C API tests. In addition, it moves all issue-related
Python API tests to their own directory, as is already done for the C++
and C API tests.
This adds `stable` as a build type, which is similar to `safe` but
permits incomplete proofs in regressions and the use of regular options
with `no-support:` fields.
This ensures that regressions pass when configuring in `safe-mode`. Note
that *all* regression testers must now take into account whether we are
in a safe-mode (safe mode itself is not a new tester).
This makes the following changes:
- `safe-mode: yes|no` is now an entry in `--show-config`
- LibPoly and Cocoa are disabled by default when configuring with
`safe-mode`. We give a warning if the user specified otherwise.
- A few regressions are updated to have the appropriate options.
- Option and logic exceptions that are "admissible" in safe mode are
updated to contain the text `"in safe mode"`.
- Various options that are used in run_regression.py are upgraded to
"common" to ensure safe-mode is compatible with the tester. Removes a
few unecessary options in run_regression.py.
- Disables a number of unit tests and examples (in the CMake) that are
not applicable in safe mode.
- Adds a CI job to test a safe-mode build.
Note that the CPC tester fails due to not guarding against some unsafe
operators in the rewriter. I will address this in a separate PR.
When using the incremental input interface, the parser had the behavior
that if it was ever finished, it did not reset its "finished" flag even
if more input was added.
This makes the parser internally reallocate a lexer and parser if the
user had exhausted all their input.
Fixes#11069.
---------
Co-authored-by: Aina Niemetz <aina.niemetz@gmail.com>
Co-authored-by: Daniel Larraz <daniel-larraz@users.noreply.github.com>