Home liberachat/#haskell: Logs Calendar

Logs on 2026-03-10 (liberachat/#haskell)

00:07:35 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:12:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
00:14:58 × traxex quits (traxex@user/traxex) (Ping timeout: 244 seconds)
00:16:30 skum joins (~skum@user/skum)
00:18:23 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 272 seconds)
00:20:19 jmcantrell_ joins (~weechat@user/jmcantrell)
00:22:59 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:23:35 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
00:27:40 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
00:38:41 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:44:16 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
00:45:53 × xff0x quits (~xff0x@2405:6580:b080:900:90e4:21a8:dac4:88fd) (Ping timeout: 252 seconds)
00:54:27 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:59:14 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
01:01:07 × mud quits (~mud@user/kadoban) (Remote host closed the connection)
01:07:07 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 276 seconds)
01:10:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:17:48 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
01:20:36 peterbecich joins (~Thunderbi@71.84.33.135)
01:21:27 × Tuplanolla quits (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) (Ping timeout: 255 seconds)
01:23:30 × acidjnk quits (~acidjnk@p200300d6e700e5883f4cc5b601caa082.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
01:25:29 stackdroid18 parts (~stackdroi@user/stackdroid) ()
01:29:08 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:34:35 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:35:39 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
01:47:11 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:52:09 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
01:54:15 × Kamuela quits (~kamuela@2601:18c:8203:d800:145:1034:2ba9:8fdf) (Quit: Textual IRC Client: www.textualapp.com)
01:57:55 × Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Ping timeout: 264 seconds)
02:02:57 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:04:16 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
02:08:12 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
02:08:33 arandombit joins (~arandombi@user/arandombit)
02:12:40 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 245 seconds)
02:18:52 merijn joins (~merijn@62.45.136.136)
02:23:14 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 248 seconds)
02:34:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:39:11 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
02:50:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:55:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
02:55:40 × karenw quits (~karenw@user/karenw) (Ping timeout: 276 seconds)
02:55:59 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:57:01 xff0x_ joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
02:58:17 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds)
03:00:38 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
03:02:54 xff0x_ is now known as xff0x
03:11:15 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:17:26 × Square2 quits (~Square4@user/square) (Ping timeout: 268 seconds)
03:18:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
03:18:40 × ar3ph quits (~ar3ph@user/ar3ph) (Quit: bye)
03:19:23 bggd_ joins (~bgg@2a01:e0a:fd5:f510:95b4:8c24:55ef:64fa)
03:23:48 × skum quits (~skum@user/skum) (Ping timeout: 246 seconds)
03:26:43 czan joins (~czan@user/mange)
03:27:41 × tromp quits (~textual@2001:1c00:3487:1b00:e975:d7be:a717:768f) (Ping timeout: 268 seconds)
03:29:18 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:34:11 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:44:46 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:49:38 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
03:50:30 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 268 seconds)
03:55:28 × machinedgod quits (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 256 seconds)
03:56:17 × img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in)
03:57:31 img joins (~img@user/img)
04:00:34 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:06:09 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
04:16:21 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:21:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
04:31:50 mud joins (~mud@user/kadoban)
04:32:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:33:24 Goodbye_Vincent1 joins (cyvahl@freakshells.net)
04:37:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
04:39:44 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
04:40:05 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
04:41:29 × bggd_ quits (~bgg@2a01:e0a:fd5:f510:95b4:8c24:55ef:64fa) (Remote host closed the connection)
04:47:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:48:42 × czan quits (~czan@user/mange) (Ping timeout: 268 seconds)
04:54:45 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
04:56:44 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
04:56:54 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:57:03 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
04:59:59 qqq joins (~qqq@185.54.21.187)
05:01:06 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
05:03:55 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 245 seconds)
05:11:15 × Googulator quits (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu) (Quit: Client closed)
05:11:29 Googulator joins (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu)
05:12:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:17:22 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
05:19:23 peterbecich joins (~Thunderbi@71.84.33.135)
05:23:57 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
05:24:44 × qqq quits (~qqq@185.54.21.187) (Ping timeout: 252 seconds)
05:26:43 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
05:28:01 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:28:56 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
05:32:03 qqq joins (~qqq@185.54.21.187)
05:32:56 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
05:33:03 ChaiTRex joins (~ChaiTRex@user/chaitrex)
05:40:03 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
05:42:12 × divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer)
05:42:24 divlamir joins (~divlamir@user/divlamir)
05:44:44 merijn joins (~merijn@62.45.136.136)
05:49:12 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 255 seconds)
05:49:23 ChaiTRex joins (~ChaiTRex@user/chaitrex)
05:55:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
05:57:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:03:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
06:06:15 takuan joins (~takuan@d8D86B9E9.access.telenet.be)
06:07:48 × emmanuelux quits (~em@user/emmanuelux) (Quit: bye)
06:08:21 peterbecich joins (~Thunderbi@71.84.33.135)
06:09:47 emmanuelux joins (~em@user/emmanuelux)
06:10:51 skum joins (~skum@user/skum)
06:13:41 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:18:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:26:43 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
06:28:53 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 272 seconds)
06:29:03 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:36:23 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
06:40:36 × skum quits (~skum@user/skum) (Ping timeout: 264 seconds)
06:44:57 skum joins (~skum@user/skum)
06:47:08 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:51:50 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
06:58:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:03:45 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
07:14:15 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:14:59 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:19:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
07:29:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:31:30 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
07:35:10 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
07:45:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:46:15 Axman6 joins (~Axman6@user/axman6)
07:50:09 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
07:59:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:05:51 srazkvt joins (~sarah@user/srazkvt)
08:07:04 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
08:09:21 fp1 joins (~Thunderbi@2001:708:20:1406::10c5)
08:10:09 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:31:04 chele joins (~chele@user/chele)
08:38:21 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:43:51 × emmanuelux quits (~em@user/emmanuelux) (Quit: bye)
08:44:37 danza joins (~danza@user/danza)
08:47:30 oskarw joins (~user@user/oskarw)
08:50:30 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
08:52:58 ChaiTRex joins (~ChaiTRex@user/chaitrex)
08:56:26 merijn joins (~merijn@77.242.116.146)
08:58:59 acidjnk joins (~acidjnk@p200300d6e700e52576436b4620b4c2a8.dip0.t-ipconnect.de)
09:16:40 × olivial quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
09:16:56 olivial joins (~benjaminl@user/benjaminl)
09:18:56 × chele quits (~chele@user/chele) (Remote host closed the connection)
09:21:30 chele joins (~chele@user/chele)
09:29:53 arandombit joins (~arandombi@2a02:2455:8656:7100:2149:c35e:cd23:4e9a)
09:29:53 × arandombit quits (~arandombi@2a02:2455:8656:7100:2149:c35e:cd23:4e9a) (Changing host)
09:29:53 arandombit joins (~arandombi@user/arandombit)
09:31:23 Freakie joins (~Freakie@37.96.7.244)
09:35:27 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 268 seconds)
09:39:33 <Freakie> hi, I was here a few days ago with questions about profiling my program involving BDD algorithms (in case anyone was there and remember)
09:41:31 <Freakie> over half my runtime is still spent on garbage collecting and further profiling suggests that something like 90% of all of my allocations are spent on updating a priority queue (a lot of elements are inserted). I'm not sure I can do much to help my situation but if anyone could lend some insight again I'd be grateful
09:41:59 × danza quits (~danza@user/danza) (Ping timeout: 245 seconds)
09:45:31 danza joins (~danza@user/danza)
09:50:52 <probie> How is the priority queue implemented?
09:51:50 <Freakie> I've used a typeclass as an abstraction over different implementations
09:52:09 <Freakie> mostly I've just used Data.Set, but I've also played around with MultiSet and the MinQueue from pqueue
09:52:43 <Freakie> they both seem to have the same allocation rate from what I've been able to gather from experimentation
09:54:40 <Freakie> my fear is that the priority queues just have to handle too much data but on the input sizes I need to handle to the point that rebalancing is infeasible
09:56:19 <probie> Inserting an element is always going to cause an allocation (or more). You can't really avoid that without mutation (or linearity)
09:58:01 <Freakie> the space cost just seems absurdly high still
09:58:33 <Freakie> I was considering maybe restructuring my program to reuse the priority queue between different stages of the application so the pointer is kept alive throghout
09:58:42 <Freakie> but i'm not sure if that's the right track
09:59:38 <Freakie> otherwise I should be able to take advantage of my data structure to offload a lot of the work to using lists which should prevent a lot of rebalancing (and therefore allocations)
10:00:28 <Freakie> for me the issue is just having been told multiple times that spending >50% of the runtime on GC suggests that something is wrong with the program ,so I was hoping to have some better way of evaluating that statement
10:02:26 tromp joins (~textual@2001:1c00:3487:1b00:5cb9:87bb:7dcb:d170)
10:06:33 × fp1 quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 248 seconds)
10:08:01 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 272 seconds)
10:11:08 dhil joins (~dhil@5.151.29.141)
10:16:16 <probie> Without actually seeing the code, all anyone here can do is guess. If the situation allows it, try a priority queue backed by some kind of mutable STVector, since you'll be able to enqueue/dequeue without allocations (beyond the occasional allocation to resize the backing vector)
10:16:53 × tromp quits (~textual@2001:1c00:3487:1b00:5cb9:87bb:7dcb:d170) (Ping timeout: 272 seconds)
10:19:43 arandombit joins (~arandombi@user/arandombit)
10:21:58 <Freakie> unfortunately purity is pretty essential to what i'm trying to do, which is also why I'm having a difficult time brainstorming alternatives
10:22:00 comerijn joins (~merijn@77.242.116.146)
10:24:30 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
10:27:11 danz32096 joins (~danza@user/danza)
10:29:06 × danza quits (~danza@user/danza) (Ping timeout: 248 seconds)
10:33:24 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 264 seconds)
10:39:02 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
10:39:21 <jreicher> Freakie: Just in case it helps, may I question why the garbage collection is "undesirable"? That might sound stupid, but what reason do you have to think it's not needed for your use case?
10:39:24 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
10:39:41 <jreicher> Some things just have to be GCed; that's the nature of them. (Not the implementation, but the algorithm itself)
10:40:30 <probie> Freakie: does performance improve if you make the nursery bigger? (e.g. try something like `+RTS -A64m -RTS`)
10:48:46 arandombit joins (~arandombi@user/arandombit)
10:52:22 acidjnk_new joins (~acidjnk@p200300d6e700e547f0589d3e513577e0.dip0.t-ipconnect.de)
10:55:31 × acidjnk quits (~acidjnk@p200300d6e700e52576436b4620b4c2a8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
10:56:58 <Freakie> I've thought about nursery size before but never got around to it, I guess I'll give it a try in not too long
10:57:33 <Freakie> jreicher it's "undesirable" in the sense that up to 3/4 of the actual runtime is spent not doing work but just garbage collection
10:58:30 <Freakie> obviously garbage collection is unavoidable but if the runtime explodes for reasons not directly related to the work itself (i.e., not following the asymptotics) then it should be fixed
11:00:20 <Freakie> what confuses me a little is that the algorithm has two parts that are supposed to be roughly equal in work intensity but according to my profiles (at least the eventlog2html renders of them), only one of the algorithms are truly "busy" in terms of allocations
11:00:28 <Freakie> and I'm not sure how exactly to troubleshoot that
11:03:43 xff0x joins (~xff0x@2405:6580:b080:900:cfba:7074:7dbc:e7e9)
11:10:43 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
11:11:08 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
11:20:08 × Googulator quits (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu) (Quit: Client closed)
11:20:42 Googulator joins (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu)
11:21:42 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Quit: CiaoSen)
11:23:44 Pozyomka joins (~pyon@user/pyon)
11:26:40 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
11:29:40 tristanC joins (~tristanC@user/tristanc)
11:35:20 × Googulator quits (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu) (Quit: Client closed)
11:35:34 Googulator joins (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu)
11:37:57 × pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 272 seconds)
11:39:45 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
11:40:09 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
11:42:32 × Freakie quits (~Freakie@37.96.7.244) (Quit: Client closed)
11:45:19 × danz32096 quits (~danza@user/danza) (Remote host closed the connection)
11:51:04 pabs3 joins (~pabs3@user/pabs3)
11:55:16 <comerijn> Freakie: How big is your queue?
11:56:44 <comerijn> because there's a well known blogpost from ages ago of a company struggle with Haskell GC also for a queue and part of their problem (and, I suspect, yours) was that their inherent problem involved a large liveset
11:56:56 <comerijn> And large live sets are a worst case for GHCs GC approach
11:57:09 Freakie joins (~Freakie@37.96.7.244)
11:59:44 × arandombit quits (~arandombi@user/arandombit) (Remote host closed the connection)
12:01:04 <c_wraith> Huh. I never really thought about making each entry in a container its own compact region, but there are cases where that could really reduce GC pressure. (like if there aren't all that many entries, but they have a lot of internal pointers)
12:02:47 arandombit joins (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c)
12:02:47 × arandombit quits (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c) (Changing host)
12:02:47 arandombit joins (~arandombi@user/arandombit)
12:03:37 <Freakie> I've been considering doing that as well but it's a larger process
12:03:50 <Freakie> (assuming you're responding to my previous comments)
12:14:57 __monty__ joins (~toonn@user/toonn)
12:17:29 <comerijn> Freakie: Did you see my comments?
12:17:35 <comerijn> Freakie: Also, how big is your live set?
12:18:55 <comerijn> Freakie: Also you mentioned avoiding allocations, but those are incredibly cheap so that's almost never worth it
12:19:28 <Freakie> comerijn: sorry no, I had to change locations so I haven't seen anything for the past hour
12:20:11 <Freakie> by live set do you mean maximum residency or total memory in use as per reported by +RTS -s or do you mean the number of objects that are live at a time?
12:20:21 <comerijn> Freakie: Max residency
12:20:31 <comerijn> Freakie: And I asked how big your queue was
12:21:00 <comerijn> Freakie: Note that (unlike what you may be used to from most GC languages) GHC's GC scales in live data, not garbage
12:21:17 <comerijn> Freakie: Therefore big live sets will increase your GC times quite a bit
12:21:41 <Freakie> I assume that's linked to pointers being acylic
12:21:43 <comerijn> And my other previous comment: there's a well known blogpost from ages ago of a company struggle with Haskell GC also for a queue and part of their problem (and, I suspect, yours) was that their inherent problem involved a large liveset
12:22:25 <Freakie> I don't have any metrics on the queue size but it's likely to be quite large in general because of the problem itself I'm benchmarking (encoding a boolean formula for n-queens)
12:22:35 <Freakie> doublechecking residency
12:22:40 <comerijn> Freakie: That and the fact that laziness does lots of short-lived allocations, so the GC is tuned for fast allocation and short-lived data
12:22:59 <Leary> Freakie: In future, check the logs; they're linked in the topic.
12:23:09 <Freakie> can you link the post again?
12:23:18 <comerijn> I'll have to see if I can find it
12:23:49 <comerijn> Freakie: What c_wraith mentioned might help (compact regions) those let you treat large chunks of life data as a single pointer, which will speed up GC considerably
12:24:09 <Freakie> I already had compactness in mind but the one time I tried doing it it, it seemed to have no effect
12:24:10 <comerijn> Freakie: GHC does a copy&collect (so all live data is copied into a new heap, then we just wipe the old heap)
12:24:13 <Freakie> I've done lots of small optimizations since
12:24:29 <comerijn> Freakie: The problem is that if you have 4GB residency then you're copying 4GB each GC
12:24:46 <Freakie> right now my workaround (for memory) is using concurrent GC which slightly increases runtime but significantly helps with memory consumption
12:24:52 <comerijn> Freakie: Compact regions let you dump 4GB into a single compact region and then skip copying it while it's live)
12:25:06 <comerijn> Freakie: Oh, also where you giving any specific GC flags?
12:25:29 <Freakie> for n = 7 max residency is at about 40 mb while for n = 8 it jumpts to 920 mb
12:25:33 <Freakie> in my benchmark
12:26:05 <Freakie> i've played around with concurrency (--nonmoving-gc) and --nonmoving-dense-allocator-count
12:26:18 <Freakie> nursery sizes seemed to have little effect as well
12:26:42 <comerijn> Freakie: Are you running threaded runtime and large number of capabilities?
12:26:56 <Freakie> no, I thought that would be too difficult to reason
12:26:57 <comerijn> Freakie: nonmoving-gc will generally have lower throughput
12:27:05 <comerijn> Freakie: then the regular one
12:27:29 <comerijn> The main downside of the moving GC is that it causes longer GC pauses (bad for latency sensitive/real-time applications)
12:27:47 <Freakie> nonmoving-gc roughly halved residency and total memory in use for the largest input size I've tested
12:27:47 <comerijn> But in terms of productivity the default GC is better
12:28:10 <Freakie> I mean yeah productivity suffered *technically* but the runtime was about the same
12:28:28 <Freakie> it's an acceptable time loss compared to being able to actually scale the problem (if it doesn't get worse for even greater input sizes anyway)
12:28:31 <comerijn> Freakie: Try the default GC with the -qg runtime option?
12:28:53 <comerijn> Might wanna try tweaking the number of generations too?
12:28:58 <Freakie> it didn't seem to have much of an impact when I tried but I could try again
12:29:00 <Freakie> for both of those
12:29:03 <comerijn> hmm
12:29:33 <Freakie> I'm planning on restructuring the code so that it can take use of the layout of the lists I'm working with
12:29:34 <comerijn> Freakie: this blog https://www.channable.com/tech/lessons-in-managing-haskell-memory
12:30:12 <Freakie> which shouldn't help asymptotically but should reduce the dependency on hte priority queue
12:30:44 <comerijn> What are you putting in the queue?
12:30:47 <Freakie> I'm a little unsure how compact regions might help since other than what I just mentioned I don't think there are a lot of options to separate the regions during the iterations of the algorithm itself
12:31:03 <Freakie> are you familiar with binary decision diagrams? just for the sake of terminology
12:31:20 <comerijn> Yeah
12:32:08 <Freakie> yeah so I have a list representation of the BDD nodes that I need to either work on top down or bottom up; in either case I need to get as much information as possible from the input lists before proceeding to the tail
12:32:35 <comerijn> Freakie: The point of regions is that you have, say 500 MB of data that is live for your entire algorithm then you reduce the GC cost of that data from "copy 500 MB" to "copy a pointer to the compact region"
12:32:44 <Freakie> so the priority queue gives the most relevant information based on where in the list I am
12:33:16 <comerijn> Freakie: So you're incrementally building the representation of a BDD?
12:33:35 <Freakie> yes and no? depends on the algorithm
12:33:57 <Freakie> the apply algorithm takes two bdds (lists) and outputs lists of arcs that make up an unreduced bdd
12:34:10 <Freakie> a separate algorithm then builds up the BDD again
12:34:19 <Freakie> other times it's just traversal for e.g. satcount
12:35:17 <Freakie> the point of the priority queue is to extract all relevant data from a particular node before progressing past it, but there's no neat structure in terms of compactness
12:35:31 <Freakie> because the children can be anywhere on a deeper level
12:35:31 <comerijn> Freakie: Where compact regions help is if you have a large BDD that you keep around indefinitely, by shoving it off into a compact region it basically no longer counts as live data for the GC scaling
12:36:00 <Freakie> so basically you mean pinning the BDDs while traversing them?
12:36:52 <Freakie> I think it wouldn't help much though because almost all of the allocations in my program comes manipulating the priority queue (regardless of the implementation)
12:36:56 <comerijn> Freakie: Ok, so you have some tree data structure scattered across your heap, right? Every GC you copy that entire thing to a new heap, then wipe the old. If that tree is huge and you keep it around a long time, that's a lot of continual copying
12:38:04 <comerijn> Freakie: When you create a compact region the GC copies a (transitive) data structure from the heap to a separate region, and then during GC we either free the entire region at once or only copy the pointer to the region to the new heap. Reducing GC cost from however large the data to 1 pointer
12:38:09 <Freakie> the thing is just that the BDDs themselves are not that large relative to the data allocated during the algorithms
12:38:36 <comerijn> ok, so that's probably not where your cost is
12:38:46 <Freakie> for n = 8 the largest BDD generated only has like 10k nodes while the number of insertions to the PQ can hit double digits
12:38:51 <comerijn> Freakie: The same applies for any of the data during the algorithms :)
12:39:12 <Freakie> yeah I jjust mean to say that the extra cost of traversing the input lists shouldn't be the deciding factor
12:39:26 <Freakie> I can utilize the levelwise layout of the lists though
12:39:31 <comerijn> Depends how often you trigger GC ;)
12:40:06 <comerijn> Freakie: I mean, you don't have to limit yourself to compact individual BDD. You can compact essentially any arbitrary tree of data
12:40:31 <comerijn> Including (parts) of your priority queue
12:40:33 <Freakie> I know, I'm just not working with many other data structures than the BDDs themselves (which are represented by lists, and only traversed during algorithms) and the priroity queue
12:41:02 <Freakie> maybe a compact PQ could help but then I suppose the region will just keep growing till the algorithm is done?
12:42:24 <Freakie> otherwise I was planning on using the levelwise layout of the BDD to separate the closest data (for example what needs to be processed on the current and next level) from the priority queue itself
12:42:51 <Freakie> and then sorting them lazily (i.e. when you actually need to traverse said level)
12:43:16 <Freakie> do you know if the compact regions are deep copied?
12:43:25 <Freakie> (it's desired in what I'm trying to do)
12:44:09 <comerijn> Freakie: deep copying question makes no sense
12:44:13 <comerijn> Data is immutable
12:44:31 <comerijn> A compact region is not mutable
12:44:45 <Freakie> yes but sharing is a problem in theory for what the algorithms need to do
12:45:12 <Freakie> it seems counterintuitive but it's a pretty essential part (at least if the algorithms actually manage to scale to the problem sizes they want toa ddress)
12:45:16 <comerijn> sharing or not sharing is not obsevable
12:45:48 <comerijn> Freakie: In an immutable setting, how do you think you could possibly observe whether something is shared?
12:45:53 <Freakie> I'm trying to work with I/O efficient algorithms and sharing can imply page faults
12:46:05 <Freakie> it's nothing to do with referential transparency and everything to do with data locality
12:46:12 × m1dnight_ quits (~m1dnight@141.134.26.23) (Ping timeout: 244 seconds)
12:46:27 <comerijn> At the point why not take an entirely different approach
12:46:30 <comerijn> *that
12:46:39 <Freakie> well technically it would only matter once data needs to be pushed to the disk
12:46:55 <comerijn> Why not give your data a Storable instance and just allocate blocks of memory explicitly
12:47:54 <Freakie> it would problem be something like that if I get that far
12:48:36 <Freakie> the point is more that the whole model of computation i'm working with only counts I/O operations as costful, hence *in theory* pointer sharing is problematic
12:48:56 <Freakie> the same problem can be moved to cache level
12:49:17 <Freakie> at which point in-memory sharing is also problematic
12:50:08 <Freakie> I hope it doesn't sound like I'm being difficult, I'm just working with a lot of constraints (albeit intentioanlly)
13:02:37 × Freakie quits (~Freakie@37.96.7.244) (Quit: Client closed)
13:07:24 × jreicher quits (~joelr@user/jreicher) (Ping timeout: 256 seconds)
13:07:38 × nschoe- quits (~nschoe@2a01:e0a:8e:a190:bcc4:c62f:8a83:eae8) (Quit: ZNC 1.8.2 - https://znc.in)
13:07:55 nschoe joins (~nschoe@82-65-202-30.subs.proxad.net)
13:17:19 × adamCS quits (~adamCS@70.19.85.77) (Remote host closed the connection)
13:18:33 × gabiruh quits (~gabiruh@191.252.222.55) (Quit: ZNC 1.7.5 - https://znc.in)
13:20:54 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
13:25:49 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
13:26:17 × Fijxu quits (~Fijxu@user/fijxu) (Read error: Connection reset by peer)
13:26:23 adamCS joins (~adamCS@70.19.85.77)
13:26:29 Freakie joins (~Freakie@37.96.7.244)
13:27:44 Fijxu_ joins (~Fijxu@user/fijxu)
13:30:10 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 245 seconds)
13:36:22 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
13:44:10 Square2 joins (~Square4@user/square)
13:55:36 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 264 seconds)
13:56:38 × gawen quits (~gawen@user/gawen) (Quit: cya)
13:57:25 gawen joins (~gawen@user/gawen)
14:03:57 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 246 seconds)
14:06:08 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 252 seconds)
14:08:03 arandombit joins (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c)
14:08:03 × arandombit quits (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c) (Changing host)
14:08:03 arandombit joins (~arandombi@user/arandombit)
14:11:37 × srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!)
14:11:43 st_aldini joins (~Betterbir@136.48.46.187)
14:12:57 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 268 seconds)
14:25:16 arandombit joins (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c)
14:25:16 × arandombit quits (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c) (Changing host)
14:25:16 arandombit joins (~arandombi@user/arandombit)
14:41:25 × Freakie quits (~Freakie@37.96.7.244) (Quit: Client closed)
14:48:41 Freakie joins (~Freakie@37.96.7.244)
14:53:39 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 272 seconds)
15:04:57 arandombit joins (~arandombi@user/arandombit)
15:08:33 machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net)
15:10:18 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 268 seconds)
15:19:08 chromoblob joins (~chromoblo@user/chromob1ot1c)
15:22:19 arandombit joins (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c)
15:22:19 × arandombit quits (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c) (Changing host)
15:22:19 arandombit joins (~arandombi@user/arandombit)
15:24:22 × pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer)
15:24:56 pabs3 joins (~pabs3@user/pabs3)
15:28:21 × FANTOM_ quits (~fantom@90.251.214.54) (Ping timeout: 265 seconds)
15:28:22 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 276 seconds)
15:30:17 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 265 seconds)
15:35:31 FANTOM joins (~fantom@90.251.214.54)
15:37:00 × Freakie quits (~Freakie@37.96.7.244) (Quit: Client closed)
15:38:38 danza joins (~danza@user/danza)
15:41:45 jmcantrell_ joins (~weechat@user/jmcantrell)
15:45:47 × qqq quits (~qqq@185.54.21.187) (Remote host closed the connection)
15:51:25 arandombit joins (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c)
15:51:25 × arandombit quits (~arandombi@2a02:2455:8656:7100:4919:8888:312f:1c7c) (Changing host)
15:51:25 arandombit joins (~arandombi@user/arandombit)
15:57:25 Freakie joins (~Freakie@37.96.7.244)
16:04:19 m1dnight joins (~m1dnight@d8D861A17.access.telenet.be)
16:06:54 × omnifunctor quits (~omnifunct@user/semifunctor) (Remote host closed the connection)
16:09:02 pounce joins (8a023a9e4a@user/cute/pounce)
16:14:10 prdak joins (~Thunderbi@user/prdak)
16:14:35 × Freakie quits (~Freakie@37.96.7.244) (Quit: Client closed)
16:15:27 Freakie joins (~Freakie@37.96.7.244)
16:18:41 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 252 seconds)
16:20:31 mtorpey joins (~mtorpey@pc29565.cs.st-andrews.ac.uk)
16:21:44 × rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Quit: Later)
16:22:30 rncwnd joins (~quassel@2a01:4f8:221:27c6::1)
16:23:37 × rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Client Quit)
16:24:05 rncwnd joins (~quassel@2a01:4f8:221:27c6::1)
16:26:28 × rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Client Quit)
16:26:57 rncwnd joins (~quassel@2a01:4f8:221:27c6::1)
16:27:21 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
16:28:10 × rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Client Quit)
16:28:41 rncwnd joins (~quassel@2a01:4f8:221:27c6::1)
16:30:00 × m1dnight quits (~m1dnight@d8D861A17.access.telenet.be) (Ping timeout: 255 seconds)
16:31:15 × arandombit quits (~arandombi@user/arandombit) (Remote host closed the connection)
16:32:20 × rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Client Quit)
16:32:50 rncwnd joins (~quassel@2a01:4f8:221:27c6::1)
16:37:35 × rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Client Quit)
16:37:54 rncwnd joins (~quassel@2a01:4f8:221:27c6::1)
16:40:30 Digitteknohippie joins (~user@user/digit)
16:40:36 × Digit quits (~user@user/digit) (Ping timeout: 264 seconds)
16:47:06 × Digitteknohippie quits (~user@user/digit) (Ping timeout: 255 seconds)
16:49:27 arandombit joins (~arandombi@2a02:2455:8656:7100:49ae:b06e:43ec:7652)
16:49:27 × arandombit quits (~arandombi@2a02:2455:8656:7100:49ae:b06e:43ec:7652) (Changing host)
16:49:27 arandombit joins (~arandombi@user/arandombit)
16:50:06 peterbecich joins (~Thunderbi@71.84.33.135)
16:50:11 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 272 seconds)
16:53:28 × danza quits (~danza@user/danza) (Remote host closed the connection)
17:02:08 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:09:02 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:22:38 mtorpey parts (~mtorpey@pc29565.cs.st-andrews.ac.uk) ()
17:23:07 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
17:28:18 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 248 seconds)
17:28:25 × pointlessslippe1 quits (~pointless@62.106.85.17) (Read error: Connection reset by peer)
17:28:57 jreicher joins (~joelr@user/jreicher)
17:32:34 pointlessslippe1 joins (~pointless@62.106.85.17)
17:35:37 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 248 seconds)
17:36:33 × Googulator quits (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu) (Quit: Client closed)
17:37:00 Googulator joins (~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu)
17:45:05 × tv quits (~tv@user/tv) (Read error: Connection reset by peer)
17:47:23 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
17:58:41 prdak joins (~Thunderbi@user/prdak)
18:03:19 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 264 seconds)
18:05:15 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
18:06:03 euphores joins (~SASL_euph@user/euphores)
18:07:15 ChaiTRex joins (~ChaiTRex@user/chaitrex)
18:17:24 × dhil quits (~dhil@5.151.29.141) (Ping timeout: 245 seconds)
18:18:53 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:19:51 × kaskal quits (~kaskal@2a02:8388:1a8b:7d00:6457:882b:213f:f9cd) (Quit: ZNC - https://znc.in)
18:20:09 kaskal joins (~kaskal@84-115-235-223.cable.dynamic.surfer.at)
18:22:43 m1dnight joins (~m1dnight@d8D861A17.access.telenet.be)
18:30:53 prdak joins (~Thunderbi@user/prdak)
18:31:20 × somemathguy quits (~somemathg@user/somemathguy) (Ping timeout: 268 seconds)
18:32:39 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Quit: CiaoSen)
18:32:51 somemathguy joins (~somemathg@user/somemathguy)
18:35:30 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 256 seconds)
18:45:10 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 245 seconds)
18:46:28 roconnor joins (~quassel@rocq/roconnor)
18:51:19 arandombit joins (~arandombi@user/arandombit)
18:51:36 × oskarw quits (~user@user/oskarw) (Remote host closed the connection)
18:56:00 × dolio quits (~dolio@130.44.140.168) (Ping timeout: 268 seconds)
18:56:17 dolio joins (~dolio@130.44.140.168)
19:07:02 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
19:13:45 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 248 seconds)
19:15:13 × dolio quits (~dolio@130.44.140.168) (Ping timeout: 276 seconds)
19:19:35 dolio joins (~dolio@130.44.140.168)
19:19:40 × Freakie quits (~Freakie@37.96.7.244) (Quit: Client closed)
19:34:22 × dolio quits (~dolio@130.44.140.168) (Ping timeout: 244 seconds)
19:34:39 infinity0 joins (~infinity0@pwned.gg)
19:35:55 tv joins (~tv@user/tv)
19:43:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:47:48 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
19:48:52 dolio joins (~dolio@130.44.140.168)
19:50:12 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
19:51:07 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
19:58:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:03:51 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
20:14:29 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:16:21 × somemathguy quits (~somemathg@user/somemathguy) (Ping timeout: 246 seconds)
20:21:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
20:23:47 somemathguy joins (~somemathg@user/somemathguy)
20:32:38 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:37:36 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
20:48:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:52:54 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
20:58:00 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 264 seconds)
21:03:44 dhil joins (~dhil@5.151.29.139)
21:04:06 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:06:23 Digitteknohippie joins (~user@user/digit)
21:08:24 × dhil quits (~dhil@5.151.29.139) (Ping timeout: 244 seconds)
21:08:58 Everything joins (~Everythin@172-232-54-192.ip.linodeusercontent.com)
21:09:04 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
21:19:54 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:23:06 pavonia joins (~user@user/siracusa)
21:24:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
21:26:18 × michalz quits (~michalz@185.246.207.205) (Remote host closed the connection)
21:35:29 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:36:29 Digitteknohippie is now known as Digit
21:40:26 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
21:42:03 weary-traveler joins (~user@user/user363627)
21:45:10 × malte quits (~malte@mal.tc) (Ping timeout: 245 seconds)
21:51:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:57:51 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
22:00:59 stackdroid18 joins (~stackdroi@user/stackdroid)
22:05:02 gmg joins (~user@user/gehmehgeh)
22:07:29 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 272 seconds)
22:09:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:14:20 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
22:20:05 × Everything quits (~Everythin@172-232-54-192.ip.linodeusercontent.com) (Quit: leaving)
22:21:52 humasect joins (~humasect@67.69.69.239)
22:24:47 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:30:31 × humasect quits (~humasect@67.69.69.239) (Quit: Leaving...)
22:31:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
22:35:51 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:42:44 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:42:49 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:47:36 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
22:49:09 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 265 seconds)
22:50:28 haritz joins (~hrtz@140.228.70.141)
22:50:28 × haritz quits (~hrtz@140.228.70.141) (Changing host)
22:50:28 haritz joins (~hrtz@user/haritz)
22:55:03 euphores joins (~SASL_euph@user/euphores)
22:58:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:03:30 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
23:14:23 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:14:23 Sgeo joins (~Sgeo@user/sgeo)
23:19:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
23:30:10 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:35:08 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
23:37:58 Tuplanolla joins (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi)
23:45:57 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:49:05 × mmaruseacph2 quits (~mihai@mihai.page) (Ping timeout: 265 seconds)
23:49:30 prdak joins (~Thunderbi@user/prdak)
23:49:36 mmaruseacph2 joins (~mihai@mihai.page)
23:51:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
23:51:46 emmanuelux joins (~em@user/emmanuelux)
23:53:01 × bionade24 quits (~quassel@server2.oscloud.info) (Quit: Apocalypse Incoming!)
23:53:13 bionade24 joins (~quassel@server2.oscloud.info)
23:54:09 × prdak quits (~Thunderbi@user/prdak) (Ping timeout: 255 seconds)

All times are in UTC on 2026-03-10.