Logs: freenode/#haskell
| 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.