2026/05/21

Newest at the top

2026-05-21 14:40:43 +0000 <jaror> But that hardly sounds tipical
2026-05-21 14:40:37 +0000 <jaror> Yes if you want to unsafely freeze or thaw it and use it mostly as a large mutable array then there seems to be an advantage to Array#
2026-05-21 14:39:30 +0000 <tomsmeding> well unless it's long and you might want to thaw it at some point
2026-05-21 14:38:41 +0000 <jaror> The documentation seems to imply that it is only mutation that is a problem and thus that SmallArray# should always be preferred over Array#...
2026-05-21 14:37:29 +0000 <jaror> There's some documentation in the primitive package and also some documentation here: https://hackage-content.haskell.org/package/ghc-prim-0.13.0/docs/GHC-Prim.html#g:19
2026-05-21 14:37:26 +0000 <tomsmeding> > This allows the garbage collector to only re-traverse segments of the array that have been marked during certain phases
2026-05-21 14:36:41 +0000 <tomsmeding> sure, I found that one first but there were no docs there whatsoever :)
2026-05-21 14:36:12 +0000 <jaror> Yeah, or the GHC builtin one: https://hackage.haskell.org/package/base-4.21.0.0/docs/GHC-Exts.html#t:SmallArray-35-
2026-05-21 14:35:49 +0000 <tomsmeding> oh primitive:Data.Primitive.SmallArray?
2026-05-21 14:35:25 +0000 <tomsmeding> ok I don't actually know what SmallArray you're talking about :)
2026-05-21 14:34:57 +0000 <jaror> But maybe it is an optimization for the other non-copying strategies that GHC also applies?
2026-05-21 14:34:47 +0000chexum_(~quassel@gateway/tor-sasl/chexum) chexum
2026-05-21 14:34:40 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 252 seconds)
2026-05-21 14:33:48 +0000 <jaror> I mean all the elements needs to be copied deeply, no?
2026-05-21 14:33:45 +0000danza(~danza@user/danza) danza
2026-05-21 14:33:24 +0000 <tomsmeding> there's memcpy(), and then there's following all the pointers to all the heap nodes referenced from the array cells
2026-05-21 14:27:36 +0000 <jaror> It talks about the GC not having to traverse all elements, but doesn't it need to do that anyway to copy everything over?
2026-05-21 14:26:44 +0000 <jaror> I don't really understand any of the explanations in the docs on SmallArrays
2026-05-21 14:23:35 +0000 <jaror> The immutable Array# I mean
2026-05-21 14:23:13 +0000 <jaror> Do arrays still need a card table if their elements are unlifted?
2026-05-21 14:16:51 +0000spew(~spew@user/spew) spew
2026-05-21 14:00:29 +0000ridcully(~ridcully@p57b529aa.dip0.t-ipconnect.de) ridcully
2026-05-21 13:59:30 +0000karenw(~karenw@user/karenw) karenw
2026-05-21 13:58:18 +0000ridcully_(~ridcully@p57b529aa.dip0.t-ipconnect.de) (Quit: WeeChat 4.8.1)
2026-05-21 13:54:51 +0000Inst(~Inst@user/Inst) (Remote host closed the connection)
2026-05-21 13:45:29 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-05-21 13:39:21 +0000AlexZenon(~alzenon@5.139.233.99)
2026-05-21 13:38:50 +0000AlexZenon(~alzenon@5.139.233.99) (Read error: Connection reset by peer)
2026-05-21 13:36:09 +0000Alex_delenda_est(~al_test@5.139.233.99) (Read error: Connection reset by peer)
2026-05-21 13:34:23 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod
2026-05-21 13:27:59 +0000gf316gf31
2026-05-21 13:27:58 +0000gf31(~gf3@user/gf3) (Ping timeout: 256 seconds)
2026-05-21 13:27:42 +0000vanishingideal(~vanishing@user/vanishingideal) (Remote host closed the connection)
2026-05-21 13:26:03 +0000gf316(~gf3@user/gf3) gf3
2026-05-21 13:24:07 +0000AlexZenon(~alzenon@5.139.233.99)
2026-05-21 13:23:14 +0000AlexZenon(~alzenon@5.139.233.99) (Read error: Connection reset by peer)
2026-05-21 13:20:51 +0000AlexZenon(~alzenon@5.139.233.99)
2026-05-21 13:17:49 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) myxokephale
2026-05-21 13:16:11 +0000AlexZenon(~alzenon@5.139.233.99) (Ping timeout: 244 seconds)
2026-05-21 13:12:42 +0000Alex_delenda_est(~al_test@5.139.233.99)
2026-05-21 13:12:14 +0000AlexNoo_AlexNoo
2026-05-21 13:00:16 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-21 12:59:47 +0000slondr(cf9f9e8f44@2a03:6000:1812:100::10b6) slondr
2026-05-21 12:58:01 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-05-21 12:56:56 +0000slondr(cf9f9e8f44@2a03:6000:1812:100::10b6) (Ping timeout: 257 seconds)
2026-05-21 12:56:44 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2026-05-21 12:48:48 +0000CiaoSen(~Jura@dynamic-046-114-169-083.46.114.pool.telefonica.de) CiaoSen
2026-05-21 12:47:11 +0000CiaoSen(~Jura@2a02:3030:aec:1e20:88a0:41ff:fe9e:a9e6) (Ping timeout: 265 seconds)
2026-05-21 12:44:57 +0000vanishing(~vanishing@user/vanishingideal) (Client Quit)
2026-05-21 12:44:38 +0000vanishing(~vanishing@user/vanishingideal) vanishingideal