Interesting Links for April 2023
Here are some interesting things I read on the internet in April 2023:
- Pedagogical Downsides of Haskell
Why teaching Haskell is hard.
Bazel and Nix: A Migration Experience
Integrating Nix with Bazel for dependency management.
Building 15-year-old software with Nix
How to build old software with Nix.
Stopping evaluation from blocking in Nix
How to stop Nix from blocking when evaluating an expression
Programming Languages Theory
Compiling a functional language to LLVM, part 2
Compiling a functional language to LLVM: adding support for conditionals.
Deep recursion with coroutines
How to do deep recursion with coroutines in Kotlin without blowing the stack.
Design of the Austral Compiler
Complete description of the design of the Austral compiler.
Every type is defined by its intro and elim forms
Every type is defined by how we construct it and how we deconstruct it.
Kalyn: a self-hosting compiler for x86-64
Complete description of a self-hosting compiler for x86-64.
On Recursion, Continuations and Trampolines
Implementing tail recursion using Continuation Passing Style and trampolines.
A better way to bootstrap a compiler.
Scripting Objects without Trash Day
Survey of scripting languages without garbage collection.
Compromising Garmin’s Sport Watches: A Deep Dive into GarminOS and its MonkeyC Virtual Machine
Reverse engineering GarminOS and its MonkeyC VM to find vulnerabilities.
How I Hacked Google App Engine: Anatomy of a Java Bytecode Exploit
Story of a Java bytecode exploit that allowed running arbitrary code on Google App Engine.
All you need is data and functions
Replacing traits with data and functions.
Make invalid states representable
Making invalid states representable to provide better error messages.
Effective Spaced Repetition
Strategies for effective spaced repetition.
Erasing at the blackboard
Better ways to write code for a book.
Like, share, or comment on this post on Mastodon.