Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 21,845 posts.

Any year
20741

When can glibc be built with Clang?

Updated in 2026: glibc 2.43 added experimental support for building with Clang. In September 2021, I wrote "So, dear glibc, will you be happy with my sending Clang patches?" in Build glibc with LLD 13. We have come to a turning point. In Linux Plumbers Conference 2021, at the glibc Birds of a Feather session, I asked…

20743

Understanding lvalues and rvalues in C and C++

The terms lvalue and rvalue are not something one runs into often in C/C++ programming, but when one does, it's usually not immediately clear what they mean. The most common place to run into these terms are in compiler error & warning messages. For example, compiling the following with gcc :

20745

Shrinking a Kotlin Binary by 99.2%

We'll get to the shrinking, but first let's motivate the binary in question. Three years ago I wrote the "Surfacing Hidden Change to Pull Requests" post which covered pushing important stats and diffs into PRs as a comment. This avoids surprises with changes that affect binary size, manifests, and dependency trees.

20746

Closures as Win32 Window Procedures

Back in 2017 I wrote about a technique for creating closures in C using JIT-compiled wrapper. It’s neat, though rarely necessary in real programs, so I don’t think about it often. I applied it to qsort , which sadly accepts no context pointer. More practical would be working around insufficient custom allocator…

20747

Lua/APR - proper standard library for Lua

Lua/APR is a binding of the Apache Portable Runtime (APR) for the Lua programming language . APR powers software such as the Apache webserver and Subversion and Lua/APR makes the APR operating system interfaces available to Lua, serving as an extended standard library. Thus far the following modules have been…

20750

In His Own Words: Gary Kildall

Gary Kildall was a pioneer of personal computer software. He wrote programming language tools, including assemblers (Intel 4004), interpreters (BASIC), and compilers (PL/M). He created a widely-used disk operating system (CP/M). He and his wife, Dorothy McEwen, started a successful company called Digital Research to…

20752

Understanding Concurrency, Parallelism and JavaScript

Up until now, I was not aware that concurrency and parallelism were actually different things since they are often used interchangeably by some. I just learned that this is not the case while reading Chapter 9 of the book “Clojure for the Brave and True.” This made me want to learn more about concepts related to…

20753

Adding a new statement to Python

This article is an attempt to better understand how the front-end of Python works. Just reading documentation and source code may be a bit boring, so I'm taking a hands-on approach here: I'm going to add an until statement to Python.

20755

Super-Flat ASTs

In my previous post, I introduced the simp le programming language. Near the end of that post, I mentioned that the parser isn't very efficient.

20758

MongoDB and Riak, In Context (and an apology)

There has been quite a bit of furor and excitement on the Internet this week regarding some very public criticisms (and defenses) of MongoDB and its creators, 10gen . Unfortunately, a ghost from my recent past also resurfaced as a result. Let me begin by apologizing to 10gen and its engineers for what I said at JSConf…