Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2021-03-15 16:12:34 <merijn> Well, no, duh
2021-03-15 16:14:57 × CoconutCrab quits (~Cua@unaffiliated/coconutcrab) (Ping timeout: 264 seconds)
2021-03-15 16:15:20 DataComputist joins (~lumeng@50.43.26.251)
2021-03-15 16:15:37 <codygman`> dminuoso: prepare is the stmtReset that is called by Database.Persist.Sql.Raw.getStmtConnection meaning for postgres stmtReset does nothing.
2021-03-15 16:15:49 <codygman`> I just rechecked in case though :)
2021-03-15 16:16:18 × idhugo__ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
2021-03-15 16:16:44 <dminuoso> codygman`: not quite
2021-03-15 16:17:10 × epstein quits (~dwsjeid91@193.27.14.71) (Quit: Leaving)
2021-03-15 16:17:12 <dminuoso> oh hold on
2021-03-15 16:17:14 <dminuoso> I see
2021-03-15 16:17:46 <dminuoso> This code looks a bit fishy
2021-03-15 16:18:10 <codygman`> >--<>
2021-03-15 16:18:44 <dminuoso> >=>
2021-03-15 16:20:16 × kadoban_ quits (~mud@unaffiliated/kadoban) (Remote host closed the connection)
2021-03-15 16:20:46 conal joins (~conal@64.71.133.70)
2021-03-15 16:21:30 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-03-15 16:21:50 Sorna is now known as Sornaeniss
2021-03-15 16:21:53 Sornaeniss is now known as Sornaensis
2021-03-15 16:24:26 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-03-15 16:26:59 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-03-15 16:27:05 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
2021-03-15 16:27:20 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-15 16:27:28 dfeuer joins (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
2021-03-15 16:28:14 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:9289:77c9:1590:330e) (Ping timeout: 264 seconds)
2021-03-15 16:30:26 × zar quits (~zar@fw1.ciirc.cvut.cz) (Quit: Leaving)
2021-03-15 16:30:58 jakalx joins (~jakalx@base.jakalx.net)
2021-03-15 16:31:54 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-03-15 16:37:08 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
2021-03-15 16:37:12 APic joins (apic@apic.name)
2021-03-15 16:37:51 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
2021-03-15 16:38:55 × arrowsvc_ quits (~arr@2.93.163.35) (Quit: Konversation terminated!)
2021-03-15 16:39:13 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-03-15 16:39:58 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Remote host closed the connection)
2021-03-15 16:40:22 × APic quits (apic@apic.name) (Client Quit)
2021-03-15 16:40:26 jayok joins (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net)
2021-03-15 16:40:30 <__minoru__shirae> codygman`: "people are too lax about async exceptions. I think part of the problem is how far you can get without worrying about them. If you had to confront them earlier though... would people stick around? :D"
2021-03-15 16:40:58 × asheshambasta quits (~user@ptr-e1lysavzjd712yoren8.18120a2.ip6.access.telenet.be) (Ping timeout: 265 seconds)
2021-03-15 16:41:00 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:dcdc:9829:bf56:9867)
2021-03-15 16:41:19 <__minoru__shirae> so what one to do with async exceptions?
2021-03-15 16:41:21 <__minoru__shirae> a beginner doesn't worry about them
2021-03-15 16:41:34 <dminuoso> [pack (tagFieldName (sumEncoding opts)) | fromTaggedSum]
2021-03-15 16:41:38 <dminuoso> What kind of syntax is this?
2021-03-15 16:41:41 <__minoru__shirae> a next-level beginner uses mask and bracket
2021-03-15 16:41:47 geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-03-15 16:42:53 <dminuoso> Oh hold on, this is just a conditionally empty list.
2021-03-15 16:42:58 <__minoru__shirae> does stm take care of async exceptions somehow? so a programmer doesn't have to worry about them.
2021-03-15 16:43:12 <dminuoso> __minoru__shirae: The problem of async exceptions begins when you escape the haskell RTS.
2021-03-15 16:43:22 <merijn> dminuoso: pfft
2021-03-15 16:43:27 <merijn> dminuoso: It begins waaaaay earlier
2021-03-15 16:43:29 <dminuoso> heh
2021-03-15 16:43:32 <dminuoso> well thats when it gets real nasty
2021-03-15 16:43:49 <dminuoso> Some bits I really dont get.
2021-03-15 16:44:09 <dminuoso> Like how `mask` is named `mask` and not just `maskSometimes`
2021-03-15 16:44:14 × texasmynsted quits (~texasmyns@99.96.221.112) (Read error: Connection reset by peer)
2021-03-15 16:44:20 <dminuoso> Or maybe `maskButNotReally`
2021-03-15 16:45:17 <__minoru__shirae> there is uninterruptibleMask
2021-03-15 16:45:20 APic joins (apic@apic.name)
2021-03-15 16:45:41 <__minoru__shirae> but the book says "
2021-03-15 16:45:43 <__minoru__shirae> Every instance of uninterruptibleMask should be
2021-03-15 16:45:44 <__minoru__shirae> treated with the utmost suspicion.
2021-03-15 16:45:49 <__minoru__shirae> "
2021-03-15 16:46:05 <merijn> Every use of mask should be treated with the utmost suspicion
2021-03-15 16:46:17 <dminuoso> __minoru__shirae: the thing is, `mask` does not even give you the slightest hint that it doesnt really mask
2021-03-15 16:46:24 <dminuoso> Which makes it dangerous to use
2021-03-15 16:46:30 <merijn> All code that's not been examined should be assumed "wrong" when it comes to async exceptions
2021-03-15 16:46:31 <dminuoso> You get a false sense of security
2021-03-15 16:46:54 <merijn> All code that's been examined and proven "not wrong" should be assumed "only probably wrong"
2021-03-15 16:47:03 × jayok quits (~jayok@cpc147358-belf12-2-0-cust581.2-1.cable.virginm.net) (Ping timeout: 265 seconds)
2021-03-15 16:47:11 <dminuoso> __minoru__shirae: then add that `bracket` uses `mask`
2021-03-15 16:47:22 <dminuoso> so suddenly if you use `bracket`, you're only semi protected against async exceptoins
2021-03-15 16:47:29 <merijn> dminuoso: I already campaigned against that in 7 years ago
2021-03-15 16:47:39 <merijn> dminuoso: Got too many complaints to go through with it
2021-03-15 16:47:52 <dminuoso> merijn: Just go and use `unliftio` everywhere
2021-03-15 16:47:56 <merijn> dminuoso: No
2021-03-15 16:48:01 <dminuoso> It comes with cleaned up Control.Exception :P
2021-03-15 16:48:08 <merijn> It does not
2021-03-15 16:48:13 <dminuoso> Its surely better than what base comes with
2021-03-15 16:48:30 <dminuoso> No accidentally catching async exceptions, and bracket defaults to uninterruptibleMask
2021-03-15 16:48:36 <merijn> It comes with a Snoyman-opinionated cleaned up Control.Exception that is useless unless all your transitive dependencies use it too
2021-03-15 16:48:46 <merijn> It also has a massive dependency footprint
2021-03-15 16:48:59 × RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 265 seconds)
2021-03-15 16:49:07 <dminuoso> a massive dependency footprint?
2021-03-15 16:49:13 <dminuoso> dunno, most of them I depend on anyway
2021-03-15 16:49:23 <dminuoso> and its *really* harmless
2021-03-15 16:51:38 <dminuoso> merijn: Also I disagree with your characterization that its useless unless [...]
2021-03-15 16:51:51 <dminuoso> It adds value the moment you use it. Every boundary that doesnt recover from an async exception is good.
2021-03-15 16:52:25 <dminuoso> Of course it'd be great if the entirety of hackage adhered to this, but in an imperfect world I take some cleanliness over none
2021-03-15 16:52:27 <merijn> dminuoso: I mean that it leaves all of my transitive dependencies free to have completely broken async exception handling/bracketing
2021-03-15 16:52:36 <dminuoso> sure
2021-03-15 16:52:46 <dminuoso> but my goal is not to make the world perfect
2021-03-15 16:52:47 <merijn> And all in all I trust my transitive dependencies far less than *my* async code :p
2021-03-15 16:53:09 <merijn> Because I am paranoid and have worked on async + distributed runtime systems before :p
2021-03-15 16:53:34 <merijn> I don't need protecting from me (well, I do...but not as much as I need protecting from *everyone else*)
2021-03-15 16:55:51 idhugo__ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-03-15 16:55:53 <__minoru__shirae> how about using stm? a transaction gets rolled back, so no need to worry about async exceptions breaking consistency, right?
2021-03-15 16:58:16 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2021-03-15 16:58:17 <geekosaur> you can't do IO during an STM transaction, and if you could how would you e.g. rollback a write?
2021-03-15 16:58:29 <fresheyeball> If Maybe = (+ 1)
2021-03-15 16:58:31 × zebrag quits (~inkbottle@aaubervilliers-654-1-101-29.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-03-15 16:58:33 <fresheyeball> what is []?

All times are in UTC.