-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standalone binary #944
Comments
I think it has been possible for many years. You can find more information on the documentation page of Note that this removes the dependency on .NET, but not on an SMT solver being available. Boogie still depends on a solver being somewhere on the system, and packaging Z3 with the self-contained Boogie needs a solution by itself. |
@keyboardDrummer, thanks for your response! Do you happen to know if Boogie also pre-builds and distributes dotnet-independent binaries, similar to how Z3 does it (https://github.com/Z3Prover/z3/releases)? |
I just tried the following based on the suggestion by @keyboardDrummer:
It worked and the executable is generated here
If you drop the flag
Possible values for the runtime id supplied via |
Thats great news @shazqadeer and @keyboardDrummer. I wonder whether you'd consider putting the binary standalone releases on the release page of the repo, as @junkil-park mentioned above? I believe this could make usage of Boogie in end user applications smoother. We can also build those binaries ourselves and upload them to our repo, but there might be more folks which may benefit. As a data point, in the entire Libra/Diem repo, and today's Aptos repo, really large repos which require a lot of extra installs, the only reason for the need to install .Net was always only Boogie. There is literally no .Net based tool we had ever use for. |
Hi @shazqadeer, when I tried the command, along with the binary, a set of libraries files are generated which the binary depends. Are they expected? |
Yeah, looks like it. I see that on my machine many libraries that were not being generated with the default build are now being generated. All of these libraries are in the folder:
So this must means that "self-contained" does not mean a single binary file. Instead, it means that all the library dependencies are provided into the build folder all of which must be copied to the target machine where Boogie needs to be executed. Please try to copy the binary folder to a different clean machine from the one on which you did the build and see if you are able to run successfully. |
Perhaps this helps:
https://learn.microsoft.com/en-us/dotnet/core/deploying/single-file/overview
…On Sat, Sep 14, 2024 at 10:53 AM Shaz Qadeer ***@***.***> wrote:
Yeah, looks like it. I see that on my machine many libraries that were not
being generated with the default build are now being generated. All of
these libraries are in the folder:
/Users/shazqadeer/Source/boogie/Source/BoogieDriver/bin/Release/net6.0/osx-x64
So this must means that "self-contained" does not mean a single binary
file. Instead, it means that all the library dependencies are provided into
the build folder all of which must be copied to the target machine where
Boogie needs to be executed.
Please try to copy the binary folder to a different clean machine from the
one on which you did the build and see if you are able to run successfully.
—
Reply to this email directly, view it on GitHub
<#944 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AC2MSOWJXLJ6LOV64J2IEWTZWRZYZAVCNFSM6AAAAABN5V3OIWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJRGA4DGNRWGA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Hi @shazqadeer, When I tried using
There is no such error when I use the binary generated by the command |
Looking at the source based on your stracktrace: string codebase = cce.NonNull(System.IO.Path.GetDirectoryName(
cce.NonNull(System.Reflection.Assembly.GetExecutingAssembly().Location)));
path = System.IO.Path.Combine(codebase, "Boogie.Provers." + proverName + ".dll"); it seems Maybe |
Thanks @keyboardDrummer and @shazqadeer! It turns out that adding
to |
Great! You are welcome to put up a PR for this change. |
@shazqadeer @keyboardDrummer, the PR is up for review: #953 |
Greetings Boogie team,
I wonder whether there is potentially some news on being able to create a standalone binary for Boogie. I looked at this a few years ago and even though .Net has a feature like this, did not get it to work.
A standalone binary which can be downloaded for Mac/Linux/Win would very much improve the user experience for the Move Prover, because we can then auto install all required tools without hassle and implement features like auto upgrade. Today users need to call a script which first installs .Net then boogie, and the process is hard to automate from within another executable.
Thanks, Wolfgang
The text was updated successfully, but these errors were encountered: