Newest at the top
| 2026-05-23 13:34:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 13:23:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 13:21:00 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-05-23 13:18:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 13:08:43 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-05-23 13:08:00 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-23 13:06:50 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-05-23 13:06:21 +0000 | haritz | (~hrtz@user/haritz) haritz |
| 2026-05-23 13:06:21 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2026-05-23 13:06:20 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2026-05-23 13:02:47 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 12:52:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 12:49:18 +0000 | Digitteknohippie | Digit |
| 2026-05-23 12:47:28 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:42:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-05-23 12:37:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:37:41 +0000 | <jaror> | Maybe I can just define it as data Vector a = V0 | V1 !a | V2 !a !a | Vn (Array# a), then it is always at smaller or equal in size to lists |
| 2026-05-23 12:35:03 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-05-23 12:34:46 +0000 | emilym | (~Thunderbi@user/emilym) (Remote host closed the connection) |
| 2026-05-23 12:33:55 +0000 | Digit | (~user@user/digit) (Ping timeout: 272 seconds) |
| 2026-05-23 12:33:26 +0000 | Digitteknohippie | (~user@user/digit) Digit |
| 2026-05-23 12:33:25 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 12:31:55 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Client Quit) |
| 2026-05-23 12:30:05 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 12:29:36 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Client Quit) |
| 2026-05-23 12:27:50 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-05-23 12:27:38 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 12:26:58 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Quit: tnt1) |
| 2026-05-23 12:24:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 12:24:31 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 12:19:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:08:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-05-23 12:08:39 +0000 | weary-traveler | (~user@user/user363627) (Quit: Konversation terminated!) |
| 2026-05-23 12:04:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:03:51 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-05-23 11:53:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-05-23 11:48:22 +0000 | <jaror> | Yes, that makes sense |
| 2026-05-23 11:47:57 +0000 | <int-e> | Anyway, just to state this point in isolation: Right now, every variable-sized heap object (really just the various arrays, plus some RTS internal things (captured stack frames, I guess?)) has its own special case in the garbage collection functions. To unpack those into other constructors that would have to be generalized. |
| 2026-05-23 11:46:30 +0000 | <jaror> | And Lazy is also a newtype |
| 2026-05-23 11:46:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 11:45:47 +0000 | <jaror> | With data-elevator, I think you can do newtype Array a = Array (Lazy (Array# a)) |
| 2026-05-23 11:44:52 +0000 | <int-e> | I guess the narrow case of data Array a = Array (Array# a) could be handled by not introducing a new tag for the constructor. That wouldn't help you if you want to later unpack `Array` into some other constructor. |
| 2026-05-23 11:44:24 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-05-23 11:40:49 +0000 | <int-e> | It's funny that there's no mention of garbage collection in #24802 |
| 2026-05-23 11:39:06 +0000 | <jaror> | https://gitlab.haskell.org/ghc/ghc/-/issues/20204 |
| 2026-05-23 11:38:39 +0000 | <jaror> | I think I actually opened an issue that it did warn that I didn't have a ! on an unlifted field |
| 2026-05-23 11:38:02 +0000 | <jaror> | those should be unpackable |
| 2026-05-23 11:37:56 +0000 | <jaror> | with UnliftedDatatypes I mean |
| 2026-05-23 11:37:38 +0000 | <jaror> | I think it can have effect on unlifted fields, but of course not on unboxed fields indeed. |
| 2026-05-23 11:37:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |