Skip to content

Adding missing features to the Bitwuzla bindings#369

Merged
baierd merged 111 commits into
sosy-lab:bitwuzla_updatesfrom
daniel-raffler:add_bitwuzla_swig
Apr 11, 2024
Merged

Adding missing features to the Bitwuzla bindings#369
baierd merged 111 commits into
sosy-lab:bitwuzla_updatesfrom
daniel-raffler:add_bitwuzla_swig

Conversation

@daniel-raffler

Copy link
Copy Markdown
Contributor

Hello everyone,
this pull request updates the Bitwuzla bindings with several features that have been added in the past few months:

Open issues:

  • Due to phantom reference issues we had to disable some of the finalizers in the SWIG code. As a result old terms are not garbage collected, causing memory leaks.
  • I've seen a false positive in one of the CPAchecker benchmarks that seems to be caused by the fp casting workaround.

(This pull request is about moving the code from my fork to a new branch in the JavaSMT repository. It can then be merged with master from there.)

…swig_cpp

# Conflicts:
#	lib/native/source/libbitwuzla/compile.sh
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaFormulaCreator.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaOption.java
…swig_cpp

# Conflicts:
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaFloatingPointManager.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaOption.java
…ws us to handle arbitrary size fp values. Improved native method mk_fp_value to handle scientific notation in input strings.
…d the affected tests and added a FIXME note to BitwuzlaFloatingPointManager.
…ovides a temporary fix to the phantom reference issue.
… to bitvector, which is not supported by the solver.
# Conflicts:
#	lib/ivy.xml
#	solvers_ivy_conf/ivy_bitwuzla.xml
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaArrayFormulaManager.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaBitvectorFormulaManager.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaBooleanFormulaManager.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaDeclaration.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaFloatingPointManager.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaFormula.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaFormulaCreator.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaFormulaManager.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaModel.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaNativeApiTest.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaQuantifiedFormulaManager.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaSolverContext.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaTheoremProver.java
#	src/org/sosy_lab/java_smt/solvers/bitwuzla/BitwuzlaUFManager.java
#	src/org/sosy_lab/java_smt/test/SolverConcurrencyTest.java
#	src/org/sosy_lab/java_smt/test/SolverFormulaIOTest.java
#	src/org/sosy_lab/java_smt/test/SolverThreadLocalityTest.java
…la does not support integer variables and will fail during parsing, even if integers are just mentioned in the signature of a function.
…twuzla will print variable declarations as define-const and not define-fun, so we have to check for both versions.
@daniel-raffler
daniel-raffler requested a review from baierd April 9, 2024 11:55
daniel-raffler and others added 19 commits April 9, 2024 14:05
…ipt. If this option is not specified, or set to false the SWIG wrapper will not be recreated.
…less trivial formula to parse. MathSAT would reduce the old formula to just "true", causing the failure.
…0 (because the release is missing features for parse)
@kfriedberger kfriedberger changed the title Adding missing features to the Bitwuzla bindigs Adding missing features to the Bitwuzla bindings Apr 10, 2024
@baierd
baierd merged commit 52e09ae into sosy-lab:bitwuzla_updates Apr 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants