Rust for C++ programmers – part 5: borrowed references
In the last post I introduced unique pointers. This time I will talk about another kind of pointer which is much more common in most Rust p...
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 5,637 posts.
In the last post I introduced unique pointers. This time I will talk about another kind of pointer which is much more common in most Rust p...
In programming languages, duck typing can be approximated as the application of the duck test to objects. Here we explore if go is duck typed.
Some things about the R programming language that programmers coming from other languages are likely to trip over.
Spoiler : it is also likely already the best BZip2 encoder for a given block size. See the green charts below. Note for subscribers: if you...
How Go 1.20's WithCancelCause and Go 1.21's WithTimeoutCause let you attach a reason to context cancellation, plus a gotcha with manual cancel and the stdlib pattern that covers every path.
Design patterns are these cool things that make you go 'hell yeah' because they make a certain problem easier to deal with. Whether it's applicable to all languages, or due to a language constraint, they're pretty nice. Of course, some people go crazy with them rather than doing the simple thing that works. Other…
area being the function you really care about it is defined first - after all, code reads from top to bottom.
I gave the best programming interview answer I may have ever given last Friday. The interviewer hauled out FizzBuzz and asked me to solve it. It took me a minute to stop laughing. FizzBuzz is a brain-dead simple programming problem, used pretty much to tell if a developer has a pulse at all. It is…
Virtual Threads are an excellent addition to Java platform and here's how Clojure is going to benefit from it.
In my attempts to learn the C programming language well enough to write my own C compiler , I've encountered some very interesting examples of C syntax that you generally don't see every day. All of these examples you'll see here will compile without warnings or errors even with very strict compiler flags in gcc and…
One of the biggest issues with Higgs, the JIT compiler I’m working on, is that the compilation times are too slow. The performance of the compiled machine code that Higgs produces is now fair…
Laurent Le Brun's blog
Today I want to share a wonderful experience. I'm professor of introductory programming in two years at Florentino Ameghino School and one...
One like, one unpopular opinion is one of them top Twitter games, innit?
The first computer I used had about 2KB of RAM. The other day, I compiled a 2KB Common Lisp script into a 16MB executable to get its startup (and total execution) time down from 2s to subjectively instantaneous — and that didn't bother me the least, for my current computer has 8GB of working memory…
The Cargo team have been thinking about and discussing long-term plans for Cargo. In this post I'll talk about what we hope Cargo will look like around the time of the next edition (assuming there is another edition and that it happens in about three years, neither of which is
QBE 1.3 took a while to cook, but it is the most significant release since 1.0 with around 7k new lines of code and 1.5k deleted ones. In addition to the usual bug fixes, QBE gained a new and original IL matching algorithm, new optimizations from Roland Paterson-Jones, Scott Graham added support for the Windows ABI…
Static Single Assignment is a program representation where each “variable” (though this term can be misleading) is assigned exactly once. Mostly the variables aren’t variables at all, but instead names for values—for expressions. SSA is used a lot in compilers. See this lesson from Cornell for converting Bril to SSA…
This semester, I am teaching Compilers , and I'm quite happy with how I covered parsing this year. Specifically, I taught students to build a top-down LR parser and it seemed to go relatively well.
Today, we are happy to announce FastCGI support for HHVM. FastCGI is a popular protocol for communication between an application server (e.g. running your PH...
Left & Mutual Recursion Mitigation
When it rains it pours. After making a splash with D , 1 I remembered that some time ago I began an attempt to bring the GNU Modula-2 compiler to OpenBSD . Because why not? Modula-2 is a language that exists and has compiler implementations. I guess my goal is to bring all the languages and compilers to OpenBSD. And…
Introduction to Lisp programming on a PDP-1, with a hands-on practical focus