Open wagne279 opened 2 weeks ago
Based on my tests this is not a new bug. But I am not sure what is going on. At this point I can observe that it crashes when taking an std::mutex. The following steps do build a working binary:
md build cd build cmake -DZ3_BUILD_JAVA_BINDINGS=True -G "Ninja" ..\ ninja javac -cp com.microsoft.z3.jar Simple.java java -cp "com.microsoft.z3.jar;." Simple
I get a working binary when I build z3-4.13.2 with
cmake -DZ3_BUILD_JAVA_BINDINGS=True -G "Ninja" ..
but a broken one when I build with
cmake -DCMAKE_BUILD_TYPE=Release -DZ3_BUILD_JAVA_BINDINGS=True -G "Ninja" ..
so something must be broken with the optimized builds with MSVC. The bug is likely not in the Java API itself: I can reproduce it even by combining a debug z3java.dll
with a release libz3.dll
.
Interestingly, compiling z3-4.12.6 also in Release mode also produces a crashing binary, but the binaries released on Github do work. So perhaps cmake
uses different build flags for release build than mk_make.py
, and the binaries only recently broke with the mk_make.py
flags, but have been broken since a longer time with the cmake
flags?
Creating a Z3 Context through the java API is causing a fatal error. I traced the problem to a call to the com.microsoft.z3.Context() constructor in a larger project. Below is a distilled example which reproduces the issue in my environment.
Installation
I downloaded latest yesterday, and installed via the 64-bit Windows compilation pathway.
In x64 Native Tools Command Prompt for VS 2022:
Then, I added the build directory to my PATH user environment variable.
Reproducing
Then, in the build directory, I created the following class with a small snippet from the JavaExample class.
Still in the build directory, I compiled and ran, as per the instructions in #7000.
This produced the following output.