sphalerite changed the topic of #nixos-dev to: NixOS Development (#nixos for questions) | NixOS 19.03 released! https://discourse.nixos.org/t/nixos-19-03-release/2652 | https://hydra.nixos.org/jobset/nixos/trunk-combined https://channels.nix.gsc.io/graph.html https://r13y.com | 19.03 RMs: samueldr,sphalerite | https://logs.nix.samueldr.com/nixos-dev
drakonis has quit [Ping timeout: 240 seconds]
drakonis has joined #nixos-dev
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 264 seconds]
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 264 seconds]
apaul1729 has quit [Remote host closed the connection]
drakonis1 has joined #nixos-dev
pxc has quit [Ping timeout: 268 seconds]
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 240 seconds]
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 240 seconds]
ajs124 has left #nixos-dev [#nixos-dev]
pxc has joined #nixos-dev
pxc has quit [Ping timeout: 252 seconds]
drakonis1 has quit [Quit: WeeChat 2.3]
worldofpeace has joined #nixos-dev
worldofpeace has quit [Remote host closed the connection]
<sphalerite> gchristensen++
<{^_^}> gchristensen's karma got increased to 102
<sphalerite> which eval time?
orivej has quit [Ping timeout: 252 seconds]
colemickens has quit [Read error: Connection reset by peer]
chrisaw has quit [Read error: Connection reset by peer]
alunduil has quit [Read error: Connection reset by peer]
colemickens has joined #nixos-dev
chrisaw has joined #nixos-dev
Haskellfant has joined #nixos-dev
alunduil has joined #nixos-dev
ajs124 has joined #nixos-dev
cocreature has quit [Read error: Connection reset by peer]
Haskellfant is now known as cocreature
ajs124 has left #nixos-dev [#nixos-dev]
andi- has quit [Ping timeout: 258 seconds]
andi- has joined #nixos-dev
andi- has quit [Excess Flood]
andi- has joined #nixos-dev
andi- has quit [Ping timeout: 250 seconds]
andi- has joined #nixos-dev
orivej has joined #nixos-dev
andi- has quit [Ping timeout: 252 seconds]
andi- has joined #nixos-dev
andi- has quit [Ping timeout: 264 seconds]
peti has joined #nixos-dev
<peti> niksnut: https://hydra.nixos.org/machines shows a couple of ghc builds that are stuck for up to 24h "receiving outputs". I cancelled them through the web interface, but apparently the actual build processes don't abort. Can you help, maybe?
andi- has joined #nixos-dev
<niksnut> they're probably waiting for memory
<niksnut> to copy the output from the remote machine
<peti> niksnut: Well, if there is a way to rescure those builds, then it would be great. But it's fine to just abort them, too, because the latest versions had to be re-built from scratch anyway, so we probably never need those binaries again.
<niksnut> I don't think they *can* be aborted in the "receiving outputs" stage (except by restarting hydra-queue-runner)
<niksnut> this is happening because we had to reduce the NAR buffer size to avoid OOMs in hydra-evaluated btw
<peti> Hmm. I see.
<peti> ghc to too freaking big.
<peti> We could aggressively split it into multiple outputs. I suppose that would help. But it's difficult to pull off.
<niksnut> I'm thinking we could enable some swap for hydra-queue-runner (but not for hydra-evaluator to avoid trashing)
Jackneill has quit [Remote host closed the connection]
Jackneill has joined #nixos-dev
init_6 has joined #nixos-dev
jtojnar has joined #nixos-dev
ajs124 has joined #nixos-dev
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #nixos-dev
orivej has quit [Ping timeout: 246 seconds]
fadenb has quit [Remote host closed the connection]
fadenb has joined #nixos-dev
orivej has joined #nixos-dev
ivan has quit [Remote host closed the connection]
ivan has joined #nixos-dev
ajs124 has left #nixos-dev [#nixos-dev]
ajs124 has joined #nixos-dev
init_6 has quit []
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 250 seconds]
drakonis has joined #nixos-dev
drakonis1 has joined #nixos-dev
drakonis_ has quit [Ping timeout: 250 seconds]
drakonis has quit [Ping timeout: 240 seconds]
drakonis has joined #nixos-dev
drakonis1 has quit [Ping timeout: 252 seconds]
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 264 seconds]
asymmetric has joined #nixos-dev
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 252 seconds]
<infinisil> Do we still backport to 18.09?
<Taneb> Until end of April, I think?
<infinisil> Alright
<infinisil> Ah the thing I wanted to backport isn't needed on 18.09 anyways
pxc has joined #nixos-dev
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 252 seconds]
drakonis has joined #nixos-dev
asymmetric has quit [Ping timeout: 264 seconds]
drakonis_ has quit [Ping timeout: 264 seconds]
drakonis has quit [Ping timeout: 250 seconds]
MichaelRaskin has joined #nixos-dev
<gchristensen> looks like our lib's lists.unique could really use ... uh ... optimising
ivan has quit [Quit: lp0 on fire]
harrow` has quit [Quit: Leaving]
harrow has joined #nixos-dev
<ekleog> optimizing it sounds pretty hard, though
<gchristensen> yeah
<ekleog> we can likely get it to O(n log n) with dichotomy, I guess
ivan has joined #nixos-dev
* ekleog trying
<ekleog> hmm wait actually not in the way I was thinking of
<gchristensen> it may help our evaluation time, given it recurses like 800 times: http://gsc.io/graph.unstable.svg
<ekleog> hmm wait just doing `[x] ++ unique (remove x list)` might already be a pretty nice gain, wouldn't it?
<ekleog> (ie. doing the remove before the unique recursion)
<ekleog> like a whole lot, actually
<ekleog> (well, the more duplicates there would be the more it would help)
<ekleog> if you've got an easy way to check it does improve stuff I can try to submit it as a PR :)
<gchristensen> send me a quick diff!
<gchristensen> ^ that graph takes like 30G of RAM to generate though :D
<ekleog> wow
<ekleog> I was thinking it didn't load, but it's just so far down x)
<gchristensen> :)
<ekleog> also… so you did it you got nix-flamegraph? \o/
<gchristensen> I did something, for sure, not sure it is perfect data, yeah
<infinisil> ekleog: But appends are expensive too in Nix
<infinisil> I think that would be O(n^2) memory
<infinisil> Maybe not, not sure
<gchristensen> I'm going to need to get a bigger machine if I do these often
<ekleog> infinisil: I agree it's likely O(n²) memory, but the previous implementation already was, wasn't it?
<gchristensen> yea
<infinisil> Ah right, I didn't check the current implementation
<infinisil> Yeah that would be a bit better
<ekleog> the diff is basically doing th `remove` before the `unique` recursion instead of the other way around
<ekleog> so multiplying the time taken by 1 - P(an element is a duplicate), I think
<infinisil> I think O(n) should be possible, I'll give it a go
<gchristensen> yay
<gchristensen> this would be another cool report to have on each PR
<ekleog> I'm not sure it's even theoretically possible
<ekleog> well, O(n) on average with a hashmap would likely be
<infinisil> Ah I mean memory
<ekleog> oh right
<ekleog> I was thinking in time
<gchristensen> improving this in any way would be a good start
<ekleog> hmm wait is the current implementation O(n²) memory?
<gchristensen> one option even is adding abulitin
<ekleog> I'd count it as M(unique, n + 1) = 1 + max(M(remove, n), M(unique, n - number of duplicates of current element))
<ekleog> which can be majored by M(unique, n + 1) = 1 + max(M(remove, n), M(unique, n))
<ekleog> remove is I'd assume O(n), so that'd make M(n + 1) = 1 + max(O(n), M(n))
<ekleog> which I think is O(n)
<ekleog> (where M(function, n) is the memory used by function for a list of length n)
<gchristensen> I'll run it through my eval stats diff, too
pxc has quit [Ping timeout: 250 seconds]
<ekleog> wow it's definitely less tall, I wouldn't have expected such a big gain
<gchristensen> me either :)
<ekleog> like, 2237G samples vs. 1660G samples
<gchristensen> lmao
<ekleog> if it's sampling regularly, that makes a 26% reduction xD
<gchristensen> I'm producing a table like you see in https://github.com/NixOS/nixpkgs/pull/59336
<{^_^}> #59336 (by grahamc, 18 hours ago, open): check-meta: don't execute check-meta.nix 15,000 times (backport)
<gchristensen> the samples happen every time a function is called
<ekleog> oh so it isn't, that'd have been really really weird :)
<gchristensen> hrm?
<ekleog> making a 26% reduction in total time
<gchristensen> ahh rgiht
<ekleog> well even if it doesn't do much I guess if it's not actively negative it'd be a good thing to put in, as it makes the flamegraph much more readable :°
<gchristensen> yea
<gchristensen> I really need toremember to not do tehse exciting experiments on my teeny tiny laptop
<ekleog> wait you've got 30G RAM on your “teeny tiny laptop”? :D
<gchristensen> big swap :)
<ekleog> oh wow
* ekleog wonders if zramswap would help
<samueldr> whew, that svg is not good for my ~5yo laptop :)
<{^_^}> #59369 (by Ekleog, 10 seconds ago, open): lib: improve the implementation of the unique function
<ekleog> pretty nice win for such a small change
<ekleog> I wonder if there are similar wins to be made by filtering out the items two by two
<gchristensen> let's see where infinisil gets
<ekleog> actually… ok that's going to be weird but I think this idea is not completely stupid, let's try dichotomy
<ekleog> … waiiit nix really doesn't have a builtin to get a list that's the first half of another list? ._.
<gchristensen> samueldr: did you see this? gc-totalBytes 24,191,819,392 23,468,008,832 🡖 723,810,560 -2.99%
<gchristensen> +1/-2 => saving 700mb off the heap
<samueldr> if it was in the svg, no since it never finished rendering; but otherwise haven't looked much into the new fun optimization spree
<gchristensen> https://github.com/NixOS/nixpkgs/pull/59369#issuecomment-482670916 it is in this easy to digest table
<samueldr> all the arrows are going down!
<gchristensen> ekleog++
<{^_^}> ekleog's karma got increased to 6
<gchristensen> ekleog++
<{^_^}> ekleog's karma got increased to 7
<samueldr> that number's going up <3 ekleog
<{^_^}> ekleog's karma got increased to 8
<ekleog> :D
<gchristensen> ok, so, I should probably generate this flame graph and these stats per PR
<infinisil> I think I have an O(n) memory solution :)
<gchristensen> :D :D :D
<infinisil> Hold on, cleaning it up a bit
<gchristensen> I'm ready to test!
<infinisil> Eh cleaning up can wait, here it is: https://paste.infinisil.com/qjab8UQf8s.nix
<infinisil> (will have to change a bit for in nixpkgs, regarding lib. references and such)
<gchristensen> send me a diff, and I'll test it out :)
<infinisil> Alrgiiiiiht
<gchristensen> ekleog: are you on twitter?
<ekleog> gchristensen: I've got an account, @Ekleog, though I'm almost never going there :)
<ekleog> when I'll have setup bumblebee I guess I'll be a bit less ghost-y
<gchristensen> infinisil: are you on twitter?
<infinisil> I am, but never active
<gchristensen> cool
<gchristensen> I'm just chuffed by you two :)
<ekleog> gchristensen: can you try https://github.com/NixOS/nixpkgs/pull/59369 again? I've got a tentative implementation of it that uses dichotomy
<{^_^}> #59369 (by Ekleog, 15 minutes ago, open): lib: improve the implementation of the unique function
<gchristensen> yep
<ekleog> I have no idea whether it's going to be better or worse (a)
<gchristensen> uhoh
<gchristensen> ok I'll do infinisil first
<infinisil> ekleog: Hehe conquer-and-divide, interesting
orivej has quit [Ping timeout: 252 seconds]
<infinisil> divide-and-conquer*
<ekleog> yup, I'm thinking it should lead to fewer copies
<gchristensen> ok, the first set of evaluations are running
<infinisil> gchristensen: btw, O(n) is not constant memory :P
<gchristensen> ahh right
<gchristensen> it is such a pleasure to be in this community. it is incredible, writing little tools and having brilliant people leap and do something incredible
<infinisil> I guess we could call it constant-per-element though
<sphalerite> linear memory
<gchristensen> list-elements down by nearly 5m
<infinisil> Nice :o
<infinisil> Some ups though
<sphalerite> nrAvoided seems like a good thing to rise
<gchristensen> not sure what nrAvoided means
<gchristensen> but yeah :P
<sphalerite> seems to be the number of thunks created but not evaluated
<gchristensen> curious
<gchristensen> okay, starting to make the flame graph for yours, infinisil, so I might be unresponsive here a bit
<infinisil> Oh, there's an old `uniqList` function in deprecated.nix
<ekleog> infinisil: looking at the tables I find it fun: your change that was supposed to reduce memory reduced it less than mine, which was supposed to reduce cpu time but reduced it less than yours xD
<averell> there should be an enumerate there right? or is that elemAt super cheap? otherwise just zip with index maybe.
<infinisil> ekleog: Yeah xD
<infinisil> Oh I think I see a big optimization for mine
<averell> is it enumerating the list? :)
* ekleog eager to have the numbers for the dichotomy-based one
<ekleog> averell: I'm not sure what you're talking about?
<gchristensen> ekleog: is that a nudge to move my testing to a bigger system?
<averell> i meant instead of concatMap with index and elemAt just go over enumerate the list like (value, i)
<averell> or are lists random access?
<ekleog> averell: lists are actually arrays in nix
<infinisil> Random access is O(1)
<averell> that explains a lot...
<ekleog> gchristensen: I've heard we have big epyc-based machines 😇 but anyway it's not really a nudge, though it'd be more than great if ofborg could give out these numbers :)
<gchristensen> I completely agree
<gchristensen> the machines are not powerful enough to do the flame graphs
<ekleog> hmm that'll definitely make things harder :/
<gchristensen> no big deal
<gchristensen> I can get bigger ones
<gchristensen> certainly adds another step, though!
<infinisil> I wonder, if I have a function `foo = x: y: ...` that gets called with the same x a lot of times, is it better to assign `bar = foo 0` and use that?
<gchristensen> probably
<gchristensen> (I don't know, we should test)
<infinisil> I'd think so too, but then you also get an additional thunk for bar, which could be bad if this is in a loop
<infinisil> So not sure
<ekleog> let's change the nix language to be just rust with a library
<gchristensen> lol
<ekleog> this way performance would be predictable
<ekleog> I'm being totally serious here 😇
<ekleog> more seriously, allowing nix-native code FFI might actually be a non-stupid idea, as the evaluation is not done by the daemon anyway so it's outside the trusted code base
<gchristensen> it is a very nice property that nix code can't do things
<ekleog> right, pure-mode, forgot about it
<ekleog> (I had builtins.exec in mind, with all the drawbacks entailed)
<averell> you should put that quote on a t-shirt
<ekleog> hmm maybe nix-wasm FFI?
<infinisil> Pfff, nobody cares about drawbacks when builtins.exec is the only way to write a RTS for nix
<ekleog> :DDDD
<gchristensen> infinisil: gsc.io/graph.unstable.infinisil.svg
<infinisil> Considering that it takes ages to load that doesn't look good!
<infinisil> Oh, it's there, just had to scroll down lol
<ekleog> actually nix-wasm FFI might actually make sense for these things that are pretty much impossible to do sanely in nix (like that `unique` function that really should be using a hashmap and just iterating forward while collecting in a Vec)
<ekleog> I wonder if such an FFI could be possible with shlevy's plugin system, for initial experiments
<infinisil> gchristensen: Yeah so this huge spike there is from unique, coming from the recursive isFirst probably
<infinisil> Wait does Nix not do tail call elimination
<gchristensen> infinisil: maybe it does but my instrumentation doesn't handle it properly?
<gchristensen> ekleog: compared against master, not against your other version
<averell> maybe isFirst as elem value (take (end - 1)) list would be faster?
<gchristensen> ekleog: https://gist.github.com/grahamc/1b4532038e5de474c4830405567a2056 this one is the diff between your v1 and your v2
<infinisil> averell: That might be faster, but then it's not linear memory anymore, because take creates another array
<averell> oh
<ekleog> that looks pretty good
<ekleog> gchristensen: I think the question is between my v2 and infinisil's now, as I think we're prioritizing cpu time over RAM
<gchristensen> for me, I'd prefer RAM
<infinisil> Man, my version doesn't look like linear though
<ekleog> 1% RAM for 5% cpu time, though?
<infinisil> Well, hard to say really
<gchristensen> that 1% is 255mb
<ekleog> 5% is 7 sec
<infinisil> Note that time is non-deterministic though, so we can't be sure how reliable those numbers are
<ekleog> infinisil: did you read my analysis of the memory size taken by my v1?
<infinisil> ekleog: Not thoroughly, let me read it again
<gchristensen> ekleog: since our most significant problem is with evaluation memory, yes, I'd prefer memory
<infinisil> ekleog: That's for which version? Link to code?
<ekleog> gchristensen: in which case my v1 might be the best one, it's got the lowest gc-heapSize
<ekleog> (and same for gc-totalBytes)
<gchristensen> lol
<gchristensen> the input to flamegraph.pl is 9G
worldofpeace has joined #nixos-dev
<averell> are these benchs with lists from actual real-world derivations?
<infinisil> ekleog: Hmm, shouldn't it be + instead of max?
<peti> niksnut: https://hydra.nixos.org/jobset/nixpkgs/haskell-updates has been standing still for a full day now. Maybe restarting hydra-queue-runner is the way to go after all?
<infinisil> ekleog: Because you first have the cost for remove, and then also the cost for unique on its result
<gchristensen> averell: they're not benches, really, it is the exact data from evaluating nixpkgs
<gchristensen> ie, not at all synthetic
pxc has joined #nixos-dev
<ekleog> infinisil: I'm assuming it'll free the memory used by remove before allocating the memory for unique
<ekleog> and the memory returned-by-remove ingested-by-unique is counted in the price of both
<ekleog> now nix is a GC language, so we have no guarantee of that, but if we start down that route then it's hard to compute memory usage
<infinisil> I see
<infinisil> I'm unsure myself regarding whether we can make that assumption
<infinisil> I guess we could test it though
<infinisil> Evaluate uniq on 2^1, 2^2, 2^3, ..., 2^10 elements and see how memory goes up
<gchristensen> even with loads of ram, flamegraph.pl takes ~10min to run
<ekleog> gchristensen: tbh I'm not sure the flamegraph is actually useful here
<gchristensen> for this specific case, possibly not
<ekleog> like, my current hunch is we need your stats table to decide whether things get merged, and the flamegraph to figure out how to improve stufff
<gchristensen> it sure did a nice job pointing out a problem though
<ekleog> indeed .)
<infinisil> gchristensen++ for benchmarks and stuff
<{^_^}> gchristensen's karma got increased to 103
<ekleog> I wonder whether we can make a derivation that builds the flamegraph and have hydra build it
<ekleog> and ideally have it end up on the nixos website
<gchristensen> I don't think hydra would be very impressed by that
<infinisil> ekleog: Anyways, about my unique I can at least say it's guaranteed O(n) :P Even though it performed worse in general, maybe this can be optimized still though
<infinisil> I think at least!
<gchristensen> anyway, I see no reason why this shouldn't be run on each PR
<ekleog> this way we'd always have an up-to-date flamegraph to know where to improve on stuff, and stats tables would be provided by ofborg
<ekleog> doesn't the flamegraph take too much memory for ofborg?
<gchristensen> it takes too much for the puny machines it uses for evals right now, but it doesn't have to
<gchristensen> it doens't have to run on those machines*
<ekleog> (while I'd be hoping ofborg can do the stats table, as it can already eval)
<infinisil> Oh! Couldn't we add parallelism to Nix?
<infinisil> Things like mapAttrs, concatMap, stuff like that could all be run in parallel
<infinisil> Tbh we should just add such functions to builtins. There's no reason to keep implementing all these things in nixpkgs/lib, other than for backwards compatibility
<tilpner> Yes, most people can probably be persuaded to give up minimalism/small API for performance
<tilpner> And the old Nix implementations can stay around as fallbacks for a while
<ekleog> if nix was rust I'd happily do it, but tbh I've got enough weird c++ issues in interpreters to try and minimize my interaction with c++ (ie. keep it to when needed for $work) :/
<ekleog> gchristensen: hmm nothing looking plain wrong in this graph, I guess the memory increase comes from dichotomy that actually needs to keep like 3N/2 memory instead of just the N for the trivial copying-many-times version
<gchristensen> maybe someday https://github.com/NixOS/nix/pull/2748
<{^_^}> nix#2748 (by edolstra, 2 weeks ago, open): [WIP] Make nix/unpack-channel.nix a builtin builder
<infinisil> tilpner: That makes me think, considering we have a lib/minver.nix, we can probably remove some fallbacks in lib by now
<ekleog> infinisil: I'm pretty much thinking that parallelism here is not necessarily going to improve things much, as nix wasn't really designed for it
<gchristensen> yes, at this point I'd go back to v1 of your patch, ekleog, and then look at the "next big thing"
<ekleog> like, we'd start getting python-like concurrency
<ekleog> gchristensen: SGTM, pushing-force back to the first commit :)
<gchristensen> samueldr: any feelings about backporting this one?
<tilpner> "This rewrites the builder of <nix/unpack-channel.nix> in C++ and Rust." :o
<gchristensen> sphalerite: ^
<infinisil> ekleog: Nah nah, I mean Haskell-style, pure parallelism
<ekleog> (done and my computer is about to run out of battery)
<infinisil> purely functional languages are the only ones that can do this
<gchristensen> way to go, team!
<ekleog> infinisil: I agree it would be best, but what I mean is I don't think the runtime has been designed for it
<ekleog> gchristensen++, btw :D
<{^_^}> gchristensen's karma got increased to 104
<ekleog> gchristensen: oh wow I hadn't seen that “let's include rust in nix” :D
<gchristensen> ;)
<gchristensen> I suspect eelco burried the lead on thaht on purpose
<averell> ain't no shutting those floodgates :)
<ekleog> I really hope it's going to go through weekly when it lands
<gchristensen> https://github.com/NixOS/nixpkgs/pull/59369#issuecomment-482670916 w.r.t. this table, would it be better if I converted units like bytes in to kb/mb and cpu time in to seconds/minutes?
<gchristensen> the reason I ask is I have to rewrite the thing which builds that table anyway, so I could do something a bit fancier
<ekleog> raw values are nice in that they give precision, but it'd make sense to have MB instead of bytes for things that are multiple-GB order
<averell> machine readable and probably sortable is nice though
<ekleog> like, keep >= 3 significant digits at least
<gchristensen> these are for people
<gchristensen> machines can go back and regenerate the data :)
<averell> true. but even people can compare easier if it's the same unit
<gchristensen> and it won't ever be sortable, github doesn't let us do that
<averell> boooo
<gchristensen> ok I'll punt on that then
<gchristensen> can make it fancy later
<infinisil> ekleog: Unfortunately precision != accuracy
drakonis has joined #nixos-dev
Melkor333 has joined #nixos-dev
worldofpeace has quit [Ping timeout: 252 seconds]
orivej has joined #nixos-dev
worldofpeace has joined #nixos-dev
tilpner has quit [Remote host closed the connection]
tilpner has joined #nixos-dev
<sphalerite> gchristensen: backporting what, sorry? The performance improvements?
<gchristensen> yea
<sphalerite> mixed feelings
<sphalerite> on the one hand, yay less tooling problems. On the other hand, pretty fundamental and far-reaching changes which proooobably shouldn't go into a stable release?
<sphalerite> Would this make borg and hydra work noticeably better?
<sphalerite> (also NIXRUUUUUUUST :D)
<sphalerite> niksnut++
<{^_^}> niksnut's karma got increased to 9
<gchristensen> it would cut down evaluation ram by like 730mb, which we would definitely notice
<gchristensen> have you reviewed the diff?
<sphalerite> no, not yet
<sphalerite> should find some time this weekend though :)
<sphalerite> for now, sleeeeeeep
<gchristensen> ok
<sphalerite> gnight :)
<gchristensen> make sure to allocate at least 30s for your review
<gchristensen> g'nigth!
<sphalerite> funnily enough, now I have a lot more time, no work trips for the next 3 weeks… x)
<gchristensen> nice
<gchristensen> great! welcome to more relaxed time :)
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 252 seconds]
drakonis_ has quit [Ping timeout: 250 seconds]
Melkor333 has quit [Quit: WeeChat 2.4]
worldofpeace has quit [Ping timeout: 268 seconds]
phreedom_ has quit [Quit: No Ping reply in 180 seconds.]
worldofpeace has joined #nixos-dev
phreedom has joined #nixos-dev
orivej has quit [Ping timeout: 250 seconds]