CI: Stop installing cvc4 on archlinux
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.
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
bjob, not thetjob.
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
z3package 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
z3package 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_DLOPENisOFF, so my conclusion is that installingZ3for 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
Z3should 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
z3package contains that dynamic library. You need it to be installed when you runsolc.
Also, on archlinux, the cmake option
USE_Z3_DLOPENisOFF, so my conclusion is that installingZ3for the testing job is useless, it does not do anything.My opinion is that either
Z3should 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.