Closed blishko closed 1 month ago
Before we merge this, I wanted to follow up on Rodrigo's suggestion to remove installation of dependencies in t_archlinux_soltest
, because these are already installed in b_archlinux
. Except for Z3. That is also weird, because my intuition is that Z3 should be installed in the b
job, not the t
job.
Ah, ok then. I wasn't going to merge it myself anyway. Just approve it and let you do it yourself in case you still wanted to change something :) Though if you're planning changes it's always safer to revert the PR back to draft.
Except for Z3. That is also weird, because my intuition is that Z3 should be installed in the
b
job, not thet
job.
The binary is not completely static. Z3 is actually the one thing we link dynamically and the z3
package contains that dynamic library. You need it to be installed when you run solc
.
EDIT: Actually, this job does not even build a static binary. But this does not change the situation with Z3 :)
The binary is not completely static. Z3 is actually the one thing we link dynamically and the
z3
package contains that dynamic library. You need it to be installed when you runsolc
.
@cameel, @r0qs, can you help me understand this?
During compilation, Z3 is not present, so Z3-related files are not compiled (e.g., Z3Interface.cpp
, Z3CHCInterface.h
).
Also, on archlinux, the cmake option USE_Z3_DLOPEN
is OFF
, so my conclusion is that installing Z3
for the testing job is useless, it does not do anything.
My opinion is that either Z3
should be installed for the build job already, or not at all. What am I missing?
The binary is not completely static. Z3 is actually the one thing we link dynamically and the
z3
package contains that dynamic library. You need it to be installed when you runsolc
.@cameel, @r0qs, can you help me understand this? During compilation, Z3 is not present, so Z3-related files are not compiled (e.g.,
Z3Interface.cpp
,Z3CHCInterface.h
). Also, on archlinux, the cmake optionUSE_Z3_DLOPEN
isOFF
, so my conclusion is that installingZ3
for the testing job is useless, it does not do anything.
Oh, I thought that USE_Z3_DLOPEN
was ON
, but you are right, it is OFF
by default. So in this case it doesn't seem to make sense to install z3 indeed.
My opinion is that either
Z3
should be installed for the build job already, or not at all. What am I missing?
Yeah, I think we should just remove z3 in this case then. Since we are running the tests with --no-smt
. We could quickly discuss that during the call today. One of the problems that I remember of having z3 enable on the tests running on Archlinux is related to the version of z3, that was constantly mismatch due to the Archlinux rolling releases. So maybe, we could even consider re-enable such tests and add -DSTRICT_Z3_VERSION=OFF
, so we would catch possible breaking changes on z3 library.
OK, how about we continue with the conversation about Z3 in our CI channel. I think we can merge this PR as is now, no?
The binary is not completely static. Z3 is actually the one thing we link dynamically and the
z3
package contains that dynamic library. You need it to be installed when you runsolc
.Also, on archlinux, the cmake option
USE_Z3_DLOPEN
isOFF
, so my conclusion is that installingZ3
for the testing job is useless, it does not do anything.My opinion is that either
Z3
should be installed for the build job already, or not at all. What am I missing?
Ah, right. I assumed it was ON
. I mean, my impression was that you were actually having some problems after removing z3 from the test job and asking why that is. But rereading now, I don't see any mention of that, you're just asking if it's ok to remove it. I'd say that if the job works without it then it's fine. I'd expect a crash/error otherwise. With a USE_Z3_DLOPEN=OFF
build it indeed shouldn't be needed.
This change is in preparation for upgrading to cvc5. Since archlinux is not running SMT tests anyway, we can drop cvc4 from the build immediately.