2026/05/21

Newest at the top

2026-05-21 16:47:15 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2026-05-21 16:47:13 +0000merijn(~merijn@77.242.116.146) merijn
2026-05-21 16:47:04 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-21 16:46:09 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-21 16:45:38 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2026-05-21 16:44:12 +0000ashwinmathi(~ashwinmat@2600:1700:6070:b140:94cc:bfe5:92c2:f83b) (Remote host closed the connection)
2026-05-21 16:39:34 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2026-05-21 16:34:12 +0000ft(~ft@p4fc2aedc.dip0.t-ipconnect.de) ft
2026-05-21 16:30:37 +0000danza(~danza@user/danza) (Remote host closed the connection)
2026-05-21 16:29:38 +0000karenw(~karenw@user/karenw) (Quit: Deep into that darkness peering...)
2026-05-21 16:29:04 +0000CiaoSen(~Jura@dynamic-046-114-169-083.46.114.pool.telefonica.de) (Ping timeout: 245 seconds)
2026-05-21 16:24:39 +0000ashwinmathi(~ashwinmat@2600:1700:6070:b140:94cc:bfe5:92c2:f83b)
2026-05-21 16:21:23 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2026-05-21 16:00:03 +0000tnt1(~Thunderbi@user/tnt1) tnt1
2026-05-21 15:59:04 +0000Pozyomka(~pyon@user/pyon) (Read error: Connection reset by peer)
2026-05-21 15:51:53 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-21 15:49:33 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-21 15:47:39 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-21 15:44:56 +0000DigitteknohippieDigit
2026-05-21 15:43:13 +0000tnt1(~Thunderbi@user/tnt1) (Quit: tnt1)
2026-05-21 15:38:46 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-21 15:38:32 +0000Googulator(~Googulato@94-21-138-77.pool.digikabel.hu) (Ping timeout: 245 seconds)
2026-05-21 15:38:22 +0000lieven(~mal@ns2.wyrd.be) lieven
2026-05-21 15:36:37 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-21 15:35:17 +0000Googulator25(~Googulato@84-236-52-41.pool.digikabel.hu)
2026-05-21 15:30:32 +0000 <int-e> ah, we're on different trains of thought
2026-05-21 15:30:06 +0000 <int-e> right but truncating the payload wouldn't be a huge deal
2026-05-21 15:30:04 +0000 <jaror> So not insignificant if you have like <20 elements in the array
2026-05-21 15:29:28 +0000 <jaror> 1 extra word and the cards rounded up
2026-05-21 15:29:12 +0000 <jaror> Yeah, I just found that too
2026-05-21 15:28:55 +0000 <int-e> (compare StgMutArrPtrs and StgSmallMutArrPtrs at https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/include/rts/storage/Closures.h#L212 ff.)
2026-05-21 15:24:57 +0000 <int-e> That also means that you can't convert an Array# into a SmallArray# in constant time. Boo.
2026-05-21 15:24:48 +0000chele(~chele@user/chele) (Remote host closed the connection)
2026-05-21 15:24:12 +0000 <int-e> Oh, maybe there is an extra word. It stores the number of pointers and the total size of the payload rather than computing the size on demand.
2026-05-21 15:23:53 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:6ecf:3924:2ebb:64d6)
2026-05-21 15:23:41 +0000 <jaror> ah
2026-05-21 15:23:36 +0000 <c_wraith> but they are going to round the byte count up to the nearest full word
2026-05-21 15:23:09 +0000 <int-e> Why 1 word? There is no extra pointer for this.
2026-05-21 15:21:54 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2026-05-21 15:21:36 +0000Square2(~Square4@user/square) Square
2026-05-21 15:21:34 +0000 <int-e> Huh, so it's way less than 1.6% for large arrays, more like 0.1%
2026-05-21 15:21:33 +0000 <jaror> yeah, so for smaller sizes it definitely doesn't make sense to use Array#, but then also the overhead is 1 word + 1 byte per 128 items?
2026-05-21 15:20:33 +0000 <int-e> "Each byte in the card table for an StgMutaArrPtrs covers [128] elements in the array."
2026-05-21 15:19:03 +0000 <jaror> Oh or is that only saying that the cards track 128 items of the list at a time?
2026-05-21 15:17:42 +0000 <jaror> or 128+...?
2026-05-21 15:17:34 +0000 <jaror> is it always 128 bytes? or 128 bytes per entry?
2026-05-21 15:17:29 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2026-05-21 15:17:15 +0000 <jaror> the primitive docs say: The card size is 128, so for uses much larger than that, Array would likely be superior.
2026-05-21 15:17:03 +0000 <jaror> How much overhead is it exactly, by the way
2026-05-21 15:16:07 +0000merijn(~merijn@77.242.116.146) merijn