| 11 Apr 2026 |
magic_rb | Even if you end up having to setup separate pidnss or netnss it shouldnt be that slow | 10:50:26 |
atemu12 | You also have to mount store paths and I'm sure there are lots of relatively expensive steps necessary to ensure hermecity | 10:55:33 |
jaen | I mean sure, but not with Nix as-is. I would assume those Bazel persistent workers are more less what you're talking about | 10:55:49 |
atemu12 | As I said, I tested this with a real nix-daemon a while ago and it did not scale | 10:56:12 |
atemu12 | I'm sure there are things you can do to make sandbox setups more efficient but not by that large of a perf gap | 10:57:02 |
atemu12 | But feel free to reproduce the experiment | 10:57:24 |
jaen | I guess we'll see. Even if it's slower, then having to build less on cache just would be a win | 10:57:30 |
jaen | * | 10:57:40 |
atemu12 | IIRC it was slow enough where even that was not a given | 10:58:19 |
atemu12 | I could see whether I still have the snippet to generate the stub drvs | 10:58:47 |
magic_rb | Right exactly what i meant, as jaen said what im describing are probably bazel persistent workers. If we could skip the store path setup because we do it once for all of the robotnix derivations, that would make things faster | 10:58:49 |
atemu12 | I also think that module-level granularity is honestly good enough | 10:59:46 |
jaen | Would appreciate, I do have something already, but comparing notes would be helpful, maybe I missed something obvious when I was paying it only part of my mind | 10:59:54 |
atemu12 | Most modules are stuff like basic OSS libs that do not change at all | 11:00:27 |
jaen | For sure, granularity can just be one of the tuning knobs to use to find what is the most efficient | 11:01:45 |
atemu12 | I don't know how many inter-dependencies there are between android-specific components. Somethin, in me makes me think it might not even be that much. | 11:02:13 |
magic_rb | I do want to point out, how robotnix is the most accessible way to build android tbh. Like, building it manually is something ive never managed, not that i tried that much | 11:04:39 |
atemu12 | {
total ? 200000,
random ? "foo",
sleep ? 0,
pkgs ? import <nixpkgs> { },
lib ? pkgs.lib,
}:
let
drvs = builtins.genList (
n: pkgs.runCommand "${random}-${toString n}" { } "sleep ${toString sleep} ; echo ${toString n} > $out"
) total;
list = lib.concatLines drvs;
in
pkgs.writeText "${toString total}" list
| 11:07:18 |
atemu12 | {
total ? 200000,
random ? "foo",
sleep ? 0,
pkgs ? import <nixpkgs> { },
lib ? pkgs.lib,
}:
let
drvs = builtins.genList (
n: pkgs.runCommand "${random}-${toString n}" { } "sleep ${toString sleep} ; echo ${toString n} > $out"
) total;
list = lib.concatLines drvs;
in
pkgs.writeText "${toString total}" list
| 11:07:25 |
atemu12 | Currently running with 10000 and it's still going.. | 11:07:50 |
atemu12 | Yeah, so running sleep 10000 times took 8min and I doubt that scales <linearly. At that point, it'd be faster to just build; especially given that real compiler invocations take quite a bit longer than sleep 0 | 11:58:30 |
| ortolanbunting3002 joined the room. | 12:41:51 |
| 24 May 2021 |
| @grahamc:nixos.org set the history visibility to "world_readable". | 16:44:23 |
| @grahamc:nixos.org changed the room name to "" from "". | 16:44:23 |
| Server Stats Discoverer (traveler bot) joined the room. | 16:44:33 |
| @grahamc:nixos.org invited danielrf. | 16:44:48 |
| @grahamc:nixos.orgchanged room power levels. | 16:44:52 |
| hexa joined the room. | 16:45:03 |
| ajs124 joined the room. | 16:51:31 |
| andi- joined the room. | 16:55:26 |