!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

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

Load older messages


SenderMessageTime
10 Dec 2025
@piegames:flausch.socialpiegamesMain criteria are maximum performance and good error handling, with support for multiple errors but no full-blown error recovery14:36:53
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping
In reply to @goldstein:tty5.dev
hi! I’m trying to add a functional test for my patch, but a couple of those seem to be failing even on main, e.g. tarball (fails with line 37: TMPDIR: unbound variable) and bash-profile (fails with ../../scripts/nix-profile.sh.in: No such file or directory). do I need to do something special to set them up other than just build install test?..

That is sadly a known bug, you must have it set in your shell env, though dont remember to what value...

Something something functional2 will fix this

14:56:11
@goldstein:tty5.devgoldstein
In reply to @commentator2.0:elia.garden

That is sadly a known bug, you must have it set in your shell env, though dont remember to what value...

Something something functional2 will fix this

okay, thanks. it passes in CI, so ig I’ll just ignore it for now
14:56:49
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping
In reply to @goldstein:tty5.dev
okay, thanks. it passes in CI, so ig I’ll just ignore it for now
Yep, thats what i did... I think a just setup might fix it but don't remember tbh
14:58:25
@charles:computer.surgeryCharlesi like parser combinators, chumsky is neat but its cool features (zero copy parsing) are only on unstable releases and its development has been slow lately, winnow is also good (i haven't actually tried winnow, but i have tried nom, which is what it forked from; winnow mainly just adds some extra stuff like span tracking for errors)15:21:47
@charles:computer.surgeryCharlesthere's a somewhat related library called ariadne which can generate very pretty error messages for parsing errors15:23:04
@crop_tech:matrix.orgcrop
In reply to @charles:computer.surgery
i like parser combinators, chumsky is neat but its cool features (zero copy parsing) are only on unstable releases and its development has been slow lately, winnow is also good (i haven't actually tried winnow, but i have tried nom, which is what it forked from; winnow mainly just adds some extra stuff like span tracking for errors)
I heared positive things about winnow. But also didn't use it myself
15:25:14
@kloenk:kloenk.eukloenkalso do quite a bit of parser dev currently for a project :) decided against chumsky as I also wanted to have the possibility to add a lsp and formatter later. Currently using ariadne as well for error reporting. did consider looking at miette (miette has a magic flag to create screen reader friendly output)15:32:11
@piegames:flausch.socialpiegamesYeah I've heard that of miette, which is really nice15:32:43
@piegames:flausch.socialpiegamesThough on a first glance the ariadne API seems a lot simpler15:32:55
@charles:computer.surgeryCharleshmm what about chumsky precludes its use for LSPs and formatters?15:34:30
@kloenk:kloenk.eukloenkmy want for a lossless syntax tree. Chumsky apparently can somehow integrate into rowan, but found it so painful that I decided to use logos and do it with only logos15:35:09
@charles:computer.surgeryCharlesoh right yeah i forgot to mention rowan exists15:35:29
@kloenk:kloenk.eukloenkyeah that is true. and apparently they have a todo for screen reader output so maybe at some point15:35:52
@piegames:flausch.socialpiegamesFor lix performance will be key and everything else will require a secondary parser. Maybe even error handling will get a secondary parser15:35:59
@piegames:flausch.socialpiegames
In reply to @kloenk:kloenk.eu
my want for a lossless syntax tree. Chumsky apparently can somehow integrate into rowan, but found it so painful that I decided to use logos and do it with only logos
With lossless syntax tree you mean CST?
15:36:19
@kloenk:kloenk.eukloenkthen cumsky could be interesting. but apparently it's a pain with the type signatures. My (kconfig) project sadly is single threaded either way as the language is shit15:36:46
@kloenk:kloenk.eukloenkyeah I think that's the same. never exatly sure what is what15:37:00
@piegames:flausch.socialpiegamesOne thing I worry about nom is that statless parsing is simpler but may end up requiring more allocations/moves of data and thus hurt performance. Winnow seems to support stateful parsing. How does chumpksy work there?15:39:10
@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.orgrosssmythI've written several parsers in Rust and TBH for best error handling recursive descent will always win. 16:26:03
@rosssmyth:matrix.orgrosssmythChumsky is my favorite library though16:26:13
@rosssmyth:matrix.orgrosssmyth* 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.orgrosssmythPratt parsing is nice16:26:41

Show newer messages


Back to Room ListRoom Version: 10