Darin Morrison is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

Darin Morrison @freebroccolo@mastodon.social

Something I realized working on the OCaml language server and more recently with this continuous checker: concrete syntax is actually pretty important.

Conventional wisdom is that it doesn't matter much; the abstract syntax is all you care about.

This isn't the case if your goal is to provide interactive analysis as early as possible while editing.

You can't provide ideal feedback within ambiguous parsing contexts so you need to design the grammar to minimize use of lookahead to disambiguate.

Finally starting to make good progress on sketching out the incremental or continuous type-checker.

Maybe "continuous" is better terminology as it's more about providing typing information continuously in response to syntax streams than the ability to pause/resume.

The way I'm looking at doing this now is to have a kind of interleaved parsing/checking stack machine that consumes the lexer stream and produces the typing state (and a refined syntax tree for the compilation units eventually too).

Something I really want to do with 1caml is have both incremental parsing and type-checking built into the implementation from the start since this should make it easier to build language-server-like tooling with interactive features.

I think I've got the incremental parsing sorted out thanks to menhir.

The type-checking is less straight forward but it looks like you basically end up having to reformulate the rules to operate on something like a spine calculus version of the language syntax.

I've started working on a 1ML implementation targeting the runtime via malfunction.

Still very early but the project is up at github.com/1caml/1caml

So against my better judgement I decided to update the bios on my main system earlier today because of weird stability issues I was having and since the changelog literally says "improve system stability" (I know, right?)

Four hours and several reflashes later, I finally get the undoubtedly much more stable system to post again.

So far no more weird issues after that but they should've added an "(if you can get it to boot…lol)" to the changelog.

Welp. Pretty much a computers suck kind of day…

Hi, I'm Darin.

In a previous life I spent way too much time studying (I like ) and later (I like and all the newer weirder shit Girard writes about).

These days I spend way too much time thinking about , especially .

I do a little bit of programming, mostly in , and .

I'm currently trying to learn enough about hardware dev (, , mostly) to make my own synth modules.