-
Notifications
You must be signed in to change notification settings - Fork 262
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
Warnings raised from #5838
Comments
Could you indicate what you're doing to run into this issue? I see source code but not a particular command that you're running. My best guess is that you're using the Dafny IDE but I'd rather not guess. |
In any case, an include is considered part of your sources, so I would expect any warnings from them to be shown when passing the including file to Dafny. In the case where you have a library, if you compile the library into a .doo file and include that in another However, if you want to create the doo file when warnings are present, you will have to use the option |
The problem is that I have a very complicated build pipeline. Using Here is an example: You can see that we are running the following command:
And this results in a warning about The above command will never verify If I give Dafny a single file to verify, and ask Dafny to verify the whole program. i.e. this file and all the transitive includes. Then I would expect to see warnings on all transitive files as well. However, I would expect the warnings to work the same way verification works. If I'm only asking to verify |
You can also pass project files to When passing a project file to
This PR #5827 should fix performance issues with passing many files to the Dafny CLI at once. If you only do a single invocation, you'll only see a single warning. I think doing multiple invocations for the same application is the root cause of you getting spammed with warnings.
Errors and warnings that originate from verification will only be shown for the things you are verifying, while errors and warnings that originate from parsing and resolver will be shown for any file that occurs in your program, transitively included or passed to the CLI directly. |
This may be true. The reason we verify each file individually is that the performance difference is huge. So my understanding is that you are saying that this has been fixed?
First, are you suggesting that On the other hand, things like To jump to a slightly different place, I would never expect if I check for lint/formatting tool run on a file to follow the dependencies and tell me that some other file isn't formatted correctly. But the big reason that I care, is that there are some warnings that can show up that are hugely important. Like So, while I might be able to move to |
I have made a fix that resolves memory leaks in the CLI invocation, which caused slowdowns when verifying large projects. I have tested that for 4.9, on one large Amazon internal project, doing a single invocation takes the same time as doing many small ones. However, the sample size of 1 is rather small so for Cryptools trying is the only way to find out.
I believe that warning will also be shown if you do
I rather not change the semantics of include statements at this point. I'm just about to mark them as deprecated. Without include statements, there's no more concept of transitive source. There'll only be source files and library files, and I'd be happy to hide warnings for library files.
I get that, but I would rather help you to use |
Dafny version
4.8.0
Code to produce this issue
Command to run and resulting output
What happened?
Not see warnings. I only want to see the errors/warnings et al from the file I'm verifying not all my transitive dependencies.
What type of operating system are you experiencing the problem on?
Linux, Mac
The text was updated successfully, but these errors were encountered: