Compiling a Functional Language Using C++, Part 9 – Garbage Collection
In this post, we implement a garbage collector that frees memory no longer used by the executables our compiler creates.
The latest blog posts to take off on Hacker News. 1,508 posts.
In this post, we implement a garbage collector that frees memory no longer used by the executables our compiler creates.
Think about the most complex frontends you’ve used. Frontends that made you wonder — “how did they create this”?
An exploration into C++ memory throughput performance.
A behind-the-scenes look at the evolution of the Picture-in-Picture player for the Firefox Desktop browser. This feature is now available for MacOS, Linux and Windows users. From the beginning, it's ...
Type systems are useful not just for the safety guarantees they provide, but also for helping compilers generate more efficient code by simplifying important program analyses. In Rust, the type system imposes a strict discipline on pointer aliasing, and it is an express goal of the Rust compiler developers to make use…
When you have lots of information in an Org file, it helps to narrow it down to just the topic that interests you right now. There's many ways to do that depending on what exactly you want to do. Creating an Org mode sparse tree is one of those options!
ShellCheck is a static analysis tool that points out common problems and pitfalls in shell scripts.
If you don't you're not alone. Right now, as I'm typing this, 4 of the top 4 Google results for "find command linux" contain at least one example of the pattern illustrated by the command above.
In this post, I share why I think that reading source code is an important technique which can be applied to become a better software developer.
The Progress Report has come and with it some major changes and decisions. However, before we get into new things, we need to go over an ongoing change as we've seen some users struggling. In the last progress report, we updated our project solutions to Microsoft Visual Studio C++ 2019. We thought there would be no…
There were several moments over the last few weeks when I heard people discuss differences between Python lists and dicts and one of the first ones mentioned was that lists are ordered and dicts are not.
Reaching 95%-ile isn't very impressive because it's not that hard to do. I think this is one of my most ridiculable ideas. It doesn't help that, when stated nakedly, that sounds elitist. But I think it's just the opposite: most people can become (relatively) good at most things.
Combinatris
Key path expressions as functions, callAsFunction, and more
Snyk's annual JVM ecosystem report presents the results of the largest annual survey on the JVM ecosystem, which gathered over 2000 responses in the second half of 2019.
What's SAP? And why is it worth $163B?
Pathfinding is one of these topics that usualy baffles game developers. The A* algorithm in particular is poorly understood, and the general belief seems to be that it’s arcane magic.
Oh man where to even begin with this one. This was a crazy ride and I learned a ton along the way.
Exception handling is an error management paradigm that has often been met with criticism. Such criticisms typically revolve around scoping considerations, exceptions-as-control-flow abuse or even …
This post explains how to implement heap allocators from scratch. It presents and discusses different allocator designs, including bump allocation, li…
*If you’re the owner of this website and have questions, reach out to Bluehost. We’re happy to help.
DSLs, or domain specific languages, are programming languages that are designed to implement a set of features specific to a particular problem or field. An example could be Make , the build tool, which is a specially designed language for combining ...
Inspired by Jan Stette's "Things I Believe" post, I decided to write down some of the more contentious beliefs I have about software engineering. I've selected some of my more extreme opinions here, so I expect reasonable people to disagree with me. That's ok.
PHP 8.0 brings features like attributes, union types, and the JIT compiler. It has some important breaking changes, and improved performance.