| 20 Jan 2025 |
emily | I feel like we ought to just use hashes for salts. | 19:32:22 |
emily | same platform different salt shouldn't be possible. | 19:32:35 |
Randy Eckenrode | In reply to @rosscomputerguy:matrix.org I'm not sure if GCC can be compiled with Clang, I know Clang can be compiled with GCC. GNU things tend to not like Clang or LLVM stuff in certain cases. Darwin builds GCC with Clang. | 19:33:14 |
Randy Eckenrode | In reply to @emilazy:matrix.org same platform different salt shouldn't be possible. Static builds. Darwin needs a static-aware salt because the build SDK is dynamic while the host SDK is static. | 19:34:27 |
Tristan Ross | In reply to @reckenrode:matrix.org Darwin builds GCC with Clang. Oh, I wasn't aware of that. I just know from experience with pkgsLLVM there's quite a few cases of using the gccStdenv | 19:34:59 |
emily | yeah. if GCC couldn't build Clang we'd have no Clang on Linux. if Clang couldn't build GCC we'd have no GCC on Darwin. | 19:39:28 |
emily | since those are what we bootstrap from in practice | 19:39:37 |
emily | In reply to @reckenrode:matrix.org Static builds. Darwin needs a static-aware salt because the build SDK is dynamic while the host SDK is static. yeah. which is why it should just be a hash of the whole thing | 19:40:06 |
Tristan Ross | After today's discussion, I'm really unsure the direction to go for the lib.systems PR. I can add the backwards compatibility bit but regarding toolchain, I just can't think of any alternatives. It's kinda needed so the other attributes default, it also makes using pkgsLLVM without specifying pkgs to NixOS easier. | 20:33:36 |
emily | we can just require all the attributes to be set. defining platforms is rare and it's good to be explicit. pkgsLLVM can do the same, what problems do you envision there? | 20:50:18 |
Tristan Ross | Maybe, I just think it's more convenient to have them inferred. | 20:52:12 |
Tristan Ross | And we'll need to find cases where to replace *Platform.toolchain == with the appropriate case. | 20:54:22 |
Tristan Ross | pkgs/development/compilers/llvm/common/compiler-rt/default.nix kinda needs it. | 20:55:17 |
emily | it's more convenient in a very small handful of places but introduces a footgun everywhere | 20:55:19 |