Skip to content

Commit e50dc1f

Browse files
dkcummingrv-auditorjberthold
authored
Added a feature checklist. (#523)
This list is conservative and many things I have labelled as "Not supported" if I am not sure how this will be in the code. --------- Co-authored-by: devops <[email protected]> Co-authored-by: Jost Berthold <[email protected]>
1 parent 8029cf1 commit e50dc1f

File tree

4 files changed

+143
-3
lines changed

4 files changed

+143
-3
lines changed

docs/feature-checklist.md

+140
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
<!-- Instead of rewriting our own feature checklist from scratch, we make a derivative of the
2+
[Verus checklist](https://github.com/verus-lang/verus/blob/main/source/docs/guide/src/features.md)
3+
which is available for use under [MIT](https://github.com/verus-lang/verus/blob/main/LICENSE)
4+
license.
5+
-->
6+
7+
**Last Updated: 2025-04-10**
8+
9+
## Items
10+
|Feature|Status|
11+
|-------|------|
12+
|Functions, methods, associated functions|Supported|
13+
|Associated constants|Not supported|
14+
|Structs|Partially supported|
15+
|Enums|Partially supported|
16+
|Const functions|Not supported|
17+
|Async functions|Not supported|
18+
|Macros|N/A (MIR)|
19+
|Type aliases|Not supported|
20+
|Const items|Not supported|
21+
|Static items|Not supported|
22+
23+
## Struct/enum definitions
24+
|Feature|Status|
25+
|-------|------|
26+
|Type parameters|Not supported|
27+
|Where clauses|Not supported|
28+
|Lifetime parameters|Not supported|
29+
|Const generics|Not supported|
30+
|Custom discriminants| Supported|
31+
|Public / private fields|N/A (MIR)|
32+
33+
## Expressions and Statements
34+
|Feature|Status|
35+
|-------|------|
36+
|Variables, assignment, mutable variables|Supported|
37+
|`if`, `else`|Supported|
38+
|Patterns, `match`, `if let`, match guards|Supported|
39+
|Block expressions|Supported|
40+
|Items|Supported|
41+
|`loop`, `while`|Supported|
42+
|`for`|Not supported (`Range` not supported)|
43+
|`?`|Supported|
44+
|Async blocks|Not supported|
45+
|`await`|Not supported|
46+
|Unsafe blocks|Supported|
47+
|`&`|Supported|
48+
|`&mut`, place expressions|Supported|
49+
|`==`, `!=`|Supported|
50+
|Type cast (`as`)|Partially supported|
51+
|Compound assigments (`+=`, etc.)|Supported|
52+
|Array expressions|Not supported|
53+
|Range expressions|Not supported|
54+
|Index expressions|Not supported (Arrays not supported)|
55+
|Tuple expressions|Supported|
56+
|Struct/enum constructors|Not supported|
57+
|Field access|Supported|
58+
|Function and method calls|Supported|
59+
|Closures|Supported|
60+
|Labels, break, continue|Supported|
61+
|Return statements|Supported|
62+
63+
## Integer arithmetic
64+
|Feature|Status|
65+
|-------|------|
66+
|Arithmetic for unsigned|Supported|
67+
|Arithmetic for signed (`+`, `-`, `*`, `/`, `%`)|Supported|
68+
|Bitwise operations (`&`, `\|`, `!`, `>>`, `<<`)|Supported|
69+
|Arch-dependent types (`usize`, `isize`)|Not supported (fixed width) |
70+
71+
## Types and standard library functionality
72+
|Feature|Status|
73+
|-------|------|
74+
|Integer types|Supported|
75+
|`bool`|Supported|
76+
|Strings|Not supported|
77+
|`Vec`|Not supported|
78+
|`Option` / `Result`|Supported|
79+
|Floating point|Not supported|
80+
|Slices|Not supported|
81+
|Arrays|Not supported|
82+
|Pointers|Not supported|
83+
|References (`&`)|Supported|
84+
|Mutable references (`&mut`)|Supported|
85+
|Never type (`!`)|Not supported|
86+
|Function pointer types|Not supported|
87+
|Closure types|Supported|
88+
|Trait objects (`dyn`)|Not supported|
89+
|`impl` types|Not supported|
90+
|`Cell`, `RefCell`|Not supported|
91+
|Iterators|Not supported|
92+
|`HashMap`|Not supported|
93+
|Smart pointers (`Box`, `Rc`, `Arc`)|Not supported|
94+
|`Pin`|Not supported|
95+
|Hardware intrinsics|Not supported|
96+
|Printing, I/O|Not supported|
97+
|Panic-unwinding|Not supported|
98+
99+
## Traits
100+
|Feature|Status|
101+
|-------|------|
102+
|User-defined traits|Supported|
103+
|Default implementations|Supported|
104+
|Trait bounds on trait declarations|Supported|
105+
|Traits with type arguments|Supported|
106+
|Associated types|Supported|
107+
|Generic associated types|Supported|
108+
|Higher-ranked trait bounds|Supported|
109+
|`Clone`|Supported|
110+
|Marker traits (`Copy`)|Supported|
111+
|Marker traits (`Send`, `Sync`)|Not supported|
112+
|Standard traits (`Hash`, `Debug`)|Not supported|
113+
|User-defined destructors (`Drop`)|Not supported|
114+
|`Sized` (`size_of`, `align_of`)|Not supported|
115+
|`Deref`, `DerefMut`|Not supported|
116+
117+
## Multi-threading
118+
|Feature|Status|
119+
|-------|------|
120+
|`Mutex`, `RwLock` (from standard library)|Not supported
121+
|Verified lock implementations|Not supported
122+
|Atomics|Not supported|
123+
|`spawn` and `join`|Not supported|
124+
|Interior mutability|Not supported|
125+
126+
## Unsafe
127+
|Feature|Status|
128+
|-------|------|
129+
|Raw pointers|Not supported|
130+
|Transmute|Not supported|
131+
|Unions|Not supported|
132+
|`UnsafeCell`|Not supported|
133+
134+
## Crates and code organization
135+
|Feature|Status|
136+
|-------|------|
137+
|Multi-crate projects|Partially supported|
138+
|Verified crate + unverified crates|Not supported|
139+
|Modules|Supported|
140+
|rustdoc|Not supported|

kmir/pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
44

55
[tool.poetry]
66
name = "kmir"
7-
version = "0.3.115"
7+
version = "0.3.116"
88
description = ""
99
authors = [
1010
"Runtime Verification, Inc. <[email protected]>",

kmir/src/kmir/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from typing import Final
22

3-
VERSION: Final = '0.3.115'
3+
VERSION: Final = '0.3.116'

package/version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.3.115
1+
0.3.116

0 commit comments

Comments
 (0)