I find 'homoiconic' unsatisfying. In a lisp, syntax is represented as a generic data type, but it can also mean 'has a built-in AST type'.
miniblog.
Related Posts
In LSP, a position is represented as a line number and a column offset (in Unicode code units): https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#position
This is pretty elegant. You'll get the correct line regardless of encoding bugs, and the editor already knows the line number so it's cheap to compute.
I've been playing with GitHub Copilot, and it feels unlike any other completion tool I've used. In a bunch of cases, it can write short snippets that are exactly what I want.
(I tested it on a toy interpreter I'm working on. I'm tweaking how statements are represented.)
LLVM IR rejects 1.3 as a floating-point constant, since it can't be represented exactly in binary. Smart way to avoid confusion.
