!9IQChSjwSHXPPWTa:lix.systems

Lix

1125 Members
Lix user channel. Feel free to discuss on-topic issues here and give each other help. For matrix.to links to the rest of the Lix channels, see: https://wiki.lix.systems/books/lix-organisation/page/matrix-rooms311 Servers

Load older messages


SenderMessageTime
20 Mar 2026
@aloisw:kde.orgaloiswThis was specifically rejected in favour of warning the user that it's just not supported any more.18:03:38
@emilazy:matrix.orgemily I'm not sure a string literal syntax that can't be used to form all of the valid strings in the language is a move in a less busted direction… 18:08:36
@emilazy:matrix.orgemily (or what the problem with ''\<space> is, if ''\' is okay) 18:09:16
@piegames:flausch.socialpiegames
In reply to @emilazy:matrix.org
(or what the problem with ''\<space> is, if ''\' is okay)
The latter was unfortunately necessary for escaping a ' at the end of a ''-string, because ''' is already defined to mean ''
18:43:17
@emilazy:matrix.orgemily I think it's necessary before the end in some cases too. (but ''\<space> is also necessary as well, clearly) 18:44:13
@piegames:flausch.socialpiegames It's not strictly necessary, because ${""} exists and is, arguably, no more hacky 20:03:45
@aloisw:kde.orgaloiswWith that you could do single quote at the end, too.20:55:10
@piegames:flausch.socialpiegamesheh21:12:14
@piegames:flausch.socialpiegamesI totally did not think of that21:12:20
@piegames:flausch.socialpiegameshmm21:12:24
@toonn:matrix.orgtoonn Is a literal still a literal if it requires interpolation though? 22:20:31
@piegames:flausch.socialpiegamesThat's a philosophical question22:56:07
@piegames:flausch.socialpiegamesBonus points for: semantically, strings with interpolations are parsed as a concatenation right now, but so are escapes. Yes this is bogus22:57:06
@piegames:flausch.socialpiegamesBonus bonus points: this is load-bearing and semantically observable in Flakes where literals are allowed but no concatenations, and changing the parser thus changes the language of flake files22:57:53
@blokyk:matrix.orgzoë (she/her) sorry to interrupt the debate, but is the fact that break doesn't force its argument (unlike e.g. trace and warn) really intended? it causes break calls to be opaque in some situations (e.g. isAttrs {} != isAttrs (break {}), and mapAttrs f (break {}) always errors out, complaining about about the argument being a thunk and not a set), which means that it can potentially break (ha) a lot of code that relies on those 23:07:45
@blokyk:matrix.orgzoë (she/her) i know the test suite is not exactly the best thing to go by, but adding forceValue(args[0]) to prim_break "only" breaks two tests, in the repl. from what i can tell, it seems to change where the error's 0th frame is located for some reason 23:11:42
@blokyk:matrix.orgzoë (she/her) * i know the test suite is not exactly the best thing to go by, but adding forceValue(args[0]) to prim_break "only" breaks two tests, in the repl. from what i can tell, it seems to change where the breakpoint/error's 0th frame is located for some reason 23:11:48
@blokyk:matrix.orgzoë (she/her) * sorry to interrupt the debate, but is the fact that break doesn't force its argument (unlike e.g. trace and warn) really intended? it causes break calls to be opaque in some situations (e.g. isAttrs {} != isAttrs (break {}), and mapAttrs f (break {}) always errors out, complaining about about the argument being a thunk and not a set), which means that it can potentially break (ha) a lot of code that relies on those
(and from experience it has bitten me every time i use break, to the point that i carry the declaration brk = x: builtins.seq (break x) x in every file i debug)
23:13:10
@blokyk:matrix.orgzoë (she/her) * sorry to interrupt the debate, but is the fact that break doesn't force its argument (unlike e.g. trace and warn) really intended? it causes break calls to be opaque in some situations (e.g. isAttrs {} != isAttrs (break {}), and mapAttrs f (break {}) always errors out, complaining about about the argument being a thunk and not a set), which means that it can potentially break (ha) a lot of code that relies on those. does that mean it'd be considered a breaking change to do that (is break even considered part of the language's stability contract?)
(and from experience it has bitten me every time i use break, to the point that i carry the declaration brk = x: builtins.seq (break x) x in every file i debug)
23:14:15
@blokyk:matrix.orgzoë (she/her)nvm, the only differences are actually just in the final stack that's shown -- in the current tests, there's a smaller backtrace (which isn't very informative imo), but with the patch it traces the whole call-stack from the root expression instead23:21:20
@blokyk:matrix.orgzoë (she/her)* nvm, in both failing tests, the only differences are actually just in the call stack that's displayed -- in the current tests, there's a smaller backtrace (which isn't very informative imo), but with the patch it traces the whole call-stack from the root expression instead23:24:23
@blokyk:matrix.orgzoë (she/her) * nvm, in both failing tests, the only differences are actually just in the call stack (either from :bt or after quitting) -- in the current tests, there's a smaller backtrace (which isn't very informative imo), but with the patch it traces the whole call-stack from the root expression instead 23:24:46
@piegames:flausch.socialpiegamesTIL about break 23:25:48
@piegames:flausch.socialpiegamesAnd oid23:25:51
@piegames:flausch.socialpiegames* And oof23:26:04
@piegames:flausch.socialpiegamesThis is such a layering violation23:26:14
@piegames:flausch.socialpiegameshttps://git.lix.systems/lix-project/lix/src/branch/main/lix/libexpr/primops.cc#L647 but the implementation does not look super shady to me (well, besides the normal amount of cursedness)23:28:23
@blokyk:matrix.orgzoë (she/her)yeah no i was surprised at how little code was actually there23:28:50
@blokyk:matrix.orgzoë (she/her)* yeah no i was surprised at how little code was actually there too23:28:55
@piegames:flausch.socialpiegamesIt just passes the value it gets through like a wrapper, which makes intuitive sense to me23:28:56

Show newer messages


Back to Room ListRoom Version: 10