2021/08/11

2021-08-11 00:00:38 +0200 <dsal> > read (cycle "1") :: Integer
2021-08-11 00:00:44 +0200 <lambdabot> mueval-core: Time limit exceeded
2021-08-11 00:00:54 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 00:01:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 00:04:02 +0200mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-08-11 00:05:24 +0200ubert(~Thunderbi@91.141.46.44.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2021-08-11 00:06:28 +0200chomwitt(~chomwitt@ppp-2-85-147-24.home.otenet.gr) (Remote host closed the connection)
2021-08-11 00:08:47 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 00:08:56 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2021-08-11 00:13:53 +0200dextaa(~DV@user/dextaa) (Ping timeout: 248 seconds)
2021-08-11 00:14:51 +0200dextaa(~DV@user/dextaa)
2021-08-11 00:15:30 +0200oso(~oso@2601:58c:c080:a950:f275:2530:b398:680b) (Quit: Client closed)
2021-08-11 00:16:36 +0200 <janus> > read (cycle "1") :: Int
2021-08-11 00:16:42 +0200 <lambdabot> mueval-core: Time limit exceeded
2021-08-11 00:16:49 +0200 <glguy> Aww, I thought it might work that time
2021-08-11 00:16:56 +0200 <janus> ah right, thanks dsal!
2021-08-11 00:16:58 +0200 <glguy> >_>
2021-08-11 00:17:38 +0200 <janus> glguy: sarcastic? i tried it because Integer allows for infinite size, i thought. so it would make more sense to show for Int
2021-08-11 00:17:58 +0200 <glguy> janus: yeah, </s> ; of course it can't work for either
2021-08-11 00:18:40 +0200 <janus> what is the "obvious" reason you're referring to here? because it isn't readMaybe? or because everybody is presumed to know how it works internally?
2021-08-11 00:18:52 +0200 <glguy> the only thing it can do is fail
2021-08-11 00:19:33 +0200 <glguy> It certainly can't produce an Int
2021-08-11 00:19:36 +0200 <janus> but a granular exception would be better than time limit exceeded. there are many ways of failing even in haskell
2021-08-11 00:22:36 +0200 <monochrom> "integer allows for infinite size" is a misconception. Subtle, yes, but it will bite you one day.
2021-08-11 00:23:21 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-08-11 00:23:35 +0200 <monochrom> There is a difference between "infinitely many possibilities" and "one such possibility is infinite in any sense at all"
2021-08-11 00:24:12 +0200 <monochrom> Every integer has finite size. We just don't have one single upper bound that caps over all integers.
2021-08-11 00:24:44 +0200michalz(~michalz@185.246.204.61) (Remote host closed the connection)
2021-08-11 00:24:51 +0200 <glguy> even if Integer had a value called "Infinity", read couldn't know to return it given (cycle "1")
2021-08-11 00:25:15 +0200 <dsal> > read (cycle "0") :: Integer
2021-08-11 00:25:21 +0200 <lambdabot> mueval-core: Time limit exceeded
2021-08-11 00:25:22 +0200 <dsal> Be smarter, Haskell!
2021-08-11 00:25:26 +0200 <glguy> > read "100000000000000000000" :: Int
2021-08-11 00:25:27 +0200 <lambdabot> 7766279631452241920
2021-08-11 00:25:29 +0200 <monochrom> For the same reason I prefer to describe the Turing machine tape size as "as much as you actually use, on demand" rather than "infinite". You will never actually use infinitely many cells. Never.
2021-08-11 00:25:53 +0200 <glguy> and as long as modular behavior is allowed there the behavior of read (cycle "1") :: Int could never sanely be anything other than a timeout
2021-08-11 00:26:18 +0200 <janus> can i say "unbounded" instead of "as much as you can actually use, on demand" ?
2021-08-11 00:26:23 +0200 <oak-> > read "1000000000000000000000000000000000000000000000000" :: Integer
2021-08-11 00:26:25 +0200 <lambdabot> 1000000000000000000000000000000000000000000000000
2021-08-11 00:26:44 +0200 <monochrom> Yes "unbounded" is right.
2021-08-11 00:27:14 +0200 <dsal> Bounded only by your computer's imagination.
2021-08-11 00:27:55 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 00:30:10 +0200 <monochrom> Statically determining semantic properties of "read (cycle "1")" is a very involved static analysis problem.
2021-08-11 00:31:21 +0200 <monochrom> Or rather, the real question hiding behind the proxy question "I just need the computer to be just smart enough for that one single example" is.
2021-08-11 00:31:35 +0200 <monochrom> No one really ever just means wanting just one example solved.
2021-08-11 00:32:07 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-11 00:32:07 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-11 00:32:10 +0200allbery_bgeekosaur
2021-08-11 00:32:19 +0200 <monochrom> It is a long-running meme.
2021-08-11 00:32:55 +0200 <monochrom> When programmer has just a specific, special-case problem in mind, they must ask the generalized question.
2021-08-11 00:32:59 +0200 <janus> i am really more worried about DoS attacks if i use 'read' on something i got from the network
2021-08-11 00:33:14 +0200 <monochrom> And when they have a general problem in mind, they must just ask one example.
2021-08-11 00:33:33 +0200 <monochrom> It is like their brain actually knows the right question, then pass it through a not-gate.
2021-08-11 00:33:56 +0200 <hpc> or like they can only consciously think in terms of examples?
2021-08-11 00:34:01 +0200 <geekosaur> janus, that's only an issue if you got something infinite from the network
2021-08-11 00:34:10 +0200 <geekosaur> which would be difficult
2021-08-11 00:34:26 +0200xcmw(~textual@2603-6011-2200-f103-402c-0cc9-e9a3-e4f0.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-11 00:34:32 +0200 <geekosaur> how would you store it to feed it to read?
2021-08-11 00:34:39 +0200 <monochrom> You are actively inviting DoS in the first place the moment you say you accept as many bytes as the other side sends you.
2021-08-11 00:34:53 +0200 <deejaytee> monochrom: this is what blows me away with GHC, sometimes you turn on the right language extensions and it just solves a specific case, and I'm sitting there knowing that that must mean it solves it in the general case (for some loose definition of general), while I struggle to formulate & solve even a specific example
2021-08-11 00:35:42 +0200 <deejaytee> I'm half-convinced that GHC might just end up being the first program to spontaneously gain sentience
2021-08-11 00:35:42 +0200Atum_(~IRC@user/atum/x-2392232) (Remote host closed the connection)
2021-08-11 00:35:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-08-11 00:35:59 +0200Atum_(~IRC@user/atum/x-2392232)
2021-08-11 00:36:01 +0200 <deejaytee> {-# LANGUAGE GeneralArtificialIntelligence #-}
2021-08-11 00:36:05 +0200 <janus> geekosaur: ok, let's say i have a receive limit of 100 kibibytes. is it safe to use Read? i am not trying to determine anything about infinities. i am trying to determine whether Read is a problem for non-streaming applications with normal message sizes and parsing untrusted data
2021-08-11 00:36:26 +0200 <monochrom> hpc, I refuse to believe that programmers only think in terms of examples. Last time I checked they spoke like "hi how do I debug type errors?" in its most generality when they already had one single example, "f x = x ++ [x]"
2021-08-11 00:37:00 +0200 <deejaytee> ah, shoot, I forgot to include {-# LANGUAGE SelfAwareAndSentient #-}
2021-08-11 00:37:40 +0200 <monochrom> If you paid me 1 cent every time an asker here doesn't put their actual code on a paste bin, I would be rich and could retire now.
2021-08-11 00:37:53 +0200 <hpc> when that happens to me at work i link them to https://youtu.be/ZKxr0wyIic4?t=10 :D
2021-08-11 00:37:55 +0200 <deejaytee> (admittedly I have limited experience with proof systems, I'm sure there are stronger candidates for "smart programs that infer things I cannot")
2021-08-11 00:38:14 +0200 <monochrom> Heh
2021-08-11 00:38:23 +0200 <monochrom> We need to say that more to askers.
2021-08-11 00:38:23 +0200 <deejaytee> hpc: hehe
2021-08-11 00:38:25 +0200acidjnk_new(~acidjnk@p200300d0c72b9574c56a490b8c03a837.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-08-11 00:39:16 +0200 <monochrom> As it happens, I am giving a network socket assignment to my students in a unix-and-C course.
2021-08-11 00:39:43 +0200 <monochrom> And I provide the exes of some good and bad the-other-side's for them to test against.
2021-08-11 00:40:15 +0200 <monochrom> One of the bad ones guarantees to send you a message of "many, many bytes".
2021-08-11 00:40:23 +0200 <hpc> hah, awesome
2021-08-11 00:40:25 +0200 <geekosaur> janus, I think read is safe there. that said, I wouldn't use it because it's not very good at what it does
2021-08-11 00:40:39 +0200 <monochrom> And by that I mean it simply doesn't end, it keeps sending more and more packets.
2021-08-11 00:41:15 +0200 <monochrom> You know, just in case a student deludes themselves into thinking that "640GB ought to be enough for everyone".
2021-08-11 00:41:57 +0200 <monochrom> Oh even the good ones are juicy.
2021-08-11 00:43:05 +0200 <monochrom> To drive home the point that stream sockets lose packet boundaries, the good ones fragment one message into randomly many write()'s, and even merge two messages into one single write().
2021-08-11 00:43:47 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 00:43:55 +0200 <glguy> monochrom: What's the actual assignment (roughly)?
2021-08-11 00:44:49 +0200 <monochrom> I'll tell the tldr after this URL to the whole thing: http://www.cs.utoronto.ca/~trebla/CSCB09-2021-Summer/a4/
2021-08-11 00:45:09 +0200 <geekosaur> janus, it's convenient but slow and wasteful, and you almost certainly don't need its full generality. and haskell makes it almost trivial to write parsers that work better
2021-08-11 00:45:11 +0200 <monochrom> The student is to write one server and one client for the same protocol.
2021-08-11 00:45:16 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-08-11 00:45:44 +0200 <monochrom> The protocol is newline-delimited messages, with known upper bounds on legal messages.
2021-08-11 00:46:02 +0200forell_(~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host)
2021-08-11 00:46:02 +0200forell_(~forell@user/forell)
2021-08-11 00:46:07 +0200forell_forell
2021-08-11 00:47:03 +0200 <monochrom> The server side is to receive a name, look up a phone number from a file it can access, then send the phone number.
2021-08-11 00:48:05 +0200 <hpc> random thought: a good follow-up assignment would be to have them implement all the test case clients
2021-08-11 00:48:08 +0200 <hpc> including the bad ones
2021-08-11 00:48:46 +0200 <janus> geekosaur: all right , thanks!
2021-08-11 00:51:38 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 00:54:25 +0200finsternis(~X@23.226.237.192) (Remote host closed the connection)
2021-08-11 00:57:24 +0200MeowmancerNeuromancer
2021-08-11 01:00:11 +0200 <dsal> > product (cycle 0) -- I actually do think this one should work
2021-08-11 01:00:13 +0200 <lambdabot> error:
2021-08-11 01:00:13 +0200 <lambdabot> • No instance for (Num [Integer]) arising from a use of ‘e_10’
2021-08-11 01:00:13 +0200 <lambdabot> • In the expression: e_10
2021-08-11 01:00:25 +0200 <dsal> Well, something like that.
2021-08-11 01:00:56 +0200 <monochrom> product (repeat 0)
2021-08-11 01:01:02 +0200 <dsal> oh. I just woke up. heh
2021-08-11 01:01:33 +0200 <dsal> But yeah. I don't quite understand why product doesn't short circuit. That one exact simple case I'm thinking of.
2021-08-11 01:01:42 +0200 <monochrom> Our standard (*) is defined to be very strict. To be sure, it is just someone's decision, not the only good one.
2021-08-11 01:02:48 +0200 <dsal> I don't know that it's ever affected me. I just feel smarter than my computer when I see that and I don't like speaking so poorly of computers.
2021-08-11 01:02:52 +0200Atum_(~IRC@user/atum/x-2392232) (Remote host closed the connection)
2021-08-11 01:03:01 +0200 <monochrom> @quote monochrom 389238493
2021-08-11 01:03:01 +0200 <lambdabot> monochrom says: some kind of lazy evaluation is already known to highschool kids. teachers tell you that in a*(b+c), "evaluate b+c first", right? well, I challenge you to take 0*(389238493+97283748)
2021-08-11 01:03:01 +0200 <lambdabot> and find one single student who faithfully evaluate 389238493+97283748 first.
2021-08-11 01:03:28 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-08-11 01:04:46 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-08-11 01:09:28 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-11 01:09:30 +0200dermato(~dermatobr@154.21.23.75) (Ping timeout: 268 seconds)
2021-08-11 01:09:37 +0200Matthias1(~Matthias1@2603-8001-b545-4900-9150-e432-def8-8add.res6.spectrum.com)
2021-08-11 01:12:42 +0200dermato(~dermatobr@154.21.23.75)
2021-08-11 01:15:40 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-08-11 01:19:54 +0200cladur(~cladur@user-5-173-146-83.play-internet.pl)
2021-08-11 01:22:15 +0200machinedgod(~machinedg@24.105.81.50)
2021-08-11 01:27:23 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2021-08-11 01:28:13 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 01:29:13 +0200cladur(~cladur@user-5-173-146-83.play-internet.pl) (Ping timeout: 268 seconds)
2021-08-11 01:31:02 +0200Guest366(~Guest3@221.124.9.182)
2021-08-11 01:32:05 +0200dermato(~dermatobr@154.21.23.75) (Ping timeout: 258 seconds)
2021-08-11 01:32:36 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 01:33:00 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 01:33:55 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-11 01:34:18 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2)
2021-08-11 01:35:02 +0200dermato(~dermatobr@154.21.23.75)
2021-08-11 01:40:29 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-11 01:41:32 +0200PinealGl1ndOptic(~PinealGla@37.115.210.35) (Quit: leaving)
2021-08-11 01:44:53 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Quit: Leaving)
2021-08-11 01:44:53 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Remote host closed the connection)
2021-08-11 01:46:10 +0200wrengr(~wrengr@56.4.82.34.bc.googleusercontent.com) (Quit: leaving)
2021-08-11 01:51:04 +0200derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-08-11 01:51:15 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 258 seconds)
2021-08-11 01:51:41 +0200wrengr(~wrengr@56.4.82.34.bc.googleusercontent.com)
2021-08-11 01:55:45 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 268 seconds)
2021-08-11 01:56:55 +0200 <lechner> Hi, what's a popular, simple but validating HTTPS request library please?
2021-08-11 02:00:08 +0200potato_dev(~potato_to@elara.whatbox.ca) (Quit: ZNC - https://znc.in)
2021-08-11 02:00:38 +0200machinedgod(~machinedg@24.105.81.50)
2021-08-11 02:01:05 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 248 seconds)
2021-08-11 02:01:38 +0200 <lechner> Also, is there an XML library, please, that can parse known data similar to the way aeson or yaml do (and does not use a generic DOM data model)?
2021-08-11 02:03:27 +0200pe200012(~pe200012@113.105.10.33) (Ping timeout: 245 seconds)
2021-08-11 02:03:35 +0200pe200012_(~pe200012@218.107.49.28)
2021-08-11 02:04:58 +0200Cajun(~Cajun@user/cajun)
2021-08-11 02:04:58 +0200cladur(~cladur@user-5-173-146-9.play-internet.pl)
2021-08-11 02:05:01 +0200cladur(~cladur@user-5-173-146-9.play-internet.pl) (Remote host closed the connection)
2021-08-11 02:05:50 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2021-08-11 02:11:16 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 02:11:29 +0200 <dsal> I use wreq for simple http stuff. I don't do all that much xml. I've integrated some junk in the past, but I used SAX-like stuff.
2021-08-11 02:11:54 +0200 <dsal> Looks like I used xeno for that.
2021-08-11 02:12:54 +0200Guest9632(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-11 02:14:56 +0200 <lechner> dsal: thanks!
2021-08-11 02:15:29 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 248 seconds)
2021-08-11 02:17:47 +0200chris(~chris@81.96.113.213)
2021-08-11 02:17:51 +0200chrisGuest2402
2021-08-11 02:18:20 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-08-11 02:18:51 +0200skykanin(~skykanin@115.81-166-221.customer.lyse.net) (Quit: WeeChat 3.2)
2021-08-11 02:21:01 +0200shailangsa(~shailangs@host86-185-58-139.range86-185.btcentralplus.com) (Ping timeout: 268 seconds)
2021-08-11 02:21:53 +0200eltonpinto(~eltonpint@169.109.136.34.bc.googleusercontent.com) (Quit: WeeChat 2.3)
2021-08-11 02:22:50 +0200Guest2402(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-08-11 02:23:08 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 02:23:29 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
2021-08-11 02:23:49 +0200derelict(~derelict@user/derelict)
2021-08-11 02:23:55 +0200 <davean> janus: I did
2021-08-11 02:30:29 +0200spruit11(~quassel@2a02:a467:ccd6:1:90c7:da5b:b845:b6e9) (Ping timeout: 268 seconds)
2021-08-11 02:30:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-11 02:30:48 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-11 02:30:52 +0200allbery_bgeekosaur
2021-08-11 02:31:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 02:34:21 +0200chris(~chris@81.96.113.213)
2021-08-11 02:34:25 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 02:34:25 +0200chrisGuest6722
2021-08-11 02:34:26 +0200Guest366(~Guest3@221.124.9.182) (Quit: Client closed)
2021-08-11 02:35:24 +0200spruit11(~quassel@2a02:a467:ccd6:1:cc2:35ba:cbc2:b281)
2021-08-11 02:38:25 +0200Matthias_(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com)
2021-08-11 02:38:43 +0200Matthias_(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com) (Remote host closed the connection)
2021-08-11 02:38:47 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-08-11 02:38:47 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 258 seconds)
2021-08-11 02:38:54 +0200Matthias_(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com)
2021-08-11 02:40:39 +0200Matthias_(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com) (Remote host closed the connection)
2021-08-11 02:41:01 +0200Matthias_(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com)
2021-08-11 02:41:05 +0200Matthias1(~Matthias1@2603-8001-b545-4900-9150-e432-def8-8add.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-08-11 02:43:55 +0200pschorf(~user@c-73-77-28-188.hsd1.tx.comcast.net)
2021-08-11 02:44:22 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-08-11 02:46:43 +0200 <lechner> Hi, is it possible to import just the operator ^. from Control.Lens, please?
2021-08-11 02:46:55 +0200 <Axman6> import Control.Lens ((^.))
2021-08-11 02:47:29 +0200euouae(~euouae@user/euouae)
2021-08-11 02:47:33 +0200slack1256(~slack1256@181.203.126.41) (Ping timeout: 268 seconds)
2021-08-11 02:47:42 +0200 <euouae> Hello, how can I read base's docs offline?
2021-08-11 02:48:01 +0200 <euouae> I looked under ~/.cabal/share/doc, etc but nothing was found there other than license files
2021-08-11 02:48:21 +0200 <euouae> and `cabal haddock base` said `Up to date`, but I can't find where they're stored
2021-08-11 02:48:32 +0200slack1256(~slack1256@191.126.23.98)
2021-08-11 02:50:35 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-08-11 02:50:57 +0200 <lechner> Axman6: Thanks!
2021-08-11 02:51:39 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-08-11 02:58:14 +0200 <Axman6> has anyone ever had an issue where compiling using cabal on macOS just stops? I have two clang processes which are just sitting there doing nothing
2021-08-11 03:01:14 +0200 <lechner> Axman6: are they detached?
2021-08-11 03:02:39 +0200 <monochrom> euouae: If you know where you have installed GHC, all docs that come with GHC are somewhere along the line of <prefix>/share/doc/ghc-<version>/html/index.html
2021-08-11 03:03:29 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-08-11 03:04:29 +0200 <euouae> monochrom: Great, thanks. I actually tried reading the man page of ghc but it wasn't listed there I believe
2021-08-11 03:04:38 +0200 <Axman6> lechner: detached how?
2021-08-11 03:04:49 +0200 <monochrom> Right, I think the man page doesn't talk about it.
2021-08-11 03:04:50 +0200Matthias_(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com) (Remote host closed the connection)
2021-08-11 03:05:19 +0200 <lechner> Axman6: is cabal blocking your terminal?
2021-08-11 03:05:34 +0200 <Axman6> what do you mean by blocking my terminal
2021-08-11 03:05:45 +0200Matthias1(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com)
2021-08-11 03:05:57 +0200 <lechner> are they otherwise done doing?
2021-08-11 03:06:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-08-11 03:06:20 +0200 <lechner> runaway or blocked?
2021-08-11 03:06:38 +0200 <lechner> what are they doing?
2021-08-11 03:08:02 +0200 <lechner> Hi, what is a good way to parse this sitemap, please (except a lot longer)? Ideally, I would like to end up with a list of urls (strings alone are okay, or the record). Thanks! https://dpaste.org/WROr
2021-08-11 03:08:11 +0200 <sm> not using cpu ? not using enough memory to cause swapping ?
2021-08-11 03:08:40 +0200 <lechner> or just zombies?
2021-08-11 03:08:48 +0200 <geekosaur> actually I'd be interested in knowing why clang is involved. I think that's normally used only for embedded C code in a package, or to run ld
2021-08-11 03:09:08 +0200Matthias_(~Matthias1@2603-8001-b545-4900-090b-633c-a15a-3f3b.res6.spectrum.com)
2021-08-11 03:09:22 +0200 <euouae> lechner, with an xml parser?
2021-08-11 03:09:31 +0200 <sm> any network or usb drives involved ?
2021-08-11 03:10:05 +0200emliunix(~emliunix@2a09:bac0:23::815:bca) (Remote host closed the connection)
2021-08-11 03:10:20 +0200Matthias1(~Matthias1@2603-8001-b545-4900-6964-f050-e27a-a1cb.res6.spectrum.com) (Ping timeout: 272 seconds)
2021-08-11 03:10:23 +0200emliunix(~emliunix@103.138.75.119)
2021-08-11 03:13:00 +0200 <monochrom> FD_SET(read_fdset, fd_for_downloading_RAM); for (;;) { select(read_fdset, NULL, NULL, NULL); ...
2021-08-11 03:13:02 +0200 <monochrom> >:)
2021-08-11 03:14:57 +0200euouae(~euouae@user/euouae) ()
2021-08-11 03:15:19 +0200xsperry(~as@user/xsperry) ()
2021-08-11 03:18:28 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 03:18:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-11 03:21:54 +0200Matthias_(~Matthias1@2603-8001-b545-4900-090b-633c-a15a-3f3b.res6.spectrum.com) (Remote host closed the connection)
2021-08-11 03:22:48 +0200Matthias1(~Matthias1@2603-8001-b545-4900-090b-633c-a15a-3f3b.res6.spectrum.com)
2021-08-11 03:24:32 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-08-11 03:27:28 +0200Matthias1(~Matthias1@2603-8001-b545-4900-090b-633c-a15a-3f3b.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-08-11 03:27:46 +0200_________(~nobody@user/noodly) (Ping timeout: 240 seconds)
2021-08-11 03:27:55 +0200 <Axman6> Sorry, needed to get some #work do. cabal is just stopped, and the last lines in the cabal build log are: configure: WARNING: unrecognized options: --with-compiler
2021-08-11 03:27:56 +0200 <Axman6> Preprocessing library for network-3.1.2.2..
2021-08-11 03:28:12 +0200 <Axman6> clang is involved because "gcc" on macos is clang
2021-08-11 03:28:19 +0200 <lechner> yes
2021-08-11 03:28:32 +0200 <Axman6> no swapping happening, I've got 64GB and plenty free
2021-08-11 03:29:24 +0200_________(~nobody@user/noodly)
2021-08-11 03:29:31 +0200 <geekosaur> yes, but it still shouldn't be used directly for anything but embedded C code or linking
2021-08-11 03:29:37 +0200 <geekosaur> or possibly -XCPP
2021-08-11 03:29:38 +0200 <Axman6> geekosaur: it is the network package which is being compiled, so compiling C is almost certainly involved right?
2021-08-11 03:30:32 +0200berberman(~berberman@user/berberman) (Ping timeout: 258 seconds)
2021-08-11 03:30:51 +0200berberman(~berberman@user/berberman)
2021-08-11 03:31:09 +0200Jonno_FTW(~come@api.carswap.me) (Quit: Reconnecting)
2021-08-11 03:31:17 +0200Jonno_FTW(~come@api.carswap.me)
2021-08-11 03:31:31 +0200Jonno_FTW(~come@api.carswap.me) (Changing host)
2021-08-11 03:31:31 +0200Jonno_FTW(~come@user/jonno-ftw/x-0835346)
2021-08-11 03:31:49 +0200 <geekosaur> there are 5 small C files in the network package; mostly it binds to libc network functions
2021-08-11 03:31:53 +0200 <Axman6> https://paste.tomsmeding.com/FzQv35dp is the contents of the log
2021-08-11 03:31:54 +0200 <lechner> Axman6: The warning may not be what tripped them up https://github.com/commercialhaskell/stack/issues/1121
2021-08-11 03:32:03 +0200 <Axman6> after hitting ^C to stop the build
2021-08-11 03:32:13 +0200 <Axman6> the last bit about the failure only happens after the ^C
2021-08-11 03:32:45 +0200 <geekosaur> hm, that's hhsc2hs freezing
2021-08-11 03:32:54 +0200 <geekosaur> I think that might be known
2021-08-11 03:33:00 +0200 <lechner> Failed to remove file dist/build/Network/Socket/ByteString/hsc2hscall8328-0.rsp; error= dist/build/Network/Socket/ByteString/hsc2hscall8328-0.rsp: removeLink: does not exist (No such file or directory)
2021-08-11 03:34:33 +0200 <lechner> is that a test suite looking for the network?
2021-08-11 03:34:59 +0200 <Axman6> it's "Building network-3.1.2.2 (all, legacy fallback)"
2021-08-11 03:35:05 +0200 <geekosaur> https://github.com/haskell/hsc2hs/issues/62
2021-08-11 03:36:05 +0200euouae(~euouae@user/euouae)
2021-08-11 03:36:15 +0200 <euouae> So here's the thing about reading types that doesn't always elucidate behavior
2021-08-11 03:36:16 +0200 <Axman6> yep that looks like the one
2021-08-11 03:36:30 +0200 <euouae> I'm looking at Control.Monad.sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
2021-08-11 03:36:50 +0200 <euouae> There's no way to know that `>>` is being used between monadic actions. It may very well had been without `>>`
2021-08-11 03:37:56 +0200 <euouae> and, looking at the source code is not very helpful, I don't understand, sequence needs sequenceA, which needs traverse, which is implemented using sequenceA?
2021-08-11 03:37:57 +0200 <Axman6> well, there's an infinite number of implementations of that type, so yes, there's no way to know
2021-08-11 03:38:20 +0200 <Axman6> yes, to impolemente the Traversable class, you need to implement one of those functions and you get the others for free
2021-08-11 03:38:24 +0200 <Axman6> implement*
2021-08-11 03:38:29 +0200 <euouae> Axman6: "Evaluate each monadic action in the structure from left to right, and collect the results. For a version that ignores the results see sequence_."
2021-08-11 03:38:45 +0200 <euouae> Axman6: That docstring also does not hint at `>>` :P
2021-08-11 03:38:57 +0200 <Axman6> why do you think it even uses >>?
2021-08-11 03:39:12 +0200euouae(~euouae@user/euouae) (Quit: Client closed)
2021-08-11 03:39:17 +0200 <Axman6> I would guess 90% of all Traversable implementation don't use that at all
2021-08-11 03:39:42 +0200euouae(~euouae@user/euouae)
2021-08-11 03:40:17 +0200 <Axman6> most (all?) implementation of Traversable only need Applicative
2021-08-11 03:41:30 +0200 <euouae> Axman6: I mean that a reference implementation could use >>
2021-08-11 03:41:42 +0200 <euouae> It must use something akin to >>, it feeds the results of one action into another e.g. `sequence [Nothing, Just 1] == Nothing`
2021-08-11 03:42:10 +0200 <Axman6> I'm not sure I agree
2021-08-11 03:42:26 +0200pe200012(~pe200012@113.105.10.33)
2021-08-11 03:42:33 +0200cladur(~cladur@user-5-173-146-9.play-internet.pl)
2021-08-11 03:43:01 +0200 <euouae> Ok I'm not taking a hard line here
2021-08-11 03:43:02 +0200 <Axman6> > (:) <$> Nothing <*> ((:) <$> Just 1 <*> pure []))
2021-08-11 03:43:03 +0200pe200012_(~pe200012@218.107.49.28) (Ping timeout: 268 seconds)
2021-08-11 03:43:04 +0200 <lambdabot> <hint>:1:49: error: parse error on input ‘)’
2021-08-11 03:43:06 +0200 <Axman6> > (:) <$> Nothing <*> ((:) <$> Just 1 <*> pure [])
2021-08-11 03:43:07 +0200 <lambdabot> Nothing
2021-08-11 03:43:39 +0200 <euouae> Ok you're arguing between Monad and Applicative
2021-08-11 03:43:53 +0200 <euouae> That's fine, but I'm talking about the lack of documentation for `sequence` :P
2021-08-11 03:45:05 +0200 <Axman6> I still don't see what your point is, there's no >> in sequence for most types
2021-08-11 03:45:43 +0200 <euouae> My point is, if you note the documentation of sequence, it is only illustrated in the last example that sequence has 'short-circuit behavior' as they call it
2021-08-11 03:46:52 +0200 <Axman6> what does that have to do with >>?
2021-08-11 03:46:54 +0200 <euouae> I'm looking at `evalState (sequence $ repeat $ do { n <- get; put (n*2); return n }) 1` which as I understand feeds the previous state into the next computation
2021-08-11 03:47:36 +0200 <euouae> from Control.Monad.Trans.State.Lazy
2021-08-11 03:47:45 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 248 seconds)
2021-08-11 03:48:17 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Remote host closed the connection)
2021-08-11 03:48:23 +0200 <Axman6> what does short circuit behaviour have to do with >>?
2021-08-11 03:48:45 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-11 03:48:45 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-11 03:49:04 +0200adam1(~adam@220-136-101-108.dynamic-ip.hinet.net)
2021-08-11 03:49:07 +0200 <euouae> Well, `Nothing >> Just 1` gives `Nothing`
2021-08-11 03:49:41 +0200alx741(~alx741@181.196.68.193) (Quit: alx741)
2021-08-11 03:49:43 +0200 <Axman6> yes, but it's not the only thing which does
2021-08-11 03:50:00 +0200 <Axman6> importantly, (<*>) does too
2021-08-11 03:50:41 +0200 <Axman6> so the behaviour of traverse matches the behaviour of the applicative instance for m and the traversal ordering of t
2021-08-11 03:51:05 +0200 <euouae> m and t being?
2021-08-11 03:51:10 +0200 <euouae> Maybe and [] ?
2021-08-11 03:51:15 +0200 <Axman6> yes
2021-08-11 03:51:27 +0200 <euouae> But sequence takes a monad
2021-08-11 03:51:30 +0200 <euouae> Not an applicative
2021-08-11 03:52:10 +0200 <Axman6> it days that, but almost always it's only using the Applicative instance, since all Monads are Applicatives
2021-08-11 03:52:25 +0200 <Axman6> and the type is mostly a historical artefact
2021-08-11 03:52:31 +0200 <euouae> It may be, but why is that important?
2021-08-11 03:52:44 +0200 <euouae> Why are you protesting about my mention of `>>`?
2021-08-11 03:52:44 +0200 <dsal> :t sequenceA
2021-08-11 03:52:45 +0200 <lambdabot> (Traversable t, Applicative f) => t (f a) -> f (t a)
2021-08-11 03:52:51 +0200 <Axman6> you tell me, I still don't know what your point is
2021-08-11 03:53:04 +0200 <dsal> I don't understand what >> has to do with traverse. They seem unrelated.
2021-08-11 03:53:15 +0200 <euouae> Ok look, a while ago you admitted sequence can have many implementations
2021-08-11 03:53:24 +0200 <Axman6> because you will almost certainly never see any use of >> in any implementation of Traversable
2021-08-11 03:53:24 +0200 <euouae> I'm saying that the one implementation the sequence has is not well-documented to distinguish it from all others
2021-08-11 03:53:49 +0200 <dsal> @src sequenceA
2021-08-11 03:53:49 +0200 <lambdabot> Source not found. :(
2021-08-11 03:53:51 +0200 <dsal> @src sequence
2021-08-11 03:53:51 +0200 <lambdabot> sequence [] = return []
2021-08-11 03:53:51 +0200 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
2021-08-11 03:53:51 +0200 <lambdabot> --OR
2021-08-11 03:53:51 +0200 <lambdabot> sequence xs = foldr (liftM2 (:)) (return []) xs
2021-08-11 03:54:13 +0200 <euouae> There you go, it uses `do` which uses `>>` right?
2021-08-11 03:54:18 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds)
2021-08-11 03:54:24 +0200 <dsal> @undo do v <- x; vs <- sequence xs; return (v:vs)
2021-08-11 03:54:24 +0200 <lambdabot> x >>= \ v -> sequence xs >>= \ vs -> return (v : vs)
2021-08-11 03:54:27 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-11 03:54:34 +0200 <Axman6> I don't think there are many law abiding implementations of sequence which don't do what we've talked about
2021-08-11 03:55:07 +0200 <euouae> To be law abiding you need laws written down
2021-08-11 03:55:14 +0200 <Axman6> like, traverse pure = pure ensures the structure is kept intact and the order of elements can't change
2021-08-11 03:55:15 +0200 <euouae> Where's the laws for sequence documented?
2021-08-11 03:55:27 +0200xff0x(~xff0x@2001:1a81:53d2:1c00:df20:e0ed:5860:3ed0) (Ping timeout: 258 seconds)
2021-08-11 03:55:30 +0200 <dsal> https://en.wikibooks.org/wiki/Haskell/Traversable#The_Traversable_laws
2021-08-11 03:55:54 +0200 <euouae> but can't sequence have many different implementations?
2021-08-11 03:56:02 +0200 <davean> also https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Traversable.html#g:10
2021-08-11 03:56:12 +0200 <euouae> couldn't you throw away the result of the action of v <- x; and just collect v instead?
2021-08-11 03:56:16 +0200 <davean> euouae: all that follow those laws
2021-08-11 03:56:43 +0200 <dsal> You could try, but if you're implementing Traversable, you should run your implementation against checkers and see if you've made any mistakes.
2021-08-11 03:57:07 +0200 <euouae> so you're saying that the above example of `evalState (sequence $ repeat $ do { n <- get; put (n*2); return n }) 1`
2021-08-11 03:57:17 +0200 <euouae> is forced to produce [1,2,4,8,...] because of Traversable?
2021-08-11 03:57:18 +0200xff0x(~xff0x@2001:1a81:53fa:2600:8056:588e:c971:d9df)
2021-08-11 03:57:28 +0200 <euouae> Could it not had been [1,1,1,...] ?
2021-08-11 03:57:57 +0200 <Axman6> yes
2021-08-11 03:58:06 +0200 <euouae> got it
2021-08-11 03:58:45 +0200euouaeneeds to think about this more
2021-08-11 04:01:23 +0200 <dsal> One easy way to think about it is to try to make the thing that you think is bad and then verify it's lawful.
2021-08-11 04:01:55 +0200 <euouae> unlawful?
2021-08-11 04:03:11 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-08-11 04:03:25 +0200 <dsal> Well, if you make a lawful type that does something you think is bad, then it's a concrete discussion point.
2021-08-11 04:03:48 +0200 <euouae> Ok
2021-08-11 04:05:29 +0200Matthias1(~Matthias1@2603-8001-b545-4900-aca4-b81a-fb11-e9da.res6.spectrum.com)
2021-08-11 04:05:51 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2021-08-11 04:06:09 +0200Matthias1(~Matthias1@2603-8001-b545-4900-aca4-b81a-fb11-e9da.res6.spectrum.com) (Remote host closed the connection)
2021-08-11 04:07:20 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-11 04:07:35 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 04:07:42 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-11 04:12:23 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 04:14:30 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 268 seconds)
2021-08-11 04:16:00 +0200zebrag(~chris@user/zebrag)
2021-08-11 04:16:58 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-08-11 04:17:17 +0200 <Axman6> hat's the type whose Applicative instance is something like (Foo mf) <*> (Foo ma) = Foo ((\x f -> f a) <$> ma <*> mf)?
2021-08-11 04:18:06 +0200 <Axman6> What's*
2021-08-11 04:18:59 +0200 <pavonia> Is that supposed to be (\a f -> f a)?
2021-08-11 04:19:11 +0200 <Axman6> uh yes
2021-08-11 04:19:13 +0200td_(~td@muedsl-82-207-238-245.citykom.de) (Ping timeout: 248 seconds)
2021-08-11 04:19:50 +0200 <Axman6> the Applicative with the order of effects reversed basically
2021-08-11 04:20:16 +0200 <pavonia> Hhm, no idea
2021-08-11 04:21:06 +0200td_(~td@muedsl-82-207-238-098.citykom.de)
2021-08-11 04:21:51 +0200 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/libraries/transformers-0.5.6.2/Control-Applicat…
2021-08-11 04:22:06 +0200 <Axman6> <3
2021-08-11 04:27:41 +0200shailangsa(~shailangs@host86-145-14-24.range86-145.btcentralplus.com)
2021-08-11 04:28:02 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-08-11 04:28:02 +0200FinnElijaGuest2839
2021-08-11 04:28:02 +0200finn_elijaFinnElija
2021-08-11 04:31:46 +0200Guest2839(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2021-08-11 04:32:23 +0200 <dibblego> @type flip (<**>)
2021-08-11 04:32:24 +0200 <lambdabot> Applicative f => f (a -> b) -> f a -> f b
2021-08-11 04:33:47 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2021-08-11 04:36:54 +0200remexre(~nathan@user/remexre) (Ping timeout: 250 seconds)
2021-08-11 04:38:28 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 04:40:56 +0200pe200012_(~pe200012@113.105.10.33)
2021-08-11 04:41:01 +0200pe200012(~pe200012@113.105.10.33) (Ping timeout: 268 seconds)
2021-08-11 04:43:26 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-08-11 04:46:47 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-11 04:49:16 +0200polyphem(~polyphem@2a02:810d:640:776c:5d1:5727:1484:7756)
2021-08-11 04:49:53 +0200Guest6722(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-11 04:56:32 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-08-11 04:59:27 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-08-11 05:00:04 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-08-11 05:02:25 +0200remexre(~nathan@user/remexre)
2021-08-11 05:02:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 05:05:59 +0200hiruji(~hiruji@user/hiruji) (Ping timeout: 258 seconds)
2021-08-11 05:06:45 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 258 seconds)
2021-08-11 05:06:47 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 05:09:06 +0200dermato(~dermatobr@154.21.23.75) (Remote host closed the connection)
2021-08-11 05:09:30 +0200wrengrwrengr_away
2021-08-11 05:09:31 +0200MidAutumnHotaru5(~MidAutumn@user/midautumnmoon)
2021-08-11 05:09:48 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon) (Read error: Connection reset by peer)
2021-08-11 05:09:49 +0200MidAutumnHotaru5MidAutumnHotaru
2021-08-11 05:11:21 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-08-11 05:18:28 +0200hiruji(~hiruji@user/hiruji)
2021-08-11 05:19:57 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-08-11 05:30:23 +0200xsperry(~as@user/xsperry)
2021-08-11 05:30:47 +0200dermato(~dermatobr@154.21.23.75)
2021-08-11 05:33:16 +0200euouae(~euouae@user/euouae) (Quit: Ping timeout (120 seconds))
2021-08-11 05:33:36 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 05:37:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-08-11 05:38:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-08-11 05:39:16 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-08-11 05:43:29 +0200slack1256(~slack1256@191.126.23.98) (Ping timeout: 248 seconds)
2021-08-11 05:53:13 +0200Matthias1(~Matthias1@2603-8001-b545-4900-c172-9f24-99f4-d24a.res6.spectrum.com)
2021-08-11 05:54:31 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-11 05:54:31 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-11 05:54:36 +0200allbery_bgeekosaur
2021-08-11 05:56:00 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2021-08-11 05:59:29 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
2021-08-11 06:00:30 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-08-11 06:03:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 06:04:07 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-11 06:06:47 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-11 06:07:37 +0200adam1(~adam@220-136-101-108.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
2021-08-11 06:08:01 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
2021-08-11 06:13:08 +0200dmwit(~dmwit@pool-108-28-26-143.washdc.fios.verizon.net)
2021-08-11 06:15:05 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 06:16:08 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 258 seconds)
2021-08-11 06:19:08 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-08-11 06:19:35 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
2021-08-11 06:20:15 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-08-11 06:27:37 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-08-11 06:31:36 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 06:35:45 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
2021-08-11 06:41:24 +0200pe200012_(~pe200012@113.105.10.33) (Remote host closed the connection)
2021-08-11 06:41:49 +0200pe200012_(~pe200012@113.105.10.33)
2021-08-11 06:48:33 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-08-11 06:49:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-11 06:49:43 +0200euouae(~euouae@user/euouae)
2021-08-11 06:51:50 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 06:55:06 +0200thaumavorio(~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-11 06:56:01 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
2021-08-11 06:56:52 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2021-08-11 06:57:26 +0200thaumavorio(~thaumavor@thaumavor.io)
2021-08-11 06:59:50 +0200amanr(~therojjha@20.204.87.0) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-08-11 07:01:49 +0200Matthias1(~Matthias1@2603-8001-b545-4900-c172-9f24-99f4-d24a.res6.spectrum.com) (Read error: Connection reset by peer)
2021-08-11 07:02:24 +0200Matthias1(~Matthias1@cpe-76-170-236-166.socal.res.rr.com)
2021-08-11 07:07:24 +0200euouae(~euouae@user/euouae) (Quit: Ping timeout (120 seconds))
2021-08-11 07:08:28 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 272 seconds)
2021-08-11 07:21:37 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 248 seconds)
2021-08-11 07:22:50 +0200 <siraben> How do I load .o files from GHCi?
2021-08-11 07:23:53 +0200adam1(~adam@2001-b011-4007-2ff3-652c-fd1e-24cd-c39c.dynamic-ip6.hinet.net)
2021-08-11 07:24:29 +0200 <janus> siraben: .o files typically need linking before you can 'load' them. do you mean a .so file?
2021-08-11 07:24:45 +0200 <siraben> I have a `.o` file created by `clang -c stub.c`
2021-08-11 07:24:53 +0200 <siraben> I want this command `ghci -ghci-script compat.ghci party.hs ../stub.o`
2021-08-11 07:24:55 +0200 <siraben> https://crypto.stanford.edu/~blynn/compiler/module.html
2021-08-11 07:25:03 +0200 <siraben> but I can't seem to load stub.o while in GHCi
2021-08-11 07:25:58 +0200 <siraben> I'm using haskell-mode in Emacs so ideally I want to do it without breaking out to the terminal
2021-08-11 07:26:59 +0200 <janus> oh, i didn't even know you could provide objects to link to ghci
2021-08-11 07:27:15 +0200pottsy(~pottsy@2400:4050:b560:3700:38eb:29ba:72bf:9791) (Quit: Leaving)
2021-08-11 07:27:56 +0200 <janus> i would use capi with cbits and c2hs, but i realize that is totally different approach. sorry
2021-08-11 07:29:02 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-08-11 07:31:58 +0200 <siraben> I see. This is for debugging and development purposes only because the Haskell files would get compiled by blynn's Haskell compiler.
2021-08-11 07:32:06 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-08-11 07:33:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 07:37:02 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-08-11 07:38:36 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 268 seconds)
2021-08-11 07:38:45 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-11 07:43:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-08-11 07:45:20 +0200michalz(~michalz@185.246.204.37)
2021-08-11 07:53:03 +0200Guest71(~Guest71@46.97.169.79)
2021-08-11 07:54:32 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-08-11 07:57:58 +0200ubert(~Thunderbi@91.141.49.166.wireless.dyn.drei.com)
2021-08-11 08:02:42 +0200favonia(~favonia@user/favonia) (Ping timeout: 258 seconds)
2021-08-11 08:03:17 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-08-11 08:05:38 +0200Matthias1(~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection)
2021-08-11 08:07:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-08-11 08:09:24 +0200Matthias1(~Matthias1@2603-8001-b545-4900-c870-813e-66c7-5f1f.res6.spectrum.com)
2021-08-11 08:15:01 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-08-11 08:16:07 +0200adam1(~adam@2001-b011-4007-2ff3-652c-fd1e-24cd-c39c.dynamic-ip6.hinet.net) (Ping timeout: 258 seconds)
2021-08-11 08:27:33 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-08-11 08:28:46 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
2021-08-11 08:28:48 +0200Lord_of_Life_Lord_of_Life
2021-08-11 08:32:36 +0200ubert(~Thunderbi@91.141.49.166.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
2021-08-11 08:33:11 +0200 <[exa]> siraben: if you just want to have the object loaded, you may have luck with compiling to `.so` and supplying LD_PRELOAD or something
2021-08-11 08:33:23 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 08:33:44 +0200 <[exa]> siraben: but that's quite crude. why would you need that linked?
2021-08-11 08:37:12 +0200mei(~mei@user/mei)
2021-08-11 08:37:22 +0200pe200012_(~pe200012@113.105.10.33) (Quit: Konversation terminated!)
2021-08-11 08:37:26 +0200 <siraben> [exa]: so I can run main, because it calls out to the custom RTS
2021-08-11 08:37:53 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 248 seconds)
2021-08-11 08:38:24 +0200 <[exa]> ok you need .so for sure
2021-08-11 08:38:33 +0200 <[exa]> after that just use unix dlopen
2021-08-11 08:38:48 +0200 <[exa]> https://hackage.haskell.org/package/unix-2.7.2.2/docs/System-Posix.html#v:dlopen
2021-08-11 08:38:51 +0200 <[exa]> and all it with FFI
2021-08-11 08:39:34 +0200 <[exa]> `man 3 dlsym` should have the details
2021-08-11 08:39:40 +0200 <[exa]> *call
2021-08-11 08:39:52 +0200 <siraben> Heh, I'm on macOS
2021-08-11 08:39:56 +0200 <siraben> Should be the same with dylib I tihnk
2021-08-11 08:40:02 +0200akronymus(~akronymus@85.31.8.181)
2021-08-11 08:40:14 +0200 <[exa]> even macos should have dl
2021-08-11 08:40:54 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 268 seconds)
2021-08-11 08:42:14 +0200Cajun9(~Cajun@user/cajun)
2021-08-11 08:44:31 +0200Cajun(~Cajun@user/cajun) (Ping timeout: 246 seconds)
2021-08-11 08:44:37 +0200Cajun9Cajun
2021-08-11 08:45:45 +0200lep-lep
2021-08-11 08:46:10 +0200jneira(~jneira@212.8.115.226)
2021-08-11 08:53:20 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 08:54:40 +0200vysn(~vysn@user/vysn)
2021-08-11 08:58:10 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-08-11 08:58:51 +0200Pickchea(~private@user/pickchea)
2021-08-11 09:00:38 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:fe6f:ef7e:c421:8ab8)
2021-08-11 09:01:22 +0200acidjnk_new(~acidjnk@p200300d0c72b9574c56a490b8c03a837.dip0.t-ipconnect.de)
2021-08-11 09:03:51 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-08-11 09:13:04 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-08-11 09:14:18 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-08-11 09:14:24 +0200MorrowM(~Morrow@176.12.208.59)
2021-08-11 09:17:10 +0200thyriaen(~thyriaen@dynamic-078-054-169-242.78.54.pool.telefonica.de)
2021-08-11 09:18:14 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-08-11 09:28:01 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-11 09:30:11 +0200adam1(~adam@2001-b011-4007-0cae-c534-472f-0009-0a8c.dynamic-ip6.hinet.net)
2021-08-11 09:34:40 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2021-08-11 09:34:47 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-11 09:37:27 +0200Matthias_(~Matthias1@cpe-76-170-236-166.socal.res.rr.com)
2021-08-11 09:37:41 +0200 <Axman6> macos might have other tools, like otool or something
2021-08-11 09:38:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 09:39:45 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it) (Ping timeout: 248 seconds)
2021-08-11 09:40:16 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-08-11 09:40:50 +0200Matthias1(~Matthias1@2603-8001-b545-4900-c870-813e-66c7-5f1f.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-08-11 09:42:22 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it)
2021-08-11 09:42:57 +0200MorrowM(~Morrow@176.12.208.59) (Ping timeout: 248 seconds)
2021-08-11 09:49:58 +0200Guest71(~Guest71@46.97.169.79) (Ping timeout: 246 seconds)
2021-08-11 09:54:16 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-08-11 09:54:41 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 248 seconds)
2021-08-11 09:54:50 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 09:59:50 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-08-11 10:02:09 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-08-11 10:04:17 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-08-11 10:05:27 +0200hendursa1(~weechat@user/hendursaga)
2021-08-11 10:06:29 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 10:08:30 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-08-11 10:10:41 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-08-11 10:11:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-08-11 10:17:37 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-11 10:17:37 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-11 10:17:40 +0200allbery_bgeekosaur
2021-08-11 10:19:05 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-08-11 10:19:32 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-08-11 10:19:43 +0200 <kuribas> Is it bad to write a function memoize :: (a -> IO b) -> IO (a -> b)?
2021-08-11 10:19:57 +0200gehmehgeh(~user@user/gehmehgeh)
2021-08-11 10:20:24 +0200 <Taneb> A little
2021-08-11 10:20:30 +0200 <kuribas> as opposed to (a -> IO b) -> IO (a -> IO b)?
2021-08-11 10:20:50 +0200 <Taneb> It pretty much forces you to have effects happen in pure code
2021-08-11 10:21:22 +0200 <merijn> kuribas: You can't write that function
2021-08-11 10:21:29 +0200 <merijn> kuribas: I know, because I have tried
2021-08-11 10:21:36 +0200 <kuribas> hmm
2021-08-11 10:21:37 +0200 <merijn> Over and over and over and over and over and over and over
2021-08-11 10:21:51 +0200 <kuribas> hehe
2021-08-11 10:21:53 +0200 <merijn> Which makes sense
2021-08-11 10:22:03 +0200 <merijn> because the IO can depend on the value of the input 'a'
2021-08-11 10:22:12 +0200 <merijn> So you can't "do the IO first" and get back a function
2021-08-11 10:22:25 +0200 <merijn> That requires proving the IO in "a -> IO b" doesn't depend on 'a'
2021-08-11 10:22:34 +0200 <merijn> And I dunno the abstraction for that
2021-08-11 10:22:36 +0200 <kuribas> I can use unsafePerformIO?
2021-08-11 10:22:41 +0200 <merijn> How?
2021-08-11 10:22:53 +0200 <merijn> I mean, sure
2021-08-11 10:23:00 +0200 <kuribas> ah wait...
2021-08-11 10:23:14 +0200 <merijn> You can do "\f -> return (\x -> unsafePerformIO (f x))" but that's not what you meant, right?
2021-08-11 10:23:35 +0200 <merijn> Might as well skip the return if you do that :p
2021-08-11 10:24:08 +0200thyriaen(~thyriaen@dynamic-078-054-169-242.78.54.pool.telefonica.de) (Remote host closed the connection)
2021-08-11 10:24:37 +0200 <kuribas> that's what I meant...
2021-08-11 10:25:30 +0200spirit_(~spirit@122.164.113.81)
2021-08-11 10:26:11 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-08-11 10:26:12 +0200 <kuribas> like this? https://gist.github.com/kuribas/6d63a4b9be2ac210162b4c9ee2ab10ca
2021-08-11 10:27:48 +0200jneira(~jneira@212.8.115.226)
2021-08-11 10:29:04 +0200jneira(~jneira@212.8.115.226) (Client Quit)
2021-08-11 10:29:24 +0200jneira(~jneira@212.8.115.226)
2021-08-11 10:29:28 +0200 <merijn> kuribas: Why even bother with the wrapping code returning IO at that point
2021-08-11 10:29:39 +0200 <merijn> Just, like, unsafePerformIO the whole thing and call it a day
2021-08-11 10:29:55 +0200 <kuribas> merijn: because it is still somewhat morally acceptable...
2021-08-11 10:30:26 +0200 <Taneb> kuribas: I don't think it's that morally acceptable
2021-08-11 10:30:45 +0200 <kuribas> Because IO is returning a function whos value depends on future IO. But there is no contract that says IO cannot do this right?
2021-08-11 10:31:04 +0200 <kuribas> The contract is that a pure function should be pure, that is, return the same value for the same inputs.
2021-08-11 10:31:05 +0200 <merijn> kuribas: Eh, yes there is
2021-08-11 10:31:18 +0200 <merijn> kuribas: Like, this violates literally *every* part of purity in *many* horrific ways
2021-08-11 10:31:26 +0200 <kuribas> No it doesn't?
2021-08-11 10:31:28 +0200 <Taneb> If I use that I can now pass a pure function as an argument to another function, such that when I call the supposedly pure function IO effects might mysteriousl happen
2021-08-11 10:31:28 +0200 <kuribas> IO isn't pure...
2021-08-11 10:31:33 +0200 <merijn> kuribas: Yes it is
2021-08-11 10:31:39 +0200 <merijn> kuribas: That's the entire freaking point of having IO
2021-08-11 10:32:00 +0200 <kuribas> I mean, executing an IO action isn't pure...
2021-08-11 10:32:21 +0200 <merijn> kuribas: executing IO is guaranteed to be ordered with respect to other
2021-08-11 10:32:24 +0200 <merijn> *IO*
2021-08-11 10:32:42 +0200 <merijn> You have completely ripped any sense of ordering out of the execution model
2021-08-11 10:32:48 +0200 <kuribas> execpt if you have threads?
2021-08-11 10:32:51 +0200 <kuribas> except for lazy IO?
2021-08-11 10:32:58 +0200 <merijn> And made it so that a pure function "a -> b" can execute IO
2021-08-11 10:33:08 +0200 <kuribas> I mean, IO code can call C that has a timer and does an action at a random time...
2021-08-11 10:33:11 +0200 <Taneb> kuribas: memoize2 (\x -> putStrLn x >> length x) >>= \f -> print (f "hello" == f "hello"); what does this print
2021-08-11 10:33:14 +0200 <merijn> kuribas: Lazy IO violates purity and there's a reason why it's called* *unsafe*InterleaveIO
2021-08-11 10:33:20 +0200 <merijn> kuribas: Because lazy IO *is* unsafe
2021-08-11 10:33:33 +0200 <merijn> kuribas: Threads are still well ordered with respect to IO in the same thread
2021-08-11 10:33:34 +0200 <Cajun> isnt IO the way of purely (in the language representation) dealing with impure concepts?
2021-08-11 10:34:04 +0200 <kuribas> yes
2021-08-11 10:34:05 +0200 <merijn> Like, I don't mind people doing *wildly* unsafe things
2021-08-11 10:34:15 +0200 <merijn> but don't kid yourself that this code is not *wildly* unsafe
2021-08-11 10:34:18 +0200 <kuribas> There is no garantee of safety in IO, which is why IO exists.
2021-08-11 10:34:29 +0200 <merijn> kuribas: IO guarantees lots of safety
2021-08-11 10:34:36 +0200 <Taneb> kuribas: this makes there no guarantee of safety in some later not-IO
2021-08-11 10:34:38 +0200 <Cajun> i would say as a rule of thumb avoid unsafePerformIO unless its provably pure
2021-08-11 10:34:38 +0200 <merijn> There is no guarantee of safety in code using/doing unsafe things
2021-08-11 10:34:44 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-11 10:34:53 +0200 <kuribas> Taneb: yes it does. The resulting function is pure.
2021-08-11 10:35:50 +0200 <Taneb> No it isn;t
2021-08-11 10:35:56 +0200 <kuribas> yes it is.
2021-08-11 10:35:58 +0200 <Taneb> It can randomly do side effects
2021-08-11 10:36:01 +0200 <Taneb> It just pretends to be pure
2021-08-11 10:36:32 +0200 <kuribas> Taneb: It's the IO which does the side-effects.
2021-08-11 10:36:49 +0200 <merijn> kuribas: That resulting function is not pure
2021-08-11 10:36:56 +0200 <merijn> kuribas: For any sensible or common definition of pure
2021-08-11 10:37:04 +0200 <Cajun> youre *always* doing IO when you use unsafePerformIO correct?
2021-08-11 10:37:13 +0200 <Taneb> kuribas: the IO tag is long gone when the side effects can happen
2021-08-11 10:37:18 +0200 <merijn> Cajun: "maybe"
2021-08-11 10:37:24 +0200 <kuribas> Taneb: true
2021-08-11 10:37:30 +0200cawfee(~root@2406:3003:2077:2758::babe) (Ping timeout: 240 seconds)
2021-08-11 10:37:38 +0200 <merijn> Cajun: You should consider "unsafePerformIO" to mean "I'm ok with this happening 0, 1, or more times"
2021-08-11 10:37:55 +0200 <Cajun> does linearTypes not solve that?
2021-08-11 10:38:03 +0200 <merijn> Cajun: Since it might end up getting completely optimised away :p
2021-08-11 10:38:03 +0200 <kuribas> Taneb: but that can be true of any IO action.
2021-08-11 10:38:03 +0200mc47(~mc47@xmonad/TheMC47)
2021-08-11 10:38:06 +0200 <Cajun> or whatever the new thing was called that means it can only be used once
2021-08-11 10:38:10 +0200 <merijn> kuribas: No
2021-08-11 10:38:21 +0200 <merijn> kuribas: That is true of any *code* (IO or no) that uses unsafeX
2021-08-11 10:38:42 +0200 <merijn> kuribas: Which is why you should not use unsafeX unless you know what you're doing, since it completely invalidates all safety
2021-08-11 10:38:53 +0200 <Cajun> ST monad uses unsafePerformIO and is entirely type safe
2021-08-11 10:39:04 +0200 <merijn> Cajun: It does not
2021-08-11 10:39:25 +0200 <merijn> Cajun: At least, not last time I looked at all the implementation
2021-08-11 10:39:30 +0200 <merijn> Cajun: It would make no sense, anyway
2021-08-11 10:39:57 +0200 <merijn> Cajun: Both ST and IO are implemented using the same ST# (i.e. primitive ST) monad inside GHC
2021-08-11 10:40:12 +0200 <Cajun> ah yeah it doesnt, it does use unsafe functions but not that specific one
2021-08-11 10:40:15 +0200pilyn(~pilyn@user/pilyn)
2021-08-11 10:40:23 +0200 <merijn> Cajun: It doesn't use unsafe functions, afaik
2021-08-11 10:40:31 +0200 <merijn> Cajun: It doesn't have to, because it's not unsafe
2021-08-11 10:40:43 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-11 10:40:45 +0200 <merijn> ST is perfectly fine and cromulent
2021-08-11 10:40:49 +0200 <kuribas> merijn: we can debate this, but "memoize2 :: (Eq a, Hashable a) => (a -> IO b) -> (a -> b)" is far, far worse.
2021-08-11 10:41:09 +0200 <merijn> kuribas: Not really
2021-08-11 10:41:11 +0200 <kuribas> and far less predictable.
2021-08-11 10:41:16 +0200 <merijn> kuribas: No
2021-08-11 10:41:19 +0200 <merijn> It's really not
2021-08-11 10:41:40 +0200 <merijn> It superficially looks less safe than your current version
2021-08-11 10:41:50 +0200 <merijn> But practically speaking it's exactly as bad as what you have now
2021-08-11 10:42:25 +0200 <Cajun> merijn: it does define some unsafe functions but thats for lazy deference of the monad well i know you can implement a typesafe version of the ST monad in normal haskell (not GHC nonsense :P ) using unsafePerformIO
2021-08-11 10:42:55 +0200 <Cajun> those two sentences didnt meld together well but i hope you get the idea lol
2021-08-11 10:46:04 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-08-11 10:46:44 +0200Pickchea(~private@user/pickchea)
2021-08-11 10:47:04 +0200fendor(~fendor@213162073240.public.t-mobile.at)
2021-08-11 10:49:16 +0200img(~img@user/img)
2021-08-11 10:50:12 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk)
2021-08-11 10:53:39 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-11 10:55:37 +0200 <kuribas> merijn: I don't disagree that it's unsafe, I disagree that IO has to be safe, or that its effects have to be momentarily.
2021-08-11 10:56:20 +0200 <kuribas> For example, and IO action returns a value, and no side effects will happen after returning that value.
2021-08-11 10:56:36 +0200 <kuribas> It's a good property to have, but it's not a property that IO is garanteed to have.
2021-08-11 10:56:42 +0200 <merijn> That's 100% in the absence of threading
2021-08-11 10:56:58 +0200ubert(~Thunderbi@91.141.49.166.wireless.dyn.drei.com)
2021-08-11 10:57:17 +0200 <kuribas> what about interupts, timers?
2021-08-11 10:57:42 +0200 <merijn> Can't set interrupt or timers that (visibly) affect non-IO code
2021-08-11 10:57:59 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-08-11 10:57:59 +0200cheater(~Username@user/cheater)
2021-08-11 10:57:59 +0200 <merijn> Timers, interrupts, and async exceptions are only visible within IO
2021-08-11 10:58:10 +0200 <merijn> Pure code can't notice them
2021-08-11 10:58:27 +0200chomwitt(~chomwitt@2a02:587:dc02:6400:12c3:7bff:fe6d:d374)
2021-08-11 11:00:11 +0200 <kuribas> merijn: you cannot "see" the effects of the IO in my signature above. From IO, yes, but not from pure code.
2021-08-11 11:01:29 +0200 <kuribas> hmm, well maybe you can
2021-08-11 11:01:34 +0200 <kuribas> with lazyIO...
2021-08-11 11:01:40 +0200 <merijn> Anyway, I'm bored of this discussion
2021-08-11 11:01:46 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-11 11:02:21 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk)
2021-08-11 11:02:24 +0200 <merijn> I'll pre-emptively give you my "I told you so", feel free to cash it in at any later point when things blow up :p
2021-08-11 11:02:26 +0200 <kuribas> yeah, I am not sure I'll use it anyway...
2021-08-11 11:02:43 +0200 <kuribas> merijn: sure :)à
2021-08-11 11:05:07 +0200montxero(~user@149.167.149.74)
2021-08-11 11:06:41 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 248 seconds)
2021-08-11 11:08:31 +0200cawfee(~root@2406:3003:2077:2758::babe)
2021-08-11 11:10:44 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-08-11 11:11:51 +0200silasfox(~silasfox@62.159.27.1)
2021-08-11 11:12:03 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-11 11:13:59 +0200adam1gfunk
2021-08-11 11:15:30 +0200gfunkadam1
2021-08-11 11:20:44 +0200adam1(~adam@2001-b011-4007-0cae-c534-472f-0009-0a8c.dynamic-ip6.hinet.net) (Quit: WeeChat 3.2)
2021-08-11 11:22:31 +0200adam1(~adam@2001-b011-4007-0cae-c534-472f-0009-0a8c.dynamic-ip6.hinet.net)
2021-08-11 11:26:05 +0200silasfox(~silasfox@62.159.27.1) (Quit: Connection closed)
2021-08-11 11:28:32 +0200silasfox(~silasfox@62.159.27.1)
2021-08-11 11:30:24 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:fe6f:ef7e:c421:8ab8) (Quit: WeeChat 2.8)
2021-08-11 11:34:32 +0200silasfox(~silasfox@62.159.27.1) (Quit: Connection closed)
2021-08-11 11:36:23 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-11 11:37:16 +0200silasfox(~silasfox@62.159.27.1)
2021-08-11 11:40:16 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 250 seconds)
2021-08-11 11:40:26 +0200montxero(~user@149.167.149.74) (Read error: No route to host)
2021-08-11 11:40:37 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2021-08-11 11:40:57 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
2021-08-11 11:43:07 +0200chomwitt(~chomwitt@2a02:587:dc02:6400:12c3:7bff:fe6d:d374) (Ping timeout: 258 seconds)
2021-08-11 11:44:13 +0200adam1(~adam@2001-b011-4007-0cae-c534-472f-0009-0a8c.dynamic-ip6.hinet.net) (Quit: WeeChat 3.2)
2021-08-11 11:47:03 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-08-11 11:56:31 +0200 <Gurkenglas> Is there a library that wraps all the reasonable uses of unsafePerformIO, or is there folk knowledge to the effect that you could never cover exactly the reasonable usecases?
2021-08-11 11:57:00 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 276 seconds)
2021-08-11 11:57:26 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2021-08-11 11:57:36 +0200chomwitt(~chomwitt@2a02:587:dc02:6400:12c3:7bff:fe6d:d374)
2021-08-11 11:57:37 +0200MorrowM(~Morrow@176.12.208.59)
2021-08-11 11:57:55 +0200 <Gurkenglas> (but even so - is there a library that wraps many reasonable usecases but not all, and perhaps another module that wraps all the reasonable usecases and then some, to find a tighter upper bound on the unattainable?)
2021-08-11 11:58:58 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-11 11:59:35 +0200 <Gurkenglas> (Same for unsafeCoerce, of course, where Gödel says we can at most do the latter nested interval sequence)
2021-08-11 12:02:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-08-11 12:02:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 12:03:14 +0200fendor_(~fendor@212095005136.public.telering.at)
2021-08-11 12:04:24 +0200fendor(~fendor@213162073240.public.t-mobile.at) (Ping timeout: 268 seconds)
2021-08-11 12:05:43 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3164:2b89:620b:cb12)
2021-08-11 12:07:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
2021-08-11 12:07:33 +0200montxero(~user@149.167.149.74)
2021-08-11 12:07:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 12:08:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 12:12:28 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2021-08-11 12:15:47 +0200davros(~davros@host86-184-180-96.range86-184.btcentralplus.com) (Remote host closed the connection)
2021-08-11 12:16:16 +0200akronymus(~akronymus@85.31.8.181) (Ping timeout: 246 seconds)
2021-08-11 12:18:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-08-11 12:19:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 12:21:04 +0200acidjnk_new(~acidjnk@p200300d0c72b9574c56a490b8c03a837.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-08-11 12:25:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-08-11 12:25:37 +0200Pickchea(~private@user/pickchea) (Ping timeout: 248 seconds)
2021-08-11 12:25:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 12:30:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
2021-08-11 12:30:58 +0200fendor_(~fendor@212095005136.public.telering.at) (Read error: Connection reset by peer)
2021-08-11 12:31:05 +0200akronymus(~akronymus@85.31.8.181)
2021-08-11 12:31:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 12:32:08 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-08-11 12:32:15 +0200oxide(~lambda@user/oxide)
2021-08-11 12:35:01 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 12:35:17 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Read error: Connection reset by peer)
2021-08-11 12:35:43 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-11 12:37:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-08-11 12:37:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 12:39:29 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 248 seconds)
2021-08-11 12:43:13 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 248 seconds)
2021-08-11 12:43:45 +0200bin_(~bin@user/bin/x-1583188)
2021-08-11 12:43:52 +0200_bin(~bin@user/bin/x-1583188) (Ping timeout: 268 seconds)
2021-08-11 12:45:15 +0200OscarH_(~OscarH@97e48a81.skybroadband.com)
2021-08-11 12:45:58 +0200OscarH(~OscarH@97e48a81.skybroadband.com) (Ping timeout: 272 seconds)
2021-08-11 12:47:21 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-08-11 12:47:54 +0200jneira(~jneira@212.8.115.226)
2021-08-11 12:48:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
2021-08-11 12:48:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 12:52:21 +0200Pickchea(~private@user/pickchea)
2021-08-11 12:53:43 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds)
2021-08-11 12:56:27 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-11 12:56:57 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-11 12:57:37 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 248 seconds)
2021-08-11 12:58:39 +0200Guest46(~Guest46@2a01:4b00:8099:2b00:a808:2632:c145:d901)
2021-08-11 12:58:39 +0200 <Guest46> hi
2021-08-11 12:59:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-08-11 12:59:28 +0200 <Guest46> how nice is purescript frontend + haskell backend as a development experience?
2021-08-11 13:00:08 +0200 <Guest46> i was thinking of making a website that lets you run code online but ties into the compiler for integration/tips or maybe language server
2021-08-11 13:00:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 13:00:24 +0200 <Guest46> is it better to do everything on the backend and have a very dumb front end?
2021-08-11 13:01:01 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-11 13:01:44 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
2021-08-11 13:03:42 +0200 <maerwald[m]> Guest46: typescript + haskell is better
2021-08-11 13:03:55 +0200 <Guest46> could you explain please?
2021-08-11 13:04:17 +0200akronymus(~akronymus@85.31.8.181) ()
2021-08-11 13:04:33 +0200MorrowM(~Morrow@176.12.208.59) (Ping timeout: 248 seconds)
2021-08-11 13:04:50 +0200 <maerwald[m]> purescript isn't popular, lacks documentation, requires effort to integrate with certain js libraries, etc etc
2021-08-11 13:04:56 +0200 <maerwald[m]> doesn't bring much to the table compared to typescript
2021-08-11 13:05:14 +0200 <Guest46> is elm better?
2021-08-11 13:05:43 +0200 <Guest46> i tried Rust with Seed (web assembly frontend) and found a bunch of strange runtime problems
2021-08-11 13:06:06 +0200 <maerwald[m]> have never used elm... not sure why I would choose that over typescript either
2021-08-11 13:06:35 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-11 13:06:44 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-11 13:06:44 +0200 <maerwald[m]> the language isn't even exciting (unlike purescript)
2021-08-11 13:08:02 +0200Guest46(~Guest46@2a01:4b00:8099:2b00:a808:2632:c145:d901) (Quit: Client closed)
2021-08-11 13:08:15 +0200Guest46(~Guest46@2a01:4b00:8099:2b00:a808:2632:c145:d901)
2021-08-11 13:09:50 +0200 <Guest46> hmm maybe typescript is best
2021-08-11 13:09:56 +0200 <Guest46> i'm guessing that asterius is still not usable??
2021-08-11 13:10:04 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-11 13:10:54 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Ping timeout: 258 seconds)
2021-08-11 13:15:42 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583)
2021-08-11 13:15:49 +0200 <nf> int-e: hi! would you consider releasing a new lambdabot version please?
2021-08-11 13:18:48 +0200 <int-e> oh wow, has it been a year already?
2021-08-11 13:21:01 +0200jneira(~jneira@212.8.115.226) (Ping timeout: 246 seconds)
2021-08-11 13:22:41 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it) (Remote host closed the connection)
2021-08-11 13:22:51 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it)
2021-08-11 13:23:19 +0200Arsen(~arsen@managarm/dev/Arsen) (Quit: Quit.)
2021-08-11 13:24:12 +0200Arsen(~arsen@managarm/dev/Arsen)
2021-08-11 13:29:12 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-11 13:30:01 +0200 <Guest46> int-e sorry if this is a dumb question but how does lambda bot ensure it is secure? like running random bits of code off the internet
2021-08-11 13:30:09 +0200 <Guest46> not that the expressions are complicated
2021-08-11 13:31:57 +0200 <int-e> Guest46: well, it leverages SafeHaskell and the type system to avoid running arbitrary IO. But I've also sandboxed mueval (which is what compiles and runs the Haskell code for lambdabot)...
2021-08-11 13:33:25 +0200 <merijn> Guest46: Yahb doesn't bother with safe haskell at all and relies on just sandboxing
2021-08-11 13:33:39 +0200 <merijn> % readFile "/etc/passwd" >>= putStrLn
2021-08-11 13:33:40 +0200 <yahb> merijn: *** Exception: /etc/passwd: openFile: does not exist (No such file or directory)
2021-08-11 13:33:50 +0200 <Guest46> huh interesting so like a linux container
2021-08-11 13:33:53 +0200 <Guest46> or virtual machine?
2021-08-11 13:34:07 +0200 <merijn> That or something like a BSD jail, yeah
2021-08-11 13:34:10 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 272 seconds)
2021-08-11 13:34:16 +0200 <merijn> With limited network access, presumably
2021-08-11 13:34:25 +0200 <merijn> > print True
2021-08-11 13:34:26 +0200 <lambdabot> <IO ()>
2021-08-11 13:34:32 +0200 <merijn> Lambdabot refuses to run IO
2021-08-11 13:34:34 +0200 <merijn> % print True
2021-08-11 13:34:34 +0200 <yahb> merijn: True
2021-08-11 13:34:38 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-08-11 13:35:26 +0200 <Guest46> that's very intriguing two different approaches. i suppose i'd always need a sandbox because of memory leaks
2021-08-11 13:35:53 +0200 <merijn> And possible bugs :p
2021-08-11 13:36:03 +0200 <Guest46> 'possible' is optimistic haha
2021-08-11 13:36:09 +0200 <Guest46> at least for me
2021-08-11 13:36:16 +0200 <merijn> lambdabot certainly had issues in the past
2021-08-11 13:36:41 +0200 <merijn> But it's also been around for a *long* ass time and most obvious (and obscure) exploits have been tried already :p
2021-08-11 13:37:02 +0200 <Guest46> i don't really know what i'm doing so i guess i'll just run my code in as strict a sandbox that runs the code without internet
2021-08-11 13:37:03 +0200 <merijn> For sure lambdabot was already around when I started somewhere around 2007-2009, I think
2021-08-11 13:37:19 +0200 <merijn> Guest46: In general the best approach is "don't run untrusted code" :p
2021-08-11 13:37:25 +0200 <Guest46> ahh
2021-08-11 13:37:30 +0200 <Guest46> well the idea is an educational haskell site
2021-08-11 13:37:34 +0200 <Guest46> it is pretty much part of the premise
2021-08-11 13:39:22 +0200 <Guest46> i also think it would be pretty fun to figure out how to do it, thanks i'll look into mueval :) have a nice day
2021-08-11 13:39:28 +0200markpythonicbitc(~markpytho@2601:647:5a00:35:9c61:394:eb0f:e1ed) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-11 13:39:37 +0200 <merijn> Guest46: RIP your sanity, then ;)
2021-08-11 13:40:00 +0200 <merijn> Guest46: Well, one thing to ask yourself is whether you need/want to, support using IO for one thing
2021-08-11 13:40:08 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-08-11 13:40:51 +0200 <Guest46> i'll err on the side of caution and avoid running arbitrary IO until I have to
2021-08-11 13:41:53 +0200oxide(~lambda@user/oxide) (Ping timeout: 248 seconds)
2021-08-11 13:42:24 +0200futty(~futty@c83-252-75-55.bredband.tele2.se)
2021-08-11 13:43:03 +0200Pickchea(~private@user/pickchea) (Ping timeout: 268 seconds)
2021-08-11 13:44:46 +0200favonia(~favonia@user/favonia)
2021-08-11 13:45:01 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-08-11 13:45:32 +0200Guest8443(~Guest84@2406:3003:2006:447e:71a7:e07d:4b0e:e66e)
2021-08-11 13:47:51 +0200leplep-
2021-08-11 13:48:26 +0200 <futty> The use of the words "variant" and "invariant" is of importance in defining/designing recursion in my Haskell course and I have an understanding of them. But I cant quite define what they are, can anyone help me out?
2021-08-11 13:48:46 +0200oxide(~lambda@user/oxide)
2021-08-11 13:49:25 +0200 <Guest46> do you have a specific example that you are confused about?
2021-08-11 13:49:34 +0200 <Guest46> that may help narrow down any confusions
2021-08-11 13:49:50 +0200 <merijn> futty: An "invariant" doesn't, well, vary. i.e. it's a property that is true for all possible executions
2021-08-11 13:50:58 +0200chomwitt(~chomwitt@2a02:587:dc02:6400:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds)
2021-08-11 13:51:02 +0200 <merijn> futty: I'm not sure I see "variant" very often in Haskell, tbh
2021-08-11 13:51:13 +0200 <merijn> futty: Other than it's normal English usage
2021-08-11 13:51:20 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-08-11 13:51:23 +0200 <merijn> But yeah, context would be useful
2021-08-11 13:53:17 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon)
2021-08-11 13:53:54 +0200 <futty> myReplicate :: Integer -> a -> [a]
2021-08-11 13:53:54 +0200 <futty> --variant: n
2021-08-11 13:53:55 +0200 <futty> myReplicate 0 toRep = []
2021-08-11 13:53:55 +0200 <futty> myReplicate n toRep = toRep : myReplicate (n-1) toRep
2021-08-11 13:54:31 +0200 <futty> I have a better understanding of a variant, it is literally varying and eventually pattern matching aganst a base case. That ensures function termination.
2021-08-11 13:55:13 +0200 <futty> I cant really understand invariant, it is for example found in the algorithm book when describing a sorting algorithm.
2021-08-11 13:56:21 +0200 <unrooted> Can I still somehow continue 'Stack install' even if I get 'warning: - Wdeprecations'?
2021-08-11 13:56:34 +0200 <futty> https://imgur.com/PeJvwvc
2021-08-11 13:56:35 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
2021-08-11 13:56:50 +0200kor1(~kor1@user/kor1)
2021-08-11 13:56:53 +0200Guest46(~Guest46@2a01:4b00:8099:2b00:a808:2632:c145:d901) (Quit: Client closed)
2021-08-11 13:56:58 +0200 <futty> The example of invariant. It is described in such formal language that I cant quite grasp what it is.
2021-08-11 13:57:10 +0200 <merijn> futty: A loop invariant is a property that is true for every iteration of the loop
2021-08-11 13:57:29 +0200 <merijn> futty: A property whose truth doesn't change, regardless of which iteration we're in
2021-08-11 13:57:40 +0200 <futty> If I say this:
2021-08-11 13:58:04 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-11 13:58:18 +0200 <futty> A variant ensures termination in a recursive function and an invariant ensures the correctness? of the algorithm in a function, would that be a correct description?
2021-08-11 13:59:30 +0200 <merijn> futty: An invariant doesn't ensure anything, it just is
2021-08-11 13:59:45 +0200 <merijn> Proving that a property is invariant my simplify other proofs
2021-08-11 14:00:11 +0200 <futty> alright, thank you guys
2021-08-11 14:00:14 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-11 14:00:27 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-11 14:01:18 +0200Pickchea(~private@user/pickchea)
2021-08-11 14:01:58 +0200ubert(~Thunderbi@91.141.49.166.wireless.dyn.drei.com) (Quit: ubert)
2021-08-11 14:02:16 +0200spirit_(~spirit@122.164.113.81) (Remote host closed the connection)
2021-08-11 14:02:22 +0200ubert(~Thunderbi@91.141.49.166.wireless.dyn.drei.com)
2021-08-11 14:02:41 +0200jneira(~jneira@212.8.115.226)
2021-08-11 14:05:13 +0200Guest8443(~Guest84@2406:3003:2006:447e:71a7:e07d:4b0e:e66e) (Quit: Client closed)
2021-08-11 14:05:35 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-11 14:06:29 +0200Pickchea(~private@user/pickchea) (Ping timeout: 268 seconds)
2021-08-11 14:07:18 +0200markpythonicbitc(~markpytho@50.228.44.6)
2021-08-11 14:08:20 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 268 seconds)
2021-08-11 14:09:16 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 14:09:17 +0200tomd99(~a@p200300ef97023872a00237f9722b67dc.dip0.t-ipconnect.de)
2021-08-11 14:10:23 +0200 <tomd99> Is a lambda function more strict than a normal function?
2021-08-11 14:10:29 +0200 <tomd99> > x = id True
2021-08-11 14:10:31 +0200 <tomd99> > y = (\a -> a) True
2021-08-11 14:10:31 +0200 <lambdabot> <hint>:1:3: error: parse error on input ‘=’
2021-08-11 14:10:32 +0200 <lambdabot> <hint>:1:3: error: parse error on input ‘=’
2021-08-11 14:10:33 +0200 <tomd99> > :sprint x y
2021-08-11 14:10:34 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
2021-08-11 14:10:35 +0200 <tomd99> x = _
2021-08-11 14:10:37 +0200 <tomd99> y = True
2021-08-11 14:13:08 +0200 <lortabac> tomd99: "normal" function declarations are just syntactic sugar for lambdas
2021-08-11 14:13:10 +0200Guest71(~Guest71@46.97.169.79)
2021-08-11 14:13:46 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-08-11 14:15:07 +0200 <lortabac> tomd99: you can try `id' = \x -> x; z = id' True` and then :sprint z
2021-08-11 14:15:11 +0200mc47(~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
2021-08-11 14:15:50 +0200viluon(uid453725@id-453725.brockwell.irccloud.com)
2021-08-11 14:17:01 +0200 <tomd99> lortabac: So naming a function adds additional indirection?
2021-08-11 14:17:56 +0200 <hpc> it's actually top-level definitions in ghci that are odd
2021-08-11 14:18:51 +0200 <hpc> when you do something like "a = True", a starts fully evaluated
2021-08-11 14:18:52 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-08-11 14:19:08 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds)
2021-08-11 14:19:20 +0200 <hpc> and you need that additional layer of id to get back to what you would normally see in a program (minus optimizations)
2021-08-11 14:20:34 +0200tlaxkit(~hexchat@170.253.40.255)
2021-08-11 14:20:58 +0200 <hpc> how far it goes with that evaluation seems to stop at free variables?
2021-08-11 14:21:50 +0200_73(~user@pool-96-233-64-53.bstnma.fios.verizon.net)
2021-08-11 14:22:00 +0200 <hpc> y = (\z x -> x z) True (\x -> x)
2021-08-11 14:22:04 +0200 <hpc> y = True
2021-08-11 14:22:07 +0200 <hpc> y = (\z x -> x $ z) True (\x -> x)
2021-08-11 14:22:11 +0200 <hpc> y = _
2021-08-11 14:22:57 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-08-11 14:23:07 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon)
2021-08-11 14:23:08 +0200qwedfg(~qwedfg@user/qwedfg)
2021-08-11 14:23:56 +0200 <hpc> yeah, it still does "x = _" even if you define "id' = \x -> x"
2021-08-11 14:24:03 +0200 <hpc> so that's what's happening i suspect
2021-08-11 14:24:03 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon) (Client Quit)
2021-08-11 14:24:13 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon)
2021-08-11 14:25:23 +0200_73(~user@pool-96-233-64-53.bstnma.fios.verizon.net) ()
2021-08-11 14:25:42 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon) (Client Quit)
2021-08-11 14:25:53 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon)
2021-08-11 14:26:28 +0200Guest71(~Guest71@46.97.169.79) (Ping timeout: 246 seconds)
2021-08-11 14:27:42 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon) (Client Quit)
2021-08-11 14:27:56 +0200 <viluon> hi, is it possible to `stack clean` build artifacts for a package my project depends on?
2021-08-11 14:28:09 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon)
2021-08-11 14:29:40 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon) (Client Quit)
2021-08-11 14:32:24 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 268 seconds)
2021-08-11 14:32:57 +0200MidAutumnHotaru(~MidAutumn@user/midautumnmoon)
2021-08-11 14:33:15 +0200MidAutumnHotaruMidAutumnMoon
2021-08-11 14:35:47 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-08-11 14:36:05 +0200kmein(~weechat@user/kmein)
2021-08-11 14:36:21 +0200 <viluon> I believe I may have run into a Cabal or Stack bug (suggested here https://stackoverflow.com/questions/54156236/how-to-resolve-however-the-given-installed-package-in…) after a failed compilation in an ASCII locale. I switched to UTF-8 and regenerated the locales and am stuck with "dependencies were requested... however the given installed package instance does not exist" errors.
2021-08-11 14:36:26 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 14:36:30 +0200 <viluon> Stack config and logs are here (https://paste.tomsmeding.com/deuH2dqX), this is being compiled with a fork of GHC but it's believed to work
2021-08-11 14:38:33 +0200 <viluon> repo is here (https://github.com/viluon/ghc-wpc-sample-programs). I'd like to retain the compilation artifacts for anything that did build successfully since it's a large project. Hence my query about `stack clean`.
2021-08-11 14:41:12 +0200 <nf> int-e: time flies
2021-08-11 14:42:07 +0200lep-lep
2021-08-11 14:42:16 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-08-11 14:43:26 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-11 14:43:52 +0200 <kuribas> ugh, I wish I could turn of shadowing warnings locally...
2021-08-11 14:43:58 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk)
2021-08-11 14:47:11 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection)
2021-08-11 14:47:42 +0200chomwitt(~chomwitt@ppp-2-85-147-24.home.otenet.gr)
2021-08-11 14:48:16 +0200burnsidesLlama(~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 258 seconds)
2021-08-11 14:49:53 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-08-11 14:50:01 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-11 14:50:09 +0200cladur(~cladur@user-5-173-146-9.play-internet.pl) (Ping timeout: 248 seconds)
2021-08-11 14:52:34 +0200barrucadu(~barrucadu@carcosa.barrucadu.co.uk) (Quit: leaving)
2021-08-11 14:53:59 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2021-08-11 14:57:02 +0200yourname_(~barrucadu@carcosa.barrucadu.co.uk)
2021-08-11 14:57:50 +0200fendor(~fendor@213162073059.public.t-mobile.at)
2021-08-11 14:57:51 +0200yourname_barrucadu
2021-08-11 14:58:56 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-08-11 14:58:59 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-08-11 14:59:37 +0200hendursaga(~weechat@user/hendursaga)
2021-08-11 14:59:39 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 276 seconds)
2021-08-11 15:00:40 +0200fendor(~fendor@213162073059.public.t-mobile.at) (Remote host closed the connection)
2021-08-11 15:00:51 +0200enoq(~enoq@194-208-179-35.lampert.tv)
2021-08-11 15:01:06 +0200alx741(~alx741@181.196.68.193)
2021-08-11 15:03:28 +0200leplep-
2021-08-11 15:08:13 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-11 15:08:28 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Client Quit)
2021-08-11 15:08:51 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-11 15:09:42 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-08-11 15:09:49 +0200emliunix(~emliunix@103.138.75.119) (Remote host closed the connection)
2021-08-11 15:12:07 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-11 15:15:27 +0200 <int-e> Oh sigh, bit rot... ghc-9.0.1 broke knob, which lambdabot depends on via misfortune... Okay, no 9.0.1 support today.
2021-08-11 15:15:39 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-11 15:16:07 +0200 <int-e> nf: anyway: working on it, see https://github.com/lambdabot/lambdabot/pull/200
2021-08-11 15:16:35 +0200 <nf> cool, thanks
2021-08-11 15:18:54 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-08-11 15:18:58 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-08-11 15:19:25 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-11 15:22:20 +0200oxide(~lambda@user/oxide) (Ping timeout: 268 seconds)
2021-08-11 15:23:00 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-08-11 15:26:57 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-11 15:27:22 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-08-11 15:27:37 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-08-11 15:30:21 +0200pilyn(~pilyn@user/pilyn) (Quit: Leaving)
2021-08-11 15:30:39 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-11 15:34:51 +0200slack1256(~slack1256@181.203.38.2)
2021-08-11 15:39:34 +0200tomd99(~a@p200300ef97023872a00237f9722b67dc.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-08-11 15:40:40 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-08-11 15:41:01 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
2021-08-11 15:42:03 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-08-11 15:42:28 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
2021-08-11 15:43:00 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-11 15:43:26 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-08-11 15:45:24 +0200chris(~chris@81.96.113.213)
2021-08-11 15:45:28 +0200chrisGuest4990
2021-08-11 15:47:05 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3164:2b89:620b:cb12) (Quit: WeeChat 2.8)
2021-08-11 15:48:57 +0200simon1(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-08-11 15:50:07 +0200timCF(~timCF@200-149-20-81.sta.estpak.ee)
2021-08-11 15:53:54 +0200 <timCF> Hello guys! I have a problem with `thread blocked indefinitely in an MVar operation` error. In my case at some point there is possibility that all threads which can write to the MVar are dead, and in this case Haskell runtime raises this async exception. To protect my program from this, I'm using `tryTakeMVar :: MVar a -> IO (Maybe a)` function instead of `takeMVar` to handle deadlock situations. But async
2021-08-11 15:54:00 +0200 <timCF> exception still happens from time to time. What I'm doing wrong?
2021-08-11 15:55:47 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-08-11 15:56:07 +0200vysn(~vysn@user/vysn) (Ping timeout: 258 seconds)
2021-08-11 15:56:15 +0200silasfox(~silasfox@62.159.27.1) (Quit: Connection closed)
2021-08-11 15:56:39 +0200 <int-e> timCF: Hard to say, but note that the exception can arise from putMVar as well
2021-08-11 15:57:25 +0200 <timCF> int-e: I'm using `tryPutMVar` to avoid this error case.
2021-08-11 15:57:58 +0200 <int-e> "Hard to say"--we'll need more details to narrow things down.
2021-08-11 15:59:14 +0200 <merijn> timCF: If at some point all threads who can write are dead, then how would you ever recover?
2021-08-11 16:00:05 +0200 <merijn> timCF: What are you using the MVar for?
2021-08-11 16:00:09 +0200 <timCF> int-e: I can send a link to source code, maybe code explains itself better than me
2021-08-11 16:00:12 +0200 <timCF> https://github.com/coingaming/lnd-client/blob/1a45d5fa731f39f73243a8a624d583a5858729b3/src/LndClie…
2021-08-11 16:01:01 +0200 <merijn> timCF: Why not use an actual channel?
2021-08-11 16:01:19 +0200 <timCF> merijn: Just to detect that something happened in spawned thread. In case where all processes are dead, tryTakeMVar will be always nothing and retry counter will run into zero
2021-08-11 16:02:16 +0200 <timCF> merijn: you mean TChan instead of MVar?
2021-08-11 16:03:10 +0200 <timCF> Is there any advantage in TChan vs MVar for case where it's needed just to detect once that something happened?
2021-08-11 16:03:12 +0200 <merijn> That means wrapping with extra STM to check if it's closed, though
2021-08-11 16:03:25 +0200 <merijn> timCF: hm
2021-08-11 16:03:35 +0200 <merijn> timCF: You just have N workers and wanna know if they're all dead, yeah?
2021-08-11 16:03:46 +0200 <merijn> timCF: Don't you just want QSemN?
2021-08-11 16:06:45 +0200 <timCF> merijn: No, I have an gRPC subscription procedure which should return something from a server stream in case of success. So I'm providing to stream handler link to MVar to fill in. And then spawning subscription processes, trying to read this MVar in main process and hope for the best
2021-08-11 16:07:38 +0200 <timCF> In case this "stream callback MVar" was not filled in 10 attempts - all procedure fails.
2021-08-11 16:08:12 +0200Sgeo(~Sgeo@user/sgeo)
2021-08-11 16:09:51 +0200 <kuribas> Is there a validation transformer?
2021-08-11 16:09:56 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-11 16:10:39 +0200 <timCF> Spawned gRPC procedure might die before calling stream callback, which results in no active MVar references, but it should be fine because I'm using `tryPutMVar` and `tryTakeMVar` to avoid deadlock detection of Haskell runtime.
2021-08-11 16:10:56 +0200 <justsomeguy> When installing stack manually, using the staic binary, as listed here https://docs.haskellstack.org/en/stable/install_and_upgrade/#manual-download_2, how do I check the gpg signature of the tar file? I don't see a signed checksum file anywhere. ...
2021-08-11 16:12:29 +0200 <kuribas> hmm, I can just Compose Validation I guess...
2021-08-11 16:13:53 +0200 <merijn> kuribas: Yeah, Applicatives don't need transformers due to Compose
2021-08-11 16:14:19 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-08-11 16:14:58 +0200mc47(~mc47@xmonad/TheMC47)
2021-08-11 16:16:00 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 268 seconds)
2021-08-11 16:16:12 +0200mattil(~mattilinn@62-113-178-139.bb.dnainternet.fi)
2021-08-11 16:18:04 +0200mattil(~mattilinn@62-113-178-139.bb.dnainternet.fi) (Max SendQ exceeded)
2021-08-11 16:18:23 +0200 <int-e> timCF: how do you know which MVar is causing this?
2021-08-11 16:18:58 +0200mattil(~mattilinn@62-113-178-139.bb.dnainternet.fi)
2021-08-11 16:20:07 +0200 <kuribas> ugh, validation depends on lens, and brings in the kitchen sink...
2021-08-11 16:20:35 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-11 16:20:49 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 248 seconds)
2021-08-11 16:21:07 +0200 <timCF> int-e: yes, this one https://github.com/coingaming/lnd-client/blob/1a45d5fa731f39f73243a8a624d583a5858729b3/src/LndClie…
2021-08-11 16:24:42 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection)
2021-08-11 16:26:58 +0200 <nf> int-e: thanks for the release!
2021-08-11 16:27:32 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-08-11 16:29:28 +0200 <int-e> nf: thanks for the prod!
2021-08-11 16:31:08 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583)
2021-08-11 16:31:34 +0200 <int-e> timCF: that didn't answer my question, fwiw
2021-08-11 16:32:13 +0200 <int-e> Then again I'm not sure I can help anyway. AFAIUI, try{Put,Take}MVar *can't* cause this exceptions because they can never block at all.
2021-08-11 16:33:14 +0200 <int-e> Which strongly suggests that the actual MVar that's causing this is somewhere else, maybe in a dependency.
2021-08-11 16:33:24 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 16:35:20 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3164:2b89:620b:cb12)
2021-08-11 16:35:46 +0200 <timCF> int-e: Hmm. Thanks for reply anyway! Maybe implementation of these functions was different before. I'm using not the latest version of Base, from lts-14.27
2021-08-11 16:36:30 +0200 <int-e> these have been dedicated primops for a very long time
2021-08-11 16:37:23 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-08-11 16:38:06 +0200tomd99(~a@p200300ef97023872a00237f9722b67dc.dip0.t-ipconnect.de)
2021-08-11 16:38:06 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-11 16:40:06 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-11 16:41:41 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 16:43:21 +0200 <int-e> Since early 2001, when tryPutMVar was added in the first place (tryTakeMVar already existed at that point)
2021-08-11 16:46:53 +0200Skyfire(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-08-11 16:48:48 +0200tomd99(~a@p200300ef97023872a00237f9722b67dc.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
2021-08-11 16:49:37 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 16:50:10 +0200rmoe(~rmoe@c-71-236-207-44.hsd1.wa.comcast.net) (Ping timeout: 258 seconds)
2021-08-11 16:51:15 +0200MorrowM(~Morrow@176.12.208.59)
2021-08-11 16:53:25 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
2021-08-11 16:53:45 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-08-11 16:53:49 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-11 16:58:54 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-08-11 17:02:25 +0200chomwitt(~chomwitt@ppp-2-85-147-24.home.otenet.gr) (Ping timeout: 248 seconds)
2021-08-11 17:02:40 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
2021-08-11 17:03:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-08-11 17:03:35 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 258 seconds)
2021-08-11 17:08:31 +0200Skyfire(~pyon@user/pyon)
2021-08-11 17:12:01 +0200MorrowM(~Morrow@176.12.208.59) (Ping timeout: 258 seconds)
2021-08-11 17:14:42 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 258 seconds)
2021-08-11 17:15:07 +0200emliunix(~emliunix@103.138.75.119)
2021-08-11 17:17:17 +0200polyphem(~polyphem@2a02:810d:640:776c:5d1:5727:1484:7756) (Remote host closed the connection)
2021-08-11 17:17:24 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3164:2b89:620b:cb12) (Quit: WeeChat 2.8)
2021-08-11 17:17:43 +0200Sap(~Sap@68.92-220-148.customer.lyse.net)
2021-08-11 17:18:01 +0200Sap(~Sap@68.92-220-148.customer.lyse.net) (Client Quit)
2021-08-11 17:19:08 +0200Sap(~Sap@68.92-220-148.customer.lyse.net)
2021-08-11 17:20:34 +0200Sap(~Sap@68.92-220-148.customer.lyse.net) (Client Quit)
2021-08-11 17:20:46 +0200Sap(~Sap@68.92-220-148.customer.lyse.net)
2021-08-11 17:21:03 +0200Sap(~Sap@68.92-220-148.customer.lyse.net) (Client Quit)
2021-08-11 17:24:23 +0200 <amesgen[m]> kuribas: there is monad-validate: https://hackage.haskell.org/package/monad-validate-1.2.0.0/docs/Control-Monad-Validate.html
2021-08-11 17:24:23 +0200 <amesgen[m]> It has a slightly unlawful Monad instance, which is documented in great detail
2021-08-11 17:24:53 +0200 <kuribas> amesgen[m]: I wrote my own ValidateT, which is only an Applicative.
2021-08-11 17:25:29 +0200 <kuribas> then I use "fromExceptT :: Functor m => ExceptT e m a -> ValidationT e m a"
2021-08-11 17:25:42 +0200 <kuribas> So I can easily write functionality using mtl...
2021-08-11 17:26:33 +0200 <amesgen[m]> yeah, monad-validate is an alternative where you don't have to convert from ExceptT all the time, at the cost that it is not a completely valid monad
2021-08-11 17:26:59 +0200 <amesgen[m]> from the haddocks: "To put it another way, ValidateT provides “best effort” error reporting: it will never return fewer errors than an equivalent use of ExceptT, but it might return more."
2021-08-11 17:27:09 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 17:32:08 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 17:33:59 +0200emliunix(~emliunix@103.138.75.119) (Remote host closed the connection)
2021-08-11 17:34:16 +0200emliunix(~emliunix@103.138.75.119)
2021-08-11 17:34:50 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 272 seconds)
2021-08-11 17:35:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 17:36:59 +0200artem(uid512590@highgate.irccloud.com)
2021-08-11 17:37:06 +0200zmt00(~zmt00@user/zmt00)
2021-08-11 17:40:44 +0200econo(uid147250@user/econo)
2021-08-11 17:40:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-08-11 17:41:06 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-08-11 17:43:59 +0200oxide(~lambda@user/oxide)
2021-08-11 17:45:58 +0200emliunix(~emliunix@103.138.75.119) (Remote host closed the connection)
2021-08-11 17:45:59 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net)
2021-08-11 17:49:02 +0200polyphem(~polyphem@2a02:810d:640:776c:5d1:5727:1484:7756)
2021-08-11 17:49:35 +0200qrpnxz(~qrpnxz@user/qrpnxz) (Ping timeout: 258 seconds)
2021-08-11 17:50:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-11 17:56:26 +0200ubert(~Thunderbi@91.141.49.166.wireless.dyn.drei.com) (Remote host closed the connection)
2021-08-11 17:58:33 +0200lbseale(~lbseale@user/ep1ctetus)
2021-08-11 18:01:18 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-08-11 18:01:33 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-11 18:01:51 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-08-11 18:02:49 +0200qrpnxz(abc4f95c31@user/qrpnxz)
2021-08-11 18:06:14 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-11 18:07:39 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-08-11 18:11:35 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 18:11:57 +0200chomwitt(~chomwitt@ppp-2-85-147-24.home.otenet.gr)
2021-08-11 18:12:12 +0200xff0x(~xff0x@2001:1a81:53fa:2600:8056:588e:c971:d9df) (Ping timeout: 258 seconds)
2021-08-11 18:12:49 +0200tlaxkit(~hexchat@170.253.40.255) (Ping timeout: 248 seconds)
2021-08-11 18:13:03 +0200xff0x(~xff0x@2001:1a81:53fa:2600:743d:308e:abb:126)
2021-08-11 18:16:39 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-08-11 18:19:21 +0200enoq(~enoq@194-208-179-35.lampert.tv) (Quit: enoq)
2021-08-11 18:19:24 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 18:19:45 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Ping timeout: 248 seconds)
2021-08-11 18:22:27 +0200mc47(~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
2021-08-11 18:24:22 +0200emliunix(~emliunix@8.38.148.66)
2021-08-11 18:24:26 +0200oxide(~lambda@user/oxide) (Ping timeout: 256 seconds)
2021-08-11 18:26:07 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 18:26:19 +0200MorrowM(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-11 18:26:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 18:30:01 +0200 <tomsmeding> maerwald: do you happen to know what ModTime is supposed to take in libarchive? https://hackage.haskell.org/package/libarchive-3.0.2.1/docs/Codec-Archive.html#t:ModTime
2021-08-11 18:32:42 +0200 <tomsmeding> ah, looks like (POSIXTime, nanoseconds)
2021-08-11 18:36:46 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-11 18:36:49 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs)
2021-08-11 18:37:25 +0200tlaxkit(~hexchat@170.253.40.255)
2021-08-11 18:38:43 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 18:38:52 +0200polyphem(~polyphem@2a02:810d:640:776c:5d1:5727:1484:7756) (Ping timeout: 245 seconds)
2021-08-11 18:39:29 +0200tlaxkit(~hexchat@170.253.40.255) (Remote host closed the connection)
2021-08-11 18:43:48 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-08-11 18:50:19 +0200Matthias_(~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection)
2021-08-11 18:51:08 +0200Atum_(~IRC@user/atum/x-2392232)
2021-08-11 18:54:22 +0200Matthias1(~Matthias1@cpe-76-170-236-166.socal.res.rr.com)
2021-08-11 18:54:28 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 18:56:15 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 18:56:34 +0200mnrmnaughawk
2021-08-11 18:59:10 +0200mastarija(~mastarija@78-3-210-70.adsl.net.t-com.hr)
2021-08-11 19:00:45 +0200awkmnrmnaugh
2021-08-11 19:01:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-08-11 19:02:45 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 19:04:35 +0200Pickchea(~private@user/pickchea)
2021-08-11 19:07:52 +0200 <bbhoss> is there a way to use record wildcards in a function header but also assign the entire record to a binding?
2021-08-11 19:08:09 +0200 <bbhoss> like `hello foo=MyRecord{..}`
2021-08-11 19:08:32 +0200 <geekosaur> hello foo@MyRecord{..}
2021-08-11 19:09:20 +0200 <bbhoss> nice thanks
2021-08-11 19:09:59 +0200 <monochrom> Generally the @-pattern allows naming the whole thing and prescribing a detailed pattern at the same time. f wholeList@(x:xs) = ...
2021-08-11 19:10:27 +0200 <bbhoss> awesome, I'm surprised I made it this far without knowing
2021-08-11 19:10:39 +0200 <dsal> I experience that regularly.
2021-08-11 19:11:07 +0200 <monochrom> You can call it "as". "whole list as x:xs" actually sounds nice in English. In fact SML uses "as", "f (wholeList as (x:xs)) = ..."
2021-08-11 19:11:36 +0200vicfred(~vicfred@user/vicfred)
2021-08-11 19:13:10 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-08-11 19:14:54 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-11 19:15:37 +0200 <janus> i'd expect the deconstructed form to come before "as", hmmm
2021-08-11 19:16:06 +0200 <janus> usually, in english, when you use 'as', the 'new name' comes after, right? here it comes before
2021-08-11 19:16:24 +0200 <geekosaur> same in SQL for that matter
2021-08-11 19:16:39 +0200 <geekosaur> <expression> AS newName
2021-08-11 19:19:11 +0200mr-red(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-08-11 19:19:12 +0200 <geekosaur> but that's not what SML chose, and Haskell probably followed SML there
2021-08-11 19:21:52 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 272 seconds)
2021-08-11 19:27:29 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it) (Ping timeout: 248 seconds)
2021-08-11 19:28:15 +0200azeem(~azeem@176.200.246.189)
2021-08-11 19:28:30 +0200 <davean> bbhoss: read the report :)
2021-08-11 19:34:26 +0200polyphem(~polyphem@2a02:810d:640:776c:5d1:5727:1484:7756)
2021-08-11 19:36:32 +0200azeem(~azeem@176.200.246.189) (Read error: Connection reset by peer)
2021-08-11 19:36:50 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 19:37:03 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it)
2021-08-11 19:41:08 +0200Clint(~Clint@user/clint) (Ping timeout: 258 seconds)
2021-08-11 19:41:58 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-08-11 19:42:37 +0200polyphem(~polyphem@2a02:810d:640:776c:5d1:5727:1484:7756) (Quit: CoreIRC for Android - www.coreirc.com)
2021-08-11 19:42:40 +0200Clint(~Clint@user/clint)
2021-08-11 19:42:49 +0200polyphem(~polyphem@2a02:810d:640:776c:5d1:5727:1484:7756)
2021-08-11 19:44:09 +0200MorrowM(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2021-08-11 19:45:02 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 19:45:56 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2021-08-11 19:46:20 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-11 19:48:13 +0200ytg_(~ytg@89-139-118-202.bb.netvision.net.il)
2021-08-11 19:50:32 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-08-11 19:50:57 +0200Pickchea(~private@user/pickchea) (Ping timeout: 245 seconds)
2021-08-11 19:51:40 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it)
2021-08-11 19:51:47 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 245 seconds)
2021-08-11 19:52:11 +0200ytg_(~ytg@89-139-118-202.bb.netvision.net.il) (Client Quit)
2021-08-11 19:52:27 +0200ytg_(~ytg@89-139-118-202.bb.netvision.net.il)
2021-08-11 19:52:45 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-11 19:53:10 +0200ytg_(~ytg@89-139-118-202.bb.netvision.net.il) (Client Quit)
2021-08-11 19:53:25 +0200ytg_(~ytg@89-139-118-202.bb.netvision.net.il)
2021-08-11 19:53:41 +0200ytg_(~ytg@89-139-118-202.bb.netvision.net.il) (Client Quit)
2021-08-11 19:56:32 +0200wanko(~wanko@51.15.4.226)
2021-08-11 20:01:02 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-08-11 20:01:37 +0200MoC(~moc@user/moc)
2021-08-11 20:06:15 +0200Guest84(~Guest84@2406:3003:2006:447e:9d85:ae5b:bc5f:9191)
2021-08-11 20:07:14 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-08-11 20:07:14 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
2021-08-11 20:08:35 +0200pmk(~user@2a02:587:941a:35d9:8f9c:6cb6:67dc:f5e3)
2021-08-11 20:15:00 +0200mr-red(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 272 seconds)
2021-08-11 20:21:04 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-08-11 20:21:19 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-08-11 20:21:20 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 272 seconds)
2021-08-11 20:22:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-11 20:28:18 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-08-11 20:29:26 +0200Matthias1(~Matthias1@cpe-76-170-236-166.socal.res.rr.com) ()
2021-08-11 20:32:45 +0200 <mastarija> Can someone help me out with Neovim LSP and HLS?
2021-08-11 20:32:57 +0200 <mastarija> I'm having trouble getting the Hover functionality to work
2021-08-11 20:33:46 +0200 <mastarija> Basically, when ever I try to activate it I get "man.vim: no manual entry for SomeSymbol"
2021-08-11 20:34:02 +0200 <mastarija> SomeSymbol being what ever I'm hovering over at the moment
2021-08-11 20:34:32 +0200 <mastarija> It worked once for a short period of time, but then it stopped :D
2021-08-11 20:34:52 +0200 <mastarija> I have very minimal Lua init script: https://pastebin.com/i7RNs5BG
2021-08-11 20:35:11 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Read error: Connection reset by peer)
2021-08-11 20:35:44 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 20:40:35 +0200Guest84(~Guest84@2406:3003:2006:447e:9d85:ae5b:bc5f:9191) (Quit: Client closed)
2021-08-11 20:42:58 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 20:45:37 +0200viluon(uid453725@id-453725.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-11 20:49:08 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-11 20:49:08 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-11 20:49:11 +0200allbery_bgeekosaur
2021-08-11 20:49:33 +0200 <tomsmeding> mastarija: are you passing the on_active function to the .setup{} call for hls correctly?
2021-08-11 20:50:40 +0200 <tomsmeding> o wait I'm blind
2021-08-11 20:53:23 +0200__monty__(~toonn@user/toonn)
2021-08-11 20:53:27 +0200 <tomsmeding> mastarija: try moving the setup{} call _below_ the definition of the on_attach function
2021-08-11 20:53:36 +0200 <tomsmeding> that seems to make a difference for me
2021-08-11 20:53:55 +0200 <tomsmeding> lua isn't insensitive to declaration order like haskell is :)
2021-08-11 20:54:08 +0200 <mastarija> I think I tried it both ways
2021-08-11 20:54:28 +0200 <mastarija> I mean, it is reacting to defined shortcuts
2021-08-11 20:54:50 +0200 <mastarija> But someone from #neovim suggested I'v forgotten to setup haddock
2021-08-11 20:54:57 +0200 <mastarija> I'm working on that now
2021-08-11 20:55:36 +0200 <mastarija> https://haskell-language-server.readthedocs.io/en/latest/features.html?highlight=haddock#features
2021-08-11 20:56:23 +0200 <tomsmeding> mastarija: I don't have that haddock in my cabal flags and hls hover info has worked for me always
2021-08-11 20:56:52 +0200 <mastarija> Yes, it worked for me for one moment.
2021-08-11 20:56:56 +0200 <mastarija> But then nothing
2021-08-11 20:57:09 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2021-08-11 20:57:16 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net)
2021-08-11 20:57:20 +0200 <mastarija> tomsmeding, do you maybe know where HLS stores its intermediate files?
2021-08-11 20:57:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 20:57:39 +0200 <tomsmeding> no idea, but I would guess dist-newstyle
2021-08-11 20:57:58 +0200 <mastarija> I've deleted dist-newstyle from my project, but now I see HLS is initializing happily without regenerating
2021-08-11 20:58:03 +0200 <tomsmeding> mastarija: what happens if you replace your mapping of KK in that lua function with :echo "hi"<CR>
2021-08-11 20:58:14 +0200 <tomsmeding> does that make KK print 'hi'
2021-08-11 20:58:25 +0200Atum_(~IRC@user/atum/x-2392232) (Remote host closed the connection)
2021-08-11 20:58:59 +0200 <carter> sup!
2021-08-11 20:59:07 +0200 <tomsmeding> hls is up :)
2021-08-11 20:59:29 +0200 <carter> i just like having a working text editor and cabal build invoked every time i save :)
2021-08-11 20:59:43 +0200Atum_(~IRC@user/atum/x-2392232)
2021-08-11 21:00:31 +0200 <tomsmeding> mastarija: for completeness, this is the lua fragment in my init script, very minorly modified from the current readme (I switched to nvim's native lsp today :) ) : https://paste.tomsmeding.com/6sYW5XOr
2021-08-11 21:01:07 +0200 <tomsmeding> carter: having a working text editor is certainly a prerequisite :)
2021-08-11 21:01:13 +0200mattil(~mattilinn@62-113-178-139.bb.dnainternet.fi) (Quit: Leaving)
2021-08-11 21:01:36 +0200 <mastarija> tomsmeding, yes, that looks like the config from readme
2021-08-11 21:01:50 +0200 <mastarija> I've tried that, but I had same problem
2021-08-11 21:01:53 +0200gethuen_(uid502979@id-502979.stonehaven.irccloud.com)
2021-08-11 21:01:57 +0200 <tomsmeding> mastarija: this works for me, and K stops working if I put the loop above the function declaration
2021-08-11 21:02:09 +0200 <tomsmeding> odd
2021-08-11 21:02:37 +0200 <mastarija> tomsmeding, this might be because you assigned anonymous function to a variable name
2021-08-11 21:02:47 +0200 <mastarija> I've changed that to function definition
2021-08-11 21:03:01 +0200 <tomsmeding> ah right
2021-08-11 21:03:10 +0200 <tomsmeding> mastarija: there is some stuff in ~/.cache/hie-bios
2021-08-11 21:03:13 +0200 <mastarija> I'm switching back to that now, maybe it makes a difference :/
2021-08-11 21:03:31 +0200gethuen_(uid502979@id-502979.stonehaven.irccloud.com) (Client Quit)
2021-08-11 21:04:01 +0200gethuen_(uid502979@id-502979.stonehaven.irccloud.com)
2021-08-11 21:04:36 +0200gethuen_(uid502979@id-502979.stonehaven.irccloud.com) (Client Quit)
2021-08-11 21:04:49 +0200 <mastarija> tomsmeding, thanks, I've deleted it, now it's regenerating
2021-08-11 21:04:54 +0200 <mastarija> hopefully it'll be a success
2021-08-11 21:05:02 +0200mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-08-11 21:05:12 +0200Cajun(~Cajun@user/cajun)
2021-08-11 21:06:08 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-11 21:06:27 +0200Guest84(~Guest84@2406:3003:2006:447e:9d85:ae5b:bc5f:9191)
2021-08-11 21:06:41 +0200emliunix(~emliunix@8.38.148.66) (Remote host closed the connection)
2021-08-11 21:07:04 +0200emliunix(~emliunix@8.38.148.66)
2021-08-11 21:12:25 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 21:13:19 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 21:13:20 +0200 <mastarija> tomsmeding, omg, I'm an idiot
2021-08-11 21:13:32 +0200 <mastarija> instead of on_attach I've written on_active
2021-08-11 21:13:47 +0200 <monochrom> :)
2021-08-11 21:14:10 +0200 <tomsmeding> this makes me scared of lua
2021-08-11 21:14:13 +0200 <mastarija> yes
2021-08-11 21:14:17 +0200 <tomsmeding> seems to be even worse than javascript
2021-08-11 21:14:17 +0200jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 258 seconds)
2021-08-11 21:14:23 +0200 <mastarija> Records ftw
2021-08-11 21:14:45 +0200 <tomsmeding> not only that, referring to an undefined variable and getting no error
2021-08-11 21:14:52 +0200endlesseditions(~zane@205.220.252.162)
2021-08-11 21:14:55 +0200 <mastarija> I'm not used to checking my self for misnamed vars
2021-08-11 21:15:30 +0200montxero(~user@149.167.149.74) (Read error: Connection reset by peer)
2021-08-11 21:15:44 +0200 <mastarija> damn, I feel like an idiot now
2021-08-11 21:15:45 +0200montxero(~user@149.167.149.74)
2021-08-11 21:15:48 +0200 <mastarija> so much wasted time
2021-08-11 21:16:04 +0200 <tomsmeding> your mistake was assuming that lua is nice to haskell users
2021-08-11 21:16:52 +0200 <tomsmeding> you know, what saves me in cases like this is that I have no idea how lua works, so I copy-paste everything
2021-08-11 21:17:39 +0200 <mastarija> I've read the lua manual this morning so I was overconfident
2021-08-11 21:20:35 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-08-11 21:20:41 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 21:21:31 +0200ikex1(~ash@user/ikex)
2021-08-11 21:23:33 +0200mcglk(~mcglk@131.191.49.120) (Read error: Connection reset by peer)
2021-08-11 21:23:45 +0200favonia(~favonia@user/favonia) (Ping timeout: 248 seconds)
2021-08-11 21:23:52 +0200ikex(ash@user/ikex) (Ping timeout: 258 seconds)
2021-08-11 21:23:53 +0200ikex1ikex
2021-08-11 21:24:20 +0200mcglk(~mcglk@131.191.49.120)
2021-08-11 21:27:19 +0200acidjnk_new(~acidjnk@p200300d0c72b9540687e52e56cad208d.dip0.t-ipconnect.de)
2021-08-11 21:28:49 +0200 <carter> hrmmm, ComposeT in MMorph seems like something that'd be nice in base or transformers
2021-08-11 21:28:56 +0200 <carter> or is there a good reason to not use it sometimes?
2021-08-11 21:29:03 +0200 <carter> cc edwardk :) ?
2021-08-11 21:30:39 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-08-11 21:30:40 +0200markpythonicbitc(~markpytho@50.228.44.6) (Read error: Connection reset by peer)
2021-08-11 21:31:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-08-11 21:32:06 +0200markpythonicbitc(~markpytho@50.228.44.6)
2021-08-11 21:34:42 +0200endlesseditions(~zane@205.220.252.162) (Remote host closed the connection)
2021-08-11 21:37:51 +0200 <carter> Hecate: https://gitlab.haskell.org/ghc/ghc/-/issues/20223 not sure if i found a bug in the docs for deriving via or deriving via
2021-08-11 21:37:59 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 21:39:06 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-11 21:39:56 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-11 21:41:33 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-08-11 21:44:23 +0200phma_(phma@2001:5b0:211f:5fe8:78b1:ef72:430f:1b2b) (Read error: Connection reset by peer)
2021-08-11 21:46:31 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it) (Ping timeout: 268 seconds)
2021-08-11 21:47:34 +0200azeem(~azeem@176.200.246.189)
2021-08-11 21:48:25 +0200favonia(~favonia@user/favonia)
2021-08-11 21:51:51 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 258 seconds)
2021-08-11 21:54:33 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-08-11 21:55:00 +0200phma_(phma@2001:5b0:212a:e878:afe7:6ceb:226:dcbd)
2021-08-11 21:56:19 +0200Guest822(~Guest82@176.88.30.49)
2021-08-11 21:56:50 +0200 <Guest822> @undo [x | Just x <- xs]
2021-08-11 21:56:50 +0200 <lambdabot> concatMap (\ a -> case a of { Just x -> [x]; _ -> []}) xs
2021-08-11 21:58:06 +0200 <Guest822> @undo picks (x:xs) = (x,xs):[(y,x:ys) | (y,ys) <- picks xs]
2021-08-11 21:58:06 +0200 <lambdabot> picks (x : xs) = (x, xs) : concatMap (\ (y, ys) -> [(y, x : ys)]) (picks xs)
2021-08-11 21:58:25 +0200azeem(~azeem@176.200.246.189) (Ping timeout: 248 seconds)
2021-08-11 21:58:49 +0200azeem(~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it)
2021-08-11 21:59:04 +0200MQ-17J(~MQ-17J@8.6.144.209)
2021-08-11 21:59:23 +0200phma_(phma@2001:5b0:212a:e878:afe7:6ceb:226:dcbd) (Read error: Connection reset by peer)
2021-08-11 22:00:16 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 22:00:28 +0200jpds1jpds
2021-08-11 22:03:27 +0200Skyfire(~pyon@user/pyon) (Ping timeout: 245 seconds)
2021-08-11 22:04:03 +0200Guest822(~Guest82@176.88.30.49) (Quit: Client closed)
2021-08-11 22:04:05 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 22:05:16 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 258 seconds)
2021-08-11 22:05:33 +0200Skyfire(~pyon@user/pyon)
2021-08-11 22:05:35 +0200phma_(phma@2001:5b0:211b:9608:8da1:6cde:bf81:5b9c)
2021-08-11 22:07:23 +0200juhp(~juhp@128.106.188.220)
2021-08-11 22:09:38 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 272 seconds)
2021-08-11 22:09:44 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-11 22:10:00 +0200emliunix(~emliunix@8.38.148.66) (Remote host closed the connection)
2021-08-11 22:10:09 +0200matijja(~matijja@193.77.181.201) (Ping timeout: 248 seconds)
2021-08-11 22:10:22 +0200emliunix(~emliunix@8.38.148.66)
2021-08-11 22:11:48 +0200benin036932(~benin@183.82.205.178)
2021-08-11 22:12:19 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 22:12:28 +0200matijja(~matijja@193.77.181.201)
2021-08-11 22:15:14 +0200retro_(~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds)
2021-08-11 22:21:36 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-11 22:28:14 +0200vysn(~vysn@user/vysn)
2021-08-11 22:28:53 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 22:30:45 +0200matijja(~matijja@193.77.181.201) (Quit: ZNC 1.8.1 - https://znc.in)
2021-08-11 22:31:08 +0200matijja(~matijja@193.77.181.201)
2021-08-11 22:32:51 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-08-11 22:36:37 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 22:44:29 +0200pavonia(~user@user/siracusa)
2021-08-11 22:47:47 +0200favonia(~favonia@user/favonia) (Remote host closed the connection)
2021-08-11 22:48:00 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 22:49:45 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-11 22:54:57 +0200markpythonicbitc(~markpytho@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-11 22:55:53 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 22:59:39 +0200Obo(~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8)
2021-08-11 23:02:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-11 23:04:14 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-08-11 23:04:17 +0200curiousgay(~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 245 seconds)
2021-08-11 23:05:01 +0200 <maralorn> When I write `<(echo foo)` in shell it returns a file descriptor `/proc/self/fd/14` where now another process can read from. How can I achieve exactly that in Haskell?
2021-08-11 23:05:58 +0200 <dsal> There are a lot of different things going on there. What are you trying to do?
2021-08-11 23:06:06 +0200 <geekosaur> you want the file descriptor, or the pathname to it?
2021-08-11 23:07:06 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-11 23:07:26 +0200 <maralorn> I want the pathname.
2021-08-11 23:07:49 +0200acidjnk_new3(~acidjnk@p200300d0c72b954045cad12a4be3b29e.dip0.t-ipconnect.de)
2021-08-11 23:08:04 +0200 <maralorn> Concretely I have a program that I want to call in my shakefile that wants a filename pointing to a file containing a password.
2021-08-11 23:08:37 +0200 <monochrom> The shell creates a pipe, then finds out the FD of the read end, let's say it happens to be 14, then generates the string "/proc/self/fd/14" and passes it down as a command line argument.
2021-08-11 23:08:39 +0200 <maralorn> But I don‘t want to write my password to disk or even the tmpfs.
2021-08-11 23:09:06 +0200 <geekosaur> ah, the old hold-in-in-a-pipe trick
2021-08-11 23:09:21 +0200 <maralorn> Yeah
2021-08-11 23:09:33 +0200acidjnk(~acidjnk@p200300d0c72b954099fc00439288b01d.dip0.t-ipconnect.de)
2021-08-11 23:09:44 +0200 <geekosaur> which kinda fails with /proc/self/fd anyway
2021-08-11 23:09:56 +0200 <geekosaur> or at least lost being safe even from root
2021-08-11 23:10:27 +0200 <maralorn> Well, good enough. Also I am root.
2021-08-11 23:10:54 +0200jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net)
2021-08-11 23:11:13 +0200 <maralorn> I guess I can do something like `withPipe` and then convert the read end handle to an FD?
2021-08-11 23:11:22 +0200acidjnk_new(~acidjnk@p200300d0c72b9540687e52e56cad208d.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2021-08-11 23:11:44 +0200 <monochrom> And the "echo foo" part is run under output redirection too, its stdout is the write end of the pipe, say FD 15.
2021-08-11 23:12:37 +0200 <monochrom> Which package does withPipe come from? (Certainly not what comes with GHC.)
2021-08-11 23:12:58 +0200acidjnk_new3(~acidjnk@p200300d0c72b954045cad12a4be3b29e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-08-11 23:13:01 +0200 <sm> you could have your haskell program run a little bit of shell (bash), probably ?
2021-08-11 23:13:27 +0200 <maralorn> monochrom: I can‘t find right now it tbh.
2021-08-11 23:13:40 +0200 <geekosaur> @hoogle withPipe
2021-08-11 23:13:40 +0200 <lambdabot> GI.GLib.Functions spawnAsyncWithPipes :: (HasCallStack, MonadIO m) => Maybe [Char] -> [[Char]] -> Maybe [[Char]] -> [SpawnFlags] -> Maybe SpawnChildSetupFunc -> m (Int32, Int32, Int32, Int32)
2021-08-11 23:14:03 +0200 <maralorn> monochrom: https://hackage.haskell.org/package/shh-0.7.1.4/docs/Shh-Internal.html#v:withPipe
2021-08-11 23:14:35 +0200 <maralorn> But I would feel a little bit stupid to get a dependency to shh just for doing that.
2021-08-11 23:14:43 +0200 <monochrom> I have never heard of shh. I can't vouch for it.
2021-08-11 23:14:57 +0200 <maralorn> Converting a handle to an fd is in base.
2021-08-11 23:15:12 +0200 <maralorn> shh is more or less like shelly and it’s quite nice.
2021-08-11 23:15:41 +0200 <maralorn> I guess I can have a look at the implementation there …
2021-08-11 23:16:10 +0200 <sm> isn't there something suitable in https://hackage.haskell.org/package/process-1.6.13.2/docs/System-Process.html ?
2021-08-11 23:16:10 +0200 <monochrom> Generally I would be super paranoid about detailed technical semantics of "converting" between Handle and FD.
2021-08-11 23:16:41 +0200 <maralorn> sm: Yes
2021-08-11 23:16:43 +0200 <maralorn> https://hackage.haskell.org/package/process-1.6.13.2/docs/System-Process.html#v:createPipe
2021-08-11 23:16:48 +0200 <maralorn> Looks about right.
2021-08-11 23:16:56 +0200 <monochrom> For example, after the Handle->FD "conversion", if you close that Handle, does that close the FD too? Is this consistent with what you want?
2021-08-11 23:16:58 +0200 <maralorn> Or better https://hackage.haskell.org/package/process-1.6.13.2/docs/System-Process.html#v:createPipeFd
2021-08-11 23:17:40 +0200 <monochrom> And do not sleep well if you don't write explicit code to close that Handle either. GC can close it behind your back.
2021-08-11 23:19:31 +0200smconfirms that `readCreateProcessWithExitCode (shell "ls <(echo test)") ""` does not work
2021-08-11 23:19:56 +0200 <maralorn> It doesn‘t? Why not?
2021-08-11 23:20:09 +0200 <sm> <() syntax is rejected by something
2021-08-11 23:20:18 +0200 <sm> Prelude System.Process> readCreateProcessWithExitCode (shell "echo <(echo test)") ""
2021-08-11 23:20:18 +0200 <sm> (ExitFailure 2,"","/bin/sh: -c: line 0: syntax error near unexpected token `('\n/bin/sh: -c: line 0: `echo <(echo test)'\n")
2021-08-11 23:20:25 +0200 <sm> ah, it's not using bash
2021-08-11 23:20:29 +0200 <maralorn> Might be a bashism?
2021-08-11 23:20:32 +0200 <maralorn> yeah
2021-08-11 23:20:49 +0200 <maralorn> Anyways, I believe I have my solution now.
2021-08-11 23:21:07 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-08-11 23:21:21 +0200 <monochrom> Yes <(cmd) and >(cmd) are bashisms.
2021-08-11 23:22:03 +0200 <sm> there was some discussion/doc about which shell `process` uses, I suspect it is POSIX sh only
2021-08-11 23:22:51 +0200 <sm> aha! but there is a way
2021-08-11 23:22:52 +0200 <sm> Prelude System.Process> readCreateProcessWithExitCode (shell "bash -c 'ls <(echo test)'") ""
2021-08-11 23:22:52 +0200 <sm> (ExitSuccess,"/dev/fd/63\n","")
2021-08-11 23:23:24 +0200Guest4990(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-11 23:24:02 +0200 <monochrom> I painstakingly ban bashisms in my course because <(cmd) allows students to cargo-cult internet solutions and evade learning shell pipelines.
2021-08-11 23:24:28 +0200 <monochrom> I have to remind them multiple times "if 'sh your_script' doesn't work then you are not done".
2021-08-11 23:24:42 +0200 <monochrom> And then Mac defeats me because its "sh" is bash.
2021-08-11 23:25:14 +0200 <monochrom> So now I also have to remind them "if it doesn't work on the school shell server then you are not done either, I don't care about what Mac says".
2021-08-11 23:25:46 +0200 <sm> I think sh is too weak (with error checking eg), so I require bash
2021-08-11 23:26:01 +0200 <glguy> I like using shellcheck to help me with that
2021-08-11 23:26:49 +0200 <sm> I was reading yesterday that shellcheck helps you write valid sh, but doesn't help at all warning you about sh's many ambiguous cases. Not sure that's entirely true
2021-08-11 23:27:26 +0200 <sm> shellcheck has made shell programming possible for me
2021-08-11 23:27:38 +0200Pickchea(~private@user/pickchea)
2021-08-11 23:27:40 +0200MQ-17J(~MQ-17J@8.6.144.209) (Ping timeout: 268 seconds)
2021-08-11 23:27:43 +0200 <sm> a haskell success story!
2021-08-11 23:27:53 +0200 <koala_man> aww, I'm happy you've found it useful ^^
2021-08-11 23:28:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-11 23:28:10 +0200 <sm> is that your project koala_man ?
2021-08-11 23:28:13 +0200 <koala_man> yes
2021-08-11 23:28:35 +0200 <monochrom> Nice.
2021-08-11 23:28:39 +0200 <dsal> I've done this type of thing with dup2
2021-08-11 23:28:49 +0200 <sm> let me thank you profusely on behalf of everyone. Thanks a lot, it is a fantastic tool.
2021-08-11 23:29:11 +0200 <koala_man> aw shucks
2021-08-11 23:30:10 +0200 <koala_man> monochrom: at least process substitutions are blocked in bash's sh mode
2021-08-11 23:30:24 +0200 <sm> I don't know if you read your fan commentary online, but every time shell programming is mentioned anywhere on the the net someone quickly recommends shellcheck and several people say how great it is
2021-08-11 23:31:23 +0200 <koala_man> I vanity search twitter now and then, the response has indeed been overwhelmingly positive
2021-08-11 23:31:24 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
2021-08-11 23:31:37 +0200slack1256(~slack1256@181.203.38.2) (Remote host closed the connection)
2021-08-11 23:31:48 +0200Guest84(~Guest84@2406:3003:2006:447e:9d85:ae5b:bc5f:9191) (Quit: Client closed)
2021-08-11 23:32:13 +0200 <sm> the haskell checkers (hls and its various addons) could take some inspiration from shellcheck. I think one of the things we like about it is how good the advice is (link to wiki page with full details, etc.)
2021-08-11 23:32:37 +0200 <sm> hlint gives great advice, but not the background explanation AFAIK
2021-08-11 23:32:58 +0200chris(~chris@81.96.113.213)
2021-08-11 23:33:01 +0200chrisGuest8327
2021-08-11 23:33:30 +0200 <maerwald[m]> Hlint is 90% opinions
2021-08-11 23:33:35 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 23:33:49 +0200 <maerwald[m]> Shellcheck helps you find actual bugs
2021-08-11 23:34:33 +0200 <sm> koala_man: what's your thought on that comment about shellcheck not warning of all sh pitfalls ? (more so than bash)
2021-08-11 23:34:48 +0200 <koala_man> do you have any examples?
2021-08-11 23:35:11 +0200 <sm> unfortunately no, it was a HN comment yesterday. I'll share if I find it
2021-08-11 23:36:03 +0200 <monochrom> Yeah shellcheck and clint are great. hlint is a dishonest name.
2021-08-11 23:36:17 +0200 <monochrom> err of course s/clint/lint/
2021-08-11 23:36:39 +0200Clintcoughs.
2021-08-11 23:36:41 +0200 <koala_man> it must be hard to statically find bugs in Haskell code that compiles
2021-08-11 23:36:44 +0200 <sm> why is everyone so down on hlint :)
2021-08-11 23:37:04 +0200 <sm> Its advice is more subjective/stylistic because there are less dangerous error-causing sitiations to find.. yes
2021-08-11 23:38:48 +0200 <monochrom> Therefore if it didn't call itself "hlint" I would leave it alone.
2021-08-11 23:38:48 +0200hexfive(~eric@50.35.83.177)
2021-08-11 23:39:40 +0200 <sm> what does "lint" mean to you ?
2021-08-11 23:40:02 +0200lavaman(~lavaman@98.38.249.169)
2021-08-11 23:40:06 +0200 <monochrom> It means if I write "if (c = 1) { ... }" it reminds me.
2021-08-11 23:40:22 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-11 23:41:04 +0200 <monochrom> It means if I write "if (c == 1) \n {...}" it doesn't become nagware and say "why not put '{' on the same line as 'if'"
2021-08-11 23:41:14 +0200 <monochrom> See, hlint does the latter only.
2021-08-11 23:41:24 +0200 <monochrom> It is pure nagware.
2021-08-11 23:41:37 +0200 <sm> that's silly. It is a configurable tool.
2021-08-11 23:42:15 +0200 <sm> you don't like the defaults, ok
2021-08-11 23:42:27 +0200 <monochrom> No, you should be pointing out that it's an optional tool, I don't have to use it if it doesn't fit me.
2021-08-11 23:42:27 +0200ec(~ec@gateway/tor-sasl/ec)
2021-08-11 23:42:31 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-11 23:42:34 +0200 <sm> but "nagware" is not fair
2021-08-11 23:42:44 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-08-11 23:42:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-11 23:43:06 +0200 <monochrom> The problem is, it has a dishonest name, so other people are deceived to believe that it has lint's status and purpose.
2021-08-11 23:43:25 +0200 <monochrom> And the derivative problem is, because of that, lpaste.net imposed it.
2021-08-11 23:43:37 +0200 <monochrom> hpaste.net, even
2021-08-11 23:43:55 +0200 <sm> dishonest, deceived, nagware.. all of these seem a bit exaggerated and emotional to me. But as you like :)
2021-08-11 23:43:58 +0200 <monochrom> Dishonest names are not fair.
2021-08-11 23:44:07 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56) (Remote host closed the connection)
2021-08-11 23:44:30 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56)
2021-08-11 23:44:32 +0200 <monochrom> It is very possible that if hpaste didn't inflict it, I would not complain at all.
2021-08-11 23:44:52 +0200 <sm> hpaste.. what is that now.. still a thing ?
2021-08-11 23:45:03 +0200 <monochrom> No.
2021-08-11 23:45:54 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56) (Remote host closed the connection)
2021-08-11 23:46:13 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-08-11 23:47:08 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56)
2021-08-11 23:47:25 +0200 <Clint> hpaste is oppressing everyone from beyond the grave
2021-08-11 23:48:34 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56) (Remote host closed the connection)
2021-08-11 23:49:19 +0200 <sm> well, monochrom you have motivated me to try using hlint a bit and see if I can configure it to give a little bit of shellcheck-like feeling
2021-08-11 23:49:21 +0200hexfive(~eric@50.35.83.177) (Quit: WeeChat 3.0)
2021-08-11 23:49:23 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56)
2021-08-11 23:49:52 +0200sander(~sander@user/sander) (Ping timeout: 268 seconds)
2021-08-11 23:51:16 +0200 <sm> if not we should hire koala_man to build hscheck
2021-08-11 23:51:19 +0200phma_phma
2021-08-11 23:53:01 +0200 <dsal> main = putStrLn "If it compiles, it's probably fine."
2021-08-11 23:53:20 +0200 <koala_man> the typechecker does most of that already, but I'd love to see a tool that suggests inefficient constructs, e.g. missed opportunities for list fusion
2021-08-11 23:54:17 +0200sander(~sander@user/sander)
2021-08-11 23:57:30 +0200finsternis(~X@23.226.237.192)
2021-08-11 23:59:17 +0200 <sm> space leaks!
2021-08-11 23:59:34 +0200 <sm> "inefficient code", generally