2024/04/27

Newest at the top

2024-04-27 23:58:04 +0200phma(~phma@2001:5b0:2172:cfd8:e2ba:31ce:8b83:bc5)
2024-04-27 23:57:48 +0200pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2024-04-27 23:57:03 +0200phma(phma@2001:5b0:210d:77f8:690d:ee85:cd6a:7031) (Read error: Connection reset by peer)
2024-04-27 23:49:55 +0200Square(~Square@user/square) (Ping timeout: 245 seconds)
2024-04-27 23:46:51 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-04-27 23:45:36 +0200sam113101(~sam@24.157.253.231)
2024-04-27 23:41:13 +0200sam113101(~sam@24.157.253.231) (Client Quit)
2024-04-27 23:40:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-27 23:40:06 +0200sam113101(~sam@24.157.253.231)
2024-04-27 23:39:49 +0200 <EvanR> it's possible to think yourself out of the side effects and claim what it's doing makes sense, but normally you don't have to do that in haskell. So extra brain cycles required
2024-04-27 23:38:56 +0200 <yahb2> [h(),e(),l(),l(),o(), (),w(),o(),r(),l(),d()]
2024-04-27 23:38:56 +0200 <[Leary]> % traverse (unsafeInterleaveIO . putChar) "hello world" >>= print
2024-04-27 23:38:52 +0200 <[Leary]> Here, we're printing a list of units, so the `void` is redundant and should be removed.
2024-04-27 23:38:24 +0200 <yahb2> [(),(),(),(),(),(),(),(),(),(),()]
2024-04-27 23:38:24 +0200 <[Leary]> % traverse (unsafeInterleaveIO . putChar) "hello world" >>= print . void
2024-04-27 23:38:10 +0200 <[Leary]> Jade: It's akin to `pure . unsafePerformIO`; the former does not actually cancel the danger of the latter. In particular, it violates referential transparency: when `unsafeInterleaveIO` is in use, you cannot replace one expression with another equal expression blindly, as one may produce observable side effects when forced, hence the substitution changes the meaning of your program.
2024-04-27 23:37:39 +0200sam113102(~sam@24.157.253.231) (Client Quit)
2024-04-27 23:36:00 +0200sam113102(~sam@24.157.253.231)
2024-04-27 23:34:53 +0200dispater-(~dispater@host-78-146-88-32.as13285.net) (Remote host closed the connection)
2024-04-27 23:33:48 +0200dispater-(~dispater@host-78-146-88-32.as13285.net)
2024-04-27 23:32:26 +0200dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-04-27 23:31:35 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-27 23:30:41 +0200yin(~yin@user/zero)
2024-04-27 23:29:13 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-04-27 23:27:39 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds)
2024-04-27 23:27:31 +0200orcus-(~orcus@host-78-146-88-32.as13285.net) (Remote host closed the connection)
2024-04-27 23:27:25 +0200 <EvanR> it's 404ing, maybe google discontinued that API
2024-04-27 23:27:04 +0200 <EvanR> "could not load the image"
2024-04-27 23:26:33 +0200orcus-(~orcus@host-78-146-88-32.as13285.net)
2024-04-27 23:24:06 +0200orcus-(~orcus@host-78-146-88-32.as13285.net) (Remote host closed the connection)
2024-04-27 23:24:06 +0200dispater-(~dispater@host-78-146-88-32.as13285.net) (Remote host closed the connection)
2024-04-27 23:22:45 +0200orcus-(~orcus@host-78-146-88-32.as13285.net)
2024-04-27 23:22:35 +0200 <yin> what's wrong with the charts at https://ircbrowse.tomsmeding.com/lchaskell ?
2024-04-27 23:22:15 +0200dispater-(~dispater@host-78-146-88-32.as13285.net)
2024-04-27 23:20:16 +0200orcus-(~orcus@host-78-146-88-32.as13285.net) (Remote host closed the connection)
2024-04-27 23:20:16 +0200dispater-(~dispater@host-78-146-88-32.as13285.net) (Remote host closed the connection)
2024-04-27 23:20:14 +0200 <EvanR> that's what makes it different from unsafePerformIO
2024-04-27 23:20:12 +0200 <geekosaur> the problem is, you can use >>= to get at the `a`, but it is not obvious that it can continue to do I/O
2024-04-27 23:20:07 +0200 <EvanR> nevermind me, you're right
2024-04-27 23:19:46 +0200 <EvanR> it requires extra logic beyond haskell to make sure it makes sense
2024-04-27 23:19:43 +0200 <haskellbridge> <J​ade> yeah but it's `IO a -> IO a`, so it can have side effects either way?
2024-04-27 23:19:06 +0200 <EvanR> evaluating something containing unsafeInterleaveIO can have side effects
2024-04-27 23:18:52 +0200 <ski> as unsafe as concurrency (`forkIO')
2024-04-27 23:18:34 +0200peterbecich(~Thunderbi@47.229.123.186)
2024-04-27 23:18:32 +0200 <geekosaur> basically it's doing unchecked I/O behind the scenes
2024-04-27 23:18:15 +0200 <geekosaur> oh, interleave, sorry
2024-04-27 23:18:01 +0200 <geekosaur> it tells the compiler "I promise this is actually pure", and the compiler will treat it as such and may duplicate it, reorder it, etc.
2024-04-27 23:16:57 +0200 <haskellbridge> <J​ade> what makes `unsafeInterleaveIO` unsafe?
2024-04-27 23:16:47 +0200zetef(~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4)
2024-04-27 23:16:15 +0200orcus-(~orcus@host-78-146-88-32.as13285.net)