This PR updates the cvc5 Java API documentation to explain how to use
the cvc5 Java bindings in a Maven project. It also updates the output
obtained when building the Java bindings from source.
This PR raises the quality standard for the cvc5 Java API documentation
by treating all warnings reported by Javadoc (in Java 21) as errors and
by addressing the remaining warnings in the source code. Since newer
versions of Javadoc catch more issues than older ones, this PR uses the
current Long-Term Support (LTS) release of Java (version 21) to generate
the documentation. However, it continues to use Java 8 in the workflow
jobs that build the JAR files for releases in order to maintain backward
compatibility with the older Java version.
---------
Co-authored-by: Aina Niemetz <aina.niemetz@gmail.com>
After this change, the Java API first attempts to locate native
libraries as resources within a JAR before searching system paths. If
the Java API is packaged in a self-contained JAR, it will prioritize the
native libraries within the JAR, as they are more likely to be
compatible with the API version included in the JAR.
This PR also fixes and enhances error handling when searching for and
loading the native libraries.
It also replaces calls to deprecated functions of `Solver` with the
corresponding function of `TermManager`.
---------
Co-authored-by: mudathirmahgoub <mudathirmahgoub@gmail.com>
This pull requests makes the enum that lists all proof rules a part of the API.
It also renames the enum from PfRule to ProofRule. It also renames some unrelated types and function names that share the PfRule name (such as DslPfRule).
This rename unfortunately touches many files since PfRule is not an uncommon type. (second to last commit)
We are renaming files in the pythonic API to make it look less like it is somehow part of z3 (but still acknowledge that we took code from z3Py properly). This PR follows the change in cvc5/cvc5_pythonic_api#80.
Fix this warning
Note: Custom tags that could override future standard tags: @apiNote. To avoid potential overrides, use at least one period character (.) in custom tag names.
Previously, we were using io.github.cvc5.api to mirror the C++
namespace that the API was in. The namespace of the C++ API changed to
simply cvc5 and so this commit updates the Java package accordingly.