Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
withoutboats3
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
13 ms
·
121.
▲
by
withoutboats3
3y ago
A lot of people on the internet are confused about what "IO bound" means, and use it in this incorrect way.
122.
▲
by
withoutboats3
3y ago
tokio supports a single threaded executor when you really need it, and its not even hard. It's called a LocalSet in tokio's API: https://docs.rs/tokio/latest/tokio/task/struct.LocalSet.html...
123.
▲
by
withoutboats3
3y ago
In fact there are multiple things in the world that people disagree about. This post addresses a different debate than the one you wanted me to write about, that's all.
124.
▲
by
withoutboats3
3y ago
async is just a syntactic sugar to transform a function into the state machine you would have otherwise written. If you don't trust the compiler to perform this transform adequately, you can write a Future by hand. There are users usin
125.
▲
by
withoutboats3
3y ago
Ariel Ben-Yehuda has sent me an example which shows how much harder it is than that, and which this wouldn't cover. I'm going to write a follow up blog post. EDIT: https://without.boats/blog/follow-up-to-chang
126.
▲
by
withoutboats3
3y ago
That's what my post is suggesting. The tricky part is making sure you don't sneak a !Leak type from 2024 code into some 2021 code.
127.
▲
by
withoutboats3
3y ago
Hi, this is boats. 1. If you don't read and comment on Rust RFCs, this post is probably not relevant to you. 2. This post is not even a suggestion for Rust to do anything, it's about how if you want to make a certain kind of chang
128.
▲
by
withoutboats3
3y ago
no, I don't admit that, and I think you're an enormous asshole
129.
▲
by
withoutboats3
3y ago
I designed async/await and I absolutely did take this into account. I designed it to be as pleasant as possible under the constraints.
130.
▲
by
withoutboats3
3y ago
Rust chose to drop the green thread library so that it could have no runtime, supporting valuable use cases for Rust like embedding a Rust library into a C binary, which we cared about. Go is not really usable for this (technically it'
131.
▲
by
withoutboats3
3y ago
It allows to remove all allocations within a task, except for recursive calls. This results in the entire stack of a task being in one allocation (if the task is not recursive, which is almost always the case, for exactly this reason), ex
132.
▲
by
withoutboats3
4y ago
I also think monads are elegant, and you're write that effects can all be modeled with monads, but I think the notion of a monad abstraction is a poor fit for a systems language as I elaborated years ago in the twitter thread Rusky lin
133.
▲
by
withoutboats3
4y ago
Thanks for the nice comment.
134.
▲
by
withoutboats3
4y ago
It's exactly the problem that led us to Pin in designing async/await. Futures need to own all of their state. If you want to use that state across multiple combinators (in async/await terms, "across an await point")
135.
▲
by
withoutboats3
4y ago
I think the confusion comes from the fact that Steve would consider code written by someone who "hasn't written much Rust" to be "beginner code," so he meant exactly what the book says. I would agree that people get
136.
▲
by
withoutboats3
4y ago
I like the f's a lot actually but I think there's a clear problem with the spacing when a title is two lines, and the f's really exacerbate it. But I also don't want to fiddle with my CSS.
137.
▲
by
withoutboats3
4y ago
Programming languages already have dialects, but there is a distinction between dialects and registers, even in linguistics. They blur in some cases (AAVE for example), but dialects are usually thought of more as a variety of language used
138.
▲
by
withoutboats3
4y ago
This dual meaning definitely crossed my mind as I was writing.. it's unfortunate. Whenever I encounter a dual like this I like to investigate the etymology. I assume the use in linguistics is by metaphor to its use in music, "the