-
Notifications
You must be signed in to change notification settings - Fork 50
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
Investigate reporting a nicer error when failing to dynamically link rustc_driver #671
Comments
I actually don't know if this is really an issue in the current |
Do we have a reproducible way of triggering this? I cannot reproduce this. |
Not clear what has to be done here: it should not be possible to call Creusot in a setup where |
It might actually have been fixed because a while ago I made it so we explicitly set |
The remaining problem is that if you do
which is really not nice. The problem here is that we install What we would like somehow is to install Anyway, it is pretty clear that the current practice of installing I'm un-assigning @arnaudgolfouse and assigning @Lysxia, who seem to agree with this approach and is perhaps more used to work on the build system. |
Here is an overview of what rustup does, which we could use as inspiration : https://rust-lang.github.io/rustup/concepts/proxies.html |
Well the whole system is not designed to allow you to run |
What's surprising is that even though Rustc has some support for external tools, it seems like the ecosystem is not ready for that. How such tools built on top of rustc should be installed? If we commit to the fact that |
That's entirely unsupported. There are no stable apis to the compiler and no plans to stabilize any in the medium term future.
I don't think that's possible, especially if we want to support I think there's a line of pragmatism to balance here. Renaming it away from |
Then |
sure, that seems easy enough to achieve and should make it harder to use by accident. |
@Lysxia What do you think? Ready to do that? |
That sounds good to me.
|
Wait no, we can't drop the hardcoded toolchain! That will break the usage of creusot everywhere. It's very important for cargo creusot to hardcode the toolchain otherwise we cannot run on stable rust projects. |
If project A uses a version of creusot built with toolchain X and project B uses another version of creusot built with toolchain Y, wouldn't you want to be able to specify the right version of the toolchain in each project? Or are you saying that we also want the |
My main issue, and the one which led to this issue is that I want to do |
So, I guess the conclusion is to perform task 1. : "Install creusot-rustc as creusot-rustc-". We do not support (yet) installing several versions of Creusot in the same account. This may be something useful, and may work in the future, but clearly not the priority. Also, this means that we commit to the fact that the rustc version used by Creusot is not the same we are using for compiling. I hope there is not too many subtle semantic differences between rustc versions... |
That difference is something we have to accept for now. We can publish which toolchain creusot uses but hardly impose it upon users. |
We currently have a hard requirement where we must dynamically link against the same version of
rustc_driver
that was used to buildcargo creusot
at each invocation. Unfortunately if they mismatch we usually get a very unhelpful error message. I wonder if we could somehow pre-empt this and issue a more helpful error message.The text was updated successfully, but these errors were encountered: