I've always written dumb lisp parsers in the past: a list is just "(" EXPR* ")". Checking came later.
I'm trying something different in my current project, pushing special forms into the parsing logic.
This means that e.g. (if) is a parse error. It has a different vibe.
miniblog.
Related Posts
I love how JS makes project-specific imports unambiguous: `import "./project-dir/foo"` versus `import "installed-pkg/foo".
I've been doing the same in my PL. I've just realised that `import "/home/wilfred/project/foo"` now works too. It's weird but probably harmless?
Semver has a really odd relationship with software maturity. I'd take a v0.21 project over a v1.0 project.
LLMs are surprisingly good at reducing crash samples.
I've had success with "this project crashes my static analysis tool with the following command, try to shrink the repro whilst preserving the crash. Commit each smaller version to a branch".