Pkl, a Programming Language for Configuration
We are delighted to announce the open source first release of Pkl (pronounced Pickle ), a programming language for producing configuration.
The latest blog posts to take off on Hacker News. 327 posts.
We are delighted to announce the open source first release of Pkl (pronounced Pickle ), a programming language for producing configuration.
History of Perl releases since version 5.6, each with a summary of added or changed features.
Overture to our small Lisp to x86-64 compiler
This article attempts to outline, in informal terms, a new theory of combinators, related to the theory of Combinatory Logic pioneered by Moses Schonfinkel, Haskell Curry, and others in the 1930s. Although not essential, an understanding of the classical theory of combinators may be helpful (see the links at the…
2023 seems to have been the year where I "made the rounds" of a number of major Lisps. There were several elements that lead to this. Firstly must have been my exposure to Elixir in 2022, which introduced me to the idea of debugging live systems and "staying in your program". Secondly must have been my chief complaint…
My own concatenative programming language
Explore how Common Lisp and Clojure shape modern programming, and discover why understanding these foundations is crucial for tech choices today
deadcode is a new command to help identify functions that cannot be called.
Scrapscript is a small, pure, functional, content-addressable, network-first programming language. It’s designed to allow creating small, simply shareable programs. The language was created by Taylor Troesh and the main implementation was created by me and Chris.
I wrote the analysis of “useless sugar” features of Ruby for two months, and I regret nothing.
This post announces SaberVM, an abstract machine for functional programs that guarantees safety, reliability, and portability.
Some time ago, during a code review, I had a discussion with a colleague of mine about preferring dict() over {} in new Python code. They argued that dict() is more readable — and expresses intent more clearly — therefore should be preferred. I wasn’t convinced by that, but at that time I didn’t have any…
One of the established and most popular programming languages is the C programming language. It is relatively easy to learn, and highly practical. Maybe surprisingly, the C programming language keeps evolving, slowly and carefully. If you have GCC 13 or LLVM (Clang) 16, you already have a compiler with some of the…
I was just chatting with Ben Titzer on Twitter about control flow in his Virgil language (which is cool and you should definitely check ...
Every now and then, I stumble onto some algorithm or idea that’s so clever and such a perfect solution to a problem that I feel like I got smarter or gained a new superpower just by learning it. Heaps were one, just about the only thing I got out of my truncated CS education. I recently stumbled onto another: Pratt or…
Sit beside me and hear this crazy old man's tale of when I asked Rust for too much
Over the weekend, I was working on a personal Rust project when I ran into an excessive memory usage problem. After an evening of trial and error, I found a workaround to fix the memory usage, but I still didn’t understand how the issue was even possible, so I then spent another evening digging through the source code…
Usually in C identifiers are not directly followed by strings. But when U prefixed literals were introduced in C. there still were some rare clashes with existing code. This happened were a macro U…
The Rust language has incrementally grown a set of patterns to support control-flow effects including error handling, iteration, and asynchronous I/O. In The registers of Rust , boats lays out four aspects of this pattern shared by Rust’s three effects. Today these effects are typically used in isolation, or at most…
We are announcing a new Crystal release with several new features and bug fixes.
Contributing development work upstream to D leadership has always been a very frustrating process. While the oft-repeated claim that D is a closed-source language is not really true (the D-specific parts of the compiler were GPL'd as early as 2002, leading to an all-GPL compiler (what we now know as gdc) being…
Some C++ folk seem to think so, but they're wrong!
Reviewing the JIT in Python 3.13
Early C had no separate operators for & and && or | and || . (Got that?) Instead it used the notion (inherited from B and BCPL ) of "truth-value context": where a Boolean value was expected, after "if" and "while" and so forth, the & and | operators were interpreted as && and || are now; in ordinary expressions, the…
First of all, this article is an exercise in recreational "because I can" programming. If you just want to make your Python code go fast, this is perhaps not the article for you. And perhaps Python is not the language you want, either!
This is my closing talk ( video ) from the GopherConAU conference in Sydney, given November 10, 2023, the 14th anniversary of Go being lau...