"Unfortunately, most people seem to have taken the wrong lesson from Rust. They see all of this business with lifetimes and ownership as a dirty mess that Rust has had to adopt because it wanted to avoid garbage collection. But this is completely backwards! Rust adopted rules around shared mutable state and this enabled it to avoid garbage collection. These rules are a good idea regardless."
If you're doing a lot of work in C/C++/Rust consider using sccache to cache compilations. It's easy to set up and will save you a lot of time and a huge amount of power.
https://nexte.st/ is awesome. The expression language to filter for tests or simply display a list of available test made is "must-have" for me. #rustlang#rust
"Note that any lifetime bounds, including 'static, apply only to references and types containing references. They do nothing when applied to self-contained types. This means that String is not 'static, but rather it isn't affected by any lifetime bound."
It's fascinating to me looking at beginning language guides and thinking "what does this say about the culture of the language"
When I was delving into #OCaml it was (with affection) "here's hello world and here's a dense academic paper on implementing event systems in OCaml 5!"
#Java guides used to be centered on the assumption that you were a web programmer looking to do applets, even long after that assumption died.
#RustLang generally seems to assume a background in programming w/ a CLI.
I'll certainly have more observations as I dig more into The Rust Book and Rust by Example on #RustLang, but it is interesting to me to see the baked in assumption that you are pretty comfortable with concepts like package management (I mean Rust By Example talks about creating a library before it talks about using a library and The Rust Book is similar, glossing over nuances here), CLI tools, and build tools.
To be clear, this is all fine, it is just informing me who the target audience is.
also, now with #gpt4o, latency is going to be critical if you’re doing streaming audio/video, so #python may start looking less appealing. what’s the new #LLM language? #rust? #go? #cpp? #fortran?
I've been moving between neovim, helix (can't get over the slightly different mental model compared to vim), vscode, rustrover... Curious what others use.
I've been helping to investigate a few LLVM and Rust bugs recently, and I keep running into pet peeves with how these bugs are reported, so I'm going to put together some #RulesForBugFiling
I don't want to discourage anyone from filing a bug, please do! But... be aware with how you represent the issue that you're seeing.
I also know that there are folks on here who are vastly more knowledgeable than I am, so feel free to suggest corrections, perhaps by filing some sort of report...
If you're going to claim something is a security issue, please explain what the attacker has gained by exploiting the bug. That is, what they can now do they couldn't before.
The more specific you can be on when a regression occurred, the better. A range of versions is good, a single version is great, a single commit is amazing.
Tools like git bisect are really helpful for this.
Providing a standalone example that reproduces the issue so that someone else can do that work is also great, with the bonus that it can be added to the regression tests.
Hurl is a command line tool that runs HTTP requests defined in a simple plain text format.
It can chain requests, capture values and evaluate queries on headers and body response. Hurl is very versatile: it can be used for both fetching data and testing HTTP sessions.
Hurl makes it easy to work with HTML content, #REST / SOAP / GraphQL APIs, or any other XML / JSON based APIs.
usually, it is used to define methods, but in function arguments, it serves as syntactic sugar so you don't have to name generic types... but in a return type, it has a meaning that is slightly different, and actually expresses a semantic not even vanilla haskell can represent!
basically, instead of being able to return any type implementing a trait, it states that it can return at least one type that implements a trait.
in haskell terminology, specifying a generic type parameter is "forall a", while returning an "impl" is "exists a".