Jimmy Miller

I build compilers, editors, and tools mostly to learn things. I write about programming languages, the texture of working in old codebases, and the feeling of computing.

read the posts
Projects
beagle
featured

beagle

Dynamic, mostly-functional, compiles straight to machine code. (pre-alpha)

Beagle is my programming language I've been working on for a while now. It is slowly approaching a stage I'm proud of. The code snippet on the right might seem unremarkable, but those socket/read calls don't block. Concurrency in this language is fully controllable, yet there is no function coloring.

open project
beagleexamples/echo_server.bg
1use beagle.socket as socket
2
3fn main() {
4 let listener = socket/listen("0.0.0.0", 8080)
5 println("Echo server listening on port 8080")
6
7 socket/on-connection(listener, fn(conn) {
8 loop {
9 let data = socket/read(conn, 4096)
10 if data == "" || data == null {
11 socket/close(conn)
12 break(null)
13 } else {
14 socket/write(conn, data)
15 }
16 }
17 })
18}
podcast

The feeling
of computing.

A podcast with an alternative take on computing. We try to explore things around the edge of computing, looking back in history and into the future of what computing has and could be.

listen at feelingof.com
2024

Advent of Papers

I did an experiment where I tried to read a paper every day of advent and write about it. Some days are more involved than others, but I had a great time doing it.

Papers

A collection of papers I've gathered over time. Many I've read but not all. Figured it was worth sharing. Plan on organizing more over time.

Browse the archive

I wrote about how this archive came together.