!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

236 Members
71 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
24 May 2025
@reckenrode:matrix.orgRandy EckenrodeOnly 1%?17:59:21
@rosscomputerguy:matrix.orgTristan Ross Would be hard to say if that's truly the performance impact 18:00:28
@rosscomputerguy:matrix.orgTristan RossBest thing is to compare the variants stdenv with the cross stdenv that matches along and see how the evaluation compares.18:00:58
25 May 2025
@rosscomputerguy:matrix.orgTristan Ross So I have a comparison between pkgsMusl.stdenv and crossStdenv.configs.aarch64-unknown-linux-musl 01:37:56
@rosscomputerguy:matrix.orgTristan Ross

crossStdenv.configs.aarch64-unknown-linux-musl

{
  "cpuTime": 0.43762001395225525,
  "envs": {
    "bytes": 5428488,
    "elements": 369695,
    "number": 308866
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 79396896
  },
  "list": {
    "bytes": 717400,
    "concats": 4609,
    "elements": 89675
  },
  "nrAvoided": 294217,
  "nrExprs": 135112,
  "nrFunctionCalls": 295668,
  "nrLookups": 152167,
  "nrOpUpdateValuesCopied": 2227726,
  "nrOpUpdates": 12343,
  "nrPrimOpCalls": 114176,
  "nrThunks": 263414,
  "sets": {
    "bytes": 42449136,
    "elements": 2626304,
    "number": 26767
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 321885,
    "number": 32150
  },
  "time": {
    "cpu": 0.43762001395225525,
    "gc": 0.043000000000000003,
    "gcFraction": 0.09825876017793679
  },
  "values": {
    "bytes": 20363664,
    "number": 848486
  }
}

pkgsMusl.stdenv

{
  "cpuTime": 0.5026220083236694,
  "envs": {
    "bytes": 4656672,
    "elements": 324861,
    "number": 257223
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 125050816
  },
  "list": {
    "bytes": 601264,
    "concats": 4389,
    "elements": 75158
  },
  "nrAvoided": 262676,
  "nrExprs": 131023,
  "nrFunctionCalls": 242926,
  "nrLookups": 125858,
  "nrOpUpdateValuesCopied": 3930750,
  "nrOpUpdates": 13551,
  "nrPrimOpCalls": 104327,
  "nrThunks": 322854,
  "sets": {
    "bytes": 73163712,
    "elements": 4542912,
    "number": 29820
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 320546,
    "number": 32025
  },
  "time": {
    "cpu": 0.5026220083236694,
    "gc": 0.07200000000000001,
    "gcFraction": 0.14324880090335151
  },
  "values": {
    "bytes": 32448624,
    "number": 1352026
  }
}
01:38:49
@emilazy:matrix.orgemilylooks still expensive enough that we'd want to avoid it wherever possible?02:29:09
@emilazy:matrix.orgemilyit's not clear to me if Firefox could just use an unwrapped compiler though02:29:22
@rosscomputerguy:matrix.orgTristan Ross

crossStdenv.predicated.useLLVM.configs.aarch64-unknown-linux-gnu

{
  "cpuTime": 0.8687459826469421,
  "envs": {
    "bytes": 12327288,
    "elements": 839812,
    "number": 701099
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 124386272
  },
  "list": {
    "bytes": 1597240,
    "concats": 14954,
    "elements": 199655
  },
  "nrAvoided": 651102,
  "nrExprs": 190283,
  "nrFunctionCalls": 673020,
  "nrLookups": 340854,
  "nrOpUpdateValuesCopied": 2985262,
  "nrOpUpdates": 30307,
  "nrPrimOpCalls": 244291,
  "nrThunks": 553576,
  "sets": {
    "bytes": 58833760,
    "elements": 3619956,
    "number": 57154
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 445341,
    "number": 42001
  },
  "time": {
    "cpu": 0.8687459826469421,
    "gc": 0.061,
    "gcFraction": 0.07021615203806976
  },
  "values": {
    "bytes": 31742712,
    "number": 1322613
  }
}

pkgsLLVM.stdenv

