!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

974 Members
For people hacking on the Nix package manager itself206 Servers

Load older messages


SenderMessageTime
10 Aug 2021
@Las:matrix.orgLasWhat is the point of the GitHub fetcher? I tested the speed difference compared to the Git fetcher and it wasn't so different.12:34:16
@sternenseemann:systemli.orgsterniI think it performs much worse for big repos12:35:20
@Las:matrix.orgLas
In reply to @sternenseemann:systemli.org
I think it performs much worse for big repos
I tested it on Nixpkgs lol
12:39:23
@Las:matrix.orgLasThough perhaps it was because I had already fetched an earlier commit?12:39:43
@niksnut:matrix.orgniksnut The github fetcher is way faster than git. 12:42:25
@niksnut:matrix.orgniksnutOften it's even faster in cases where git can do an incremental fetch.12:43:18
@sternenseemann:systemli.orgsterni
In reply to @pamplemouss_:matrix.org

I am trying to compile nix a non nixos (ubuntu) using clang.
I am using nix develop .#nix-clang11Stdenv (thanks to https://github.com/NixOS/nix/pull/4996) , but I get plenty of errors when linking src/libutil/libnixutil.so

/nix/store/qvc6cz5d43jhhm4a3r48xkrc82xh1s95-binutils-2.35.1/bin/ld: src/libutil/libnixutil.so.p/archive.cc.o: in function `nix::dump(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nix::Sink&, std::function<bool (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&)':                                   
/src/nix/build/../src/libutil/archive.cc:73: undefined reference to `std::allocator<char>::allocator()'

[... and many more…]

Feels like the flake.nix might be missing stdlib, but I tried adding libcxx without success, and libstdcxx5 fails to build.

have you tried llvmPackages_11.libcxxStdenv?
12:44:42
@Las:matrix.orgLas
In reply to @niksnut:matrix.org
The github fetcher is way faster than git.
Do you think there are any ways of making the Git fetcher faster?
12:45:15
@sternenseemann:systemli.orgsterni also these usually use binutils' ld.bfd which sometimes causes weird problems linking C++, so pkgsLLVM.stdenv may be worth a try which uses lld 12:46:35
@sternenseemann:systemli.orgsterni * pamplemousse: also these usually use binutils' ld.bfd which sometimes causes weird problems linking C++, so pkgsLLVM.stdenv may be worth a try which uses lld 12:46:45
@niksnut:matrix.orgniksnutQuick test: fetching github:NixOS/nixpkgs => 16.5s, git+https://github.com/NixOS/nixpkgs => 131.5s, doing the latter again => 11.3s12:48:54
@niksnut:matrix.orgniksnutFetching git+https://github.com/NixOS/nixpkgs?shallow=1 => 85.2s12:52:31
@niksnut:matrix.orgniksnutThat's probably the best we can do with git.12:52:54
@Las:matrix.orgLasHmm, thanks13:00:40
@Las:matrix.orgLasThe issue is you can't check commit signatures when using the github fetcher13:01:01
@Las:matrix.orgLas
In reply to @niksnut:matrix.org
Fetching git+https://github.com/NixOS/nixpkgs?shallow=1 => 85.2s
I tried this on my own machine, and it did indeed take ages (so long I interrupted it), but time git clone git://github.com/NixOS/nixpkgs --depth 1 took 10.31 seconds according to time.
13:31:10
@Las:matrix.orgLasAre you sure something isn't broken in the Git integration in Nix? This is an extreme difference.13:31:53
@niksnut:matrix.orgniksnut
In reply to @Las:matrix.org
I tried this on my own machine, and it did indeed take ages (so long I interrupted it), but time git clone git://github.com/NixOS/nixpkgs --depth 1 took 10.31 seconds according to time.
Yes, that's what ?shallow= does.
13:32:06
@niksnut:matrix.orgniksnuthm13:32:18
@Las:matrix.orgLasI wonder why it takes so long then13:32:20
@balsoft:balsoft.rubalsoftBTW I can confirm that Nix' fetcher is way slower than fetching manually13:32:38
@niksnut:matrix.orgniksnutNix just calls git, it doesn't fetch itself13:33:29
@niksnut:matrix.orgniksnutLooks like we're not passing --depth 113:34:39
@Las:matrix.orgLasisn't it not shallow then?13:34:48
@niksnut:matrix.orgniksnutyeah13:36:14
@pamplemouss_:matrix.orgpamplemousse
In reply to @sternenseemann:systemli.org
pamplemousse: also these usually use binutils' ld.bfd which sometimes causes weird problems linking C++, so pkgsLLVM.stdenv may be worth a try which uses lld
I think https://github.com/NixOS/nix/pull/4996/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0L600-R631 makes nix develop automatically pick the stdenv corresponding to what I need (I do nix develop .#nix-clang11Stdenv.
16:10:34
@pamplemouss_:matrix.orgpamplemousse sterni (he/him): and I get an /nix/store/qvc6cz5d43jhhm4a3r48xkrc82xh1s95-binutils-2.35.1/bin/ld: cannot find -lc++abi when trying to use llvmPackages_11.libcxx 17:50:04
@sternenseemann:systemli.orgsternilibcxx or libcxxStdenv?17:50:41
@pamplemouss_:matrix.orgpamplemousse libcxx
got an /nix/store/qvc6cz5d43jhhm4a3r48xkrc82xh1s95-binutils-2.35.1/bin/ld: cannot find -lc++ with libcxxStdenv
(both from llvmPackages_11)
17:59:58
@sternenseemann:systemli.orgsterni what were you doing exactly? libcxxabi is in extraPackages of libcxxClang, so it should not fail in this way 18:01:23

Show newer messages


Back to Room ListRoom Version: 6