Mara Bos
blog.m-ou.se · Personal blog · on HN since 2020
Mara Bos is a Rust library team lead who writes about Rust internals, lifetimes, concurrency, and the project's governance.
What HN saysHN commenters link her post that Rust is not a company to explain its volunteer-driven pace, and discuss her pieces on temporary lifetimes.
22HN people shared it
7linked it in comments
18stories submitted
495story points
2 months agolast shared
2020people per year2026
Most-shared posts
- 1Do we need a “Rust Standard”?5 people · 40 points · first shared 2022 · 46 comments on HN
- 2Writing Python inside Rust4 people · 192 points · first shared 2020 · 85 comments on HN
- 3Rust Temporary Lifetimes and "Super Let"4 people · 6 points · first shared 2023 · discussion on HN
- 4Converting Integers to Floats Using Hyperfocus3 people · 115 points · first shared 2022 · 9 comments on HN
- 5Rust is not a company2 people · 102 points · first shared 2021 · 80 comments on HN
- 6Comparing Rust's and C++'s Concurrency Library2 people · 32 points · first shared 2022 · discussion on HN
- 7Behind the scenes of Rust string formatting and format_args ()2 people · 3 points · first shared 2023 · discussion on HN
- 8Writing Python inside your Rust code – Part 31 people · 2 points · first shared 2020 · discussion on HN
- 9Writing Python inside your Rust code – Part 21 people · 2 points · first shared 2020 · discussion on HN
- 10Writing Python inside your Rust code – Part 41 people · 1 points · first shared 2020 · discussion on HN
What HN people wrote when they linked it
aw1621107 · 2026-08-20
Interesting, thanks for the links! I'm curious as to how many of the apparent issues are attributable to lifetime extension specifically as opposed to something else like async-related deadlocks as mentioned in the parent to the first linked comment (which I feel I've heard much more about), especially after the Rust 2024 changes.
That being said, after a bit more searching I found this 2023 blog from one of the Rust devs [0] which supports the "widespread" description at the time:
> One very common problem is deadlocks (or panics, for ref-cell) when mutex locks occur in a match scrutinee
so I think we can chalk this up to me being insufficiently well-read. I think it would be interesting to see to what extent the Rust 2024 changes alleviated the problem since it only changed if let, but I haven't found that information (yet).
There's also this related work [1], but I think the scope of that is rather larger.
> Interestingly, Mojo might avoid some or all of that, by having some destructors be implicit, and some destructors be explicit, [] , requiring users to write the destructors manually.
There's some relevant exploration being done in Rust that in principle could enable linear types [2], though obviously it remains to be seen to what extent this work will pan out.
[0]: https://smallcultfollowing.com/babysteps/blog/2023/03/15/temporary-lif…
[1]: https://blog.m-ou.se/super-let/
[2]: https://github.com/rust-lang/goals/blob/main/src/2026/move-trait.md
eesmith · 2023-06-20
> 30 to 80 millions LOC compiled
I figured it was because "line of code" is not all that meaningful, and not worth specifying more precisely than that.
Does it include comments? Is it after macro expansion? What about \ continuations? Does a bare "}" on its own count as a line of code?
BTW, how many LOC does Crater run in a full test, and how long does it take/how expensive is a run? I failed to find that information.
> The C++ developers don't actually have direct access to other people's code
I don't know what you mean by that. They certainly have access to public source code, just like Rust developers do. (Chromium, LLVM, Boost are mentioned in https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r2.html ).
It would seem very odd if Microsoft's representatives had no idea how changes to C++ would affect internal Microsoft code. I strongly suspect VC++ changes/extensions are tested against in-house Microsoft code bases before making their way to the standard, because it makes no sense to undermine your own systems. For the same reason, I suspect proposed changes are tested internally at Microsoft.
And from papers like https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2126r0.pdf I know there is in-house experience of proprietary code bases guiding how the C++ standard changes.
> Did the documents you reviewed make you think the hidden C++ is so much different than the piles of it that are available in a public code search? Was that the message you…
hitekker · 2023-02-15
Blaming the followers for not reading the docs is an easy excuse, when the real problem is that the leaders have failed to define Python. The PSF needs to decide what precisely Python is and what it isn't among themselves. Because they did not do so, they can't tell if something is a bug or intentional. See this entire thread as proof.
In lieu of a formal definition, the maintainers resort to a hodgepodge of user docs, PEPs, mailing lists, and the "reference implementation". Worries about making that "reference implementation" more complex stymied Python's development. There's been flamewars about this topic with the PSF and their apologists.
On that note, Rust encountered a similar problem of bad decision-making by maintainers, who also were opposed to specification. They have ejected those maintainers and replaced them with ones who understand the need for a formal definition of their language.
https://blog.m-ou.se/rust-standard/
epage · 2026-06-24
An RFC was recently merged to unblock this: https://github.com/rust-lang/rfcs/pull/3963
The implementation on this has started.
Something to keep in mind is https://blog.m-ou.se/rust-is-not-a-company/. Rust is mostly driven by volunteers working on what they find interesting. Boring/uninteresting tasks depend on funding, a warm body to accept the funding, and a reviewer.
dochtman · 2022-11-01
In my understanding it would be hard to make the case that Rust actually has more undefined behavior than C -- most kinds of undefined behavior in C have been carefully avoided in Rust, although, yes, there is no piece of paper ratified by a bunch of national technology institutes that describes Rust.
See also this recent blog post:
https://blog.m-ou.se/rust-standard/
JeremyBanks · 2020-09-19
Hmm. Some folks have hacked the Rust macro system to get whitespace-sensitivity for embedded Python. https://blog.m-ou.se/writing-python-inside-rust-1/ I wonder how much of the CoffeeScript syntax you could pack in there...
thesuperbigfrog · 2023-12-18
Rust needs a language standard:
https://blog.m-ou.se/rust-standard/
https://rust-lang.github.io/rfcs/3355-rust-spec.html
https://github.com/rust-lang/rfcs/pull/3355
There are many organizations and industries that will not adopt Rust until it has a standard.
C, C++, C#, and even JavaScript (ECMAScript) have language standards. Why shouldn't Rust have one too?
C: https://www.iso.org/standard/74528.html
C++: https://isocpp.org/std/the-standard
C#: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/lan…
JavaScript / ECMAScript: https://ecma-international.org/publications-and-standards/standards/ec…