The Cost of Indirection in Rust
Why 'indirection has a cost' is usually the wrong reason to inline and what actually costs you.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
Why 'indirection has a cost' is usually the wrong reason to inline and what actually costs you.
I’m a big fan of interactive tool support for programming. I often use features like “go to definition”, “find symbol”, compile error underlining, etc. Also, earlier this year, I launched Muon, a new low-level programming language. As no tooling existed beyond the compiler, writing the initial Muon programs (such as a…
Let me share a useful insight with you: constexpr is a platform. Just like you write code that targets Windows or a microcontroller, you write code that targets compile-time execution. In both cases you restrict yourself to the subset of C++ that works on your target platform, use conditional compilation if your code…
Some time ago I integrated OpenSSL's MD5, SHA1 and RC4 functions into Go because Go's native implementations were slow. The Go team has ma...
Recently, Aria Beingessner published an interesting essay “ Rust’s Unsafe Pointer Types Need An Overhaul ”. There are several parts to this essay, all of which address issues which cause me pain in Rust, and which I would love to see fixed. I want to focus on one issue: Rust’s usize conflates address, data, and object…
I'm currently working on a macOS app that's built with Racket and allows the user to write small scripts to process and filter some data. While Racket is definitely my preferred language and I could easily use it for these scripts, my target audience for this app would probably appreciate a more familiar language. I…
A deep-dive technical overview of how you can write CPython extensions in assembly (with a bonus tutorial on assembly programming)
Arthur’s thoughts on coding, software engineering, and other interesting things.
Mark Karpov wrote in his article on Migrating text metrics to pure Haskell how he originally did foreign calls out to C for many of the functions in his text metric package, but now ported them to Haskell when he learned that Haskell can give you performance comparable to C.
SUNWIN tiếp tục dẫn đầu thị trường game đổi thưởng Việt Nam với hơn 5 triệu người chơi và tỷ lệ thắng cược minh bạch.
Magpie has reached a strange but neat little milestone on the road from “weird experiment” to “real language”: the type system is now bootstrapped. I’m not aware of any other languages where a statement like that is even meaningful (maybe Typed Scheme ?), much less true , so I’ll try to break that down.
Completing a BASIC language interpreter in 2025 for replacing the very slow Mattel ECS BASIC for Intellivision.
I love the Clojure language, but I don’t think there’s any use pretending that the combination of expressiveness, power, and repl-driven development can result in some staggeringly dense code. Everyone that writes Clojure is guilty of this at one time or another; you start with the core of your function, evaluate it…
The macro Ecto Query dynamic/2 allows you to build query fragments and interpolate them into one large query. We get easy-to-manage query building in an accessible way. It allows you to control the parameters from the user and transparently create filtering of data stored in the database.
Building a tiny FORTH for an Arduino UNO in one week
I graduated last month, and my GSoC project along with my startup work finally wrapped up. To take a proper break and enjoy some deliberate...
In Rust at Facebook by Fitzhardinge of the Mercurial team , Jeremy says that a new language must be 10x better at something than one of the (other) incumbent languages.
Metaprogramming is the writing of computer programs with the ability to treat programs as their data. It means that a program could be designed to read, generate, analyse and/or transform other programs, and even modify itself while running.
For a week or so now, I've been writing niënor , a "lispy environment for uxn" . I did not want it to become a full-blown lisp but just another way of writing uxntal . Uxntal is a bit too dense for my liking, and I prefer lisp/scheme s-expression syntax. Niënor is just a compiler and a macroexpander that takes in…
Platform Specific Series - Lets learn how the hardware of the systems work, so we can get it to do what we want... Covers Amsrad CPC,MSX,ZX Spectrum, TI-83,Enterprise 128/64 and Sam Coupe! Lesson P1 - Basic Firmware Text functions Lesson P2 - More Text Functions, Improvements... and the Sam Coupe! Lesson P3 - Bitmap…
The conflict between subclassing and composition is as old as object-oriented programming. The latest crop of languages like Go or Rust prove that you don’t need subclassing to successfully write code. But what’s a pragmatic approach to subclassing in Python, specifically?
Personal website of Benedikt Meurer, JavaScript Engine Hacker and Programming Language Enthusiast.
Rust currently has very strong support for concurrency in the form of actors which exchange messages and do not share memory. However, there are many tasks for which actors are not a good fit. The unbounded lifetime of actors means that they cannot safely access stack-allocated memory from another task, even if it is…