Skip to content

Commit 7a0c18c

Browse files
committed
Add description of the async support in miri project
1 parent 8e8c4b7 commit 7a0c18c

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

posts/2024-11-01-gsoc-2024-results.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,16 @@ Even though this project did not fulfill its original goals and more work will b
158158
- Mentor: [Oli Scherer](https://github.com/oli-obk)
159159
- [Final report](https://gist.github.com/tiif/3e08ba6e8cfb1d078e6155410108ae48)
160160

161-
TODO
161+
[miri][miri] is an intepreter that can find possible instances of undefined behavior in your Rust code, which is being used across the Rust ecosystem. However, it was not possible to run it on any non-trivial programs (those that ever `await` on anything) using [tokio][tokio], due a to a fundamental missing feature: support for the `epoll` syscall on Linux (and similar APIs on other major platforms).
162+
163+
Tiffany implemented the basic `epoll` operations needed to cover the majority of the tokio test suite, by crafting pure `libc` code examples that exercised those `epoll` operations, and then implementing their emulation in miri itself. At times, this required refactoring core miri components like file description handling, as they were originally created solely with blocking operations in mind.
164+
165+
Suprising to everyone (though probably not tokio-internals experts), once these core `epoll` operations were finished, operations like async file reading and writing started working out of the box! Due to limitations of non-blocking file operations offered by operating systems, tokio wrapped those file operations in dedicated threads, which was already supported by miri.
166+
167+
Once Tiffany has finished the project, including stretch goals like implementing async file operations, she proceeded to contact tokio maintainers and worked with them to run miri on most tokio tests in CI. And we have good news: so far no soundness problems have been discovered! Tiffany become a regular contributor to miri, focusing on continuing to expand the set of supported non-blocking file descriptor operations. We thank her for all her contributions!
168+
169+
[miri]: https://github.com/rust-lang/miri
170+
[tokio]: https://tokio.rs/
162171

163172
## Conclusion
164173

0 commit comments

Comments
 (0)