* Reworked phantom reference handling.
- Replaced IDecRefQueue with a new Z3ReferenceQueue class
- Z3ReferenceQueue manages custom subclasses of phantom references in a doubly-linked list
- Replaced all subclasses of IDecRefQueue with subclasses of Z3ReferenceQueue.Reference. These custom reference classes are embedded in the class they reference count.
- Context now owns a single Z3ReferenceQueue for all types of references.
* Made Statistics.Entry a static subclass
* Made Context.close idempotent (as recommended)
* Update CMakeLists.txt for building the Java API.
* Updated CMakeLists.txt again.
* Use correct SuppressWarning annotation to silence the compiler
* Formatting
* Fixed decide callback for Java user propagators
* Java User Prop:
- Added return value to conflict
- Added consequence method
- Added missing access modifier to decideWrapper
* Removed type parameters of expressions in UserPropagatorBase
* Renamed propagateConflict to propagateConsequence
`FindPythonInterp` has been deprecated for a long time and is more
verbal about that deprecation now.
The build system no longer uses `PYTHON_EXECUTABLE` but instead uses
`Python3_EXECUTABLE`.
Make it easier to add native methods for callbacks (for user propagator) #6097
The Java User propagator wrapper should define a base class with virtual methods that can be invoked from functions defined in NativeStatic.txt
This adds a String overload for AssertSoft.
Previously only integer weights could have been used,
limiting the user. With Strings the user can now use
e.g. Java's BigInteger class converted to a String instead.
* Generify, needs some testing and review
* Remove unnecessary change
* Whoops, ? capture that type
* Misread the docs, whoops
* More permissible arithmetic operations
* Implement believed Optimize generics
* Missed a few generics
* More permissible expr for arrays in parameters
* More permissible expr for bitvecs in parameters
* More permissible expr for bools in parameters
* More permissible expr for fps in parameters
* More permissible expr for fprms in parameters
* More permissible expr for ints in parameters
* More permissible expr for reals in parameters
* Undo breaking name conflict due to type erasure; see notes
* Whoops, fix typing of ReExpr
* Sort corrections for Re, Seq
* More permissible expr for regular expressions in parameters
* Fix name conflict between sequences and regular expressions; see notes
* Minor typo, big implications!
* Make Constructor consistent, associate captured types with other unknown capture types for datatype consistency
* More expressive; outputs of multiple datatype definitions are only known to be sort, not capture, and Constructor.of should make a capture
* Be less dumb and just type it a little differently
* Update examples, make sure to type Expr and FuncDecl sort returns
* General fixups
* Downgrade java version, make it only for the generic support, remove var and Expr[]::new construction
* Turns out Java 8 hadn't figured out how to do stream generics yet. Didn't even show up in my IDE, weird