| 29 Jul 2022 |
j-k | is chez -> compiled -> run, actually preferable to a script with JIT? | 17:13:55 |
profpatsch | j-k: the stdenv itself could be pre-compiled | 17:14:13 |
profpatsch | At least if the model of how chez works is similar to Haskell, you can load pre-compiled libraries. | 17:14:40 |
profpatsch | (I haven’t verified) | 17:14:43 |
j-k | so now we're discussing: super composaible string arrays & compiled but super fast which are pretty much as far opposite as you can get from eachother 😅
I guess the question is what problem do we actually want to solve | 17:16:07 |
Alyssa Ross | j-k: there's always string arrays | 17:17:26 |
Alyssa Ross | like, that's fundamental, from execve | 17:17:38 |
profpatsch | In my stuff I usually use execline to bind together some small ad-hoc rust utils that do one thing each. | 17:19:36 |
infinisil | j-k: Main problem to solve is bash | 17:19:46 |
profpatsch | But I compile it to an execlineb script, simply because it’s a little easier to debug those. Both approaches have the same semantics. | 17:20:07 |
profpatsch | I might do a little experiment with chez and see how it goes | 17:20:25 |
infinisil | Other than bash sucking and us wanting to replace it with something better, are there any other motivations? | 17:21:00 |
j-k | I thought the main problem with stdenv mkDerivation is how c & make centric it is | 17:21:32 |
profpatsch | I don’t see a big reason for replacing bash tbh, I’d rather start by designing a replacement for the horrible phases abstraction | 17:21:35 |
profpatsch | And the hook stuff | 17:21:46 |
profpatsch | Which is next to impossible to grok, so all you can do is cargo-cult | 17:22:24 |
Alyssa Ross | yeah, I don't think it's that important | 17:22:36 |
Alyssa Ross | I think replacing it with OSH would be a good step, just because it'd be so easy | 17:22:51 |
Alyssa Ross | And be an evolutionary improvement. | 17:22:57 |
infinisil | I think bash is holding us back from doing improvements to phases and co. | 17:23:02 |
profpatsch | although both might be coupled, because the phases thing is a natural extension of using lots of script interpolation | 17:23:03 |
profpatsch | infinisil: weak agree | 17:23:15 |
profpatsch | imo the first mistake was not using the fact that nix drvs are nix lists of argv | 17:23:48 |
profpatsch | but, like, I don’t see how anything but incremental improvements can work, because the amount of code is so big and there’s next to no static analysis possible. | 17:25:22 |
profpatsch | So OSH sounds like a good step, iff its performance is better or the same | 17:25:43 |
profpatsch | I don’t have a strong will/desire to work on any of this tho (besides my own tiny experiments), so I will stop monologuing now :P | 17:26:48 |
infinisil | Is the idea to use OSH-specific features to implement better phases and co. then? | 17:26:59 |
Alyssa Ross | no, it's orthogonal | 17:30:07 |
Alyssa Ross | the idea is to just have a better shell | 17:30:14 |
j-k | would anything need to change with escapeShellArg need modification for oil? | 17:41:25 |