Kylee Tilley

@testingrequired.com

Changing hearts & minds about dev & testing. ❤️🧠🧪 Sometimes I talk about language stuff, compilers, type systems, gamedev & chess I write all my own posts. Expct typos! Some stuff I work on: https://github.com/kyleect Rarely updated: testingrequired.com

For every feature you dislike or even hate about a programming language there is (usually) a solid reason why it is the way it is. I'm learning that as I have to make choices on syntax and behavior.

I finally got my version bump script sorted so lots in this update. Escape characters, block expressions, function body expressions, implicit function returns, lambas, an AST, new multi pass compiler, replacing classes with structs + impl, immutable let bindings. Oh and I renamed the language.

Release v0.3.0 · kirbylang/kirbylang

What's Changed Implement a multipass compiler by @kyleect in #4 Replace Classes with Structs + Impl by @kyleect in #5 Rename from clox to kirby by @kyleect in #6 Full Changelog: v0.2.0...v0.3.0

github.com

Next steps for the language are types, modules, generics, traits, pattern matching. I've implemented (in Rust, not C) some type systems before but struggled when getting to generic support. It mostly worked. I've also never tackled modules or traits but I have some ideas of what those look like.

I started working on changing class syntax to struct + impl blocks last night and one change was passing `self` as the first argument to instance methods e.g. Rust, Python My goal is uniform function call syntax BUT just removing explicit `this` from method scopes cleaned up a lot of code 😅

After a month of hard work the conversion from single pass to a multi pass compiler is almost done Before: scanner & compiler After: scanner & lexer -> parser -> compiler Tooling will be easier to implement. You can generate tokens and an AST as actual values. They're not ephemeral anymore!

Screenshot of a draft PR in github titled Implement a multipass compiler

+3,484 -1,147

Introduce `lex` function which produces `TokenStream`

Introduce `parse` function which consumes `TokenStream` and produces `AstNode**`

Update `compile` function to consume `AstNode**` to produce bytecode

Forward referencing functions (use before declaring)

So my new job provides me what seems like unlimited Claude credits. I honestly hadn't used it before this job. I've played around at home running a small local LLM for line completions but even that hasn't been running for months. I also used Junie at my last job but I hated it. Awful results.

We always get a lot of "I'm looking for a team!" messages from people joining Kenney Jam. But in this jam all you need to do is come up with an idea, and program it. The visuals are already done for you, so it's perfect for joining solo! itch.io/jam/kenney-j...

Kenney Jam 2026

A game jam from 2026-07-17 to 2026-08-02 hosted by Kenney & Kay Lousberg. Create a game using only game assets made by Kenney or KayKit You can use, edit, and remix them however you like (see our rule...

itch.io

I am exasperated with people accusing programmers of "gatekeeping" programming. We were practically dragging people through the gate. Do you know why a mindless LLM can tell you so much great programming information? It's because we've been sharing that information for free online for decades.