| 15 Nov 2025 |
K900 | @aloisw has horror stories if you want | 18:31:34 |
aloisw | The "horror stories" I found are mostly about finding a library that actually works. | 18:34:24 |
aloisw | Yes, such a library exists (TRE with proper configuration), but never got around to rejecting its extensions. | 18:35:00 |
aloisw | Regex literals are also something that looks more related to URL literals than to regex implementations, and maybe it suffices to say that the former were thrown out some time ago. | 18:35:47 |
K900 | Actually now that I think about it | 18:36:14 |
K900 | What would a regex literal even do | 18:36:19 |
K900 | Like would it have function semantics? | 18:36:25 |
K900 | So /foo/ bar desugars to builtins.match "foo" bar? | 18:36:42 |
aloisw | no, it would just be another way of writing a string to confuse users | 18:36:49 |
Katie | Oh that's an interesting thought | 18:36:50 |
K900 | Cause I kinda hate that | 18:36:52 |
522 it/its ⛯ΘΔ | i assume url literals were at least checked for validity? | 18:37:15 |
K900 | Not really | 18:37:23 |
K900 | And "validity" for URLs is a very nebulous concept anyway | 18:37:32 |
aloisw | nix-repl> /foo/ bar
error: path has a trailing slash
at «string»:1:6:
1| /foo/ bar
| ^
surprisingly enough that syntax is free | 18:37:36 |
522 it/its ⛯ΘΔ | /foo[/ should fail to evaluate, at least | 18:37:40 |
K900 | Most things you would not expect to be valid URLs actually are | 18:37:41 |
Katie | ...this is roughly what I imagined, but you do make a good point 😅 | 18:37:44 |
aftix | you can write regex in '' to avoid double backslashing already? | 18:37:54 |
K900 | Yeah I think the question here really is, what kind of semantics do you want | 18:38:07 |
K900 | And also why | 18:38:09 |
aloisw | Well it's pretty much exactly what happened with URL literals, I didn't make it up from scratch. | 18:38:27 |
K900 | Because the concept of naked function shaped literals gives me an ick | 18:38:28 |
K900 | Not to mention you'd probably have to do cursed things with operator precedence to make it make any level of sense | 18:38:56 |
522 it/its ⛯ΘΔ | that and you might want to do things that aren't just matching, so it does need to be more powerful than just a function | 18:39:00 |
K900 | Well it would return whatever the fuck builtins.match returns already | 18:39:30 |
522 it/its ⛯ΘΔ | oh does match allow capture groups | 18:39:43 |
K900 | Yes | 18:40:06 |
aftix | in JS, the regex syntax creates a RegExp object, but in nix regexes are just strings anyways | 18:40:09 |
K900 | In an exceptionally cursed way | 18:40:09 |