Don’t think so since the big part of what make arch appealing was the easier approach to programming on the platform. NixOS had some problems particularly the llvm and clang compilers that complained a lot about missing standard libraries and headers. Until that is addressed, it won’t be the new arch. I plan on trying it again on next weekend.
NixOS had some problems particularly the llvm and clang compilers that complained a lot about missing standard libraries and headers.
I tried searching for LLVM related issues with NixOS, but came up empty. Could you help me find more info on this?
It was discussed on Matrix channel for NixOS a long while ago. I am re-attempting NixOS to see if they have addressed the QOL for Clang/LLVM development. That was some of the issues that come up when I was working with FFI LLVM-C with C# (it uses LLVM for accelerating LINQ operations.)
NixOS had some problems particularly the llvm and clang compilers that complained a lot about missing standard libraries and headers.
I think it’s likely that you’re trying to just add clang/llvm toolchains to your development shell like this:
pkgs.mkShell { packages = [ llvmPackages_16.clang ]; };
But you actually want something like:
(mkShell.override { inherit (llvmPackages_16) stdenv; }) { packages = [ ]; }
Neither actually, I think the issues I encounter happened before the llvm/clang packages get renamed to llvmPackages_16.* and one of the approach I did was adding the nix-shell initialization into .bashrc at the time to workaround my ignorance of NixOS.
There weren’t a lot of documentation to address my troubles with NixOS at the time, so yesterday evening, I reinstalled NixOS on a VM and started on reading up documentation to re-learn NixOS and trying to get it working. It still confusing however, but I’m taking my time to learn NixOS with a honest try.
I agree. But its also a headache at the beginning. A big one.
In what way was it a headache for you?
ok so i was setting up nixos, it was going good. there were a lot of docs to setup home manage and nix flakes and they are easy to do once you get some hang of it. But then i wanted to do a small project in c++ where i wanted to use a library libcpr. now you can not directly install that library and use it. (AFAIK). You have to create a flake in that project and then use it. Which BTW is the right way to do it. But also i just want to test run a 4 line code.
To achieve that you either have to do shell.nix or a devshell. Both of which have a documentation which is scattered. It took me 4 days and also help from nixos unofficial discord server to do it. In the end i had to make a nix devshell using a different repo which set it up for you. Then make a cmake file and then and only then i was able to use it. So it has a little bit of a learning curve in the beginning where everything sort of makes sense but nothing works. Again this was all for a 4 line code. In the end some one just suggested me to use docker instead. Which is a valid solution too. But i was already too deep into devshell so I didn’t backtrack.