2024/04/30

Newest at the top

2024-04-30 21:14:50 +0200peterbecich(~Thunderbi@47.229.123.186)
2024-04-30 21:14:33 +0200peterbecich(~Thunderbi@47.229.123.186) (Quit: peterbecich)
2024-04-30 21:13:55 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2024-04-30 21:11:45 +0200xal(~xal@mx1.xal.systems)
2024-04-30 21:11:40 +0200rvalue-rvalue
2024-04-30 21:11:15 +0200 <sm> you want the friction of writing and updating tests to be as low as possible, obviously
2024-04-30 21:10:21 +0200 <sm> probie I like to have test code as close to tested code as possible without obscuring the latter too much. These things are in tension, at least with typical tools. Currently I have three tiers: a little bit of doctest code in function haddocks; a bit more HUnit test code at the bottom of each module; and more extensive functional tests under test/*
2024-04-30 21:10:01 +0200 <tomsmeding> but exactly what values are GC roots does not really reflect well to the haskell source world, I guess
2024-04-30 21:09:29 +0200 <tomsmeding> I know pretty well from what points this data structure is reachable, so if there was some technique I could use to mark certain GC roots as "don't traverse from here, just assume this live", there's a decent chance I could make that work
2024-04-30 21:09:09 +0200xal(~xal@mx1.xal.systems) ()
2024-04-30 21:08:31 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 256 seconds)
2024-04-30 21:08:07 +0200 <tomsmeding> perhaps this is just something that would be hard to design an API for
2024-04-30 21:07:35 +0200rvalue-(~rvalue@user/rvalue)
2024-04-30 21:07:10 +0200yin(~yin@user/zero)
2024-04-30 21:07:04 +0200 <tomsmeding> there's literally an MVar there in the API in `ghc-compact`
2024-04-30 21:06:51 +0200 <tomsmeding> so it's not really suitable for me
2024-04-30 21:06:45 +0200 <tomsmeding> `compactAdd` takes a lock on the compact region
2024-04-30 21:06:33 +0200 <monochrom> Does the current compact region already works under parallelism?
2024-04-30 21:06:22 +0200infinity0(~infinity0@pwned.gg)
2024-04-30 21:05:29 +0200 <tomsmeding> can I prevent that?
2024-04-30 21:05:24 +0200 <tomsmeding> as-is, if I don't set the GC nursery size obscenely high (like 4GB), during construction phase the GC repeatedly traverses the whole thing uselessly, and ends up taking >60% of the total program runtime
2024-04-30 21:05:23 +0200yin(~yin@user/zero) (Ping timeout: 264 seconds)
2024-04-30 21:04:44 +0200 <tomsmeding> then in the second phase of the program I consume this entire data structure, and afterwards the GC can collect it
2024-04-30 21:04:28 +0200 <tomsmeding> the structure has lots of internal sharing
2024-04-30 21:04:17 +0200 <tomsmeding> I have a program that, while in its "construction phase", builds up a large data structure in parallel; it's only added to, no part of the data structure can ever be collected by the GC in this program phase
2024-04-30 21:04:16 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2024-04-30 21:03:24 +0200 <tomsmeding> is t here a compact region like thing that you can add to in parallel?
2024-04-30 21:02:36 +0200peterbecich(~Thunderbi@47.229.123.186)
2024-04-30 21:00:35 +0200yin(~yin@user/zero)
2024-04-30 20:59:47 +0200TheOneWhoFuncts(~Thunderbi@14.98.244.193) (Client Quit)
2024-04-30 20:58:43 +0200yin(~yin@user/zero) (Ping timeout: 260 seconds)
2024-04-30 20:58:43 +0200tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds)
2024-04-30 20:58:30 +0200TheOneWhoFuncts(~Thunderbi@14.98.244.193)
2024-04-30 20:56:50 +0200chiselfuse(~chiselfus@user/chiselfuse)
2024-04-30 20:55:48 +0200chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2024-04-30 20:54:32 +0200peterbecich(~Thunderbi@47.229.123.186) (Ping timeout: 268 seconds)
2024-04-30 20:54:12 +0200tri(~tri@ool-18bbef1a.static.optonline.net)
2024-04-30 20:49:12 +0200chiselfuse(~chiselfus@user/chiselfuse)
2024-04-30 20:47:42 +0200chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2024-04-30 20:43:00 +0200iteratee(~kyle@162.218.222.207) (Ping timeout: 252 seconds)
2024-04-30 20:40:37 +0200 <mauke> return wraps the result of f
2024-04-30 20:34:24 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2024-04-30 20:34:19 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-04-30 20:32:37 +0200tomboy64(~tomboy64@user/tomboy64)
2024-04-30 20:31:36 +0200 <yin> MTL: https://www.youtube.com/watch?v=6pDH66X3ClA
2024-04-30 20:30:41 +0200 <EvanR> square peg square hole
2024-04-30 20:30:10 +0200 <lambdabot> Maybe Int
2024-04-30 20:30:09 +0200 <EvanR> :t (Just 'c' >>=) (return . ord)
2024-04-30 20:29:21 +0200 <lambdabot> Monad m => Char -> m Int
2024-04-30 20:29:20 +0200 <EvanR> :t (return . ord)