| 2026-06-08 00:04:29 +0000 | acidjnk | (~acidjnk@p200300d6e700e50741512d8f957d2df5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-06-08 00:05:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 00:10:16 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 245 seconds) |
| 2026-06-08 00:10:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-08 00:21:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 00:26:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-08 00:27:39 +0000 | _\_ | (~o@user/offon) (Quit: ___) |
| 2026-06-08 00:28:06 +0000 | _\_ | (~o@user/offon) offon |
| 2026-06-08 00:37:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 00:37:58 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-06-08 00:41:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-08 00:52:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 00:57:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-06-08 01:10:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 01:15:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 253 seconds) |
| 2026-06-08 01:26:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 01:29:40 +0000 | fgarcia | (~lei@user/fgarcia) (Ping timeout: 252 seconds) |
| 2026-06-08 01:33:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-08 01:35:32 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-08 01:36:07 +0000 | rainbyte | (~rainbyte@181.47.219.31) (Read error: Connection reset by peer) |
| 2026-06-08 01:37:09 +0000 | rainbyte | (~rainbyte@181.47.219.31) rainbyte |
| 2026-06-08 01:40:02 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 248 seconds) |
| 2026-06-08 01:44:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 01:49:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 267 seconds) |
| 2026-06-08 01:50:10 +0000 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2026-06-08 01:59:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 02:04:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-08 02:09:30 +0000 | td_ | (~td@i5387090E.versanet.de) (Ping timeout: 241 seconds) |
| 2026-06-08 02:11:42 +0000 | td_ | (~td@i53870937.versanet.de) |
| 2026-06-08 02:15:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 02:16:44 +0000 | karenw | (~karenw@user/karenw) (Quit: Deep into that darkness peering...) |
| 2026-06-08 02:19:01 +0000 | rekahsoft | (~rekahsoft@70.51.99.119) rekahsoft |
| 2026-06-08 02:21:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 259 seconds) |
| 2026-06-08 02:31:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 02:35:48 +0000 | wickedjargon | (~user@2605:8d80:8100:486:a645:88dd:2cda:7f4) wickedjargon |
| 2026-06-08 02:36:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-08 02:47:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 02:52:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-08 02:52:46 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:3035:8c54:ee2a:4632) (Quit: ricardomaps) |
| 2026-06-08 03:02:17 +0000 | rekahsoft | (~rekahsoft@70.51.99.119) (Remote host closed the connection) |
| 2026-06-08 03:03:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 03:10:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-08 03:10:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 03:15:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-08 03:23:30 +0000 | Inline | (~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (Ping timeout: 248 seconds) |
| 2026-06-08 03:26:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 03:26:54 +0000 | Guest56 | (~Guest56@2601:645:8101:ead:1598:8824:ff53:79f0) |
| 2026-06-08 03:31:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-08 03:35:33 +0000 | Axman6 | (~Axman6@user/axman6) Axman6 |
| 2026-06-08 03:42:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 03:46:38 +0000 | wickedjargon | (~user@2605:8d80:8100:486:a645:88dd:2cda:7f4) (Remote host closed the connection) |
| 2026-06-08 03:47:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-08 03:58:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 04:03:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-08 04:08:50 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-06-08 04:09:05 +0000 | Guest56 | (~Guest56@2601:645:8101:ead:1598:8824:ff53:79f0) (Quit: Client closed) |
| 2026-06-08 04:14:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 04:19:19 +0000 | misterfish | (~misterfis@178.230.150.156) (Ping timeout: 272 seconds) |
| 2026-06-08 04:19:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 242 seconds) |
| 2026-06-08 04:26:39 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 252 seconds) |
| 2026-06-08 04:30:13 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-06-08 04:30:23 +0000 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 242 seconds) |
| 2026-06-08 04:34:54 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 245 seconds) |
| 2026-06-08 04:37:32 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-08 04:45:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 04:52:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-08 04:54:17 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-06-08 04:58:13 +0000 | zalo-rocky | (~flyingzal@186.19.88.142) (Quit: The Lounge - https://thelounge.chat) |
| 2026-06-08 05:02:13 +0000 | michalz | (~michalz@185.246.207.221) |
| 2026-06-08 05:02:27 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-06-08 05:03:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 05:06:35 +0000 | Axman6 | (~Axman6@user/axman6) Axman6 |
| 2026-06-08 05:09:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-06-08 05:11:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 05:17:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-06-08 05:25:50 +0000 | fp1 | (~Thunderbi@wireless-86-50-141-161.open.aalto.fi) fp |
| 2026-06-08 05:27:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 05:31:33 +0000 | Axma32385 | (~Axman6@user/axman6) Axman6 |
| 2026-06-08 05:33:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-06-08 05:33:25 +0000 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 245 seconds) |
| 2026-06-08 05:34:05 +0000 | Axma32385 | Axman6 |
| 2026-06-08 05:37:53 +0000 | Enrico63 | (~Enrico63@host-95-247-196-30.retail.telecomitalia.it) Enrico63 |
| 2026-06-08 05:39:50 +0000 | CiaoSen | (~Jura@2a02:3035:bec:2995:4e50:ddff:fe9b:8922) CiaoSen |
| 2026-06-08 05:42:37 +0000 | djspacewhale | (~djspacewh@user/djspacewhale) djspacewhale |
| 2026-06-08 05:42:55 +0000 | djspacewhale | (~djspacewh@user/djspacewhale) (Remote host closed the connection) |
| 2026-06-08 05:43:27 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 05:46:06 +0000 | fp1 | (~Thunderbi@wireless-86-50-141-161.open.aalto.fi) (Ping timeout: 241 seconds) |
| 2026-06-08 05:48:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-08 05:49:42 +0000 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2026-06-08 05:55:50 +0000 | Square | (~Square4@user/square) Square |
| 2026-06-08 05:56:13 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-06-08 05:59:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 06:00:36 +0000 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2026-06-08 06:03:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 251 seconds) |
| 2026-06-08 06:12:49 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-06-08 06:12:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 06:16:15 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Client Quit) |
| 2026-06-08 06:17:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-08 06:21:40 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-06-08 06:26:34 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-06-08 06:28:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 06:35:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 259 seconds) |
| 2026-06-08 06:39:55 +0000 | Enrico63 | (~Enrico63@host-95-247-196-30.retail.telecomitalia.it) (Quit: Client closed) |
| 2026-06-08 06:40:31 +0000 | Leary | (~Leary@user/Leary/x-0910699) (Remote host closed the connection) |
| 2026-06-08 06:40:49 +0000 | Leary | (~Leary@user/Leary/x-0910699) Leary |
| 2026-06-08 06:46:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 06:51:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-08 07:02:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 07:04:14 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 256 seconds) |
| 2026-06-08 07:04:22 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-06-08 07:07:55 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
| 2026-06-08 07:07:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-06-08 07:09:53 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-06-08 07:13:05 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-06-08 07:13:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 07:15:10 +0000 | krei-se | (~krei-se@p5098b7b3.dip0.t-ipconnect.de) (Quit: ZNC 1.9.1 - https://znc.in) |
| 2026-06-08 07:17:45 +0000 | krei-se | (~krei-se@photonen.krei.se) krei-se |
| 2026-06-08 07:18:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-06-08 07:18:47 +0000 | APic | (apic@chiptune.apic.name) (Ping timeout: 244 seconds) |
| 2026-06-08 07:18:54 +0000 | danza | (~danza@user/danza) danza |
| 2026-06-08 07:29:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-08 07:33:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-08 07:35:37 +0000 | APic | (apic@chiptune.apic.name) APic |
| 2026-06-08 07:35:38 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-08 07:40:06 +0000 | CiaoSen | (~Jura@2a02:3035:bec:2995:4e50:ddff:fe9b:8922) (Ping timeout: 246 seconds) |
| 2026-06-08 07:40:37 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 276 seconds) |
| 2026-06-08 07:46:12 +0000 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-06-08 07:55:08 +0000 | CiaoSen | (~Jura@2a02:3035:bec:2995:4e50:ddff:fe9b:8922) CiaoSen |
| 2026-06-08 07:57:20 +0000 | p3n | (~p3n@217.198.124.246) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-06-08 07:58:07 +0000 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) p3n |
| 2026-06-08 08:00:43 +0000 | danza | (~danza@user/danza) (Ping timeout: 252 seconds) |
| 2026-06-08 08:04:34 +0000 | hc_ | (~hc@mail.hce.li) hc |
| 2026-06-08 08:06:39 +0000 | hc | (~hc@mail.hce.li) (Ping timeout: 252 seconds) |
| 2026-06-08 08:09:28 +0000 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-06-08 08:11:14 +0000 | bandola | (~bandola@c-5eea527c-74736162.cust.telenor.se) |
| 2026-06-08 08:14:57 +0000 | bandola | (~bandola@c-5eea527c-74736162.cust.telenor.se) (Changing host) |
| 2026-06-08 08:14:57 +0000 | bandola | (~bandola@user/bandola) bandola |
| 2026-06-08 08:15:48 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 2026-06-08 08:15:48 +0000 | Freakie | (~Freakie@185.45.21.144) |
| 2026-06-08 08:17:19 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-06-08 08:21:41 +0000 | hc_ | hc |
| 2026-06-08 08:22:00 +0000 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-06-08 08:27:40 +0000 | Inline | (~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) Inline |
| 2026-06-08 08:28:23 +0000 | ft | (~ft@p508db0ab.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-06-08 08:37:16 +0000 | <Freakie> | does anyone know where I can find some resources on how major garbage collections are triggered? |
| 2026-06-08 08:45:46 +0000 | vivaldi` | (~ident@user/blackbox) (Quit: vivaldi`) |
| 2026-06-08 08:51:21 +0000 | Digit | (~user@user/digit) (Ping timeout: 248 seconds) |
| 2026-06-08 08:51:30 +0000 | Digitteknohippie | (~user@user/digit) Digit |
| 2026-06-08 08:56:24 +0000 | <merijn> | Freakie: GHC wiki, this https://ezyang.com/jfp-ghc-rts-draft.pdf, and maybe the GHC manual? |
| 2026-06-08 08:57:23 +0000 | <Freakie> | I'll have a look but the places I looked only mentioned as a result of heap overflow, but that doesn't really align with how I understand my experiments to work |
| 2026-06-08 08:59:18 +0000 | <merijn> | Heap overflow? I thought heap as unbounded, sound like you're straight up running the entire system out of memory? |
| 2026-06-08 09:01:15 +0000 | Axma40140 | (~Axman6@user/axman6) Axman6 |
| 2026-06-08 09:04:00 +0000 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 277 seconds) |
| 2026-06-08 09:10:46 +0000 | ss4 | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2026-06-08 09:11:01 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-06-08 09:11:20 +0000 | Digitteknohippie | Digit |
| 2026-06-08 09:12:22 +0000 | <Freakie> | overflow in the sense that the program needs to allocate more |
| 2026-06-08 09:12:31 +0000 | <tomsmeding> | more than what? |
| 2026-06-08 09:13:11 +0000 | <tomsmeding> | (What is the underlying reason why you want to know about this?) |
| 2026-06-08 09:15:42 +0000 | bandola | (~bandola@user/bandola) (Ping timeout: 256 seconds) |
| 2026-06-08 09:16:07 +0000 | bandola | (~bandola@c-5eea53c4-74736162.cust.telenor.se) |
| 2026-06-08 09:18:38 +0000 | <tomsmeding> | ok the user guide also speaks of "heap overflow" https://downloads.haskell.org/ghc/latest/docs/users_guide/hints.html#understanding-how-os-memory-u… |
| 2026-06-08 09:19:46 +0000 | <Freakie> | the runtime still needs to request memory from the OS whenever it runs out of addressable space |
| 2026-06-08 09:19:59 +0000 | <Freakie> | that's what I mean by overflow |
| 2026-06-08 09:20:08 +0000 | <Freakie> | as far as I understand it was one of the things that triggered major GC |
| 2026-06-08 09:20:08 +0000 | <tomsmeding> | right |
| 2026-06-08 09:20:47 +0000 | <Freakie> | anyway I'm running an experiment on an implementation where I use 4 MiB for the nursery size, and 32 MiB |
| 2026-06-08 09:21:11 +0000 | <Freakie> | the expectation is (and holds) that higher nursery size gives better performance with what I'm doing but it turns out to only be because higher nursery size correlates with fewer major garbage collections |
| 2026-06-08 09:21:16 +0000 | <Freakie> | which is the part I'm trying to understand why |
| 2026-06-08 09:21:29 +0000 | <tomsmeding> | well, GC takes time |
| 2026-06-08 09:21:47 +0000 | <Freakie> | yes but that's not what's making the difference in my prgoram |
| 2026-06-08 09:22:44 +0000 | <tomsmeding> | GC is O(live data); if you consistently allocate stuff but have a constant-size live data set, then a GC pass will consist of "iterate over your live data and forget all else". Then doing GC fewer times will use more peak memory but spend less time. |
| 2026-06-08 09:23:12 +0000 | <tomsmeding> | the flip side is that spending more memory means less memory locality hence worse cache behaviour, potentially, though that depends very much on the sizes of everything involved |
| 2026-06-08 09:23:32 +0000 | <Freakie> | what I'm trying to say is that I don't know why having larger nurseries correlates to *performing* less major GC |
| 2026-06-08 09:23:45 +0000 | <Freakie> | because that shouldn't have any effect on the allocation throughput |
| 2026-06-08 09:24:01 +0000 | <tomsmeding> | GC runs when the nursery is exhausted |
| 2026-06-08 09:24:08 +0000 | <tomsmeding> | I'm not sure whether it's minor or major, but GC definitely runs |
| 2026-06-08 09:24:11 +0000 | <Freakie> | isn't that only minor gc? |
| 2026-06-08 09:24:19 +0000 | <Freakie> | it should only be minor |
| 2026-06-08 09:28:17 +0000 | <Freakie> | but my point is that the exact triggers for major GC seems quite opaque to me beyond doing it when the program needs to move the heap anyway (i.e. allocate more from the OS) |
| 2026-06-08 09:30:00 +0000 | <tomsmeding> | Freakie: the entry points to GC seem to mostly be in rts/Schedule.c, in calls to scheduleDoGC() |
| 2026-06-08 09:30:13 +0000 | <tomsmeding> | there's one when threads seem to be deadlocked, for example (scheduleDetectDeadlock()) |
| 2026-06-08 09:31:56 +0000 | <merijn> | nurseries only trigger minor GC (i.e. only on the nursery, I think?) |
| 2026-06-08 09:32:09 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 261 seconds) |
| 2026-06-08 09:32:31 +0000 | <merijn> | One obvious reasons for "bigger nursery == less major GC" is that bigger nurseries don't fill up as fast, so stuff isn't aging out of it so fast |
| 2026-06-08 09:32:49 +0000 | <merijn> | If data never leaves the nursery than a major GC won't ever be needed |
| 2026-06-08 09:33:38 +0000 | chele | (~chele@user/chele) chele |
| 2026-06-08 09:34:43 +0000 | <merijn> | Freakie: if the lifetime of your data was *slightly* longer than the time it stayed in the nursery. i.e. it dies very soon AFTER leaving the nursery that's, like, worst case scenario |
| 2026-06-08 09:34:49 +0000 | acidjnk | (~acidjnk@p200300d6e700e514a755b21df9febc31.dip0.t-ipconnect.de) acidjnk |
| 2026-06-08 09:35:25 +0000 | <merijn> | Because then it graduates out of the nursery and immediately dies, requiring a major GC to get rid off it |
| 2026-06-08 09:35:29 +0000 | Googulator | (~Googulato@94-21-172-222.pool.digikabel.hu) (Quit: Client closed) |
| 2026-06-08 09:35:46 +0000 | Googulator | (~Googulato@94-21-172-222.pool.digikabel.hu) |
| 2026-06-08 09:35:55 +0000 | <merijn> | If bigger nursery causes it to stay in the nursery longer and die there **before** leaving the nursery, then you never need a major GC to get rid of it |
| 2026-06-08 09:36:16 +0000 | <merijn> | So in that sense it seems very obvious that bigger nursery correlates with fewer major GC |
| 2026-06-08 09:36:18 +0000 | CiaoSen | (~Jura@2a02:3035:bec:2995:4e50:ddff:fe9b:8922) (Ping timeout: 246 seconds) |
| 2026-06-08 09:36:33 +0000 | <merijn> | At least for some workflows |
| 2026-06-08 09:43:10 +0000 | <Freakie> | nurseries are only garbage collected once full, right? remove the dead data and push the rest to gen 0 |
| 2026-06-08 09:43:46 +0000 | <Freakie> | at any rate evicting the nursery shouldn't require a major GC because it gets pushed to gen 0, while major GC only works on the oldest generation (as far as I've been able to infer) |
| 2026-06-08 09:48:56 +0000 | <merijn> | major GC works on everything afaik? |
| 2026-06-08 09:49:04 +0000 | <merijn> | It makes no sense to only work on the oldest generation |
| 2026-06-08 09:49:33 +0000 | <merijn> | Freakie: Right, but if the entire nursery is dead by the time you GC, then nothing graduates to gen 0 |
| 2026-06-08 09:50:23 +0000 | <merijn> | Growing the nursery makes it last longer until it's full, which means there's more time for nursery data to die before graduating |
| 2026-06-08 09:50:59 +0000 | <Freakie> | oh you mean |
| 2026-06-08 09:53:17 +0000 | <Freakie> | just because more gets cleaned up by the time it's pushed to gen 0, the older generations will take up less space on the heap and therefore require fewer allocations from the OS? (which would trigger major gc) |
| 2026-06-08 09:53:30 +0000 | <Freakie> | less space on average* |
| 2026-06-08 09:58:53 +0000 | <Freakie> | at any rate I did finally find a paper describing the GC triggers in detail, so I guess there is that |
| 2026-06-08 10:05:05 +0000 | Axma40140 | (~Axman6@user/axman6) (Ping timeout: 245 seconds) |
| 2026-06-08 10:18:09 +0000 | <tomsmeding> | Freakie: right, assuming most data has a finite lifetime, larger nursery means less data gets promoted to gen 0 at each minor GC, so gen 0 grows more slowly, so gen 0 overflow triggers major GC less often |
| 2026-06-08 10:18:58 +0000 | <tomsmeding> | the extent to which this effect exists, depends on the distribution of lifetimes of your live data |
| 2026-06-08 10:21:27 +0000 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 248 seconds) |
| 2026-06-08 10:21:59 +0000 | misterfish | (~misterfis@178.230.99.247) misterfish |
| 2026-06-08 10:23:27 +0000 | <Freakie> | only downside to this is that it's completely tangential to my hypothesis but oh well |
| 2026-06-08 10:23:55 +0000 | vivaldi` | (~ident@user/blackbox) blackbox |
| 2026-06-08 10:24:09 +0000 | <Freakie> | most of my live data is gated behind compacts which are treated as write-only data so that explains a lot honestly |
| 2026-06-08 10:24:37 +0000 | <vivaldi`> | hello haskellians! |
| 2026-06-08 10:25:01 +0000 | <vivaldi`> | I don't do haskell. should I try it? |
| 2026-06-08 10:26:10 +0000 | <Freakie> | depends on your needs/interests I think |
| 2026-06-08 10:27:29 +0000 | <vivaldi`> | could be fun to learn :) |
| 2026-06-08 10:28:13 +0000 | <Freakie> | if you already have programming experience it's never a bad idea to learn something new |
| 2026-06-08 10:28:14 +0000 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 256 seconds) |
| 2026-06-08 10:31:11 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |