| 2026-04-09 00:02:44 +0000 | olivial | (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
| 2026-04-09 00:03:00 +0000 | olivial | (~benjaminl@user/benjaminl) benjaminl |
| 2026-04-09 00:04:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-04-09 00:14:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 00:16:00 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5545ef09a087c16a42c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 2026-04-09 00:19:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-09 00:30:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 00:35:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-09 00:46:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 00:48:19 +0000 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 2026-04-09 00:48:36 +0000 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) gabiruh |
| 2026-04-09 00:49:30 +0000 | xff0x | (~xff0x@ai112096.d.east.v6connect.net) (Ping timeout: 265 seconds) |
| 2026-04-09 00:50:17 +0000 | uli-fem | (~uli-fem@115.128.112.118) |
| 2026-04-09 00:53:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-04-09 00:57:49 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-04-09 00:58:19 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) |
| 2026-04-09 01:00:56 +0000 | puke | (~puke@user/puke) (Ping timeout: 250 seconds) |
| 2026-04-09 01:04:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 01:06:24 +0000 | olivial | (~benjaminl@user/benjaminl) (Ping timeout: 246 seconds) |
| 2026-04-09 01:09:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-09 01:09:43 +0000 | tremon | (~tremon@83.80.159.219) (Remote host closed the connection) |
| 2026-04-09 01:15:20 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 252 seconds) |
| 2026-04-09 01:19:21 +0000 | olivial | (~benjaminl@user/benjaminl) benjaminl |
| 2026-04-09 01:20:36 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-09 01:31:59 +0000 | jmcantrell_ | jmcantrell |
| 2026-04-09 01:35:47 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-04-09 01:39:08 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-04-09 01:40:19 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 245 seconds) |
| 2026-04-09 01:44:58 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 01:49:29 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
| 2026-04-09 01:51:29 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 01:56:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-04-09 02:00:03 +0000 | krei-se- | (~krei-se@p5b1578ec.dip0.t-ipconnect.de) krei-se |
| 2026-04-09 02:00:25 +0000 | krei-se | (~krei-se@p5dea1d59.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-04-09 02:07:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 02:12:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-09 02:18:46 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-04-09 02:19:08 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 02:19:12 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-09 02:23:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 02:24:11 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-04-09 02:29:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-04-09 02:34:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 02:39:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-09 02:46:23 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-09 02:49:39 +0000 | krei-se- | (~krei-se@p5b1578ec.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 2026-04-09 02:50:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 02:53:13 +0000 | krei-se | (~krei-se@p5b1642b0.dip0.t-ipconnect.de) krei-se |
| 2026-04-09 02:53:43 +0000 | qqq | (~qqq@185.54.23.237) (Ping timeout: 264 seconds) |
| 2026-04-09 02:54:37 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2026-04-09 02:54:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-09 02:54:43 +0000 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-09 02:54:53 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) |
| 2026-04-09 02:54:53 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host) |
| 2026-04-09 02:54:53 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 02:55:31 +0000 | qqq | (~qqq@194.124.210.29) |
| 2026-04-09 02:59:30 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
| 2026-04-09 03:00:52 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2026-04-09 03:01:08 +0000 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 265 seconds) |
| 2026-04-09 03:01:26 +0000 | ec | (~ec@gateway/tor-sasl/ec) ec |
| 2026-04-09 03:02:19 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-04-09 03:02:49 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) |
| 2026-04-09 03:05:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 03:08:02 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Quit: xff0x) |
| 2026-04-09 03:10:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-09 03:11:16 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-09 03:11:21 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) |
| 2026-04-09 03:11:21 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host) |
| 2026-04-09 03:11:21 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 03:11:58 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-04-09 03:14:07 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2026-04-09 03:14:30 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-09 03:15:51 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-04-09 03:27:53 +0000 | divlamir_ | (~divlamir@user/divlamir) divlamir |
| 2026-04-09 03:28:26 +0000 | divlamir | (~divlamir@user/divlamir) (Ping timeout: 252 seconds) |
| 2026-04-09 03:28:44 +0000 | divlamir_ | divlamir |
| 2026-04-09 03:37:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 03:43:02 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 03:43:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-04-09 03:47:56 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 256 seconds) |
| 2026-04-09 03:52:49 +0000 | stureplan | (22e45d5caf@user/stureplan) (Ping timeout: 245 seconds) |
| 2026-04-09 03:55:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 03:56:26 +0000 | dtman34 | (~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 +0000 | dtman34 | (~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) dtman34 |
| 2026-04-09 03:59:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-09 04:10:23 +0000 | stureplan | (22e45d5caf@user/stureplan) stureplan |
| 2026-04-09 04:11:49 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) |
| 2026-04-09 04:11:49 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host) |
| 2026-04-09 04:11:49 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 04:16:49 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-04-09 04:17:01 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 265 seconds) |
| 2026-04-09 04:28:06 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2026-04-09 04:28:40 +0000 | ec | (~ec@gateway/tor-sasl/ec) ec |
| 2026-04-09 04:30:33 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) |
| 2026-04-09 04:30:33 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host) |
| 2026-04-09 04:30:33 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 04:34:58 +0000 | mulk | (~mulk@pd95147f8.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 2026-04-09 04:35:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 04:35:51 +0000 | michalz | (~michalz@185.246.207.215) |
| 2026-04-09 04:36:06 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 268 seconds) |
| 2026-04-09 04:40:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-09 04:44:16 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-09 04:47:46 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 276 seconds) |
| 2026-04-09 04:51:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 04:56:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-09 05:04:19 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) |
| 2026-04-09 05:04:19 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host) |
| 2026-04-09 05:04:19 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 05:06:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 05:09:06 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
| 2026-04-09 05:11:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-09 05:13:02 +0000 | craunts795335385 | (~craunts@152.32.99.2) |
| 2026-04-09 05:13:43 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 05:15:53 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-04-09 05:16:24 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) |
| 2026-04-09 05:18:24 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 246 seconds) |
| 2026-04-09 05:21:52 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Ping timeout: 245 seconds) |
| 2026-04-09 05:22:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 05:23:43 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5547dbd3ba66fa0822f.dip0.t-ipconnect.de) acidjnk |
| 2026-04-09 05:27:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-09 05:30:51 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 05:35:52 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
| 2026-04-09 05:36:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 05:37:56 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-04-09 05:41:16 +0000 | jreicher | (~joelr@user/jreicher) (Quit: In transit) |
| 2026-04-09 05:43:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-04-09 05:48:08 +0000 | haritzondo | (~hrtz@140.228.70.141) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-04-09 05:54:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 05:54:28 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
| 2026-04-09 05:55:02 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-04-09 05:59:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-04-09 06:01:03 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-04-09 06:09:50 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 06:10:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 06:15:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-04-09 06:26:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 06:30:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-09 06:33:19 +0000 | CiaoSen | (~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-09 06:37:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 06:42:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-09 06:44:05 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2026-04-09 06:44:21 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2026-04-09 06:44:21 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-04-09 06:44:21 +0000 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-04-09 06:44:27 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-09 06:44:47 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-09 06:45:11 +0000 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-04-09 06:46:39 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2026-04-09 06:47:20 +0000 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-04-09 06:48:37 +0000 | danza | (~danza@user/danza) danza |
| 2026-04-09 06:49:33 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-04-09 06:50:09 +0000 | igemnace | (~igemnace@user/igemnace) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in) |
| 2026-04-09 06:51:09 +0000 | igemnace | (~igemnace@user/igemnace) igemnace |
| 2026-04-09 06:53:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 06:58:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-04-09 07:11:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-09 07:12:19 +0000 | Guest81 | (~Guest11@89-75-67-71.infra.play.pl) |
| 2026-04-09 07:13:26 +0000 | Guest81 | (~Guest11@89-75-67-71.infra.play.pl) (Client Quit) |
| 2026-04-09 07:14:35 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 268 seconds) |
| 2026-04-09 07:15:04 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-04-09 07:18:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-04-09 07:23:24 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-04-09 07:25:24 +0000 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-04-09 07:25:49 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-04-09 07:26:37 +0000 | Enrico63 | (~Enrico63@host-212-171-80-94.retail.telecomitalia.it) Enrico63 |
| 2026-04-09 07:35:07 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 07:35:41 +0000 | emmanuelux | (~em@user/emmanuelux) (Read error: Connection reset by peer) |
| 2026-04-09 07:35:53 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-04-09 07:38:58 +0000 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-04-09 07:40:06 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 268 seconds) |
| 2026-04-09 07:51:25 +0000 | qqq_ | (~qqq@185.54.23.237) |
| 2026-04-09 07:52:38 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) |
| 2026-04-09 07:52:38 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host) |
| 2026-04-09 07:52:38 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 07:53:01 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 276 seconds) |
| 2026-04-09 07:54:07 +0000 | qqq | (~qqq@194.124.210.29) (Read error: Connection reset by peer) |
| 2026-04-09 07:57:16 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 256 seconds) |
| 2026-04-09 07:57:55 +0000 | qqq_ | (~qqq@185.54.23.237) (Ping timeout: 264 seconds) |
| 2026-04-09 07:58:25 +0000 | qqq | (~qqq@194.124.210.29) |
| 2026-04-09 08:01:45 +0000 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-04-09 08:07:29 +0000 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-04-09 08:07:36 +0000 | poscat | (~poscat@user/poscat) poscat |
| 2026-04-09 08:08:42 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 08:09:22 +0000 | poscat0x04 | (~poscat@user/poscat) (Ping timeout: 248 seconds) |
| 2026-04-09 08:11:17 +0000 | ft | (~ft@p508db341.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-04-09 08:12:56 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-04-09 08:33:36 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) |
| 2026-04-09 08:33:36 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:99db:133:cbd4:5b6d) (Changing host) |
| 2026-04-09 08:33:36 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 08:37:44 +0000 | qqq | (~qqq@194.124.210.29) (Ping timeout: 244 seconds) |
| 2026-04-09 08:39:49 +0000 | qqq | (~qqq@185.54.23.237) |
| 2026-04-09 08:57:40 +0000 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) (Ping timeout: 245 seconds) |
| 2026-04-09 08:59:57 +0000 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) GdeVolpiano |
| 2026-04-09 09:06:17 +0000 | danz98710 | (~danza@user/danza) danza |
| 2026-04-09 09:06:51 +0000 | danza | (~danza@user/danza) (Read error: Connection reset by peer) |
| 2026-04-09 09:06:55 +0000 | werneta | (~werneta@71.83.160.242) (Ping timeout: 264 seconds) |
| 2026-04-09 09:17:15 +0000 | pfc | (~pfc@user/pfc) pfc |
| 2026-04-09 09:22:59 +0000 | Freakie | (~Freakie@185.45.22.133) |
| 2026-04-09 09:24:08 +0000 | qqq | (~qqq@185.54.23.237) (Quit: Lost terminal) |
| 2026-04-09 09:24:17 +0000 | Pozyomka | (~pyon@user/pyon) (Ping timeout: 252 seconds) |
| 2026-04-09 09:24:44 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-04-09 09:28:37 +0000 | carbolymer | (carbolymer@delirium.systems) () |
| 2026-04-09 09:28:51 +0000 | carbolymer | (carbolymer@delirium.systems) carbolymer |
| 2026-04-09 09:34:39 +0000 | srazkvt | (~sarah@user/srazkvt) srazkvt |
| 2026-04-09 09:35:46 +0000 | uli-fem | (~uli-fem@115.128.112.118) (Ping timeout: 248 seconds) |
| 2026-04-09 09:38:19 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 276 seconds) |
| 2026-04-09 09:42:36 +0000 | jreicher | (~joelr@user/jreicher) jreicher |
| 2026-04-09 09:43:22 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 09:53:34 +0000 | carbolymer | (carbolymer@delirium.systems) () |
| 2026-04-09 09:54:11 +0000 | carbolymer | (carbolymer@delirium.systems) carbolymer |
| 2026-04-09 09:54:23 +0000 | Vajb | (~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 +0000 | Vajb | (~Vajb@n854ip96os9fc74v6iq-1.v6.elisa-mobile.fi) |
| 2026-04-09 09:58:40 +0000 | werneta | (~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 +0000 | acidjnk_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 +0000 | bggd | (~bgg@2a01:e0a:fd5:f510:eca7:61cc:3f32:5425) bggd |
| 2026-04-09 10:09:41 +0000 | bggd | (~bgg@2a01:e0a:fd5:f510:eca7:61cc:3f32:5425) (Changing host) |
| 2026-04-09 10:09:41 +0000 | bggd | (~bgg@user/bggd) bggd |
| 2026-04-09 10:10:13 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5547dbd3ba66fa0822f.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 2026-04-09 10:12:50 +0000 | puke | (~puke@user/puke) puke |
| 2026-04-09 10:13:50 +0000 | CiaoSen | (~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-04-09 10:20:32 +0000 | craunts795335385 | (~craunts@152.32.99.2) (Quit: The Lounge - https://thelounge.chat) |
| 2026-04-09 10:30:28 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 265 seconds) |
| 2026-04-09 10:30:52 +0000 | arandombit | (~arandombi@user/arandombit) (Remote host closed the connection) |
| 2026-04-09 10:36:20 +0000 | kmein | (~weechat@user/kmein) (Quit: ciao kakao) |
| 2026-04-09 10:38:30 +0000 | kmein | (~weechat@user/kmein) kmein |
| 2026-04-09 10:42:11 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-09 10:44:52 +0000 | danz98710 | (~danza@user/danza) (Remote host closed the connection) |
| 2026-04-09 10:46:46 +0000 | Enrico63 | (~Enrico63@host-212-171-80-94.retail.telecomitalia.it) (Quit: Client closed) |
| 2026-04-09 10:49:16 +0000 | Square2 | (~Square4@user/square) Square |
| 2026-04-09 10:50:47 +0000 | qqq | (~qqq@185.54.23.237) |
| 2026-04-09 11:08:39 +0000 | Googulator | (~Googulato@94-21-172-213.pool.digikabel.hu) |
| 2026-04-09 11:09:03 +0000 | CiaoSen | (~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-09 11:19:44 +0000 | Milan_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 +0000 | xff0x | (~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 +0000 | arandombit | (~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 +0000 | myme | (~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 +0000 | myme | (~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 +0000 | troydm | (~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 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2026-04-09 11:45:59 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2026-04-09 11:45:59 +0000 | haritz | (~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 +0000 | Enrico63 | (~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 +0000 | uli-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 +0000 | uli-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. |
| 2026-04-09 12:09:04 +0000 | <Milan_Vanca> | I gues compiler sees that x is not used after one_hour_long and so releases it as soon as it finish printing of x? |
| 2026-04-09 12:09:12 +0000 | <merijn> | correct |