-
Notifications
You must be signed in to change notification settings - Fork 257
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
Move runtimes into distinct project in the solution #1530
Comments
I think The cleanest solution I see it is to have the Dafny Java back-end be in a separate .NET solution. We could use this pattern for other languages as well. Running the Dafny test-suite for most languages requires installing some language specific components. The current wiki reads: "The tests in the Test/comp folder run the Dafny compiler to produce code for .NET, Java, JavaScript, and Go. If you don't have all the dependencies installed, many tests will fail." Note that making the above change might be some work. Would it be okay to leave the requirement to have Java SDK installed exist for the time being, or do you think it complicates contributions too much? |
Removing the unnecessary dependency would even be better in my opinion. The undesirable effect I've observed is that now all projects fail to build because they depend on
That makes sense. This would make it easier for people to understand the reason for the additional dependencies. Moreover, in the future, this would allow creating new projects to support other languages. It'll make it easier to distinguish which runtime fails to build and why.
For me it's fine. But having seen other projects I think it's a huge letdown if there are tons of prerequisites necessary to build a project on your own. Moreover, I think there are many people that compile Dafny from the source to have the most recent compiler features. Therefore, we should keep the entry barrier as low as possible. So if it's possible to build all projects except for |
I noticed while working on #680 that it was odd for Technically it is possible to remove this dependency, as long as the runtimes are build and included in any test packages that actually run compiled Dafny code (such as |
Looks like I can't quite break the dependency entirely - trying to read the I was able to move the dependency from |
That's unfortunate. How about, as an intermediate solution/mitigation, moving the Java runtime into its own project file? It's solely the Gradle command that fails. By creating a separate project one sees that something's missing for the build but can still generate the binaries for all other projects. |
This issue is related to #1529.
Until now, it was sufficient to have a recent .NET SDK installed to build Dafny. With the merge of #680, it became a bit more cumbersome. One now needs to install and configure Java 8, although Dafny is mostly C#. Since all projects of Dafny's solution depend somehow on DafnyRuntime, it makes the whole build fail if you do not have the correct Java version configured in the path.
I suggest moving the non C# runtimes into a distinct project to avoid failing the complete build of Dafny.
Alternatively, we can make at least the java runtime optional. For example like this:
However, this might reduce the awareness that the build is incomplete.
The text was updated successfully, but these errors were encountered: