2026/04/09

2026-04-09 00:02:44 +0000olivial(~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
2026-04-09 00:03:00 +0000olivial(~benjaminl@user/benjaminl) benjaminl
2026-04-09 00:04:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-04-09 00:14:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 00:16:00 +0000acidjnk_new3(~acidjnk@p200300d6e700e5545ef09a087c16a42c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2026-04-09 00:19:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-09 00:30:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 00:35:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-09 00:46:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 00:48:19 +0000gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
2026-04-09 00:48:36 +0000gabiruh(~gabiruh@vps19177.publiccloud.com.br) gabiruh
2026-04-09 00:49:30 +0000xff0x(~xff0x@ai112096.d.east.v6connect.net) (Ping timeout: 265 seconds)
2026-04-09 00:50:17 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-09 00:53:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-04-09 00:57:49 +0000Googulator(~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed)
2026-04-09 00:58:19 +0000Googulator(~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu)
2026-04-09 01:00:56 +0000puke(~puke@user/puke) (Ping timeout: 250 seconds)
2026-04-09 01:04:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 01:06:24 +0000olivial(~benjaminl@user/benjaminl) (Ping timeout: 246 seconds)
2026-04-09 01:09:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-09 01:09:43 +0000tremon(~tremon@83.80.159.219) (Remote host closed the connection)
2026-04-09 01:15:20 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 252 seconds)
2026-04-09 01:19:21 +0000olivial(~benjaminl@user/benjaminl) benjaminl
2026-04-09 01:20:36 +0000jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-04-09 01:31:59 +0000jmcantrell_jmcantrell
2026-04-09 01:35:47 +0000merijn(~merijn@62.45.136.136) merijn
2026-04-09 01:39:08 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-04-09 01:40:19 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 245 seconds)
2026-04-09 01:44:58 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 01:49:29 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 248 seconds)
2026-04-09 01:51:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 01:56:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-04-09 02:00:03 +0000krei-se-(~krei-se@p5b1578ec.dip0.t-ipconnect.de) krei-se
2026-04-09 02:00:25 +0000krei-se(~krei-se@p5dea1d59.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2026-04-09 02:07:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 02:12:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-09 02:18:46 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2026-04-09 02:19:08 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 02:19:12 +0000ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2026-04-09 02:23:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 02:24:11 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-04-09 02:29:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-04-09 02:34:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 02:39:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-09 02:46:23 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-04-09 02:49:39 +0000krei-se-(~krei-se@p5b1578ec.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2026-04-09 02:50:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 02:53:13 +0000krei-se(~krei-se@p5b1642b0.dip0.t-ipconnect.de) krei-se
2026-04-09 02:53:43 +0000qqq(~qqq@185.54.23.237) (Ping timeout: 264 seconds)
2026-04-09 02:54:37 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2026-04-09 02:54:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-04-09 02:54:43 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-04-09 02:54:53 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d)
2026-04-09 02:54:53 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host)
2026-04-09 02:54:53 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 02:55:31 +0000qqq(~qqq@194.124.210.29)
2026-04-09 02:59:30 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 248 seconds)
2026-04-09 03:00:52 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2026-04-09 03:01:08 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 265 seconds)
2026-04-09 03:01:26 +0000ec(~ec@gateway/tor-sasl/ec) ec
2026-04-09 03:02:19 +0000Googulator(~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed)
2026-04-09 03:02:49 +0000Googulator(~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu)
2026-04-09 03:05:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 03:08:02 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Quit: xff0x)
2026-04-09 03:10:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-09 03:11:16 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-04-09 03:11:21 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d)
2026-04-09 03:11:21 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host)
2026-04-09 03:11:21 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 03:11:58 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-04-09 03:14:07 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2026-04-09 03:14:30 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-04-09 03:15:51 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-04-09 03:27:53 +0000divlamir_(~divlamir@user/divlamir) divlamir
2026-04-09 03:28:26 +0000divlamir(~divlamir@user/divlamir) (Ping timeout: 252 seconds)
2026-04-09 03:28:44 +0000divlamir_divlamir
2026-04-09 03:37:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 03:43:02 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 03:43:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-04-09 03:47:56 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 256 seconds)
2026-04-09 03:52:49 +0000stureplan(22e45d5caf@user/stureplan) (Ping timeout: 245 seconds)
2026-04-09 03:55:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 03:56:26 +0000dtman34(~dtman34@2601:447:d183:2302:b0c5:8965:1c3f:d560) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-04-09 03:56:47 +0000dtman34(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) dtman34
2026-04-09 03:59:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-04-09 04:10:23 +0000stureplan(22e45d5caf@user/stureplan) stureplan
2026-04-09 04:11:49 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d)
2026-04-09 04:11:49 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host)
2026-04-09 04:11:49 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 04:16:49 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-04-09 04:17:01 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 265 seconds)
2026-04-09 04:28:06 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2026-04-09 04:28:40 +0000ec(~ec@gateway/tor-sasl/ec) ec
2026-04-09 04:30:33 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d)
2026-04-09 04:30:33 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host)
2026-04-09 04:30:33 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 04:34:58 +0000mulk(~mulk@pd95147f8.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2026-04-09 04:35:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 04:35:51 +0000michalz(~michalz@185.246.207.215)
2026-04-09 04:36:06 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-04-09 04:40:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-09 04:44:16 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-04-09 04:47:46 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 276 seconds)
2026-04-09 04:51:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 04:56:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-04-09 05:04:19 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d)
2026-04-09 05:04:19 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host)
2026-04-09 05:04:19 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 05:06:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 05:09:06 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 248 seconds)
2026-04-09 05:11:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-09 05:13:02 +0000craunts795335385(~craunts@152.32.99.2)
2026-04-09 05:13:43 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 05:15:53 +0000Googulator(~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed)
2026-04-09 05:16:24 +0000Googulator(~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu)
2026-04-09 05:18:24 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 246 seconds)
2026-04-09 05:21:52 +0000Googulator(~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Ping timeout: 245 seconds)
2026-04-09 05:22:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 05:23:43 +0000acidjnk_new3(~acidjnk@p200300d6e700e5547dbd3ba66fa0822f.dip0.t-ipconnect.de) acidjnk
2026-04-09 05:27:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-09 05:30:51 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 05:35:52 +0000jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 244 seconds)
2026-04-09 05:36:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 05:37:56 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-04-09 05:41:16 +0000jreicher(~joelr@user/jreicher) (Quit: In transit)
2026-04-09 05:43:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-04-09 05:48:08 +0000haritzondo(~hrtz@140.228.70.141) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-04-09 05:54:26 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 05:54:28 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2026-04-09 05:55:02 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-04-09 05:59:48 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-04-09 06:01:03 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2026-04-09 06:09:50 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 06:10:13 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 06:15:16 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-04-09 06:26:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 06:30:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-04-09 06:33:19 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen
2026-04-09 06:37:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 06:42:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-04-09 06:44:05 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2026-04-09 06:44:21 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-04-09 06:44:21 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2026-04-09 06:44:21 +0000tusko(~uwu@user/tusko) (Remote host closed the connection)
2026-04-09 06:44:27 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-04-09 06:44:47 +0000ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2026-04-09 06:45:11 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2026-04-09 06:46:39 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-04-09 06:47:20 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2026-04-09 06:48:37 +0000danza(~danza@user/danza) danza
2026-04-09 06:49:33 +0000tusko(~uwu@user/tusko) tusko
2026-04-09 06:50:09 +0000igemnace(~igemnace@user/igemnace) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in)
2026-04-09 06:51:09 +0000igemnace(~igemnace@user/igemnace) igemnace
2026-04-09 06:53:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 06:58:47 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-04-09 07:11:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-09 07:12:19 +0000Guest81(~Guest11@89-75-67-71.infra.play.pl)
2026-04-09 07:13:26 +0000Guest81(~Guest11@89-75-67-71.infra.play.pl) (Client Quit)
2026-04-09 07:14:35 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-04-09 07:15:04 +0000sord937(~sord937@gateway/tor-sasl/sord937) sord937
2026-04-09 07:18:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-04-09 07:23:24 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-04-09 07:25:24 +0000tusko(~uwu@user/tusko) (Remote host closed the connection)
2026-04-09 07:25:49 +0000tusko(~uwu@user/tusko) tusko
2026-04-09 07:26:37 +0000Enrico63(~Enrico63@host-212-171-80-94.retail.telecomitalia.it) Enrico63
2026-04-09 07:35:07 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 07:35:41 +0000emmanuelux(~em@user/emmanuelux) (Read error: Connection reset by peer)
2026-04-09 07:35:53 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-04-09 07:38:58 +0000emmanuelux(~em@user/emmanuelux) emmanuelux
2026-04-09 07:40:06 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-04-09 07:51:25 +0000qqq_(~qqq@185.54.23.237)
2026-04-09 07:52:38 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d)
2026-04-09 07:52:38 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host)
2026-04-09 07:52:38 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 07:53:01 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 276 seconds)
2026-04-09 07:54:07 +0000qqq(~qqq@194.124.210.29) (Read error: Connection reset by peer)
2026-04-09 07:57:16 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 256 seconds)
2026-04-09 07:57:55 +0000qqq_(~qqq@185.54.23.237) (Ping timeout: 264 seconds)
2026-04-09 07:58:25 +0000qqq(~qqq@194.124.210.29)
2026-04-09 08:01:45 +0000merijn(~merijn@77.242.116.146) merijn
2026-04-09 08:07:29 +0000emmanuelux(~em@user/emmanuelux) (Quit: bye)
2026-04-09 08:07:36 +0000poscat(~poscat@user/poscat) poscat
2026-04-09 08:08:42 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 08:09:22 +0000poscat0x04(~poscat@user/poscat) (Ping timeout: 248 seconds)
2026-04-09 08:11:17 +0000ft(~ft@p508db341.dip0.t-ipconnect.de) (Quit: leaving)
2026-04-09 08:12:56 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-04-09 08:33:36 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d)
2026-04-09 08:33:36 +0000arandombit(~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host)
2026-04-09 08:33:36 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 08:37:44 +0000qqq(~qqq@194.124.210.29) (Ping timeout: 244 seconds)
2026-04-09 08:39:49 +0000qqq(~qqq@185.54.23.237)
2026-04-09 08:57:40 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Ping timeout: 245 seconds)
2026-04-09 08:59:57 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2026-04-09 09:06:17 +0000danz98710(~danza@user/danza) danza
2026-04-09 09:06:51 +0000danza(~danza@user/danza) (Read error: Connection reset by peer)
2026-04-09 09:06:55 +0000werneta(~werneta@71.83.160.242) (Ping timeout: 264 seconds)
2026-04-09 09:17:15 +0000pfc(~pfc@user/pfc) pfc
2026-04-09 09:22:59 +0000Freakie(~Freakie@185.45.22.133)
2026-04-09 09:24:08 +0000qqq(~qqq@185.54.23.237) (Quit: Lost terminal)
2026-04-09 09:24:17 +0000Pozyomka(~pyon@user/pyon) (Ping timeout: 252 seconds)
2026-04-09 09:24:44 +0000Pozyomka(~pyon@user/pyon) pyon
2026-04-09 09:28:37 +0000carbolymer(carbolymer@delirium.systems) ()
2026-04-09 09:28:51 +0000carbolymer(carbolymer@delirium.systems) carbolymer
2026-04-09 09:34:39 +0000srazkvt(~sarah@user/srazkvt) srazkvt
2026-04-09 09:35:46 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 248 seconds)
2026-04-09 09:38:19 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 276 seconds)
2026-04-09 09:42:36 +0000jreicher(~joelr@user/jreicher) jreicher
2026-04-09 09:43:22 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 09:53:34 +0000carbolymer(carbolymer@delirium.systems) ()
2026-04-09 09:54:11 +0000carbolymer(carbolymer@delirium.systems) carbolymer
2026-04-09 09:54:23 +0000Vajb(~Vajb@n7m5g0hrctljxjtgjiv-1.v6.elisa-mobile.fi) (Ping timeout: 272 seconds)
2026-04-09 09:58:06 +0000 <kaol> Where's the mute button for GHC's head warning about partial functions? I don't care about them in my test suite.
2026-04-09 09:58:36 +0000Vajb(~Vajb@n854ip96os9fc74v6iq-1.v6.elisa-mobile.fi)
2026-04-09 09:58:40 +0000werneta(~werneta@71.83.160.242) werneta
2026-04-09 10:00:25 +0000 <kaol> Found it: {-# OPTIONS_GHC -Wno-warnings-deprecations #-}
2026-04-09 10:01:15 +0000 <kaol> No wait, my module just didn't compile. I must have been hitting :r already.
2026-04-09 10:06:44 +0000acidjnk_new(~acidjnk@p200300d6e700e536bdd7e91e7ee797c5.dip0.t-ipconnect.de) acidjnk
2026-04-09 10:08:25 +0000 <tomsmeding> kaol: -Wno-x-partial
2026-04-09 10:09:05 +0000 <tomsmeding> and if you want to also compile with GHC <9.8, also -Wno-recognised-warnings-flags
2026-04-09 10:09:41 +0000bggd(~bgg@2a01:e0a:fd5:f510:eca7:61cc:3f32:5425) bggd
2026-04-09 10:09:41 +0000bggd(~bgg@2a01:e0a:fd5:f510:eca7:61cc:3f32:5425) (Changing host)
2026-04-09 10:09:41 +0000bggd(~bgg@user/bggd) bggd
2026-04-09 10:10:13 +0000acidjnk_new3(~acidjnk@p200300d6e700e5547dbd3ba66fa0822f.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2026-04-09 10:12:50 +0000puke(~puke@user/puke) puke
2026-04-09 10:13:50 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2026-04-09 10:20:32 +0000craunts795335385(~craunts@152.32.99.2) (Quit: The Lounge - https://thelounge.chat)
2026-04-09 10:30:28 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 265 seconds)
2026-04-09 10:30:52 +0000arandombit(~arandombi@user/arandombit) (Remote host closed the connection)
2026-04-09 10:36:20 +0000kmein(~weechat@user/kmein) (Quit: ciao kakao)
2026-04-09 10:38:30 +0000kmein(~weechat@user/kmein) kmein
2026-04-09 10:42:11 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-09 10:44:52 +0000danz98710(~danza@user/danza) (Remote host closed the connection)
2026-04-09 10:46:46 +0000Enrico63(~Enrico63@host-212-171-80-94.retail.telecomitalia.it) (Quit: Client closed)
2026-04-09 10:49:16 +0000Square2(~Square4@user/square) Square
2026-04-09 10:50:47 +0000qqq(~qqq@185.54.23.237)
2026-04-09 11:08:39 +0000Googulator(~Googulato@94-21-172-213.pool.digikabel.hu)
2026-04-09 11:09:03 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen
2026-04-09 11:19:44 +0000Milan_Vanca(~milan@user/Milan-Vanca:32634) Milan_Vanca
2026-04-09 11:23:48 +0000 <Milan_Vanca> Hello guyz, is there a rule that says when will something be reused or computed anew?
2026-04-09 11:24:57 +0000 <mauke> depends on what you mean by "something", I guess
2026-04-09 11:25:53 +0000 <mauke> my rule of thumb is that if it's bound to a name and has no class constraints in the type, it's reused
2026-04-09 11:26:51 +0000xff0x(~xff0x@2405:6580:b080:900:af0a:3044:7ec:45a0)
2026-04-09 11:28:43 +0000 <Milan_Vanca> Not sure if I understand what "bound to name" means.
2026-04-09 11:28:50 +0000 <Freakie> let x = 2 * 4
2026-04-09 11:29:07 +0000 <Milan_Vanca> what about pi = 3.14
2026-04-09 11:29:09 +0000 <Freakie> the expression 2 * 4 is bound to the name x
2026-04-09 11:29:16 +0000 <Milan_Vanca> is 3.14 bound to name pi?
2026-04-09 11:29:27 +0000 <Freakie> are you familiar with lambda calculus?
2026-04-09 11:29:27 +0000 <Milan_Vanca> I mean function definition in module
2026-04-09 11:29:35 +0000 <mauke> yes, but there's nothing to calculuate there
2026-04-09 11:29:46 +0000 <mauke> s/ua/a/
2026-04-09 11:29:56 +0000 <Freakie> let expressions are just syntactic sugar for lambda functions
2026-04-09 11:30:17 +0000 <mauke> Freakie: not really
2026-04-09 11:30:30 +0000 <mauke> due to recursion and polymorphism
2026-04-09 11:30:43 +0000 <Freakie> well I'm not sure if they are in haskell specifically but it was more to illustrate what is meant by name binding
2026-04-09 11:31:58 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-04-09 11:32:14 +0000 <Milan_Vanca> Imaigne function heavy :: Map Int Int and Imagine another function that uses heavy in its body multiple times... I think haskell implementation is free to even recompute heavy or reuse it
2026-04-09 11:32:16 +0000 <Freakie> Milan_Vanca but I think in general if you bind an expression to a variable it should only be computed once, whereas if you call the same function with the same arguments it should recompute it
2026-04-09 11:32:29 +0000 <Freakie> not sure if there are some program analyses that can optimize it out
2026-04-09 11:32:49 +0000 <mauke> Milan_Vanca: that's not a function
2026-04-09 11:32:50 +0000 <Freakie> i mean heavy wouldn't be a function, it would just be an expression
2026-04-09 11:33:59 +0000 <Freakie> if you're unsure you can always write some code that calls it and add some debug traces
2026-04-09 11:35:49 +0000 <Freakie> also I've asked before but I'm hoping someone knows more than I do; does anyone know of an effective way to link dependencies installed through cabal when doing FFI from Haskell to C++?
2026-04-09 11:36:16 +0000 <Milan_Vanca> mauke: Is the distiction necessary?
2026-04-09 11:36:36 +0000 <Freakie> the only way I've found to do it seems to be to manually give the install locations as arguments during the linking phase but that is extremely cumbersome and error-prone
2026-04-09 11:36:57 +0000 <mauke> Milan_Vanca: depends. necessary for what?
2026-04-09 11:38:05 +0000myme(~myme@2a01:799:d5e:5f00:fdf3:5ded:cda8:566f) (Ping timeout: 245 seconds)
2026-04-09 11:38:58 +0000 <Milan_Vanca> heavy_pi :: Double main = print heavy_pi; print heavy_pi...
2026-04-09 11:39:09 +0000myme(~myme@2a01:799:d5e:5f00:374a:96c4:fb0d:7007) myme
2026-04-09 11:39:51 +0000 <Milan_Vanca> maybe i am missing "do"
2026-04-09 11:41:00 +0000 <Freakie> you need do notation when in the IO monad
2026-04-09 11:41:01 +0000troydm(~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2026-04-09 11:41:28 +0000 <Freakie> to answer your question though, pure expressions will only be evaluated once (heavy_pi :: Double etc)
2026-04-09 11:41:30 +0000 <mauke> you never "need" do notation
2026-04-09 11:42:02 +0000 <tomsmeding> Milan_Vanca: using a variable name multiple times does not result in its definition being computed multiple times, except when that variable is secretly a function
2026-04-09 11:42:48 +0000 <mauke> (where "secretly a function" is that class constraints thing I was talking about)
2026-04-09 11:42:56 +0000 <tomsmeding> variables can be secretly functions if they are actually polymorphic with a typeclass argument, such as `x = 4`
2026-04-09 11:43:18 +0000 <tomsmeding> there we have `x :: Num a => a`, and x's value is different for each type you can fill in for `a`
2026-04-09 11:43:26 +0000 <Milan_Vanca> so x in your example is function and wont be reused?
2026-04-09 11:43:42 +0000 <tomsmeding> thus it's really a function: from the "Num a" evidence to the resulting value; the `=>` arrow should be read as a function arrow here
2026-04-09 11:43:53 +0000 <tomsmeding> Milan_Vanca: indeed, because it _cannot_ be reused: its value is different at different types 'a'!
2026-04-09 11:44:20 +0000 <mauke> well...
2026-04-09 11:44:22 +0000 <tomsmeding> what GHC _could_ do is reuse x when used twice at the same type; whether that actually happens depends on what GHC's optimiser decides to do, no guarantees
2026-04-09 11:44:30 +0000 <Freakie> I mean if called with the same type argument it should reuse the expression?
2026-04-09 11:44:31 +0000 <Milan_Vanca> yeah but in example of main = do print x; print x it is always same right? should not be reevaluated?
2026-04-09 11:44:35 +0000 <mauke> functions are also reused
2026-04-09 11:44:50 +0000 <mauke> but it sounds like you're talking about the result of a function
2026-04-09 11:45:14 +0000 <Freakie> if x is a value from a non-deterministic monad it should be recomputed
2026-04-09 11:45:25 +0000 <tomsmeding> assuming you mean `print (x :: Int)`, that compiles to something like `main = print (x dNumInt) >> print (x dNumInt)`, where dNumInt is the "Num Int" type class dictionary (evidence)
2026-04-09 11:45:26 +0000 <mauke> Freakie: ?
2026-04-09 11:45:59 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2026-04-09 11:45:59 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2026-04-09 11:45:59 +0000haritz(~hrtz@user/haritz) haritz
2026-04-09 11:46:00 +0000 <tomsmeding> then GHC can decide to do common subexpression elimination, and rewrite that to `main = let x' = x dNumInt in print x' >> print x'`, but GHC may or may not decide to do this
2026-04-09 11:46:21 +0000 <tomsmeding> at which point, `x' :: Int` and is a normal variable, so that `print x' >> print x'` will definitely compute x only once
2026-04-09 11:47:10 +0000 <tomsmeding> Freakie: the only way I can make sense of that is `unsafePerformIO (uniform <$> newStdGen)` or whatever the precise API is of System.Random
2026-04-09 11:47:23 +0000 <Freakie> would it have to use unsafePerformIO?
2026-04-09 11:47:24 +0000 <tomsmeding> in which case, well, you're using unsafePerformIO, you better know what you're doing
2026-04-09 11:47:29 +0000 <Milan_Vanca> what about main = do print x; print x; ... lot of other code; print x will last x be kept or recomputed?
2026-04-09 11:47:37 +0000 <tomsmeding> Freakie: yes, because without IO, everything is pure and hence deterministic
2026-04-09 11:47:40 +0000 <mauke> Milan_Vanca: depends on the type of x
2026-04-09 11:48:03 +0000 <tomsmeding> if x has a monomorphic type, reused; if x has a polymorphic type with type class constraints, recomputed (likely)
2026-04-09 11:48:04 +0000 <Milan_Vanca> the same as first one
2026-04-09 11:48:12 +0000 <mauke> first what?
2026-04-09 11:48:29 +0000 <Freakie> tomsmeding we're not strictly talking purity here though
2026-04-09 11:48:51 +0000 <Milan_Vanca> tomsmeding showed that x will be computed only once.. so first 2 will be reused then forgoten then recomputed?
2026-04-09 11:49:03 +0000 <mauke> what
2026-04-09 11:49:11 +0000 <tomsmeding> Milan_Vanca: no, you cannot say anything about your example unless you know what the type of x is
2026-04-09 11:49:24 +0000 <tomsmeding> if x :: Int, then x will be computed only once
2026-04-09 11:49:33 +0000Enrico63(~Enrico63@host-212-171-80-94.pool212171.interbusiness.it) Enrico63
2026-04-09 11:49:43 +0000 <Freakie> it's also tricky because if you assume *any* number of instructions you can't say anything register allocation
2026-04-09 11:49:44 +0000 <tomsmeding> if x :: Num a => a, or Show a => [a], or something like that, then it will (likely!) be recomputed
2026-04-09 11:49:53 +0000 <Freakie> if it can't fit in the registers it will have to be recomputed
2026-04-09 11:49:55 +0000 <Freakie> (I think)
2026-04-09 11:49:59 +0000 <mauke> Freakie: ???
2026-04-09 11:50:06 +0000 <Milan_Vanca> ?
2026-04-09 11:50:18 +0000 <tomsmeding> Freakie: we're talking about the semantic level here, where reading the value from memory doesn't count as recomputation
2026-04-09 11:50:38 +0000 <Freakie> i guess memoization invalidates what I just said yeah
2026-04-09 11:50:39 +0000 <tomsmeding> if you want to know whether a memory read will occur, well, good luck reading the assembly, no guarantees
2026-04-09 11:51:00 +0000 <tomsmeding> (that's like 4 abstraction levels down suddenly from what we were talking about_)
2026-04-09 11:51:08 +0000 <Milan_Vanca> what about this?
2026-04-09 11:51:10 +0000 <Milan_Vanca> https://paste.tomsmeding.com/resvyMiU
2026-04-09 11:51:22 +0000 <tomsmeding> Milan_Vanca: precisely that code, without any type annotations?
2026-04-09 11:51:30 +0000 <mauke> depends on the type of x
2026-04-09 11:51:37 +0000 <mauke> which depends on whether the monomorphism restriction is on
2026-04-09 11:51:38 +0000 <Milan_Vanca> Lets say yes
2026-04-09 11:52:01 +0000 <tomsmeding> if precisely that code, then `x = 4` desugars to `x = fromInteger (4::Integer)`, and you get `x :: Num a => a`
2026-04-09 11:52:04 +0000 <Milan_Vanca> mauke: Can I decide if it is on or not?
2026-04-09 11:52:17 +0000 <tomsmeding> that call `fromInteger (4::Integer)` will likely be recomputed, but whether that actually happens depends on the GHC optimiser
2026-04-09 11:52:55 +0000 <mauke> Milan_Vanca: yes, https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/monomorphism.html#extension-MonomorphismRe…
2026-04-09 11:53:01 +0000 <mauke> turning it off is a language extension
2026-04-09 11:53:26 +0000 <tomsmeding> oh, mauke is right
2026-04-09 11:53:32 +0000__monty__(~toonn@user/toonn) toonn
2026-04-09 11:53:53 +0000 <tomsmeding> x will get a monomorphic type here (probably defaulting to Integer) because MonomorphismRestriction is on by default
2026-04-09 11:54:16 +0000 <mauke> with MR on, it kinda desugars to 'x = fromInteger (4::Integer) :: Integer' :-)
2026-04-09 11:54:42 +0000 <tomsmeding> at which point the fromInteger is likely optimised away, but that's irrelevant to the point of whether things are computed once or more than once
2026-04-09 11:54:44 +0000 <mauke> except '4::Integer' is not actually expressible in Haskell; it's a native Integer literal
2026-04-09 11:54:48 +0000 <tomsmeding> yeah
2026-04-09 11:54:54 +0000 <Milan_Vanca> I haven't disabled it so I guess it is enabled and thus x will be recomputed... got it.. Had I done something like this
2026-04-09 11:54:59 +0000 <Milan_Vanca> https://paste.tomsmeding.com/U94PhW5b
2026-04-09 11:55:11 +0000 <tomsmeding> Milan_Vanca: no, MR is enabled so x will NOT be recomputed
2026-04-09 11:55:13 +0000 <tomsmeding> please read
2026-04-09 11:55:14 +0000 <mauke> Milan_Vanca: no, MR prevents recomputation of x
2026-04-09 11:55:40 +0000 <tomsmeding> yep, in that example x will be computed once, and it's clearer from the source that that is os
2026-04-09 11:55:42 +0000 <tomsmeding> *so
2026-04-09 11:56:28 +0000 <tomsmeding> in general, whether a value is recomputed or not in haskell depends on the type of things and whether things are in the same scope, not how much code is in between the references
2026-04-09 11:56:34 +0000 <tomsmeding> there's no "limited-time caching" going on
2026-04-09 11:57:11 +0000 <tomsmeding> there could be, if you interpret the semantics loosely, but that would result in extremely unpredictable performance and memory use and hence GHC does not do that
2026-04-09 11:57:29 +0000 <tomsmeding> (there's enough unpredictability as it is)
2026-04-09 11:59:13 +0000 <Milan_Vanca> So basically If instead of X I allocated gigantic bytestring.. it would be ketp in memory for whole time program is running?
2026-04-09 11:59:34 +0000 <tomsmeding> until you don't have any references to it any more
2026-04-09 11:59:44 +0000 <mauke> yes
2026-04-09 11:59:46 +0000 <tomsmeding> because once a value has no references to it any more, the garbage collector (GC) cleans it up
2026-04-09 12:00:44 +0000 <Milan_Vanca> I thought so.. what about this example https://paste.tomsmeding.com/C5RBYVCY
2026-04-09 12:01:00 +0000 <Milan_Vanca> There is recursion.. and there is only one reference to x
2026-04-09 12:01:09 +0000 <Milan_Vanca> This must be recomputed multiple times right?
2026-04-09 12:01:18 +0000 <merijn> No
2026-04-09 12:01:33 +0000 <mauke> you can test it, btw
2026-04-09 12:01:44 +0000 <merijn> `x` is not polymorphic and not "function-like" so the MMR doesn't apply
2026-04-09 12:02:08 +0000 <mauke> import Debug.Trace (trace); x :: Int; x = trace "computing x" (4 + 1)
2026-04-09 12:02:21 +0000 <tomsmeding> apparently GHC does decide to keep `x` in your print x >> print x example; click Core here: https://play.haskell.org/saved/4XJoAJ1A
2026-04-09 12:02:41 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-09 12:03:22 +0000 <tomsmeding> Milan_Vanca: the recursive function 'main' has a reference to x, and main stays alive (because it loops), so its reference to x also stays alive, so the GC does not remove x
2026-04-09 12:03:37 +0000 <mauke> also, x is a global variable
2026-04-09 12:03:43 +0000 <mauke> are those ever released?
2026-04-09 12:03:50 +0000 <tomsmeding> they can be, yes
2026-04-09 12:04:13 +0000 <merijn> mauke: Yes
2026-04-09 12:04:37 +0000 <merijn> mauke: It's a CAF, those can be GCed just fine if nothing references them anymore
2026-04-09 12:04:39 +0000 <tomsmeding> on a higher level: x is a monomorphic variable, so its value will live (once computed) until it goes out of scope -- or potentially for even longer if GHC decides so
2026-04-09 12:05:08 +0000 <tomsmeding> here x is a global variable, so it never goes out of scope, so it lives forever (until the GC decides that it's pointless keeping it around because nothing references it any more)
2026-04-09 12:07:42 +0000 <Milan_Vanca> Will https://paste.tomsmeding.com/XLBvdfd1 will x be in memory while one_hour_long computation runs?
2026-04-09 12:07:44 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 268 seconds)
2026-04-09 12:08:02 +0000 <Milan_Vanca> Sorry to bother you with these stupid questions but I have found no tutorial on this matter.