Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,802,412 events total
2025-11-23 20:43:23 <[exa]> thanks all :)
2025-11-23 20:43:41 <int-e> https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/include/rts/storage/ClosureTypes.h -- only 66 types of heap objects to go through and understand ;-)
2025-11-23 20:43:54 <geekosaur> 🙂
2025-11-23 20:44:07 <monochrom> Probably not in older STG papers. You have to look for one of those "eval-apply vs push-something" papers. Or better, scrape the GHC wiki.
2025-11-23 20:44:15 <[exa]> yeah that's why I was wondering if the original STG intuition still holds :D
2025-11-23 20:44:49 <monochrom> One can argue: "intuition" holds, implementation techniques changed.
2025-11-23 20:45:13 EvanR stands in the corner with a mere SECD machine
2025-11-23 20:45:49 <[exa]> wait are these tags?!! <- nerd screaming voice
2025-11-23 20:46:27 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 20:47:14 <EvanR> what is a tag again
2025-11-23 20:47:15 <int-e> yes but the heap objects aren't tagged with these directly; the actual tag is a pointer that can be used to find an info table, and one of the info table fields is its closure type.
2025-11-23 20:47:22 <EvanR> in this context
2025-11-23 20:47:36 <int-e> EvanR: you're it
2025-11-23 20:47:45 <EvanR> is it like tagged union
2025-11-23 20:48:25 × gratefulgrapefru quits (~greatfulg@user/gratefulgrapefru) (Quit: Client closed)
2025-11-23 20:49:42 <[exa]> oh so this is an indirect tag
2025-11-23 20:50:51 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-23 20:51:04 <[exa]> ah true makes sense, it doesn't cost anything to throw them int to the impl tables and we get inspectable heap
2025-11-23 20:51:20 <[exa]> *into
2025-11-23 20:51:25 <[exa]> cool
2025-11-23 20:53:13 → humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-11-23 20:56:50 → humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-11-23 20:57:36 <int-e> The most prominent use of these closure types is for guiding garbage collection, because that'll often largely with pointers to a heap object and no further information, and then has to enumerate children and/or copy the object.
2025-11-23 20:58:00 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 252 seconds)
2025-11-23 20:58:29 <int-e> s/often largely/largely deal/ (editing gone wrong)
2025-11-23 20:58:32 <[exa]> that's what the evacuate/scavenge "methods" were for, no?
2025-11-23 20:58:39 <int-e> yeah
2025-11-23 20:58:43 <[exa]> or no wait that got slashed later, right?
2025-11-23 20:59:44 <int-e> evcuate+scavenge are still the main workers for the copying GC
2025-11-23 21:00:39 <[exa]> I thought these completely define the pointers handling
2025-11-23 21:01:04 <[exa]> as in, no other info should be needed, hopefully
2025-11-23 21:01:18 <int-e> I think I don't know what your "that" was.
2025-11-23 21:01:51 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 21:02:08 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 240 seconds)
2025-11-23 21:02:10 <int-e> [exa]: Well stuff like "FUN" looks at more data in the info table to figure out which heap object fields are pointers and which are nonpointers. So it's not *just* the type.
2025-11-23 21:02:42 <int-e> Stuff like FUN_0_1 exists for small arities to avoid this extra lookup.
2025-11-23 21:03:00 <[exa]> oh so it's a shortcut essentially. OK
2025-11-23 21:03:01 <int-e> hmm
2025-11-23 21:03:07 <int-e> I should use CONSTR_ for this
2025-11-23 21:03:18 × humasect_ quits (~humasect@dyn-192-249-132-90.nexicom.net) (Read error: Connection reset by peer)
2025-11-23 21:03:35 <[exa]> I recall some paper that did like 16 variants of these for all combinations of packed&unpacked things
2025-11-23 21:03:43 → humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-11-23 21:03:52 <int-e> (FUN* objects are unapplied; the distinction is made to support function applications in the mutator, not for the benefit of GC)
2025-11-23 21:06:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-23 21:07:49 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
2025-11-23 21:08:11 <[exa]> oh these are for small functions, like PAP but nicely static without the extra metadata?
2025-11-23 21:08:16 <[exa]> if I got it right
2025-11-23 21:09:35 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
2025-11-23 21:11:12 → infinity0 joins (~infinity0@pwned.gg)
2025-11-23 21:11:28 <int-e> Well, not really because a PAP always has at least one argument applied.
2025-11-23 21:12:38 <[exa]> ah yes otherwise it's FUN.
2025-11-23 21:12:40 <[exa]> ok
2025-11-23 21:12:47 <[exa]> *phew*
2025-11-23 21:13:09 <int-e> While a FUN is basically just a pointer to a piece of code that can be jumped into once all the arguments are supplied and put on the stack
2025-11-23 21:16:16 → Nachtgespenst joins (~user@user/siracusa)
2025-11-23 21:17:14 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 21:17:33 → Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-23 21:19:51 × ouilemur quits (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.7.0)
2025-11-23 21:23:41 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-23 21:32:05 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 21:36:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-11-23 21:36:38 → jmcantrell joins (~weechat@user/jmcantrell)
2025-11-23 21:42:01 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
2025-11-23 21:44:06 × trickard_ quits (~trickard@cpe-87-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-23 21:44:19 → trickard_ joins (~trickard@cpe-87-98-47-163.wireline.com.au)
2025-11-23 21:45:46 → Googulator50 joins (~Googulato@2a01-036d-0106-01f1-f56c-45b8-e3c8-fdbd.pool6.digikabel.hu)
2025-11-23 21:45:46 × Googulator85 quits (~Googulato@2a01-036d-0106-01f1-f56c-45b8-e3c8-fdbd.pool6.digikabel.hu) (Quit: Client closed)
2025-11-23 21:47:28 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 21:49:56 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-11-23 21:50:06 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 256 seconds)
2025-11-23 21:51:41 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-23 21:52:44 → ouilemur joins (~jgmerritt@user/ouilemur)
2025-11-23 21:54:58 → humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-11-23 22:00:53 → jmcantrell joins (~weechat@user/jmcantrell)
2025-11-23 22:02:50 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 22:03:43 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
2025-11-23 22:05:32 → L29Ah joins (~L29Ah@wikipedia/L29Ah)
2025-11-23 22:06:20 → Sgeo joins (~Sgeo@user/sgeo)
2025-11-23 22:07:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-11-23 22:09:42 × j1n37- quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-11-23 22:12:43 → j1n37 joins (~j1n37@user/j1n37)
2025-11-23 22:16:34 × peterbecich quits (~Thunderbi@172.222.148.214) (Quit: peterbecich)
2025-11-23 22:18:13 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 22:21:17 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection)
2025-11-23 22:22:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-11-23 22:26:25 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
2025-11-23 22:28:21 <tomsmeding> [exa]: I didn't read all this but are you accelerating again
2025-11-23 22:28:54 <tomsmeding> because yes, seq'ing the function you get from `runN acc` does compilation
2025-11-23 22:33:04 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 22:37:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-11-23 22:38:16 × annamalai quits (~annamalai@117.249.230.146) (Ping timeout: 256 seconds)
2025-11-23 22:38:49 × divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer)
2025-11-23 22:38:59 → divlamir joins (~divlamir@user/divlamir)
2025-11-23 22:44:34 → jmcantrell joins (~weechat@user/jmcantrell)
2025-11-23 22:46:38 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-11-23 22:48:03 × ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...)
2025-11-23 22:48:28 → merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-23 22:50:35 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-11-23 22:54:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-11-23 22:56:41 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 244 seconds)

All times are in UTC.