Top all-time · #971
boats.gitlab.io
Personal blog · boats.gitlab.ioprogramming
boats.gitlab.io is a personal blog at boats.gitlab.io about programming. Since 2017, 71 different Hacker News readers have linked it 94 times, most often “Garbage collection as a Rust library”. No feed was found, so read it on the site itself.
Most-linked posts?
- Garbage collection as a Rust library7 people · 8 mentions · first linked 2018-10-17
- Not Explicit6 people · 8 mentions · first linked 2017-12-28
- Notes on a Smaller Rust6 people · 7 mentions · first linked 2019-07-18
- Zero Cost Abstractions5 people · 5 mentions · first linked 2019-05-16
- Rust: Notes on Io-Uring5 people · 5 mentions · first linked 2020-05-07
- The problem of effects in Rust5 people · 5 mentions · first linked 2020-04-15
- From Failure to Fehler4 people · 5 mentions · first linked 2020-04-06
- Async/Await I: Self-Referential Structs4 people · 4 mentions · first linked 2018-01-26
- Async and Await in Rust: a full proposal4 people · 4 mentions · first linked 2018-04-06
- A final proposal for Rust await syntax4 people · 4 mentions · first linked 2019-05-06
What Hacker News says?
There's some interesting bits on the low-level work for using io_uring with the Ringbahn crate - https://boats.gitlab.io/blog/post/ringbahn/
Comment linking /blog/post/ringbahn/
on “Tokio 1.0 – async runtime for Rust”Submitted Async and Await in Rust: a full proposal as a story · 388 points
HN discussion>Our async IO model was based on the Linux industry standard (then and now) epoll, but that is not at all what drove the switch to a polling based model Can you provide a link to a design document or at the very least to a discussion with motivation for this switch outside of the desire to be as compatible as possible with the "Linux industry standard"? >the polling based model presents no issues whatsoever with io-…
Comment linking /blog/post/io-uring/
on “Why asynchronous Rust doesn't work”Submitted A final proposal for Rust await syntax as a story · 352 points
HN discussionI'm also curious about this. Boats wrote some about rust async and io-uring a while ago that's interesting[1], but also points out a very clear path forward that's not actually outside the framework of rust's Future or async implementation: using interfaces that treat the kernel as the owner of the buffers being read into/out of, and that seems in line with my expectations of what should work for this. But I haven't…
Comment linking /blog/post/io-uring/
on “Why asynchronous Rust doesn't work”Submitted Zero Cost Abstractions as a story · 350 points
HN discussionasync/await is right around the corner. Meaning few months give or take until it's on stable. The 1.37 goal [1] will most likely be missed though. [1]: https://boats.gitlab.io/blog/post/await-decision-ii/
Comment linking /blog/post/await-decision-ii/
on “Matrix 1.0 and the Matrix.org Foundation”Submitted Update on await syntax in Rust as a story · 275 points
HN discussionThank you, Steve. You have personally done more to make the Rust community what it is today than possibly any other person. It speaks very poorly of Mozilla that they don't value your work. Perhaps 2019 is the time to start the Rust Foundation, as mentioned by boats and others[0]. If so, you'd clearly be one of the founders. I would put my name into the ring for that as well, as we're now in somewhat similar circums…
Comment linking /blog/post/rust-2019/
on “Thank u, next”Submitted Organizational Debt as a story · 185 points
HN discussion...and I'm saying that Rust is the only language where the benefit of using it for its type system has, for me and so far, outweighed the downsides of having to think about memory management. Java? Pain in the ass with all those non-inferred type signatures and comparatively poor POSIX API integration. Also, I've yet to encounter a Java GUI, AWT, Swing, SWT, or otherwise, that wasn't buggy and sluggish under X11, an…
Comment linking /blog/post/notes-on-a-smaller-rust/
on “An RFC that adds support for Rust to the Linux kernel”Submitted Not Explicit as a story · 147 points
HN discussionI came to Rust for things like sum types, lack of unexpected null values, monadic error handling (Result<T, E>), and the borrow checker's ability to enable the typestate pattern. ( https://cliffle.com/blog/rust-typestate/ for more on what the typestate pattern is but the TL;DR: is "verifying correct traversal of a state machine at compile time". For example, making it a compile-time error to try to set an HTTP heade…
Comment linking /blog/post/notes-on-a-smaller-rust/
on “An RFC that adds support for Rust to the Linux kernel”Submitted Notes on a Smaller Rust as a story · 103 points
HN discussion> For example when submitting a write operation, the memory location of those bytes must not be deallocated or overwritten. > The io-uring crate doesn’t help much with this. The API doesn’t allow the borrow checker to protect you at compile time, and I don’t see it doing any runtime checks either. I've seen comments like this before[1], and I get the impression that building a a safe async Rust library around io_uri…
Comment linking /blog/post/io-uring/
on “Io_uring, kTLS and Rust for zero syscall HTTPS server”Submitted Garbage collection as a Rust library as a story · 8 points
HN discussion> That precludes GC This isn't the case, there are tracing garbage collectors implemented as libraries [1][2], and there is consideration being made for supporting tracing GC in the language and stdlib [0]. As well as reference counted GC having been available in stdlib for a long time [3] (similar to C++'s std::shared_ptr) [0] https://github.com/rust-lang/rfcs/blob/master/text/1398-kind... [1] https://manishearth.g…
Comment linking /blog/post/shifgrethor-i/
on “Linux kernel in-tree Rust support”Submitted Async and Await in Rust: a full proposal as a story · 6 points
HN discussionThat's an interesting question, and there has been some work in that area. Getting shared mutability as a user of GC is basically the same as getting shared mutability in any other scenario in Rust. You use `UnsafeCell<T>` or a safe wrapper around it, like `Mutex` or `Cell`. You can get a feel for this even in idiomatic Rust using `Rc` instead of a tracing GC. When you start looking at other methods of GC things get…
Comment linking /blog/post/shifgrethor-i/
on “Chromium project finds that 70% of security defects are memory safety problems”Submitted Announcing failure: error handling for Rust as a story · 6 points
HN discussionhttps://boats.gitlab.io/blog/post/notes-on-a-smaller-rust/ might be inspiration for such a language.
Comment linking /blog/post/notes-on-a-smaller-rust/
on “Zig's New Relationship with LLVM”Submitted Rust: Notes on Io-Uring as a story · 5 points
HN discussionhttps://boats.gitlab.io/blog/post/romio/ you can start playing with it right now
Comment linking /blog/post/romio/
on “Rust 1.32 released”Submitted The problem of effects in Rust as a story · 5 points
HN discussionLet me introduce you to the concept of ErrorKind in Rust (i.e. in the IO module of the std): https://doc.rust-lang.org/std/io/enum.ErrorKind.html There is also the "failure" crate which has patterns for the kind of thing you mentioned: https://boats.gitlab.io/failure/error-errorkind.html https://boats.gitlab.io/failure/custom-fail.html
Comment linking /failure/custom-fail.html
on “I Quit My Job to Live on Donations to Zig”Submitted What I would mean when I say “Rust is explicit” as a story · 5 points
HN discussionThe final decision was made on 23rd of May, two weeks after new syntax was proposed and not even implemented yet. https://boats.gitlab.io/blog/post/await-decision/
Comment linking /blog/post/await-decision/
on “I can't keep up with idiomatic Rust”Submitted Ringbahn: A safe, ergonomic API for io-uring in Rust as a story · 4 points
HN discussionThe language team member you are criticizing for exploring what Ok-wrapping could look like goes into your particular argument in quite some detail here: https://boats.gitlab.io/blog/post/2017-12-27-things-explicit... Your general concern, which is that "new syntax makes things less explicit, and is therefore bad", isn't logical. Adding new syntax has many costs (not only one), but it can also have benefits (hence w…
Comment linking /blog/post/2017-12-27-things-explicit-is-not/
on “I can't keep up with idiomatic Rust”Submitted What Constitutes a Vulnerability? as a story · 4 points
HN discussion