2025/04/09

2025-04-09 00:00:04 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-04-09 00:00:13 +0200Googulator(~Googulato@2a01-036d-0106-211a-f46d-c0c9-579b-1a24.pool6.digikabel.hu)
2025-04-09 00:00:42 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-04-09 00:00:42 +0200ljdarj1ljdarj
2025-04-09 00:00:46 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-04-09 00:02:02 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-04-09 00:02:45 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-04-09 00:03:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:06:00 +0200thuna`(~thuna`@user/thuna/x-1480069) thuna`
2025-04-09 00:06:06 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-04-09 00:08:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 00:12:32 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-04-09 00:15:27 +0200c_wraith(~c_wraith@adjoint.us) (Ping timeout: 252 seconds)
2025-04-09 00:17:06 +0200Hecate(~mariposa@user/hecate) (Ping timeout: 272 seconds)
2025-04-09 00:17:38 +0200Hecate(~mariposa@user/hecate) Hecate
2025-04-09 00:18:59 +0200tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 260 seconds)
2025-04-09 00:19:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:20:14 +0200c_wraith(~c_wraith@adjoint.us) c_wraith
2025-04-09 00:22:23 +0200tromp(~textual@2001:1c00:3487:1b00:e513:bc03:349e:ac26) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-09 00:27:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 00:31:02 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-09 00:31:21 +0200califax(~califax@user/califx) califx
2025-04-09 00:37:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:42:14 +0200Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2025-04-09 00:42:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 00:42:29 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2025-04-09 00:43:07 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2025-04-09 00:46:42 +0200 <EvanR> monochrom, if this were a free monad, then uh for all other monads there would be a unique monad morphism something or other from Check to it?
2025-04-09 00:46:53 +0200 <EvanR> such that
2025-04-09 00:46:59 +0200 <EvanR> some diagram xD
2025-04-09 00:49:34 +0200thuna`(~thuna`@user/thuna/x-1480069) (Ping timeout: 252 seconds)
2025-04-09 00:51:27 +0200sprout(~sprout@84-80-106-227.fixed.kpn.net) (Ping timeout: 265 seconds)
2025-04-09 00:53:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:53:33 +0200 <EvanR> I lied, every other monad for this functor, which would be like ...
2025-04-09 00:54:03 +0200sprotte24(~sprotte24@p200300d16f06b600a14bd9dc58a29dc6.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-09 00:58:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 01:00:17 +0200 <EvanR> I lied that was the beginning of a universal property not a free thing
2025-04-09 01:02:21 +0200 <monochrom> Your monad is Free C, where C is defined by "data C r = G (Int -> r) | F String".
2025-04-09 01:03:03 +0200prolic_(~sasa@181.122.135.9) (Ping timeout: 246 seconds)
2025-04-09 01:04:28 +0200 <monochrom> There is a definition of free monad in terms of "left adjoint of the forgetful functor for monads" but I haven't really studied that.
2025-04-09 01:04:46 +0200weary-traveler(~user@user/user363627) user363627
2025-04-09 01:05:24 +0200 <monochrom> More precisely, Check is Free C. This is ignoring the special thing done by runCheck.
2025-04-09 01:05:42 +0200 <monochrom> (to the Int part)
2025-04-09 01:07:29 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 01:07:34 +0200 <EvanR> turns out there is a connection between the free forgetful adjoint functors on one hand and initial algebras, which satisfy a universal property I think. If you just throw adjoint and universal at the wall you get a categorical theorem right
2025-04-09 01:07:53 +0200 <monochrom> But here is the universal property you're looking for. Suppose a certain monad M supports two additional operations: gennum :: M Int, fail :: String -> M a. Then there is a unique monad morphism from Check to M.
2025-04-09 01:08:08 +0200 <EvanR> such that
2025-04-09 01:08:14 +0200 <EvanR> something factors through
2025-04-09 01:09:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:11:41 +0200 <monochrom> Yeah it's an initial object in the category of monads like M.
2025-04-09 01:12:26 +0200 <monochrom> I think you can go further for initial algebra if you're also into algebraic effects.
2025-04-09 01:13:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 01:16:33 +0200 <EvanR> ok but, the runCheck function which interprets the Check program in a certain way
2025-04-09 01:17:50 +0200 <EvanR> is that specializing anything or orthogonal to the narrative
2025-04-09 01:18:07 +0200 <monochrom> It is specializing.
2025-04-09 01:18:15 +0200 <EvanR> would you not need it if you define the monad instance some other way
2025-04-09 01:18:48 +0200 <monochrom> You are factoring a supply monad into a free monad plus an interpreter that kills the freeness.
2025-04-09 01:19:55 +0200 <monochrom> Most useful monads are not free, but it is also useful to factor them into free monads and interpreters.
2025-04-09 01:20:03 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 01:20:14 +0200_xor(~xor@ip-66-42-132-175.dynamic.fuse.net) (Read error: Connection reset by peer)
2025-04-09 01:20:33 +0200 <EvanR> trying to see how you would unfree it just by changing the monad instance
2025-04-09 01:21:34 +0200 <haskellbridge> <Bowuigi> EvanR the factoring thing is "such that this unique morphism respects the Monad + M laws" IIRC
2025-04-09 01:21:50 +0200 <monochrom> Or equivalently, in algebraic effects, factor into a free algebra and a handler.
2025-04-09 01:22:49 +0200_xor(~xor@ip-66-42-132-175.dynamic.fuse.net) _xor
2025-04-09 01:22:58 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-04-09 01:24:15 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 01:25:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:25:17 +0200 <EvanR> a monad morphism automatically respects monad laws... but...
2025-04-09 01:25:39 +0200 <haskellbridge> <Bowuigi> A nice corollary is that you can integrate any monad into an effect system that uses free monads and interpreters (which are a lot)
2025-04-09 01:25:41 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds)
2025-04-09 01:25:41 +0200ljdarj1ljdarj
2025-04-09 01:26:10 +0200 <monochrom> You can change to the Int->Either String (a,Int) monad and don't give users direct access, give them only "genNum = \s -> Right (s, s+1)" and "fail msg = \s -> Left msg".
2025-04-09 01:27:17 +0200 <monochrom> That would be very unfree, and even more specialized than Int->Either String (a,Int).
2025-04-09 01:27:28 +0200 <haskellbridge> <Bowuigi> EvanR yeah that's why I said morphism instead of monad morphism, to emphasize that it respects both the monad laws AND the M/Check/whatever laws
2025-04-09 01:29:55 +0200 <emojelly> I wonder if I can (and should) rewrite my Coroutine-using framework with Pipes.
2025-04-09 01:30:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 01:31:07 +0200tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2025-04-09 01:31:15 +0200 <emojelly> The pattern I have (and I wonder whether there's a name for it): I have a monad which both yields and awaits a value (types between input and output can differ), which feed into and feed back from another component, in my specific case a circuit.
2025-04-09 01:32:42 +0200 <haskellbridge> <Bowuigi> You are describing Arrow and ArrowLoop, see if those abstractions make your program clearer first
2025-04-09 01:32:55 +0200 <emojelly> So each monadic action gives (yields) input to the circuit, and returns (awaits) the output of the circuit.
2025-04-09 01:33:18 +0200 <emojelly> I've used Arrows before, for CPU emulation, but that was an entirely different use case... wonder if Arrows can help here.
2025-04-09 01:33:39 +0200 <emojelly> Monads seem to work fine?
2025-04-09 01:33:53 +0200 <haskellbridge> <Bowuigi> If it is a monad it likely also supports ArrowApply too
2025-04-09 01:34:19 +0200 <emojelly> My use case for CPU emulation was that I could do different things for "running" emulated instructions vs. "analyzing" them.
2025-04-09 01:34:36 +0200 <haskellbridge> <Bowuigi> Why do you want to rewrite it if it works fine? Learning? Speed? Clarity?
2025-04-09 01:34:42 +0200 <emojelly> It would be speed
2025-04-09 01:35:18 +0200 <emojelly> I don't know if you followed the drama (technical drama, not human drama) yesterday, but my Coroutine-implementation is insanely slow for some reason, and profiling is not helping at all unfortunately.
2025-04-09 01:35:59 +0200 <emojelly> It's pathologically slow. It looks like some accidental O(n^2) thing maybe, or something else... but I wasn't able to suss out what's taking so long in *any* way
2025-04-09 01:36:54 +0200 <emojelly> only that for some reason a simple test is churning through 70GB/s of allocations for a relatively simple test, but it's not leaking it, so heap profiling didn't help either.
2025-04-09 01:37:18 +0200 <haskellbridge> <Bowuigi> According to their own benchmarks, streamly is way faster than pipes, maybe try that?
2025-04-09 01:37:34 +0200 <emojelly> I really like the Coroutines approach, but if pipes or something else helps...
2025-04-09 01:37:45 +0200 <emojelly> I've looked at streamly, but I'm not sure it's better suited than pipes?
2025-04-09 01:40:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:41:14 +0200 <emojelly> Pipes seems centered around yield/await that I need here, while streamly, ironically, looks more like unix pipes
2025-04-09 01:41:22 +0200 <emojelly> but that's only after a very, very cursory look, so I might be wrong
2025-04-09 01:42:35 +0200 <haskellbridge> <Bowuigi> I see
2025-04-09 01:43:03 +0200 <haskellbridge> <Bowuigi> Do you have a repo link?
2025-04-09 01:43:09 +0200 <emojelly> Not yet, no
2025-04-09 01:43:17 +0200 <emojelly> I will!
2025-04-09 01:43:52 +0200jespada(~jespada@r167-61-127-49.dialup.adsl.anteldata.net.uy) (Ping timeout: 272 seconds)
2025-04-09 01:45:13 +0200 <haskellbridge> <Bowuigi> Just to make sure, did you check for space leaks and other laziness pitfalls? You probably did but just to make sure
2025-04-09 01:45:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 01:45:42 +0200 <haskellbridge> <Bowuigi> For concurrency you have that actions may not run on the thread you wanted
2025-04-09 01:46:21 +0200 <emojelly> I did. The heap is growing to an "okay" 40MB before gc brings it back down. Meanwhile, the *total* allocations are upwards of 70GB, with the program churning through 5-8GB/s for... nothing. But apparently those allocations are very short lived, because they don't really show up in the heap profile other than in those total statistics.
2025-04-09 01:46:23 +0200jespada(~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) jespada
2025-04-09 01:46:31 +0200 <emojelly> There is no concurrency!
2025-04-09 01:47:24 +0200 <geekosaur> most allocations are in the nursery (very fast) and most of those will disappear when it's GCd (anything still referenced moves to gen1, then the pointer is reset to the base of the nursery)
2025-04-09 01:48:37 +0200 <emojelly> and the time profiling is (as far as I can tell myself) completely useless. The majority of the time is spent "in" this function, that's the full thing: "combineTestSignals = combineTestSignals (,)". Not in any of its children, this is not "inherited" time. No, profiling tells me *this* is where all CPU time goes.
2025-04-09 01:48:56 +0200 <emojelly> sorry, it's "combineTestSignals = combineTestSignals' ()", missed the ' there
2025-04-09 01:49:00 +0200 <emojelly> sigh
2025-04-09 01:49:08 +0200 <emojelly> combineTestSignals = combineTestSignals' (,)
2025-04-09 01:49:10 +0200 <emojelly> now it's right
2025-04-09 01:49:34 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2025-04-09 01:49:46 +0200 <emojelly> geekosaur: I wish there was a way to tell me what allocations were in the nursery, i.e. what type, who produced them... maybe that would give me one hint of what's wrong...
2025-04-09 01:50:49 +0200 <geekosaur> I think there's a heap visualizer somewhere, but I'm not sure if it also handles the nursery or if it's only gen1+
2025-04-09 01:51:12 +0200 <emojelly> Do you mean the heap visualizer that is processing the event log through HTML? That's what I used, yeah
2025-04-09 01:51:16 +0200 <geekosaur> https://hackage.haskell.org/package/ghc-heap-view
2025-04-09 01:51:19 +0200 <emojelly> ah
2025-04-09 01:51:32 +0200 <emojelly> this seems different
2025-04-09 01:52:32 +0200 <emojelly> But it might still not help. If I stop the program at any point, there's probably not a lot of allocations live. It seems the program does not *retain* an extreme amount of allocations for long, it just *churns* through them
2025-04-09 01:52:44 +0200 <geekosaur> weirdly, it claims to only support ghc 8.8, but it was last updated at the beginning of this year
2025-04-09 01:52:59 +0200 <emojelly> This results in total statistics of "74GB total allocations" while the heap profile looks fine, otherwise.
2025-04-09 01:53:37 +0200potatoespotatoes(~quassel@user/potatoespotatoes) ()
2025-04-09 01:54:34 +0200 <emojelly> All in all, I don't think I have a space leak (or maybe just a "very local one"), it's just that the allocations *might* help me understand why "combineTestSignals = combineTestSignals' (,)" takes an extreme amount of time entirely *by itself*. I.e. all its children in the profiling tree spend much less, it doesn't sum up.
2025-04-09 01:54:49 +0200potatoespotatoes(~quassel@130.44.147.204)
2025-04-09 01:54:49 +0200potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-09 01:54:49 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 01:55:06 +0200 <emojelly> one thing I've done is actually using the OS to sample the process
2025-04-09 01:55:19 +0200 <emojelly> which gave me weird symbols, which I can look up in the GHC Core file that is generated
2025-04-09 01:55:56 +0200 <emojelly> so far however I find the Core code very hard to understand, and knowing which executable symbol the system spends most time in did not really help me much in knowing why.
2025-04-09 01:56:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:56:44 +0200 <emojelly> But in theory, it's better than "all the time in nonsensically spent in this function which literally just applies another function, and nothing else"
2025-04-09 01:57:22 +0200 <emojelly> by the way, if I remove that function and directly type "combineTestSignals' (,) ..." in the caller, the "lost" time predictably just wanders to the caller.
2025-04-09 01:57:46 +0200 <emojelly> I thought I understood laziness and thunks, but this expression does nothing. It does not force any evaluation or anything.
2025-04-09 01:58:14 +0200 <geekosaur> that really sounds to me like something is getting forced in `combineTestSignals` or whatever else consumes the result of `combineTestSignals'`
2025-04-09 01:58:25 +0200 <geekosaur> but yeh, I don't see why
2025-04-09 01:58:43 +0200 <emojelly> Yeah. And, sure, something will eventually force it. But the point of profiling is to tell me where the actual work is happening, no?
2025-04-09 01:59:13 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-04-09 01:59:22 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 01:59:54 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f631cbaa9c9535aaf6d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2025-04-09 02:00:25 +0200 <emojelly> Like if I write a fib function... then it will return a thunk (for discussion's sake). Now that thunk might get evaluated somewhere else entirely, but usually at least time profiling will still tell me that fib is the function to which the work is attributed, no?
2025-04-09 02:00:47 +0200 <emojelly> At least that's how I understood it to work. The documentation literally says it's saving away the *call* stack, not the evaluation stack (if that's the right word).
2025-04-09 02:02:23 +0200 <geekosaur> right, which means it ought to attribute things to where they're generated, not where they're forced
2025-04-09 02:02:36 +0200 <emojelly> And the kicker is that the entire combineTestSignals' only merges two Coroutines together, which means replacing the continuation with a new continuation that calls the continuations of both coroutines and pastes them together.
2025-04-09 02:02:42 +0200 <emojelly> Apart from that it's a whole lot of wrapping and unwrapping.
2025-04-09 02:03:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 02:03:33 +0200jespada(~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) (Ping timeout: 252 seconds)
2025-04-09 02:03:41 +0200 <emojelly> geekosaur: exactly, which makes this case so weird, because: a) nothing gets forced in "combineTestSignals' (,)" itself, I think, but b) even if it would it certainly didn't come from that expression
2025-04-09 02:08:01 +0200sprout(~sprout@2a02-a448-3a80-0-c61c-b515-5509-58e7.fixed6.kpn.net)
2025-04-09 02:09:00 +0200 <haskellbridge> <Bowuigi> emojelly did you disable optimization for the profiling build? That shouldn't allocate too much
2025-04-09 02:09:14 +0200 <haskellbridge> <Bowuigi> Either that or it's weird CAF shenanigans
2025-04-09 02:09:31 +0200hgolden_(~hgolden@syn-172-251-233-141.res.spectrum.com) hgolden
2025-04-09 02:09:58 +0200potatoespotatoes(~quassel@user/potatoespotatoes) ()
2025-04-09 02:10:07 +0200hgolden_(~hgolden@syn-172-251-233-141.res.spectrum.com) (Remote host closed the connection)
2025-04-09 02:11:37 +0200 <haskellbridge> <Bowuigi> If you don't want to disable optimization, make sure that GHC doesn't inline combineTestSignals'
2025-04-09 02:11:38 +0200 <geekosaur> with prof-late optimization shouldn't matter
2025-04-09 02:12:00 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:d5a9:8f67:3cb9:6399) (Ping timeout: 246 seconds)
2025-04-09 02:12:20 +0200 <statusbot> Maintenance update: hackage is going down for migration. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/67f5bb13d9e59f092626b642
2025-04-09 02:12:52 +0200potatoespotatoes(~quassel@130.44.147.204)
2025-04-09 02:12:52 +0200potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-09 02:12:52 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 02:12:59 +0200potatoespotatoes(~quassel@user/potatoespotatoes) (Client Quit)
2025-04-09 02:13:24 +0200potatoespotatoes(~quassel@130.44.147.204)
2025-04-09 02:13:24 +0200potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-09 02:13:24 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 02:13:31 +0200potatoespotatoes(~quassel@user/potatoespotatoes) (Client Quit)
2025-04-09 02:13:56 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 02:14:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 02:16:11 +0200 <emojelly> haskellbridge: I tried everything. Disabling optimization, enabling optimization, various profiling settings, switching between GHC 9.8 and 9.10...
2025-04-09 02:16:47 +0200 <emojelly> it is entirely possible that the problem is maybe in Clash, which I have practically no insight into, but if, profiling is just not telling me anything.
2025-04-09 02:17:02 +0200ystael(~ystael@user/ystael) (Ping timeout: 244 seconds)
2025-04-09 02:17:20 +0200 <emojelly> (system process sampling and looking up the funky generated symbol name in the Core code seems to rather suggest it's in my code at first glance, though.)
2025-04-09 02:18:00 +0200 <emojelly> have to run.
2025-04-09 02:19:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 02:19:58 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2025-04-09 02:20:53 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-09 02:22:17 +0200Inst(~Inst@user/Inst) Inst
2025-04-09 02:26:44 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2025-04-09 02:27:11 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-04-09 02:30:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 02:32:43 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-09 02:34:25 +0200califax(~califax@user/califx) califx
2025-04-09 02:34:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 02:37:13 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 268 seconds)
2025-04-09 02:39:09 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) gabriel_sevecek
2025-04-09 02:40:11 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-09 02:43:09 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds)
2025-04-09 02:45:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 02:50:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-09 02:51:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 02:54:34 +0200 <EvanR> dude why are you talking to a bridge
2025-04-09 02:55:43 +0200 <geekosaur> because many IRC clients autocomplete to the last speaker on a bare tab, which will get the bridge
2025-04-09 02:55:45 +0200xff0x(~xff0x@2405:6580:b080:900:c071:5032:6468:f840) (Ping timeout: 248 seconds)
2025-04-09 02:57:26 +0200 <emojelly> Ah, no. Because my irc client front end has a bug right now that swallows stuff in angle brackets, brackets included. I didn’t realize there was a name there…
2025-04-09 02:57:54 +0200 <EvanR> oof
2025-04-09 02:57:55 +0200 <emojelly> I *did* wonder, but I figured maybe this bridge is only used by a single user. :’)
2025-04-09 02:58:52 +0200 <haskellbridge> <Liamzee> geekosaur maintains a bridge between some haskell rooms and matrix
2025-04-09 02:58:57 +0200 <geekosaur> I want to move the bridge to something that does puppeting, but I need to get it off my personal box and that's waiting on the HF
2025-04-09 02:59:22 +0200otto_s(~user@p5b044d5e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-04-09 02:59:44 +0200 <geekosaur> (it works best with IPv6 but my provider's in the 20th century still)
2025-04-09 03:01:19 +0200otto_s(~user@p4ff27c58.dip0.t-ipconnect.de)
2025-04-09 03:01:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:03:02 +0200cptaffe(~cptaffe@user/cptaffe) cptaffe
2025-04-09 03:06:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 03:06:47 +0200 <EvanR> I dunno, this IPv6 stuff is probably just a fad
2025-04-09 03:06:52 +0200 <EvanR> like unicode
2025-04-09 03:07:13 +0200 <jackdk> emojelly: some kind of HTML sanitising?
2025-04-09 03:07:38 +0200 <EvanR> third rate back alley HTML sanitizing
2025-04-09 03:07:58 +0200 <haskellbridge> <Bowuigi> That shouldn't remove tags, just replace them with their &-codes
2025-04-09 03:09:15 +0200 <geekosaur> that's certainly how I've always done it
2025-04-09 03:11:49 +0200 <mauke> Bowuigi: that would be HTML escaping, not sanitizing
2025-04-09 03:12:49 +0200 <geekosaur> .oO{ so you're saying sanitizing isn't sane? )
2025-04-09 03:13:47 +0200 <mauke> exactly
2025-04-09 03:14:17 +0200 <haskellbridge> <Bowuigi> It should just remove stuff on a blocklist and escape the unknowns
2025-04-09 03:14:22 +0200 <mauke> "sanitizing" = mangling your inputs to remove all the "harmful" parts
2025-04-09 03:14:49 +0200 <haskellbridge> <Bowuigi> That's the sanest option, given it removes possibly harmful stuff and keeps the rest
2025-04-09 03:15:37 +0200 <haskellbridge> <Bowuigi> Unless my alias is potentially harmful, which it might be for my career but not for anyone else
2025-04-09 03:17:27 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:19:37 +0200 <EvanR> sanitize :: String -> String
2025-04-09 03:19:41 +0200 <EvanR> sanitize _ = ""
2025-04-09 03:20:42 +0200weary-traveler(~user@user/user363627) user363627
2025-04-09 03:21:57 +0200 <jackdk> No output, no vulnerability
2025-04-09 03:22:09 +0200 <jackdk> And with lazy evaluation it doesn't even consider the input!
2025-04-09 03:22:28 +0200XZDX(~xzdx@2601:404:ce00:4e51:214:51ff:fe2b:e82e) (Remote host closed the connection)
2025-04-09 03:22:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 03:28:54 +0200 <haskellbridge> <Liamzee> the empty string is technically output
2025-04-09 03:29:49 +0200 <haskellbridge> <Liamzee> i wonder what the safety of outputting bottom would be, though
2025-04-09 03:33:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:33:31 +0200prolic_(~sasa@181.122.135.9) prolic_
2025-04-09 03:36:02 +0200 <EvanR> perfectly safe. Just ignore the existence of bottom
2025-04-09 03:37:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-09 03:44:32 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-04-09 03:49:03 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:52:51 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 03:53:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-04-09 03:59:12 +0200 <statusbot> Maintenance update: hackage server is operational again! -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/67f5bb13d9e59f092626b642
2025-04-09 03:59:18 +0200 <haskellbridge> <Liamzee> yay
2025-04-09 03:59:27 +0200 <haskellbridge> <Liamzee> thanks @sclv etc
2025-04-09 03:59:38 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e)
2025-04-09 03:59:46 +0200notdabs(~Owner@2600:1700:69cf:9000:1d8b:380b:ab0b:1fbd) (Read error: Connection reset by peer)
2025-04-09 04:02:57 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds)
2025-04-09 04:03:37 +0200qyrhx(~qyrhx@user/qyrhx) qyrhx
2025-04-09 04:04:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:05:04 +0200jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.6.0)
2025-04-09 04:05:05 +0200jmcantrell_jmcantrell
2025-04-09 04:08:06 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-09 04:08:47 +0200__jmcantrell__(~weechat@user/jmcantrell) jmcantrell
2025-04-09 04:08:49 +0200qyrhx(~qyrhx@user/qyrhx) (Quit: WeeChat 4.6.0)
2025-04-09 04:09:36 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-04-09 04:10:28 +0200jmcantrell(644f1bed9a@user/jmcantrell) (Killed (tungsten.libera.chat (Nickname regained by services)))
2025-04-09 04:10:28 +0200__jmcantrell__jmcantrell
2025-04-09 04:10:37 +0200jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2025-04-09 04:15:40 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
2025-04-09 04:16:13 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-09 04:17:26 +0200ezzieygu1wuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-09 04:17:58 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
2025-04-09 04:20:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:23:41 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 04:24:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 04:26:59 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2025-04-09 04:27:22 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 04:28:34 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 244 seconds)
2025-04-09 04:33:36 +0200bramh(~bramh@user/bramh) (Quit: Ping timeout (120 seconds))
2025-04-09 04:33:50 +0200bramh(~bramh@user/bramh) bramh
2025-04-09 04:36:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:36:26 +0200euphores(~SASL_euph@user/euphores) euphores
2025-04-09 04:36:37 +0200Inst(~Inst@user/Inst) (Ping timeout: 248 seconds)
2025-04-09 04:36:49 +0200 <emojelly> jackdk: I think it’s HTML sanitizing gone wrong, because I didn’t have this problem with an earlier version of the front end.
2025-04-09 04:37:59 +0200 <monochrom> Moar general: sanitize :: a -> [b]; sanitize _ = []
2025-04-09 04:38:52 +0200 <monochrom> Or maybe you prefer this other generalization direction? sanitize :: Istring b => a -> b; sanitize _ = ""
2025-04-09 04:40:27 +0200prolic_(~sasa@181.122.135.9) (Ping timeout: 244 seconds)
2025-04-09 04:40:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-09 04:40:56 +0200 <EvanR> give me the most general generalization
2025-04-09 04:42:10 +0200 <geekosaur> const []
2025-04-09 04:42:18 +0200 <monochrom> sanitize :: forall a b c. IsString c => a -> ([b], c); sanitize _ = ([], "")
2025-04-09 04:46:41 +0200 <haskellbridge> <Bowuigi> sanitize _ = mempty
2025-04-09 04:47:19 +0200 <haskellbridge> <Bowuigi> Pointed sets would be more general, but it has to have this meaning of "nothing but something"
2025-04-09 04:49:02 +0200 <monochrom> Like this? sanitize :: a -> Maybe b; sanitize _ = Nothing
2025-04-09 04:51:10 +0200 <monochrom> OK mempty is nicer.
2025-04-09 04:51:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:52:16 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 268 seconds)
2025-04-09 04:55:42 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-04-09 04:56:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 04:57:20 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Max SendQ exceeded)
2025-04-09 04:57:43 +0200 <mauke> sanitize :: a -> ()
2025-04-09 04:58:02 +0200 <monochrom> :)
2025-04-09 04:58:54 +0200 <monochrom> That's brilliant. The terminal object ought to be the most general. :)
2025-04-09 05:00:07 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-04-09 05:01:19 +0200EvanR(~EvanR@user/evanr) EvanR
2025-04-09 05:04:44 +0200 <jackdk> What they don't tell you is that `sanitise` uses `acme-smuggler` under the hood
2025-04-09 05:07:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:09:17 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 05:10:04 +0200 <haskellbridge> <Liamzee> is everything okay with your issue, emojelly? I probably can't be of help, but just hoping you fixed your problem
2025-04-09 05:10:50 +0200 <haskellbridge> <Liamzee> and sorry for the jokes (but you might actually want to shift the sanitize function to () and see how the profiler goes)
2025-04-09 05:13:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-09 05:21:18 +0200Square2(~Square@user/square) Square
2025-04-09 05:23:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:25:18 +0200Square(~Square4@user/square) (Ping timeout: 252 seconds)
2025-04-09 05:27:12 +0200spew(~spew@135.233.119.40) (Remote host closed the connection)
2025-04-09 05:27:58 +0200spew(~spew@135.233.119.40) spew
2025-04-09 05:28:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 05:28:41 +0200spew(~spew@135.233.119.40) (Remote host closed the connection)
2025-04-09 05:29:04 +0200spew(~spew@135.233.119.40) spew
2025-04-09 05:32:05 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-04-09 05:39:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:43:45 +0200michalz(~michalz@185.246.207.200)
2025-04-09 05:44:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 05:49:25 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-04-09 05:54:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:59:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 06:10:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:16:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-09 06:22:01 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 06:25:10 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 06:26:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:26:51 +0200tavare(~tavare@150.129.88.189)
2025-04-09 06:26:51 +0200tavare(~tavare@150.129.88.189) (Changing host)
2025-04-09 06:26:51 +0200tavare(~tavare@user/tavare) tavare
2025-04-09 06:29:28 +0200Square2(~Square@user/square) (Ping timeout: 244 seconds)
2025-04-09 06:31:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 06:41:51 +0200thuna`(~thuna`@user/thuna/x-1480069) thuna`
2025-04-09 06:42:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:42:50 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 06:46:00 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 06:47:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 06:57:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:58:03 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
2025-04-09 07:01:19 +0200JuanDaughertyColinRobinson
2025-04-09 07:02:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-09 07:05:38 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Quit: Hi, this is Paul Allen. I'm being called away to London for a few days. Meredith, I'll call you when I get back. Hasta la vista, baby.)
2025-04-09 07:06:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:11:33 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-09 07:11:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 07:11:59 +0200esph(~weechat@user/esph) esph
2025-04-09 07:12:26 +0200sayurc(~sayurc@169.150.203.34) sayurc
2025-04-09 07:12:48 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 265 seconds)
2025-04-09 07:19:58 +0200j1n37-(~j1n37@user/j1n37) j1n37
2025-04-09 07:20:00 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 246 seconds)
2025-04-09 07:22:27 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:24:33 +0200thuna`(~thuna`@user/thuna/x-1480069) (Ping timeout: 246 seconds)
2025-04-09 07:27:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 07:28:40 +0200Inst(~Inst@user/Inst) Inst
2025-04-09 07:29:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:34:33 +0200tavare(~tavare@user/tavare) (Remote host closed the connection)
2025-04-09 07:34:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 07:46:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:50:45 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 07:53:59 +0200Natch(~natch@c-92-34-7-158.bbcust.telenor.se) (Ping timeout: 260 seconds)
2025-04-09 07:54:14 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 07:55:23 +0200Natch(~natch@c-92-34-7-158.bbcust.telenor.se)
2025-04-09 08:01:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 08:06:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 08:06:25 +0200thuna`(~thuna`@user/thuna/x-1480069) thuna`
2025-04-09 08:06:57 +0200jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.6.0)
2025-04-09 08:06:57 +0200jmcantrell_jmcantrell
2025-04-09 08:18:06 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e) (Remote host closed the connection)
2025-04-09 08:29:19 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
2025-04-09 08:29:57 +0200ColinRobinsonJuanDaugherty
2025-04-09 08:32:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 08:38:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-09 08:40:03 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-04-09 08:42:22 +0200ft(~ft@p508db463.dip0.t-ipconnect.de) (Quit: leaving)
2025-04-09 08:48:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 08:51:56 +0200fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-04-09 08:53:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-09 08:57:54 +0200fantom(~fantom@2.219.56.221) (Quit: Connection error?!)
2025-04-09 08:58:21 +0200sayurc(~sayurc@169.150.203.34) (Quit: Konversation terminated!)
2025-04-09 09:00:01 +0200caconym(~caconym@user/caconym) (Quit: bye)
2025-04-09 09:00:57 +0200caconym(~caconym@user/caconym) caconym
2025-04-09 09:01:50 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-09 09:03:07 +0200JuanDaughertyColinRobinson
2025-04-09 09:03:22 +0200fantom(~fantom@2.219.56.221)
2025-04-09 09:03:40 +0200polyphem(~rod@p4fc2cdf8.dip0.t-ipconnect.de) polyphem
2025-04-09 09:04:08 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 09:06:54 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-04-09 09:08:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 09:17:06 +0200jco(~jco@78-70-217-44-no600.tbcn.telia.com) jco
2025-04-09 09:18:00 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2025-04-09 09:18:12 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-09 09:18:45 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2025-04-09 09:18:50 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-04-09 09:25:51 +0200 <[exa]> is there any good way to build stuff with accelerate-llvm-native without stack now? I was trying to somewhat revive the docker container but it fails (llvm 15 not available etc)
2025-04-09 09:26:18 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2025-04-09 09:34:49 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f99589ab59c7ee4b7ea.dip0.t-ipconnect.de) acidjnk
2025-04-09 09:37:08 +0200__monty__(~toonn@user/toonn) toonn
2025-04-09 09:37:12 +0200califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2025-04-09 09:37:27 +0200califax(~califax@user/califx) califx
2025-04-09 09:38:05 +0200a_fantom(~fantom@2.219.56.221)
2025-04-09 09:41:09 +0200fantom(~fantom@2.219.56.221) (Ping timeout: 244 seconds)
2025-04-09 09:41:37 +0200chele(~chele@user/chele) chele
2025-04-09 09:45:57 +0200merijn(~merijn@77.242.116.146) merijn
2025-04-09 09:51:40 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2025-04-09 09:55:47 +0200ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-04-09 09:57:06 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-04-09 09:59:17 +0200fantom(~fantom@2.219.56.221)
2025-04-09 10:01:49 +0200a_fantom(~fantom@2.219.56.221) (Ping timeout: 244 seconds)
2025-04-09 10:05:54 +0200Inst(~Inst@user/Inst) (Remote host closed the connection)
2025-04-09 10:07:48 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-04-09 10:14:12 +0200Googulator(~Googulato@2a01-036d-0106-211a-f46d-c0c9-579b-1a24.pool6.digikabel.hu) (Quit: Client closed)
2025-04-09 10:38:51 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-04-09 10:39:27 +0200j1n37-(~j1n37@user/j1n37) (Ping timeout: 268 seconds)
2025-04-09 10:41:48 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 10:48:48 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
2025-04-09 10:56:33 +0200poxel(~lennart@user/poxel) (Quit: WeeChat 4.6.0)
2025-04-09 11:00:05 +0200fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds)
2025-04-09 11:03:47 +0200fp(~Thunderbi@2001:708:150:10::1d80) fp