Skip to content

Commit 78a5a95

Browse files
committed
Release Dafny 4.1.0
1 parent 4053f90 commit 78a5a95

34 files changed

+94
-52
lines changed

RELEASE_NOTES.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,100 @@
22

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

5+
# 4.1.0
6+
7+
## New features
8+
9+
- Added support for `.toml` based Dafny project files. For now the project file only allows specifying which Dafny files to include and exclude, and what options to use.
10+
The CLI commands that take Dafny files as input, such as build, run, translate, will now also accept Dafny project files.
11+
When using an IDE based on `dafny server`, such as the Dafny VSCode extension, the IDE will look for a Dafny project file by traversing up the file tree from the currently opened file, until it finds it `dfyconfig.toml`. The project file will override options specified in the IDE.
12+
(https://github.com/dafny-lang/dafny/pull/2907)
13+
14+
- Recognize the `{:only}` attribute on `assert` statements to temporarily transform other assertions into assumptions (https://github.com/dafny-lang/dafny/pull/3095)
15+
16+
- * Exposes the --output and --spill-translation options for the dafny test command (https://github.com/dafny-lang/dafny/pull/3612)
17+
18+
- The `dafny audit` command now reports instances of the `{:concurrent}` attribute, intended to flag code that is intended, but can't be proven, to be safe for use in a concurrent setting. (https://github.com/dafny-lang/dafny/pull/3660)
19+
20+
- Added option --no-verify for language server (https://github.com/dafny-lang/dafny/pull/3732)
21+
22+
- * Added `.GetDocstring(DafnyOptions)` to every AST node
23+
* Plugin support for custom Docstring formatter,
24+
* Activatable plugin to support a subset of Javadoc through `--javadoclike-docstring-plugin`
25+
* Support for displaying docstring in VSCode
26+
(https://github.com/dafny-lang/dafny/pull/3756)
27+
28+
- Documentation of the syntax for docstrings added to the reference manual (https://github.com/dafny-lang/dafny/pull/3773)
29+
30+
- Labelled assertions and requires in functions (https://github.com/dafny-lang/dafny/pull/3804)
31+
32+
- API support for obtaining the Dafny expression that is being checked by each assertion (https://github.com/dafny-lang/dafny/pull/3888)
33+
34+
- Added a "Dafny Library" backend, which produces self-contained, pre-verified `.doo` files ideal for distributing shared libraries.
35+
`.doo` files are produced with commands of the form `dafny build -t:lib ...`.
36+
(https://github.com/dafny-lang/dafny/pull/3913)
37+
38+
- Semantic interpretation of dots in names for `{:extern}` modules when compiling to Python (https://github.com/dafny-lang/dafny/pull/3919)
39+
40+
- Code actions in editor to explicit failing assertions.
41+
In VSCode, place the cursor on a failing assertion that support being made explicit and either
42+
- Position the caret on a failing assertion, press CTRL+; and then ENTER
43+
- Hover over the failing division by zero, click "quick fix", press ENTER
44+
Both scenarios will explicit the failing assertion.
45+
If you don't see a quick fix, it means that the assertion cannot be automatically made explicit for now.
46+
47+
Here is a initial list of assertions that can now be made explicit:
48+
- Division by zero
49+
- "out of bound" on sequences index, sequence slices, or array index
50+
- "Not in domain" on maps
51+
- "Could not prove unicity" of `var x :| ...` statement
52+
- "Could not prove existence" of `var x :| ...` statement
53+
(https://github.com/dafny-lang/dafny/pull/3940)
54+
55+
## Bug fixes
56+
57+
- * dafny test accepts a --methods-to-test option whose value is a regular expression selecting which tests to include in the test run (https://github.com/dafny-lang/dafny/pull/3221)
58+
59+
- * The deprecated attributes :dllimport, :handle, and :heapQuantifier are no longer recognized. (https://github.com/dafny-lang/dafny/pull/3398)
60+
61+
- While using `dafny translate --target=java`, the `--include-sources` option works as intended, while before it had no affect. (https://github.com/dafny-lang/dafny/pull/3611)
62+
63+
- Tested support for paths with spaces in them (https://github.com/dafny-lang/dafny/pull/3683)
64+
65+
- Crash related to the override check for generic functions (https://github.com/dafny-lang/dafny/pull/3692)
66+
67+
- Opaque functions guaranteed to be opaque until revealed (https://github.com/dafny-lang/dafny/pull/3719)
68+
69+
- Support for Corretto tests (https://github.com/dafny-lang/dafny/pull/3731)
70+
71+
- Right shift on native byte has the same consistent semantics even in Java (https://github.com/dafny-lang/dafny/pull/3734)
72+
73+
- * Main and {:test} methods may now be in the same program (https://github.com/dafny-lang/dafny/pull/3744)
74+
75+
- The formatter now produces the same output whether invoked on the command-line or from VSCode (https://github.com/dafny-lang/dafny/pull/3790)
76+
77+
- The --solver-log option is now hidden from help unless --help-internal is used. (https://github.com/dafny-lang/dafny/pull/3798)
78+
79+
- Highlight "inconclusive" as errors in the gutter icons (https://github.com/dafny-lang/dafny/pull/3821)
80+
81+
- Docstring for functions with ensures (https://github.com/dafny-lang/dafny/pull/3840)
82+
83+
- Prevent a compiler crash that could occur when a datatype constructor was defined that has multiple parameters with the same name. (https://github.com/dafny-lang/dafny/pull/3860)
84+
85+
- Improved rules for nameonly parameters and parameter default-value expressions (https://github.com/dafny-lang/dafny/pull/3864)
86+
87+
- Fixes several compilation issues, mostly related to subset types defined by one of its type parameter (https://github.com/dafny-lang/dafny/pull/3893)
88+
89+
- Explicitly define inequality of `multiset`s in Python for better backwards compatibility (https://github.com/dafny-lang/dafny/pull/3904)
90+
91+
- Format for comprehension expressions (https://github.com/dafny-lang/dafny/pull/3912)
92+
93+
- Formatting for parameter default values (https://github.com/dafny-lang/dafny/pull/3944)
94+
95+
- Formatting issue in forall statement range (https://github.com/dafny-lang/dafny/pull/3960)
96+
97+
- Select alternative default calc operator only if it doesn't clash with given step operators (https://github.com/dafny-lang/dafny/pull/3963)
98+
599
# 4.0.0
6100

7101
## Breaking changes

docs/dev/news/2907.feat

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/dev/news/3095.feat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3221.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3398.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3611.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3612.feat

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/dev/news/3660.feat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3683.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3692.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3719.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3731.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3734.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3744.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3773.feat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3790.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3804.feat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3821.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3840.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3860.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3864.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3893.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3904.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3912.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3913.feat

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/dev/news/3919.feat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3944.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3960.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/3963.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/docstring.feat

Lines changed: 0 additions & 4 deletions
This file was deleted.

docs/dev/news/explicit-failing-assertions.feat

Lines changed: 0 additions & 13 deletions
This file was deleted.

docs/dev/news/expressions-on-assertions.feat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/no-verify-server.feat

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/dev/news/solverLog.fix

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)