Skip to content

Commit 0cff53e

Browse files
Release Dafny 3.11.0
1 parent c5b4e15 commit 0cff53e

27 files changed

+78
-44
lines changed

RELEASE_NOTES.md

+77
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,83 @@
22

33
See [docs/dev/news/](docs/dev/news/).
44

5+
# 3.11.0
6+
7+
## New features
8+
9+
- Go to definition now works reliably across all Dafny language constructs and across files. (https://github.com/dafny-lang/dafny/pull/2734)
10+
11+
- Improve performance of Go code by using native byte/char arrays (https://github.com/dafny-lang/dafny/pull/2818)
12+
13+
- Introduce the experimental `measure-complexity` command, whose output can be fed to the Dafny report generator. In a future update, we expect to merge the functionality of the report generator into this command. (https://github.com/dafny-lang/dafny/pull/3061)
14+
15+
- Integrate the Dafny [auditor plugin](https://github.com/dafny-lang/compiler-bootstrap/tree/main/src/Tools/Auditor) as a built-in `dafny audit` command. (https://github.com/dafny-lang/dafny/pull/3175)
16+
17+
- Add the `--solver-path` option to allow customizing the SMT solver used when using the new Dafny CLI user interface. (https://github.com/dafny-lang/dafny/pull/3184)
18+
19+
- Add the experimental `--test-assumptions` option to all execution commands: run, build, translate and test.
20+
When turned on, inserts runtime tests at locations where (implicit) assumptions occur, such as when calling or being called by external code and when using assume statements.
21+
Functionality is still being expanded. Currently only checks contracts on every call to a function or method marked with the {:extern} attribute.
22+
(https://github.com/dafny-lang/dafny/pull/3185)
23+
24+
- For the command `translate`, renamed the option `--target` into `language` and turned it into a mandatory argument. (https://github.com/dafny-lang/dafny/pull/3239)
25+
26+
- - Havoc assignments now count as assignments for definite-assignment checks.
27+
- Unless `--enforce-determinism` is used, no errors are given for arrays that are allocated without being initialized.
28+
(https://github.com/dafny-lang/dafny/pull/3311)
29+
30+
- Enable passing a percentage value to the --cores option, to use a percentage of the total number of logical cores on the machine for verification. (https://github.com/dafny-lang/dafny/pull/3328)
31+
32+
## Bug fixes
33+
34+
- Nonexistent files passed on the CLI result in a graceful exit (https://github.com/dafny-lang/dafny/pull/2719)
35+
36+
- Check loop invariants on entry, even when such are the only proof obligations in a method. (https://github.com/dafny-lang/dafny/pull/3244)
37+
38+
- The :options attribute now accepts new style options `--function-syntax` and `--quantifier-syntax` (https://github.com/dafny-lang/dafny/pull/3252)
39+
40+
- Improved error messages for `dafny translate` (https://github.com/dafny-lang/dafny/pull/3274)
41+
42+
- The :test attribute is now compatible with `dafny run` and `dafny build` (https://github.com/dafny-lang/dafny/pull/3275)
43+
44+
- Settings `--cores=0` will cause Dafny to use half of the available cores. (https://github.com/dafny-lang/dafny/pull/3276)
45+
46+
- Remove an infeasible assertion in the Dafny Runtime for Java (https://github.com/dafny-lang/dafny/pull/3280)
47+
48+
- Language server displays more relevant informations on hovering assertions (https://github.com/dafny-lang/dafny/pull/3281)
49+
50+
- Any `(==)` inferred for a type parameter of an iterator is now also inferred for the corresponding non-null iterator type. (https://github.com/dafny-lang/dafny/pull/3284)
51+
52+
- the otherwise ambiguous program fragment `export least predicate` is parsed such that `least` (or `greatest`) is the export identifier (https://github.com/dafny-lang/dafny/pull/3291)
53+
54+
- The parser generated bad `Token`s when invoked through `/library` (https://github.com/dafny-lang/dafny/pull/3301)
55+
56+
- Match expressions no longer incorrectly convert between newtypes and their basetype (https://github.com/dafny-lang/dafny/pull/3333)
57+
58+
- `dafny build` for Java now creates a library or executable jar file.
59+
- If there is a Main method, the jar is an executable jar. So a simple A.dfy can be built as `dafny build -t:java A.dfy`
60+
and then run as `java -jar A.jar`
61+
- If there is no Main entry point, all the generated class files are assembled into a library jar file that can be used on a
62+
classpath as a java library.
63+
- In both cases, the DafnyRuntime library is included in the generated jar.
64+
- In old and new CLIs, the default location and name of the jar file is the name of the first dfy file, with the extension changed
65+
- In old and new CLIs, the path and name of the output jar file can be given by the --output option, with .jar added if necessary
66+
- As before, the compilation artifacts (.java and .class files) are placed in a directory whose name is the same as the jar file
67+
but without the .jar extension and with '-java' appended
68+
- With the new CLI, the generated .java artifacts are deleted unless --spill-translation=true and the .class files are deleted in any case;
69+
both kinds of files are retained with the legacy CLI for backwards compatibility.
70+
- If any other jar files are needed to compile the dafny/java program, they must be on the CLASSPATH;
71+
the same CLASSPATH used to compile the program is needed to run the program
72+
73+
Having a library or executable jar simplifies the user's task in figuring out how to use the built artifacts.
74+
(https://github.com/dafny-lang/dafny/pull/3355)
75+
76+
- Proper warning that 'new' cannot be used in expressions, instead of a parse error (https://github.com/dafny-lang/dafny/pull/3366)
77+
78+
- The attributes :dllimport and :handle are now deprecated. They were undocumented, untested, and not maintained. (https://github.com/dafny-lang/dafny/pull/3399)
79+
80+
- Fixed an axiom related to sequence comprehension extraction (https://github.com/dafny-lang/dafny/pull/3411)
81+
582
# 3.10.0
683

784
## New features

Source/Directory.Build.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22

33
<PropertyGroup>
4-
<VersionPrefix>3.10.0.41215<!--Version 3.10.0, year 2018+4, month 12, day 15.--></VersionPrefix>
4+
<VersionPrefix>3.11.0.50201<!--Version 3.11.0, year 2018+5, month 2, day 1.--></VersionPrefix>
55
<NoWarn>1701;1702;VSTHRD200</NoWarn>
66
</PropertyGroup>
77

docs/dev/news/2719.fix

-1
This file was deleted.

docs/dev/news/2734.feat

-1
This file was deleted.

docs/dev/news/2818.feat

-1
This file was deleted.

docs/dev/news/3061.feat

-1
This file was deleted.

docs/dev/news/3175.feat

-1
This file was deleted.

docs/dev/news/3184.feat

-1
This file was deleted.

docs/dev/news/3185.feat

-3
This file was deleted.

docs/dev/news/3239.feat

-1
This file was deleted.

docs/dev/news/3244.fix

-1
This file was deleted.

docs/dev/news/3252.fix

-1
This file was deleted.

docs/dev/news/3274.fix

-1
This file was deleted.

docs/dev/news/3275.fix

-1
This file was deleted.

docs/dev/news/3276.fix

-1
This file was deleted.

docs/dev/news/3280.fix

-1
This file was deleted.

docs/dev/news/3281.fix

-1
This file was deleted.

docs/dev/news/3284.fix

-1
This file was deleted.

docs/dev/news/3291.fix

-1
This file was deleted.

docs/dev/news/3301.fix

-1
This file was deleted.

docs/dev/news/3311.feat

-2
This file was deleted.

docs/dev/news/3328.feat

-1
This file was deleted.

docs/dev/news/3333.fix

-1
This file was deleted.

docs/dev/news/3355.fix

-16
This file was deleted.

docs/dev/news/3366.fix

-1
This file was deleted.

docs/dev/news/3399.fix

-1
This file was deleted.

docs/dev/news/3411.fix

-1
This file was deleted.

0 commit comments

Comments
 (0)