!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

433 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.145 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
10 Dec 2025
@piegames:flausch.socialpiegamesStateful parsing is more annoying on backtracking, but the Nix language is almost LL1 and the two edge cases where it isn't can be handled manually15:39:52
@k900:0upti.meK900cumsky15:40:12
@k900:0upti.meK900Sorry15:40:14
@piegames:flausch.socialpiegamesChompsky15:41:12
@kloenk:kloenk.eukloenkI don't remember exactly. but IIRC it was titled as parser combinator which does some backtracking internally and tries to optimize everything as good as possible which just throwing compile time on it15:41:18
@helle:tacobelllabs.nethelle (just a stray cat girl)chumsky, what a name..... not a recipe for headaches there :P15:43:30
@kloenk:kloenk.eukloenk Oh there is also a library to bridge chumsky and logos for token based parsing. Apparently it’s utter shit and looks very AI generated 16:05:33
@rosssmyth:matrix.org@rosssmyth:matrix.orgI've written several parsers in Rust and TBH for best error handling recursive descent will always win. 16:26:03
@rosssmyth:matrix.org@rosssmyth:matrix.orgChumsky is my favorite library though16:26:13
@rosssmyth:matrix.org@rosssmyth:matrix.org* I've written several parsers in Rust and TBH for best error handling hand-rolled recursive descent will always win. 16:26:20
@rosssmyth:matrix.org@rosssmyth:matrix.orgPratt parsing is nice16:26:41
@rosssmyth:matrix.org@rosssmyth:matrix.org https://matklad.github.io/2020/04/13/simple-but-powerful-pratt-parsing.html 16:27:05
@rosssmyth:matrix.org@rosssmyth:matrix.orgWhy do you need a library for that? 16:27:42
@rosssmyth:matrix.org@rosssmyth:matrix.orgThey integrate just fine 16:28:05
@kloenk:kloenk.eukloenkFriend looked at the lib for it and was very unhappy. Not looked myself into it. Mostly happy with logos and hand rolled conversion into rowan16:28:48
@rosssmyth:matrix.org@rosssmyth:matrix.orgYeah my latest project has a lexer that is just a copy of Rustc's lexer with my tokens in it, ungrammar for the cst data structures, and then hand-rolled parser. 16:29:58
@rosssmyth:matrix.org@rosssmyth:matrix.orgLogos is cool though16:30:09
@rosssmyth:matrix.org@rosssmyth:matrix.orgUsed it before16:30:14
@rosssmyth:matrix.org@rosssmyth:matrix.orgThe thing about parsing is that perf doesn't really matter that much, it's such a small amount of time unless you really mess it up. Better to focus on making it have really good errors16:32:12
@piegames:flausch.socialpiegames
In reply to @rosssmyth:matrix.org
The thing about parsing is that perf doesn't really matter that much, it's such a small amount of time unless you really mess it up. Better to focus on making it have really good errors
narrator voice indeed it is really messed up
16:34:30
@piegames:flausch.socialpiegamesDue to unfortunate design decisions made (or rather, not made) back when I was in Kindergarten, parsing is on the critical path for evaluation time16:35:23
@rosssmyth:matrix.org@rosssmyth:matrix.orgamazing16:35:33
@rosssmyth:matrix.org@rosssmyth:matrix.orgIf you want the highest performance possible, larlpop will be hard to beat. But recovery is bad so it would be difficult to get good diagnostics out of it. 16:43:50

Show newer messages


Back to Room ListRoom Version: 10