| 2 Aug 2022 |
profpatsch | but if <bool> then <exp> else <exp> would behave the same in both settings | 14:08:35 |
profpatsch | infinisil: yep, exactly | 14:08:56 |
Alyssa Ross | No? | 14:08:58 |
Alyssa Ross | the syntax is nix syntax | 14:09:12 |
Alyssa Ross | but i think these semantics are entirely unimportant | 14:09:36 |
profpatsch | I guess the problem is that it’s just not a very well defined term in the first place | 14:09:37 |
infinisil | Anyways, it doesn't really matter, we can't switch to lisp, and we can't use Nix's if at build time unless a DSL is used | 14:10:52 |
infinisil | * Anyways, it doesn't really matter, we can't switch to lisp, and we can't use Nix's if (and other syntax) at build time unless a DSL is used | 14:11:06 |
infinisil | Or Nix gets extended with this capability | 14:11:40 |
profpatsch | I’d compare it to e.g. opaleye, which is a Haskell DSL which has some nice static composition properties, and at the end it generates postgres SQL | 14:11:59 |
profpatsch | if you want people to have “the nix everywhere” experience, you’d need something like that | 14:12:19 |
profpatsch | Whether it generates bash, execline, or lisp at the end doesn’t really matter | 14:12:29 |
profpatsch | … Unless you want to debug it of course :) | 14:12:41 |
infinisil | I think we don't want that | 14:13:43 |
profpatsch | Something like chez scheme could e.g. drop you in a debugger that listens on a TCP port | 14:13:44 |
infinisil | Nix is not a general purpose language | 14:13:49 |
profpatsch | which you can access from outside the builder | 14:13:53 |
profpatsch | (provided nix allows it) | 14:14:03 |
profpatsch | I think there was a hack like that for stdenv bash somewhere | 14:14:24 |
profpatsch | (I’m thinking more people would write low level plumbing if the stdenv was composable and accessible, so dev experience is an important point to think about) | 14:15:20 |
j-k | if like guix there's a spin-off nix-like project that uses lua at all levels should it be called nyx or just nix? 😅
https://en.wikipedia.org/wiki/Nix_(moon) | 14:19:24 |
Wanja Hentze | I think the big momentum point for bash is not even "everyone has it in their supply chain already" but "everyone kinda half-knows it already" | 14:50:13 |
Wanja Hentze | from my personal experience, having a derivation with very little nix in it abut with a big ol' shell script in a string literal leads to something that people inexperienced with nix may feel they can work with at least a little bit | 14:52:04 |
Wanja Hentze | that's an awkard sentence, sorry | 14:52:15 |
Wanja Hentze | what I'm saying is: the bash parts of our derivations (where I work) are the ones that non-nix-nerds are actually confident touching | 14:52:50 |
Wanja Hentze | that being said, there is hardly a day where I don't curse bash to hell for its idiotic parts | 14:54:07 |
j-k | the idea with oil is for the most part it's the same as bash & the fancy oil features is what we would use under the hood in stdenv to replace/improve phases so at the top it'd probably look pretty similar | 14:54:32 |
Wanja Hentze | heck, even execline kinda looks shell-y enough where it might work | 14:55:10 |
Wanja Hentze | in my experience, people readily put up with having to write RUN build.sh foo bar | 14:55:39 |
Wanja Hentze | they will less readily put up with having to write (run "build.sh" ("foo" bar")) or something | 14:56:06 |