2024/10/03

2024-10-03 00:01:09 +0200 <haskellbridge> <sm> "hell" on HN: https://news.ycombinator.com/item?id=41694767
2024-10-03 00:01:34 +0200 <probie> % let{f x=print x>>pure x;tleft=fmap($ []).foldr(\x k -> liftA2(flip(.))k(fmap(:)x))(pure$id)}in tleft $ map f [1..5] -- Probably worse than two reverses because it spills the list to the stack
2024-10-03 00:01:34 +0200 <yahb2> 5 ; 4 ; 3 ; 2 ; 1 ; [1,2,3,4,5]
2024-10-03 00:02:00 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-03 00:05:57 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-03 00:12:48 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 00:17:16 +0200codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 244 seconds)
2024-10-03 00:17:24 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-03 00:18:49 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-10-03 00:23:16 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-10-03 00:24:27 +0200codaraxis(~codaraxis@user/codaraxis) Codaraxis
2024-10-03 00:28:20 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 00:33:04 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-03 00:33:44 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2024-10-03 00:34:33 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-10-03 00:37:12 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
2024-10-03 00:39:31 +0200athan(~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!)
2024-10-03 00:42:03 +0200notzmv(~daniel@user/notzmv) (Read error: Connection reset by peer)
2024-10-03 00:43:56 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 00:45:31 +0200neuroevolutus(~neuroevol@37.19.200.152) (Ping timeout: 256 seconds)
2024-10-03 00:48:47 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-03 00:50:00 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-03 00:55:08 +0200troojg(~troojg@user/troojg) troojg
2024-10-03 00:57:53 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 01:00:45 +0200ash3en(~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en
2024-10-03 01:00:50 +0200ash3en(~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Client Quit)
2024-10-03 01:02:42 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-03 01:12:43 +0200 <c_wraith> does STM document its consistency properties anywhere? istr it's the equivalent of read-committed, rather than fully linearizable?
2024-10-03 01:13:15 +0200supercode(~supercode@user/supercode) supercode
2024-10-03 01:13:19 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 01:18:45 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-03 01:20:05 +0200 <mauke> what's the difference?
2024-10-03 01:23:36 +0200 <geekosaur> I think it might be only by reference (there's a paper from Intel Research describing it)
2024-10-03 01:24:38 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: Ping timeout (120 seconds))
2024-10-03 01:24:56 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu
2024-10-03 01:29:39 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 01:30:07 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 244 seconds)
2024-10-03 01:30:56 +0200 <c_wraith> mauke: with read-committed you can read a set of values that never would have existed together if all transactions were serialized.
2024-10-03 01:32:30 +0200 <geekosaur> I don't think you can get into that situation with STM; the only such sets wouldn't be observable, because anything that could observe them would be forced to `retry` and end up with a consistent set?
2024-10-03 01:32:34 +0200xff0x(~xff0x@2405:6580:b080:900:409b:fd54:4c14:6dc) (Ping timeout: 260 seconds)
2024-10-03 01:33:15 +0200 <c_wraith> hmm. possibly so. I tried a few traces that typically show that, and they did all retry with STM semantics.
2024-10-03 01:33:18 +0200 <geekosaur> something observing program state from outside could potentially see such states
2024-10-03 01:33:47 +0200 <c_wraith> well, something observing from the outside can see all kinds of stuff with STM
2024-10-03 01:33:52 +0200 <geekosaur> yep
2024-10-03 01:34:11 +0200 <geekosaur> this should all be covered in the Intel paper
2024-10-03 01:34:19 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-03 01:40:21 +0200neuroevolutus(~neuroevol@37.19.200.152) neuroevolutus
2024-10-03 01:45:04 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 01:45:13 +0200xff0x(~xff0x@2405:6580:b080:900:409b:fd54:4c14:6dc)
2024-10-03 01:46:43 +0200neuroevolutus(~neuroevol@37.19.200.152) (Ping timeout: 256 seconds)
2024-10-03 01:49:32 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-03 01:49:41 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-03 01:55:28 +0200 <Lears> c_wraith: <https://www.microsoft.com/en-us/research/wp-content/uploads/2005/01/2005-ppopp-composable.pdf> (linked indirectly from Control.Concurrent.STM) is /the/ STM paper if GHC's particular form/extension of STM is what you're interested in. I imagine it has the answer you're looking for, though I'd be very surprised if such states were observable.
2024-10-03 01:55:48 +0200 <dolio> c_wraith: Yeah, that's true.
2024-10-03 01:56:06 +0200 <c_wraith> ugh, why did my irc client think the > is part of the link? bad client!
2024-10-03 01:56:26 +0200 <dolio> This is discussed in Revisting Software Transactional Memory in Haskell.
2024-10-03 01:56:31 +0200alexherbo2(~alexherbo@2a02-8440-3118-adab-ad64-111d-10db-8d9d.rev.sfr.net) (Remote host closed the connection)
2024-10-03 01:57:42 +0200alexherbo2(~alexherbo@2a02-8440-3118-adab-f186-fae0-9a30-1276.rev.sfr.net) alexherbo2
2024-10-03 02:00:09 +0200 <dolio> Oh, I guess unless the implementation in that paper has since replaced the original implementation in GHC, because the one in that paper does ensure every transaction sees a consistent memory state (I think).
2024-10-03 02:00:29 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn
2024-10-03 02:01:14 +0200alexherbo2(~alexherbo@2a02-8440-3118-adab-f186-fae0-9a30-1276.rev.sfr.net) (Remote host closed the connection)
2024-10-03 02:01:46 +0200 <dolio> They call the property that ensures that, 'opacity.'
2024-10-03 02:03:57 +0200 <c_wraith> I'm just getting there in the paper...
2024-10-03 02:04:50 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-03 02:04:55 +0200 <c_wraith> it would be nice to know if GHC switched inplemrntations
2024-10-03 02:05:04 +0200 <dolio> Yeah. That I don't know.
2024-10-03 02:08:51 +0200troojg(~troojg@user/troojg) (Ping timeout: 276 seconds)
2024-10-03 02:12:23 +0200supercode(~supercode@user/supercode) (Quit: Client closed)
2024-10-03 02:15:55 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) merijn