In VerCors we call carbon by supplying an explicit path to z3:
class CarbonVerifier[O](o:OriginFactory[O]) extends SilverImplementation[O](o) {
override def createVerifier(tool_home:Path,settings:Properties):viper.silver.verifier.Verifier = {
val carbon = viper.carbon.CarbonVerifier(Seq("startedBy" -> "example", "fullCmd" -> "dummy"))
carbon.parseCommandLine(Seq(
"--z3Exe", Configuration.getZ3Path.getAbsolutePath,
"--boogieExe",Configuration.getBoogiePath.getAbsolutePath,
"-"))
carbon.start()
carbon
}
}
This seems effective enough: in the screenshot below this path appears in the call to boogie.

However, upon termination, Boogie reports it cannot find "z3" in the same folder Boogie is located in:

So it seems to have swapped out the path I passed for some reason. The issue is resolved when I copy the executable at the z3 path to the Boogie folder and name it "z3.exe", but we'd like to avoid that and keep the tools separate.
For what it's worth, I've looked a bit through carbon's code, and it seems to handle the presence of the flag just fine. But when I pull the carbon repository and run carbon from the command line, the same problem happens: besides adding the --z3Exe flag, z3.exe needs to be present in the boogie folder, to make verification work.
This used to work on 20.07, but after upgrading to 21.01 this broke. The boogie version we use is: "2.4.1.10503", which is the one available from the viper/ETH Zurich site. Did I miss an interface change, is this a bug, or is the boogie version we use no longer supported?
In VerCors we call carbon by supplying an explicit path to z3:
This seems effective enough: in the screenshot below this path appears in the call to boogie.
However, upon termination, Boogie reports it cannot find "z3" in the same folder Boogie is located in:
So it seems to have swapped out the path I passed for some reason. The issue is resolved when I copy the executable at the z3 path to the Boogie folder and name it "z3.exe", but we'd like to avoid that and keep the tools separate.
For what it's worth, I've looked a bit through carbon's code, and it seems to handle the presence of the flag just fine. But when I pull the carbon repository and run carbon from the command line, the same problem happens: besides adding the --z3Exe flag, z3.exe needs to be present in the boogie folder, to make verification work.
This used to work on 20.07, but after upgrading to 21.01 this broke. The boogie version we use is: "2.4.1.10503", which is the one available from the viper/ETH Zurich site. Did I miss an interface change, is this a bug, or is the boogie version we use no longer supported?