{
  "cpuTime": 1.1511069536209106,
  "envs": {
    "bytes": 10916216,
    "elements": 771025,
    "number": 593502
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 258382960
  },
  "list": {
    "bytes": 3100896,
    "concats": 16000,
    "elements": 387612
  },
  "nrAvoided": 624277,
  "nrExprs": 189716,
  "nrFunctionCalls": 558370,
  "nrLookups": 220405,
  "nrOpUpdateValuesCopied": 7006441,
  "nrOpUpdates": 39748,
  "nrPrimOpCalls": 191955,
  "nrThunks": 873127,
  "sets": {
    "bytes": 148522576,
    "elements": 9080341,
    "number": 202320
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 444992,
    "number": 41976
  },
  "time": {
    "cpu": 1.1511069536209106,
    "gc": 0.202,
    "gcFraction": 0.17548325927889744
  },
  "values": {
    "bytes": 66434280,
    "number": 2768095
  }
}
02:33:13
@rosscomputerguy:matrix.orgTristan RossYeah, ideally no cross when possible.02:33:26
@rosscomputerguy:matrix.orgTristan Ross From what I was able to gleam when trying to test the wasm cross stdenv, it looks like it's only necessary for sandboxing things in a way? We could provide an option but idk if it's worth it. 02:34:48
@rosscomputerguy:matrix.orgTristan Ross

crossStdenv.predicated.useLLVM.configs.wasm32-unknown-wasi

{
  "cpuTime": 0.8086940050125122,
  "envs": {
    "bytes": 9276688,
    "elements": 643991,
    "number": 515595
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 113596128
  },
  "list": {
    "bytes": 1192696,
    "concats": 14033,
    "elements": 149087
  },
  "nrAvoided": 507605,
  "nrExprs": 191950,
  "nrFunctionCalls": 489091,
  "nrLookups": 246990,
  "nrOpUpdateValuesCopied": 2948940,
  "nrOpUpdates": 28801,
  "nrPrimOpCalls": 197474,
  "nrThunks": 490984,
  "sets": {
    "bytes": 57271296,
    "elements": 3526449,
    "number": 53007
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 446123,
    "number": 42055
  },
  "time": {
    "cpu": 0.8086940050125122,
    "gc": 0.101,
    "gcFraction": 0.12489272750134622
  },
  "values": {
    "bytes": 29123448,
    "number": 1213477
  }
}

pkgsCross.wasi32.stdenv

{
  "cpuTime": 1.1445599794387817,
  "envs": {
    "bytes": 11093168,
    "elements": 793274,
    "number": 593372
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 257411904
  },
  "list": {
    "bytes": 3087112,
    "concats": 17218,
    "elements": 385889
  },
  "nrAvoided": 634315,
  "nrExprs": 191436,
  "nrFunctionCalls": 554713,
  "nrLookups": 216783,
  "nrOpUpdateValuesCopied": 6831370,
  "nrOpUpdates": 46625,
  "nrPrimOpCalls": 194292,
  "nrThunks": 908524,
  "sets": {
    "bytes": 146253904,
    "elements": 8929195,
    "number": 211674
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 446471,
    "number": 42080
  },
  "time": {
    "cpu": 1.1445599794387817,
    "gc": 0.20500000000000002,
    "gcFraction": 0.17910813210550902
  },
  "values": {
    "bytes": 67181760,
    "number": 2799240
  }
}
02:36:27
@emilazy:matrix.orgemilyRLBox is important, I mean what's the reason it can't use an unwrappd multi-target Clang?02:50:40
@emilazy:matrix.orgemily it uses libcxx for WASM, I guess? but does it use anything else from pkgsCross? 02:50:52
@rosscomputerguy:matrix.orgTristan RossYeah, idk02:51:04
@rosscomputerguy:matrix.orgTristan RossI think it needs wasilibc02:52:01
@rosscomputerguy:matrix.orgTristan RossOk yeah, it needs a wasm toolchain. It looks like upstream uses the wasi-sdk.02:54:37
@reckenrode:matrix.orgRandy Eckenrode How does crossStdenv handle cross-compiled dependencies? DXVK needs SPIRV and Vulkan headers and windows.pthreads. 13:39:07
@reckenrode:matrix.orgRandy Eckenrode Also, how does it handle NIX_ vars? Does this even work with Darwin since Darwin needs an SDK? 13:44:42
@rosscomputerguy:matrix.orgTristan Ross
In reply to @reckenrode:matrix.org
Also, how does it handle NIX_ vars? Does this even work with Darwin since Darwin needs an SDK?
Suffix salt should work with the env vars. Idk about Darwin but it could be made to work.
14:28:05
@rosscomputerguy:matrix.orgTristan Ross
In reply to @reckenrode:matrix.org
How does crossStdenv handle cross-compiled dependencies? DXVK needs SPIRV and Vulkan headers and windows.pthreads.
You'll have to override the stdenv for the dependencies.
14:28:23

Show newer messages


Back to Room ListRoom Version: 9