2022/04/26

2022-04-26 00:01:07 +0200 <jhagborg> anyway, my point is that using d-bus is probably less new code, and you don't have to worry about those types of details.
2022-04-26 00:01:30 +0200xaotuk(~sasha@109.245.225.166) (Ping timeout: 276 seconds)
2022-04-26 00:01:35 +0200 <jhagborg> it is less portable, but if you're targeting a standard gnu/linux desktop, that's not an issue
2022-04-26 00:01:56 +0200 <monochrom> Maybe I should teach dbus to my students too... (summer term begins in 2 weeks!)
2022-04-26 00:04:32 +0200mmhat(~mmh@55d4c973.access.ecotel.net) (Quit: WeeChat 3.5)
2022-04-26 00:06:08 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2022-04-26 00:06:23 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
2022-04-26 00:06:43 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 00:09:29 +0200orcus(~orcus@user/brprice) (Ping timeout: 248 seconds)
2022-04-26 00:10:12 +0200dispater(~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in)
2022-04-26 00:10:20 +0200xff0x_(~xff0x@om126158204045.30.openmobile.ne.jp)
2022-04-26 00:10:30 +0200dispater(~dispater@user/brprice)
2022-04-26 00:11:32 +0200orcus(~orcus@user/brprice)
2022-04-26 00:18:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-04-26 00:21:49 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-04-26 00:25:54 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-26 00:29:12 +0200acidjnk(~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-04-26 00:31:41 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-26 00:32:12 +0200 <[itchyjunk]> Got a noob question. why does `let a = blah` work but `let A = blah` give me a `Not in scope: data constructor 'A'` ?
2022-04-26 00:32:20 +0200 <[itchyjunk]> i thought variable names could start with A right?
2022-04-26 00:33:06 +0200 <geekosaur> nope, uppercase first letter is always a constructor
2022-04-26 00:33:16 +0200 <[itchyjunk]> ah doh
2022-04-26 00:33:27 +0200 <geekosaur> and `let A = blah` attempts to pattern match `blah` against the constructor `A`
2022-04-26 00:33:42 +0200 <[itchyjunk]> makes sense
2022-04-26 00:34:28 +0200 <geekosaur> (this is useful to extract a value, for example)
2022-04-26 00:36:21 +0200mshiraeeshi(~shiraeesh@46.34.207.121) (Ping timeout: 256 seconds)
2022-04-26 00:36:56 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 250 seconds)
2022-04-26 00:39:19 +0200aeka(~aeka@user/hiruji) (Ping timeout: 240 seconds)
2022-04-26 00:39:54 +0200aeka(~aeka@user/hiruji)
2022-04-26 00:40:19 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-04-26 00:44:28 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-04-26 00:46:05 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-04-26 00:46:35 +0200zmt00(~zmt00@user/zmt00) (Quit: Leaving)
2022-04-26 00:46:50 +0200zmt00(~zmt00@user/zmt00)
2022-04-26 00:51:25 +0200segfaultfizzbuzz(~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2022-04-26 00:52:18 +0200slaydr(~slaydr@193.19.109.224)
2022-04-26 00:53:14 +0200aeka(~aeka@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
2022-04-26 00:56:11 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds)
2022-04-26 00:58:37 +0200 <[itchyjunk]> I seem to not recall how : works. Say i have `a = [1,2,3]` and i want [[1,2,3],[]]. `[a]` does give me `[[1,2,3]]` which is partially what i want. but `[a] : []` gives me [[a]] basically
2022-04-26 00:59:23 +0200 <geekosaur> :t (:)
2022-04-26 00:59:25 +0200 <lambdabot> a -> [a] -> [a]
2022-04-26 00:59:52 +0200 <geekosaur> > let a = [1,2,3] in a:[]
2022-04-26 00:59:54 +0200 <lambdabot> [[1,2,3]]
2022-04-26 01:00:03 +0200 <geekosaur> > let a = [1,2,3] in [a]:[]
2022-04-26 01:00:08 +0200 <lambdabot> [[[1,2,3]]]
2022-04-26 01:00:40 +0200 <geekosaur> > let a = [1,2,3] in a:[[]]:[]
2022-04-26 01:00:42 +0200 <lambdabot> error:
2022-04-26 01:00:42 +0200 <lambdabot> • No instance for (Num [()]) arising from a use of ‘e_1123’
2022-04-26 01:00:42 +0200 <lambdabot> • In the expression: e_1123
2022-04-26 01:01:08 +0200 <[itchyjunk]> ahh i had the type signature opposite in my head i think
2022-04-26 01:01:43 +0200 <[itchyjunk]> :x yup that seems to be my issue
2022-04-26 01:06:47 +0200 <[itchyjunk]> I might have over complicated this as per usual
2022-04-26 01:07:09 +0200 <[itchyjunk]> So given a = [1,2,3], i wanted [[],[1],[2],[3]] which i got with
2022-04-26 01:07:30 +0200 <[itchyjunk]> [] : [x | x <- [x | x <- [[x] | x<-a]]]
2022-04-26 01:07:48 +0200 <[itchyjunk]> i can also get [[],[1,2,3]], but i can't seem to combine these :x
2022-04-26 01:08:21 +0200 <[itchyjunk]> to get `[[],[1],[2],[3],[1,2,3]]`
2022-04-26 01:11:39 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
2022-04-26 01:11:57 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-26 01:13:16 +0200 <Cale> [itchyjunk]: You don't want the 2-element subsets?
2022-04-26 01:13:42 +0200 <[itchyjunk]> i do :D
2022-04-26 01:13:53 +0200 <[itchyjunk]> eventually haha
2022-04-26 01:14:26 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Quit: leaving)
2022-04-26 01:14:36 +0200 <[itchyjunk]> [[x,y] | x<-a, y<-a] gives me something very close (just have to pick the unique ones)
2022-04-26 01:14:49 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-26 01:15:14 +0200 <[itchyjunk]> this might not be a good approach at all for writing out powersets though :x
2022-04-26 01:15:46 +0200 <dons> morning all
2022-04-26 01:15:50 +0200 <geekosaur> o/
2022-04-26 01:16:32 +0200 <Cale> [itchyjunk]: Every sublist of (x:xs) either contains x or it doesn't. In either case, what follows is a sublist of xs
2022-04-26 01:18:22 +0200 <[itchyjunk]> hmm
2022-04-26 01:18:45 +0200 <[itchyjunk]> the first part makes sense. every sublist of (x:xs) either contains x or it doesn't
2022-04-26 01:22:42 +0200 <[itchyjunk]> So i suppose a recursion is being hinted at. i'll think about this some more
2022-04-26 01:23:19 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-04-26 01:23:21 +0200 <Zemyla> Isn't there a oneliner that uses foldrM and [False, True]?
2022-04-26 01:23:23 +0200mshiraeeshi(~shiraeesh@46.34.207.121)
2022-04-26 01:24:57 +0200 <[itchyjunk]> :O
2022-04-26 01:25:20 +0200 <[itchyjunk]> does it include binary representation of numbers and bit shifting?
2022-04-26 01:25:30 +0200 <[Leary]> There's quite a cute version with a regular foldr, though the element order isn't ideal.
2022-04-26 01:25:33 +0200 <[itchyjunk]> if so, someone told me about that technique but it was a bit over my head
2022-04-26 01:25:49 +0200 <Zemyla> :t filterM $ const [False, True]
2022-04-26 01:25:50 +0200 <lambdabot> [b] -> [[b]]
2022-04-26 01:26:09 +0200 <[itchyjunk]> hmmm
2022-04-26 01:26:27 +0200 <Zemyla> > filterM (const [False, True]) [1,2,3]
2022-04-26 01:26:29 +0200 <lambdabot> [[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
2022-04-26 01:26:40 +0200 <[itchyjunk]> hmmmmmmm
2022-04-26 01:27:28 +0200lisq(~quassel@lis.moe) (Quit: lisq)
2022-04-26 01:27:55 +0200lis(~quassel@lis.moe)
2022-04-26 01:28:12 +0200lislisq
2022-04-26 01:29:05 +0200deadmarshal_(~deadmarsh@95.38.115.70)
2022-04-26 01:30:04 +0200lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2022-04-26 01:33:17 +0200deadmarshal_(~deadmarsh@95.38.115.70) (Ping timeout: 246 seconds)
2022-04-26 01:33:17 +0200 <[itchyjunk]> ha, not quite. Need more thinking. https://bpa.st/COWA
2022-04-26 01:33:35 +0200kilolympus(~kilolympu@31.205.200.235) (Ping timeout: 256 seconds)
2022-04-26 01:34:43 +0200dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 256 seconds)
2022-04-26 01:35:16 +0200machinedgod(~machinedg@24.105.81.50) (Remote host closed the connection)
2022-04-26 01:35:17 +0200lagash(lagash@lagash.shelltalk.net)
2022-04-26 01:36:16 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-26 01:37:39 +0200 <EvanR> what are you trying to do, get all the subsequences?
2022-04-26 01:38:10 +0200 <[itchyjunk]> yes, given some finite set, produce its powerset :x
2022-04-26 01:38:15 +0200 <EvanR> don't try this with [0..]
2022-04-26 01:38:44 +0200 <[itchyjunk]> yeah i've tried things with the infinite lists in the past and regretted it
2022-04-26 01:39:40 +0200aeka(~aeka@user/hiruji)
2022-04-26 01:39:53 +0200 <monochrom> That "clearly" will just give you [[a], [b], [c]]
2022-04-26 01:40:10 +0200 <monochrom> OK, [[a], [b], [c], []]
2022-04-26 01:40:40 +0200aeka(~aeka@user/hiruji) (Client Quit)
2022-04-26 01:40:45 +0200 <EvanR> also, don't use this
2022-04-26 01:40:51 +0200 <EvanR> :t subsequences
2022-04-26 01:40:52 +0200 <lambdabot> [a] -> [[a]]
2022-04-26 01:40:58 +0200 <monochrom> I don't know, I would think with induction proofs: ...
2022-04-26 01:41:04 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-04-26 01:41:18 +0200 <[itchyjunk]> yes i tested it. i need to take take (x:xs), produce all subsets of xs, then add x to one copy of it and not the other maybe
2022-04-26 01:41:19 +0200 <monochrom> Suppose someone calls me with myPowerSet [a,b,c].
2022-04-26 01:41:42 +0200 <EvanR> [itchyjunk], sounds like a winner
2022-04-26 01:41:48 +0200 <[itchyjunk]> hmmmmm
2022-04-26 01:42:13 +0200 <monochrom> By induction hypothesis, I can just assume that the recursive call myPowerSet [b,c] works correctly. Let's say it returns [[b,c], [b], [c], []].
2022-04-26 01:43:01 +0200 <monochrom> So my only job is to bridge the gap between [[b,c], [b], [c], []] and some kind of [[a,b,c], [a,b], [a,c], [a], [b,c], [b], [c], []]
2022-04-26 01:43:38 +0200 <monochrom> The order is negotiable. You get my point.
2022-04-26 01:44:34 +0200 <monochrom> The nice thing though is you notice how half of it is just [b,c], [b], [c], [] again, straight from the recursive call, and how the other half is just "add a to everyone".
2022-04-26 01:44:58 +0200 <[itchyjunk]> hmm i do notice that
2022-04-26 01:45:35 +0200 <EvanR> to find all subsequences of [0..] just get all subsequences of [1..], assuming that works, prepend 0 to one copy of it not the other. Why does this fail? xD
2022-04-26 01:46:56 +0200tabemann(~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2022-04-26 01:49:17 +0200tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2022-04-26 01:49:24 +0200 <EvanR> to have a chance of productivity, output the one with 0 first
2022-04-26 01:51:56 +0200slack1256(~slack1256@186.11.81.160)
2022-04-26 01:54:47 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds)
2022-04-26 01:55:18 +0200 <whatsupdoc> Just checking, are y'all still worshipping haskell?
2022-04-26 01:57:17 +0200slack1256(~slack1256@186.11.81.160) (Remote host closed the connection)
2022-04-26 01:57:19 +0200 <[itchyjunk]> i tried worshipping a rock in the park but that didn't give me a powerset given some finite set
2022-04-26 01:57:49 +0200 <EvanR> your rock probably needed more ram to run GHC
2022-04-26 01:58:12 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2022-04-26 01:58:32 +0200 <Bulby[m]> have you tried a raspberry pi zero?
2022-04-26 01:58:47 +0200 <[itchyjunk]> didn't find that in the park :x
2022-04-26 01:59:10 +0200 <EvanR> a few decades too early for that
2022-04-26 01:59:12 +0200 <Bulby[m]> try using sticks as attena
2022-04-26 01:59:22 +0200alx741(~alx741@host-181-198-243-150.netlife.ec)
2022-04-26 01:59:55 +0200 <monochrom> I heard that Pringles cans make great antennas for wifi
2022-04-26 02:00:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-04-26 02:01:23 +0200mshiraeeshi(~shiraeesh@46.34.207.121) (Ping timeout: 260 seconds)
2022-04-26 02:03:37 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2022-04-26 02:03:37 +0200xff0x_(~xff0x@om126158204045.30.openmobile.ne.jp) (Read error: Connection reset by peer)
2022-04-26 02:03:44 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 246 seconds)
2022-04-26 02:04:45 +0200alx741(~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds)
2022-04-26 02:05:50 +0200 <abastro[m]> Antennas for wifi?
2022-04-26 02:07:02 +0200 <whatsupdoc> Why learn haskell? It's not being used in industry
2022-04-26 02:07:44 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 02:08:17 +0200vysn(~vysn@user/vysn)
2022-04-26 02:08:28 +0200 <monochrom> Troll.
2022-04-26 02:08:58 +0200 <abastro[m]> Yea
2022-04-26 02:09:06 +0200alx741(~alx741@host-181-198-243-150.netlife.ec)
2022-04-26 02:09:08 +0200 <dibblego> gah! what have I been doing for the last 20 years!?
2022-04-26 02:09:32 +0200 <monochrom> dibblego you should learn the violin too, it is not used in industry :)
2022-04-26 02:09:42 +0200 <abastro[m]> Lmaooo
2022-04-26 02:09:46 +0200 <dibblego> that would be yet another 20 wasted years, I'm onto you
2022-04-26 02:09:57 +0200 <abastro[m]> Great
2022-04-26 02:10:06 +0200 <monochrom> But but but you'll get more love from twosetviolin.
2022-04-26 02:10:23 +0200 <abastro[m]> The risk is, you might end up becoming violinist
2022-04-26 02:10:24 +0200 <dibblego> yeah but in 20 years, someone who definitely knows wtf they are talking about will break this news to me
2022-04-26 02:12:13 +0200 <Axman6> shit, does that mean I haven't had a job for the last seven years programming in Haskell either?
2022-04-26 02:12:22 +0200 <dibblego> yeah man devo
2022-04-26 02:13:21 +0200 <Axman6> My financial stability is a lie, whatever will I do!
2022-04-26 02:13:46 +0200 <Axman6> Maybe I should tell the stock exchange that their clearing and settlement system doesn't exist
2022-04-26 02:13:48 +0200 <whatsupdoc> Gosh it really is a cult
2022-04-26 02:13:57 +0200 <monochrom> Financial stability is a lie, period. >:)
2022-04-26 02:14:02 +0200 <dibblego> oh no more bad news!
2022-04-26 02:14:04 +0200 <Axman6> This is true
2022-04-26 02:14:19 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2022-04-26 02:14:56 +0200 <monochrom> Why are we tolerating whatsupdoc? They are not contributing.
2022-04-26 02:14:57 +0200ChanServ+o monochrom
2022-04-26 02:15:03 +0200monochrom+b *!*@id-509081.hampstead.irccloud.com
2022-04-26 02:15:03 +0200whatsupdocmonochrom (whatsupdoc)
2022-04-26 02:15:26 +0200monochrom-o monochrom
2022-04-26 02:15:31 +0200alx741(~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds)
2022-04-26 02:15:38 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-04-26 02:16:39 +0200ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 256 seconds)
2022-04-26 02:17:45 +0200 <Axman6> "whatsupdoc: Tell mono to unban me geez, I asked a genuine question and got attacked by y'all"
2022-04-26 02:17:58 +0200ArathornMatthew|m
2022-04-26 02:18:09 +0200 <dolio> Haha.
2022-04-26 02:19:42 +0200alx741(~alx741@host-181-198-243-150.netlife.ec)
2022-04-26 02:20:04 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 250 seconds)
2022-04-26 02:20:10 +0200 <Axman6> it gets better
2022-04-26 02:20:19 +0200 <Axman6> "whatsupdoc: I'm gonna need y'all when I start learning Haskell later this year, damn "
2022-04-26 02:21:00 +0200 <Axman6> http://i0.kym-cdn.com/entries/icons/mobile/000/023/180/notsurprisedkirk.jpg
2022-04-26 02:24:25 +0200acarrico1(~acarrico@dhcp-68-142-48-19.greenmountainaccess.net)
2022-04-26 02:24:28 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-04-26 02:25:10 +0200laolmtdea^(~laolmtdea@50.227.69.228)
2022-04-26 02:26:50 +0200jakalx(~jakalx@base.jakalx.net)
2022-04-26 02:29:06 +0200 <sm> why ban so quickly ? do you know that person ?
2022-04-26 02:29:42 +0200 <Bulby[m]> powerlevel 👀
2022-04-26 02:31:16 +0200alx741(~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
2022-04-26 02:32:21 +0200russruss(~russruss@my.russellmcc.com)
2022-04-26 02:33:31 +0200 <abastro[m]> Wow how could one change the power level like this?
2022-04-26 02:35:04 +0200laolmtdea^(~laolmtdea@50.227.69.228) (Ping timeout: 272 seconds)
2022-04-26 02:35:56 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2022-04-26 02:40:23 +0200 <monochrom> "Gosh it really is a cult" proves disingenuosness. I don't need to know the person. I just need to know they are adding noise.
2022-04-26 02:40:47 +0200 <dibblego> I support the ban and was planning it after having my fun.
2022-04-26 02:41:07 +0200 <Axman6> SO I kept talking to whatsupdoc, and the basis of their opinion is that the company they work for doesn't use Haskell, therefore it isn't used in industry. Also apparently Google don't use HAskell, despire having many open source Haskell projects - for anyone wondering where those well educated statements come from
2022-04-26 02:41:21 +0200 <dibblego> Axman6: please send them to #haskell-ops
2022-04-26 02:41:34 +0200 <monochrom> Also measuring from the start "Why learn haskell? It's not being used in industry" it took me 7 minutes. That was more than they deserved.
2022-04-26 02:41:43 +0200 <Axman6> Haskell* despite*
2022-04-26 02:42:38 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 02:42:47 +0200 <monochrom> No, please don't spend time on a time sink.
2022-04-26 02:43:38 +0200 <exarkun> It doesn't seem like the most justified ban in the world to me.
2022-04-26 02:46:07 +0200 <Axman6> I would also have said it was too soon for a ban too, kicking or a timed ban - IMO bans should be for patterns of behaviour, and three messages isn't really that
2022-04-26 02:47:33 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-26 02:47:38 +0200 <hpc> 100% of those three messages were classic #haskell troll lines though
2022-04-26 02:48:18 +0200 <dibblego> I support it 100%, come to #haskell-ops, let's agree to not be a dick head, problem solved
2022-04-26 02:48:27 +0200 <monochrom> Correction: 20 minutes measuring from the real start, the "worship" line.
2022-04-26 02:48:49 +0200 <sm> I know we're no longer a young enthusiastic language community, and I know defending against spam is tricky and thankless, but I'd hate to see this channel continue to slide towards an intolerant cliquish atmosphere. It used to be known as the friendliest IRC channel.
2022-04-26 02:49:00 +0200 <hpc> in any event, finally we can get back to the real topic of #haskell...
2022-04-26 02:49:01 +0200 <hpc> pringles
2022-04-26 02:49:14 +0200 <Axman6> I agree, though apparently they also want to learn Haskell, for learning sake (not a course). Wouldn't be the first time we've turned a troll into a ~convert~ useful member of society
2022-04-26 02:49:50 +0200 <Axman6> What's the deal with the new pringles recipe and the new shape???
2022-04-26 02:49:59 +0200 <Axman6> Absolute junk
2022-04-26 02:50:02 +0200 <monochrom> IMO they say "I want to learn" afterwards to scam you for sympathy.
2022-04-26 02:50:22 +0200 <hpc> Axman6: it's to support 5G, of course :D
2022-04-26 02:50:23 +0200 <monochrom> For 20 minutes they had a chance to say that before I banned.
2022-04-26 02:50:37 +0200 <Axman6> They got no sympathy, I spointed out clearly how dump insulting people you need help from is
2022-04-26 02:51:10 +0200 <Axman6> pointed* dumb* bloody hell
2022-04-26 02:51:53 +0200 <hololeap> how do people feel about writing out pragmas like "Language" instead of "LANGUAGE"
2022-04-26 02:52:06 +0200 <monochrom> I write "language".
2022-04-26 02:52:11 +0200 <Axman6> hololeap: that's worse than the new pringles recipe
2022-04-26 02:52:16 +0200 <exarkun> why not LanGuage
2022-04-26 02:52:50 +0200 <Axman6> LanguaGe - lang-gua-zhay
2022-04-26 02:52:51 +0200 <monochrom> But to answer, yeah I'm OK with Language. :)
2022-04-26 02:53:07 +0200 <hololeap> it feels a little less loud
2022-04-26 02:53:27 +0200 <monochrom> Yeah this is why I go the final step, language :)
2022-04-26 02:53:32 +0200 <Axman6> it's a PRAGMA, it's supposed to be LOUD so the compiler can hear it!
2022-04-26 02:53:47 +0200 <hpc> go full latex - LaNgUaGe
2022-04-26 02:53:54 +0200 <monochrom> I think the {-# is already loud enough.
2022-04-26 02:54:13 +0200 <hpc> i never knew it wasn't case-sensitive
2022-04-26 02:54:25 +0200 <monochrom> Yeah I found out fairly recently too.
2022-04-26 02:54:27 +0200 <Axman6> It''s literally a comment, the compiler should be ignoring it, hence the caps to make it take notice!
2022-04-26 02:54:32 +0200 <hpc> gonna have to start doing all-lowercase now, like how i write powershell
2022-04-26 02:55:00 +0200 <monochrom> Unfortunately {-# language gadts #-} probably doesn't fly
2022-04-26 02:55:26 +0200 <hololeap> that's why I prefer Language; it fits with the CamelCase of the extensions
2022-04-26 02:55:47 +0200 <monochrom> I still hate camel case.
2022-04-26 02:56:15 +0200 <hpc> that's what llamAcasE is for
2022-04-26 02:56:42 +0200 <hololeap> lol wat
2022-04-26 02:57:13 +0200 <hpc> it's camelcase for left-handed people
2022-04-26 02:57:39 +0200 <hololeap> so llamas are polar opposites of camels?
2022-04-26 02:58:17 +0200 <hololeap> perhaps even tropical opposites
2022-04-26 02:58:20 +0200 <hpc> cartesian opposite - polar opposite is sləwec
2022-04-26 02:58:49 +0200 <hpc> haha, tropical opposites
2022-04-26 02:59:27 +0200alp_(~alp@user/alp) (Ping timeout: 240 seconds)
2022-04-26 03:00:07 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2022-04-26 03:05:16 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2022-04-26 03:05:52 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 03:07:01 +0200xff0x_(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
2022-04-26 03:08:27 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-04-26 03:13:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds)
2022-04-26 03:13:43 +0200 <hololeap> @unmtl ExceptT e (ListT m) a
2022-04-26 03:13:43 +0200 <lambdabot> m ([] (Either e a))
2022-04-26 03:14:03 +0200 <hololeap> @unmtl ListT (ExceptT e m) a
2022-04-26 03:14:03 +0200 <lambdabot> m (Either e ([] a))
2022-04-26 03:24:21 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2022-04-26 03:24:29 +0200andrey__(~andrey@p200300dbcf119000377e8be0c29d44c5.dip0.t-ipconnect.de)
2022-04-26 03:26:55 +0200andrey_(~andrey@p5b1652a4.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-04-26 03:27:23 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 246 seconds)
2022-04-26 03:34:17 +0200kaph(~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
2022-04-26 03:36:28 +0200Guest81(~Guest81@128.177.72.242)
2022-04-26 03:41:37 +0200frost(~frost@user/frost)
2022-04-26 03:43:02 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-04-26 03:45:12 +0200Hiring(~Hiring@31.222.238.38) (Ping timeout: 252 seconds)
2022-04-26 03:54:26 +0200wroathe(~wroathe@user/wroathe)
2022-04-26 03:55:49 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 03:57:14 +0200fef(~thedawn@user/thedawn)
2022-04-26 03:57:29 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2022-04-26 03:58:21 +0200Core4993(~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc)
2022-04-26 04:00:14 +0200oxide(~lambda@user/oxide)
2022-04-26 04:00:33 +0200ezzieygu1wufezzieyguywuf
2022-04-26 04:00:59 +0200oxide(~lambda@user/oxide) (Client Quit)
2022-04-26 04:02:07 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-04-26 04:02:55 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Read error: Connection reset by peer)
2022-04-26 04:03:13 +0200zaquest(~notzaques@5.130.79.72)
2022-04-26 04:03:14 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 04:09:17 +0200parsnip(~parsnip@user/parsnip)
2022-04-26 04:09:37 +0200 <parsnip> where did `xs` notation come from?
2022-04-26 04:10:12 +0200 <shachaf> English, I imagine.
2022-04-26 04:10:48 +0200 <monochrom> plural of x :)
2022-04-26 04:10:48 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Read error: Connection reset by peer)
2022-04-26 04:11:33 +0200 <parsnip> did haskell start this convention?
2022-04-26 04:11:34 +0200 <Axman6> while x's would be valid Haskell, it's longer, and less gramatically correct than xs
2022-04-26 04:12:35 +0200 <shachaf> 's should be used as a possessive.
2022-04-26 04:13:01 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-04-26 04:13:03 +0200 <parsnip> i think apostrophe is allowed, just not common
2022-04-26 04:13:04 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-04-26 04:13:05 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2022-04-26 04:13:23 +0200 <parsnip> maybe x:X was not allowed in ML
2022-04-26 04:13:48 +0200Core4993(~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Read error: Connection reset by peer)
2022-04-26 04:14:01 +0200Core4993(~Core4993@210.12.195.3)
2022-04-26 04:14:08 +0200 <parsnip> i mean i have many x's is allowed in english
2022-04-26 04:14:17 +0200 <monochrom> Ah ML used this convention too. Not sure who started, but certainly at least ML.
2022-04-26 04:14:29 +0200 <parsnip> so it's probably an issue of casing?
2022-04-26 04:14:30 +0200Core4993(~Core4993@210.12.195.3) (Read error: Connection reset by peer)
2022-04-26 04:14:38 +0200 <parsnip> like, uppercase changes meaning?
2022-04-26 04:14:44 +0200Core4993(~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc)
2022-04-26 04:14:45 +0200 <monochrom> x:X is allowed in ML. They don't actually have a "capital means constructor" rule.
2022-04-26 04:14:55 +0200 <parsnip> because in math, you are more likely to write `for x in X`
2022-04-26 04:15:05 +0200 <parsnip> the big set is upper case
2022-04-26 04:15:09 +0200Core4993(~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Read error: Connection reset by peer)
2022-04-26 04:15:17 +0200 <parsnip> the little element in lower case
2022-04-26 04:15:24 +0200 <Axman6> I'm not sure I would say that that's what x:xs means though
2022-04-26 04:15:36 +0200 <monochrom> Well, they chose xs over X.
2022-04-26 04:15:38 +0200 <Axman6> and using it like that would be confusing, since x is specifically not in xs
2022-04-26 04:16:00 +0200 <Axman6> it's x and the other xs
2022-04-26 04:16:06 +0200 <[Leary]> That convention translates to x :: X.
2022-04-26 04:16:10 +0200 <monochrom> ML may disallow apostrophe though.
2022-04-26 04:16:29 +0200 <Axman6> if we were talking about list comprehensions it would make more sense to use x <- X
2022-04-26 04:17:26 +0200 <[Leary]> You don't just call any list of xs X; that should have some kind of completeness.
2022-04-26 04:17:40 +0200oxide(~lambda@user/oxide)
2022-04-26 04:17:41 +0200 <parsnip> my memory is bad, don't haskellers write x <- xs ?
2022-04-26 04:17:53 +0200 <Axman6> yes
2022-04-26 04:18:24 +0200jargon(~jargon@174-22-223-120.phnx.qwest.net)
2022-04-26 04:18:39 +0200 <monochrom> I am not sure you can use rational reasoning to understand naming.
2022-04-26 04:18:53 +0200 <parsnip> lol
2022-04-26 04:19:03 +0200 <Axman6> r/namenerdcirclejerk would tend to agree with you
2022-04-26 04:19:29 +0200 <monochrom> Both xs and X could made sense. A ton more alternatives would too. Some bigshot made a choice. End of story.
2022-04-26 04:20:23 +0200doppo(~doppo@2604:180::e0fc:a07f)
2022-04-26 04:20:23 +0200 <monochrom> I think the Prolog people started X:Xs. (It's [X|Xs] in their actual syntax.)
2022-04-26 04:20:29 +0200doppo(~doppo@2604:180::e0fc:a07f) ()
2022-04-26 04:21:35 +0200 <monochrom> And in Prolog it couldn't be x:xs. Lower case for constant atoms (like atoms in Scheme), capitalized for parameters (in general variables waiting for unification).
2022-04-26 04:21:50 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds)
2022-04-26 04:22:05 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-26 04:22:14 +0200 <monochrom> Err, I mean in Prolog it couldn't be x:X i.e. [x|X].
2022-04-26 04:22:49 +0200 <monochrom> (To answer why they didn't go with the "x∈X" convention.)
2022-04-26 04:24:27 +0200 <monochrom> I guess it pays off that I signed up to be a TA of a course that involved Prolog heh. Now I know more than I ever want to. Much regret. :)
2022-04-26 04:24:28 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds))
2022-04-26 04:24:47 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2022-04-26 04:25:37 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 04:26:22 +0200AlexNoo_(~AlexNoo@94.233.241.106)
2022-04-26 04:26:44 +0200 <monochrom> Oh and I also had to mark an assignment that went "choose one of these six topics and write a tutorial" and I had to mark those who chose "C++ lambda, map, filter, fold" so now I also know way too much C++ than I'm comfortable with haha.
2022-04-26 04:28:06 +0200 <monochrom> On the bright side I finally understand what's "using t = Myclass::value_type" and why sometimes it has to be "using t = typename Myclass::value_type".
2022-04-26 04:28:57 +0200 <abastro[m]> Eww C++ lambda
2022-04-26 04:29:01 +0200 <Axman6> ... can you explain why?
2022-04-26 04:29:04 +0200AlexZenon(~alzenon@178.34.160.91) (Ping timeout: 272 seconds)
2022-04-26 04:29:39 +0200AlexNoo(~AlexNoo@178.34.160.91) (Ping timeout: 240 seconds)
2022-04-26 04:29:42 +0200Alex_test(~al_test@178.34.160.91) (Ping timeout: 272 seconds)
2022-04-26 04:29:48 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-e10b-aeba-a8b3-e9aa.res6.spectrum.com) (Remote host closed the connection)
2022-04-26 04:31:20 +0200 <monochrom> OK I should s/understand/know/ :)
2022-04-26 04:32:25 +0200 <monochrom> If it begins with say "template<typename Myclass>" then there is something about "Myclass::value_type is a dependent name, assumed non-type unless you say typename".
2022-04-26 04:32:29 +0200 <Axman6> "Please see sections X, Y, Z and Q.2.1a in the C++2X standard and it should become clear, if you read all parts of the standard that those sections depend on"
2022-04-26 04:32:46 +0200 <monochrom> Nah I just read Stroustrup's.
2022-04-26 04:33:29 +0200 <abastro[m]> Oh no
2022-04-26 04:33:43 +0200 <abastro[m]> Pls do not get converted to C++
2022-04-26 04:33:52 +0200 <shachaf> Axman6: The reason is that the C++ grammar is awful (partly inherited from C, though C++ made it much worse, and introduced all these problems).
2022-04-26 04:34:02 +0200 <monochrom> ikr? I can feel the Stockholm syndrome...
2022-04-26 04:34:22 +0200Alex_test(~al_test@94.233.241.106)
2022-04-26 04:34:30 +0200Guest81(~Guest81@128.177.72.242) (Ping timeout: 276 seconds)
2022-04-26 04:34:36 +0200 <shachaf> There are a bunch of ambiguities that need this sort of clarification.
2022-04-26 04:34:40 +0200AlexZenon(~alzenon@94.233.241.106)
2022-04-26 04:34:45 +0200 <Axman6> I feel like there's a lot to like about C++, except the language itself
2022-04-26 04:35:20 +0200 <shachaf> For example, "f<x>(y);" can be parsed as "f applied to template argument x and regular argument y", or as "(f < x) > (y);".
2022-04-26 04:35:42 +0200 <monochrom> People whined about Ada. I feel that C++ is the rightful heir.
2022-04-26 04:35:42 +0200 <shachaf> To disambugate there you need to know what f is. Which normally you do, but not if f itself is a template argument.
2022-04-26 04:35:55 +0200 <Axman6> I like many of the ideas, having a lot of control over how to specialise things, allocate things, inline things, data layouts etc, but god there's a lot of awful crap in the language
2022-04-26 04:36:18 +0200 <monochrom> expressive but bureacratic.
2022-04-26 04:36:21 +0200 <Axman6> I feel people whine about Ada without knowing Ada - I enjoyed Ada but it did feel very unfamiliart
2022-04-26 04:36:25 +0200 <Axman6> -t
2022-04-26 04:36:40 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 272 seconds)
2022-04-26 04:36:55 +0200 <shachaf> There's a similar ambiguity with "t * x;" -- is it declaring a pointer x, or multiplying t by x? You need to know what t is to know.
2022-04-26 04:37:01 +0200 <Axman6> Few languages provide as good tools for concurrency and embedded systems as Ada
2022-04-26 04:37:03 +0200 <monochrom> And now that C++ also standardizes concurrency, it finally catches up with Ada haha </snark>
2022-04-26 04:37:18 +0200td_(~td@94.134.91.109) (Ping timeout: 272 seconds)
2022-04-26 04:37:30 +0200 <shachaf> I assume "using t = ambiguous_thing;" is a similar issue, though I'm not sure what the ambiguity is here.
2022-04-26 04:37:31 +0200 <monochrom> <not snark> To be fair in many other aspects C++ surpassed Ada
2022-04-26 04:37:50 +0200 <shachaf> C has a lot of control over how to specialize things, allocate things, inline things, data layouts, etc.
2022-04-26 04:38:13 +0200 <Axman6> I'd be surprised if it did surpass Ada when it comes to concurrency, it provides really useful, high level concepts that would require language changes for C++ to enforce the properties of
2022-04-26 04:38:53 +0200td_(~td@94.134.91.110)
2022-04-26 04:38:55 +0200 <Axman6> shachaf: C compilers do, but afair it's mostly ad hoc and everyone just agreed to do the same thing, without a standard for it.
2022-04-26 04:40:02 +0200 <Axman6> Ada lets you do things like say: "This type takes up exactly one word, and the bits can mean one of these eight different things, and it is only allowed to be used in these specific addresses, which the compiler must ensure it doesn't allocate for any other use, because they are actually memory mapped IO registers"
2022-04-26 04:41:06 +0200 <monochrom> I feel you. It's why I chose "whined" rather than "complained".
2022-04-26 04:41:11 +0200 <Axman6> in C, you'd say "struct register[8] = 0x83890000; // Compiler, pls don't do anything to this address
2022-04-26 04:41:30 +0200ralu1(~ralu@static.211.245.203.116.clients.your-server.de)
2022-04-26 04:41:57 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-04-26 04:42:22 +0200 <shachaf> Well, certainly anything C++ gives you in this regard, C does too.
2022-04-26 04:42:55 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-04-26 04:42:59 +0200 <Axman6> (If this sounds like a pretty specific example, it's because it was the example used in my embedded systems course at uni, showing how to program a DSP in Ada, where the interface do it was via some number of memory mapped registers)
2022-04-26 04:43:40 +0200 <Axman6> yeah both C and C++ are lacking in this kind of control IMO, and you have to resort to linker scripts to try and convince the compiler to not write garbage to things
2022-04-26 04:46:15 +0200 <maerwald[m]> Expressivity comes with a price, many people forget, including Haskellers
2022-04-26 04:47:12 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 04:47:37 +0200 <monochrom> This is why I gave up expressing OOP and just stick to FP such as Haskell.
2022-04-26 04:49:39 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-04-26 04:49:45 +0200 <jackdk> Axman6: I too liked my experience with Ada, but it wasn't at that high of a level. I ended up writing a parallel floodfill to work through a maze.
2022-04-26 04:50:50 +0200 <monochrom> That is like one of those National Treasure or Tomb Raider treasure hunt movies.
2022-04-26 04:51:32 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-04-26 04:51:32 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-04-26 04:51:32 +0200wroathe(~wroathe@user/wroathe)
2022-04-26 04:51:57 +0200 <monochrom> "OMG we are trapped AND water is coming in to drown us!" "Wait a second two wrongs make a right! Watch where the water is leaving, that's our exit too!"
2022-04-26 04:56:03 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-04-26 04:58:50 +0200geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 272 seconds)
2022-04-26 05:00:29 +0200slaydr(~slaydr@193.19.109.224) (Ping timeout: 246 seconds)
2022-04-26 05:00:58 +0200anomal(~anomal@87.227.196.109) (Remote host closed the connection)
2022-04-26 05:02:35 +0200abastro(~abab9579@192.249.26.99)
2022-04-26 05:06:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-04-26 05:07:42 +0200oxide(~lambda@user/oxide) (Ping timeout: 272 seconds)
2022-04-26 05:09:00 +0200oxide(~lambda@user/oxide)
2022-04-26 05:10:52 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-04-26 05:13:16 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-26 05:18:45 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-04-26 05:20:39 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds)
2022-04-26 05:22:28 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-04-26 05:22:53 +0200Guest81(~Guest81@c-73-151-189-117.hsd1.ca.comcast.net)
2022-04-26 05:23:29 +0200 <Guest81> really? banned on #haskell-ops as well? this ts so dumb
2022-04-26 05:26:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-04-26 05:28:28 +0200Adran(adran@botters/adran) (Quit: Este é o fim.)
2022-04-26 05:31:16 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-04-26 05:34:02 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-26 05:35:33 +0200Adran(adran@botters/adran)
2022-04-26 05:38:06 +0200redb(~nmh@136.49.49.211) (Ping timeout: 250 seconds)
2022-04-26 05:39:15 +0200 <[itchyjunk]> Can you use () to group operations?
2022-04-26 05:39:19 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-04-26 05:39:38 +0200 <[itchyjunk]> (blah) ++ (some other blah) to say do two things to create similar lists then merge them
2022-04-26 05:42:38 +0200xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-04-26 05:43:36 +0200notzmv(~zmv@user/notzmv)
2022-04-26 05:47:44 +0200 <monochrom> Yes.
2022-04-26 05:48:14 +0200cdman(~dcm@user/dmc/x-4369397)
2022-04-26 05:51:39 +0200Guest81(~Guest81@c-73-151-189-117.hsd1.ca.comcast.net) (Quit: Connection closed)
2022-04-26 05:51:59 +0200maerwald(~maerwald@user/maerwald) (Ping timeout: 256 seconds)
2022-04-26 05:54:44 +0200 <[itchyjunk]> Argh, it was a typo all along i think..
2022-04-26 05:54:58 +0200inversed_(~inversed@94.13.111.159)
2022-04-26 05:55:50 +0200inversed(~inversed@94.13.111.159) (Ping timeout: 272 seconds)
2022-04-26 05:58:22 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 272 seconds)
2022-04-26 05:59:43 +0200 <[itchyjunk]> i think i just need to filter out the things what i need from this
2022-04-26 05:59:44 +0200 <[itchyjunk]> https://bpa.st/DFOQ
2022-04-26 05:59:45 +0200liz(~liz@host109-151-125-217.range109-151.btcentralplus.com) (Quit: Lost terminal)
2022-04-26 06:00:03 +0200 <[itchyjunk]> Either that or the second list i create needs to be different hmmm
2022-04-26 06:01:31 +0200redb(~nmh@136.49.49.211)
2022-04-26 06:04:37 +0200maerwald(~maerwald@mail.hasufell.de)
2022-04-26 06:06:09 +0200mbuf(~Shakthi@182.64.156.25)
2022-04-26 06:06:36 +0200redb(~nmh@136.49.49.211) (Ping timeout: 272 seconds)
2022-04-26 06:06:40 +0200slaydr(~slaydr@193.19.109.224)
2022-04-26 06:13:39 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-26 06:14:36 +0200maerwald(~maerwald@mail.hasufell.de) (Ping timeout: 276 seconds)
2022-04-26 06:15:00 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 06:15:01 +0200kaph(~kaph@net-2-42-128-49.cust.vodafonedsl.it)
2022-04-26 06:16:36 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
2022-04-26 06:16:59 +0200redb(~nmh@136.49.49.211)
2022-04-26 06:17:00 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 06:20:10 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 06:22:00 +0200 <hololeap> is there a good alternative to dlist that is in the libs bundled with ghc?
2022-04-26 06:22:26 +0200 <hololeap> oh, wait I don't need dlist, nvm
2022-04-26 06:22:29 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 06:22:49 +0200 <monochrom> I use `("sdkljfl" ++) . ('c' :)`. Does that count? :)
2022-04-26 06:24:22 +0200 <hololeap> I thought about doing that, but I can just use foldr
2022-04-26 06:24:55 +0200tommd(~tommd@97-120-41-123.ptld.qwest.net)
2022-04-26 06:27:55 +0200 <hololeap> I'm using `ListT IO FilePath` to scan through a directory tree. honest question, what could go wrong?
2022-04-26 06:28:21 +0200 <monochrom> Is that [IO FilePath]?
2022-04-26 06:28:45 +0200 <monochrom> Err wait no. Is that IO [FilePath]?
2022-04-26 06:28:56 +0200 <hololeap> that's what it ends up being after runListT
2022-04-26 06:29:51 +0200 <monochrom> So unless you use unsafeInterleaveIO, it doesn't return until the whole tree is complete.
2022-04-26 06:31:06 +0200 <monochrom> "ListT m a = newtype (m [a])" has other issues in addition. I think I even heard "not a monad" too.
2022-04-26 06:31:18 +0200gpncarl(~gpncarl@210.12.195.5) (Ping timeout: 272 seconds)
2022-04-26 06:31:23 +0200 <hololeap> yeah, it's deprecated, which was the source of my question
2022-04-26 06:31:25 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 06:31:52 +0200 <hololeap> but the syntax is convenient
2022-04-26 06:31:59 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 06:32:00 +0200 <jackdk> Many streaming libraries advertise themselves as "ListT done right". I would consider using one of those to provide a stream of filenames to iterate through, so you have more precise control over the traversal
2022-04-26 06:32:24 +0200 <hololeap> one of the constraints of this project is that I have to use packages bundled with GHC only
2022-04-26 06:33:21 +0200 <monochrom> Oleg's "data L m a = Nil | Cons a (m (L m a))" though is legit.
2022-04-26 06:34:00 +0200 <hololeap> but it won't fail early in the case of a `throwError`? it will scan the whole tree first and then process it?
2022-04-26 06:35:29 +0200 <monochrom> throwing an exception early is an orthogonal issue.
2022-04-26 06:35:56 +0200 <monochrom> more or less
2022-04-26 06:36:04 +0200 <jackdk> hololeap: `data Stream f m r = Done r | Step (f (Stream f m r)) | Effect (m (Stream f m r))`; `data Of a b = !a :< b deriving Functor`; you now have a streaming type
2022-04-26 06:36:05 +0200 <hololeap> I'm saying if it hits a throw error on file 50/500, will it look at the other 450?
2022-04-26 06:36:12 +0200 <jackdk> (inspired by `streaming`)
2022-04-26 06:36:32 +0200 <hololeap> maybe I can test this somehow
2022-04-26 06:36:39 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-04-26 06:41:15 +0200abastro(~abab9579@192.249.26.99) (Ping timeout: 276 seconds)
2022-04-26 06:42:19 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Ping timeout: 260 seconds)
2022-04-26 06:44:17 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
2022-04-26 06:51:19 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-04-26 06:51:29 +0200 <hololeap> here is the relevant snippet, in all it's unglory: http://sprunge.us/qTGZGQ
2022-04-26 06:51:38 +0200maerwald(~maerwald@mail.hasufell.de)
2022-04-26 06:52:06 +0200coot(~coot@213.134.190.95)
2022-04-26 06:52:25 +0200Batzy(~quassel@user/batzy)
2022-04-26 06:55:58 +0200x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Remote host closed the connection)
2022-04-26 06:56:45 +0200x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
2022-04-26 06:59:04 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 248 seconds)
2022-04-26 06:59:46 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-04-26 07:02:15 +0200abastro(~abab9579@192.249.26.99)
2022-04-26 07:11:39 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Ping timeout: 240 seconds)
2022-04-26 07:11:42 +0200gpncarl(~gpncarl@222.249.231.3)
2022-04-26 07:11:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-26 07:13:54 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
2022-04-26 07:18:02 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 07:18:18 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
2022-04-26 07:18:38 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-26 07:18:38 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com)
2022-04-26 07:19:19 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-04-26 07:19:51 +0200 <Axman6> jackdk: "inspired"
2022-04-26 07:21:01 +0200 <jackdk> Axman6: "yes"
2022-04-26 07:21:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-04-26 07:23:49 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 07:25:13 +0200deadmarshal_(~deadmarsh@95.38.115.70)
2022-04-26 07:29:37 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 07:31:19 +0200jhagborg(~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds)
2022-04-26 07:36:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 07:36:49 +0200tommd(~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 256 seconds)
2022-04-26 07:40:36 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 07:40:54 +0200vicfred(~vicfred@user/vicfred)
2022-04-26 07:41:20 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 07:45:19 +0200vicfred(~vicfred@user/vicfred) (Ping timeout: 256 seconds)
2022-04-26 07:46:40 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-04-26 08:03:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-04-26 08:04:07 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 08:05:19 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-26 08:09:41 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Ping timeout: 256 seconds)
2022-04-26 08:10:48 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 08:12:06 +0200alp_(~alp@user/alp)
2022-04-26 08:16:43 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2022-04-26 08:17:03 +0200Me-me(~me-me@user/me-me) (Ping timeout: 260 seconds)
2022-04-26 08:31:59 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 08:35:12 +0200acidjnk(~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de)
2022-04-26 08:38:36 +0200xkuru(~xkuru@user/xkuru)
2022-04-26 08:43:06 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 08:43:48 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 08:50:35 +0200Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2022-04-26 08:52:32 +0200ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 272 seconds)
2022-04-26 09:01:49 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 09:01:51 +0200cfricke(~cfricke@user/cfricke)
2022-04-26 09:02:25 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 09:04:43 +0200chele(~chele@user/chele)
2022-04-26 09:08:09 +0200dextaa4(~dextaa@user/dextaa)
2022-04-26 09:08:57 +0200michalz(~michalz@185.246.204.125)
2022-04-26 09:10:06 +0200dextaa4(~dextaa@user/dextaa) (Remote host closed the connection)
2022-04-26 09:10:23 +0200merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl)
2022-04-26 09:12:36 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 09:13:55 +0200mshiraeeshi(~shiraeesh@46.34.207.194)
2022-04-26 09:14:24 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 09:14:40 +0200abastro(~abab9579@192.249.26.99) (Remote host closed the connection)
2022-04-26 09:15:29 +0200abastro(~abab9579@192.249.26.99)
2022-04-26 09:15:38 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-04-26 09:16:18 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-04-26 09:17:05 +0200jargon(~jargon@174-22-223-120.phnx.qwest.net) ()
2022-04-26 09:17:16 +0200xaotuk(~sasha@net253-36-245-109.mbb.telenor.rs)
2022-04-26 09:21:22 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8229:e9bc:f0d0:5ffc)
2022-04-26 09:22:13 +0200abastro(~abab9579@192.249.26.99) (Remote host closed the connection)
2022-04-26 09:22:49 +0200fendor(~fendor@178.165.165.71.wireless.dyn.drei.com)
2022-04-26 09:23:06 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds)
2022-04-26 09:23:16 +0200shiraeeshi(~shiraeesh@46.34.207.194)
2022-04-26 09:24:44 +0200mshiraeeshi(~shiraeesh@46.34.207.194) (Ping timeout: 246 seconds)
2022-04-26 09:24:50 +0200dostoevsky(~5c42c5384@user/dostoevsky) (Ping timeout: 272 seconds)
2022-04-26 09:25:05 +0200fendor_(~fendor@178.165.165.71.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
2022-04-26 09:32:06 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 09:32:56 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 09:35:30 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-04-26 09:36:23 +0200rembo10(~rembo10@main.remulis.com)
2022-04-26 09:40:59 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-04-26 09:42:25 +0200gehmehgeh(~user@user/gehmehgeh)
2022-04-26 09:45:50 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 09:47:39 +0200xaotuk(~sasha@net253-36-245-109.mbb.telenor.rs) (Ping timeout: 240 seconds)
2022-04-26 09:49:04 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-26 09:49:11 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2022-04-26 09:50:16 +0200jakalx(~jakalx@base.jakalx.net)
2022-04-26 09:54:40 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2022-04-26 09:54:51 +0200Pikachu[m](~pychaumat@2001:470:69fc:105::2:1ce)
2022-04-26 09:58:31 +0200shiraeeshi(~shiraeesh@46.34.207.194) (Quit: Leaving)
2022-04-26 10:02:11 +0200ccntrq(~Thunderbi@2a01:e34:eccb:b060:5717:8bb4:874e:9726)
2022-04-26 10:02:51 +0200yauhsien_(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 10:04:43 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-04-26 10:09:19 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-04-26 10:10:46 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-04-26 10:12:40 +0200dsrt^(~dsrt@50.227.69.228)
2022-04-26 10:13:32 +0200xaotuk(~sasha@gore.copyleft.no)
2022-04-26 10:15:03 +0200yauhsien_(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 10:20:01 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 10:24:19 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-04-26 10:31:15 +0200Pickchea(~private@user/pickchea)
2022-04-26 10:36:07 +0200mattil(~mattil@helsinki.portalify.com)
2022-04-26 10:37:12 +0200ralu1(~ralu@static.211.245.203.116.clients.your-server.de)
2022-04-26 10:37:15 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-04-26 10:44:23 +0200kuribas(~user@ptr-17d51enjtkmzpg60wq1.18120a2.ip6.access.telenet.be)
2022-04-26 10:45:10 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 10:45:11 +0200zeenk(~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685)
2022-04-26 10:49:47 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
2022-04-26 10:50:24 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f)
2022-04-26 10:51:14 +0200zeenk(~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Remote host closed the connection)
2022-04-26 10:51:15 +0200coot(~coot@213.134.190.95)
2022-04-26 10:52:09 +0200zeenk(~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685)
2022-04-26 10:52:24 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Remote host closed the connection)
2022-04-26 10:55:23 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-04-26 10:56:47 +0200zeenk(~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Excess Flood)
2022-04-26 10:57:09 +0200zeenk(~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685)
2022-04-26 10:57:15 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-04-26 11:00:19 +0200mc47(~mc47@xmonad/TheMC47)
2022-04-26 11:02:09 +0200searemind(~searemind@122.161.49.176)
2022-04-26 11:02:23 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2022-04-26 11:03:38 +0200dcoutts_(~duncan@host86-150-41-186.range86-150.btcentralplus.com) (Ping timeout: 272 seconds)
2022-04-26 11:12:26 +0200AlexNoo_AlexNoo
2022-04-26 11:12:29 +0200cosimone(~user@93-44-185-79.ip98.fastwebnet.it)
2022-04-26 11:13:46 +0200searemind(~searemind@122.161.49.176) (Quit: 0.9.4)
2022-04-26 11:14:39 +0200xaotuk(~sasha@gore.copyleft.no) (Ping timeout: 240 seconds)
2022-04-26 11:14:46 +0200Core4993(~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc)
2022-04-26 11:14:51 +0200searemind(~searemind@122.161.49.176)
2022-04-26 11:16:15 +0200acidjnk(~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-04-26 11:16:41 +0200zyklotomic(~ethan@r4-128-61-94-122.res.gatech.edu) (Ping timeout: 256 seconds)
2022-04-26 11:16:48 +0200ubert1(~Thunderbi@ip5b407402.dynamic.kabel-deutschland.de)
2022-04-26 11:18:36 +0200zyklotomic(~ethan@res380d-128-61-86-213.res.gatech.edu)
2022-04-26 11:19:45 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-26 11:20:05 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 256 seconds)
2022-04-26 11:20:20 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee)
2022-04-26 11:22:45 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-04-26 11:27:16 +0200zeenk2(~zeenk@82.76.113.230)
2022-04-26 11:27:20 +0200zeenk(~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Ping timeout: 248 seconds)
2022-04-26 11:30:35 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 11:33:17 +0200searemind(~searemind@122.161.49.176) (Quit: 0.9.4)
2022-04-26 11:34:50 +0200zeenk2(~zeenk@82.76.113.230) (Quit: Konversation terminated!)
2022-04-26 11:35:06 +0200zeenk(~zeenk@82.76.113.230)
2022-04-26 11:40:19 +0200oxide(~lambda@user/oxide) (Ping timeout: 240 seconds)
2022-04-26 11:42:35 +0200oxide(~lambda@user/oxide)
2022-04-26 11:44:11 +0200__monty__(~toonn@user/toonn)
2022-04-26 11:44:43 +0200Core4993(~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Quit: CoreIRC for Android - www.coreirc.com)
2022-04-26 11:45:51 +0200zeenk(~zeenk@82.76.113.230) (Quit: Konversation terminated!)
2022-04-26 11:46:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 11:48:39 +0200 <albet70> what's the quick way to split [1,2,3,4,5,6] to [[1,2],[3,4],[5,6]]? groupBy?
2022-04-26 11:49:47 +0200 <abastro[m]> split package, I think
2022-04-26 11:50:15 +0200 <yushyin> chunksOf from split package
2022-04-26 11:53:03 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-26 11:53:59 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 11:58:04 +0200anomal(~anomal@87.227.196.109)
2022-04-26 12:02:23 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-04-26 12:05:39 +0200Midjak(~Midjak@82.66.147.146)
2022-04-26 12:06:54 +0200td_(~td@94.134.91.110) (Ping timeout: 276 seconds)
2022-04-26 12:09:13 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 12:12:09 +0200xaotuk(~sasha@109.245.225.166)
2022-04-26 12:14:42 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
2022-04-26 12:15:28 +0200anomal(~anomal@87.227.196.109) (Remote host closed the connection)
2022-04-26 12:16:07 +0200anomal(~anomal@87.227.196.109)
2022-04-26 12:18:27 +0200td_(~td@94.134.91.110)
2022-04-26 12:19:00 +0200xaotuk(~sasha@109.245.225.166) (Ping timeout: 272 seconds)
2022-04-26 12:19:18 +0200xaotuk(~sasha@gore.copyleft.no)
2022-04-26 12:20:16 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 12:25:49 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-04-26 12:30:12 +0200mvk(~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds)
2022-04-26 12:30:13 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-04-26 12:31:40 +0200xff0x_(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
2022-04-26 12:32:04 +0200akegalj(~akegalj@93-138-184-212.adsl.net.t-com.hr)
2022-04-26 12:38:29 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-04-26 12:41:05 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2022-04-26 12:41:25 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-04-26 12:47:03 +0200andrey_(~andrey@p200300dbcf1dd700efb6dcb1d2488e69.dip0.t-ipconnect.de)
2022-04-26 12:47:51 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 276 seconds)
2022-04-26 12:48:05 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee)
2022-04-26 12:49:35 +0200andrey__(~andrey@p200300dbcf119000377e8be0c29d44c5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-04-26 12:50:45 +0200slaydr(~slaydr@193.19.109.224) (Ping timeout: 256 seconds)
2022-04-26 12:50:54 +0200 <Bulby[m]> So how do I connect to a dbus socket 🤔
2022-04-26 12:52:27 +0200zebrag(~chris@user/zebrag)
2022-04-26 12:53:53 +0200ubert1(~Thunderbi@ip5b407402.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2022-04-26 12:56:04 +0200searemind(~searemind@122.161.49.176)
2022-04-26 12:56:35 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-04-26 12:57:35 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-04-26 13:01:38 +0200searemind(~searemind@122.161.49.176) (Quit: 0.9.4)
2022-04-26 13:02:56 +0200 <yushyin> you connect to a unix domain socket, either the session bus socket or the system bus socket. however, the actual thing is that you should use a dbus client lib for the heavy lifting
2022-04-26 13:03:45 +0200slaydr(~slaydr@173.239.197.19)
2022-04-26 13:05:22 +0200 <Bulby[m]> how do I write to it
2022-04-26 13:05:32 +0200 <Bulby[m]> from elsewhere
2022-04-26 13:08:26 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2022-04-26 13:08:41 +0200dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net)
2022-04-26 13:11:44 +0200 <exarkun> unix domain sockets have mostly the same API as AF_INET sockets
2022-04-26 13:12:13 +0200 <exarkun> you just pass a different address / address family to create/connect them
2022-04-26 13:12:44 +0200 <exarkun> I'm not sure what you mean by "from elsewhere".
2022-04-26 13:13:00 +0200 <Bulby[m]> from command line, sorry
2022-04-26 13:13:20 +0200 <yushyin> dbus-send
2022-04-26 13:13:30 +0200 <Bulby[m]> how do I know the socket name
2022-04-26 13:15:12 +0200 <Bulby[m]> and what lib should I use? dbus (all lowercase) has no docs but DBus does
2022-04-26 13:15:14 +0200 <yushyin> there are well-known message bus paths, clients will try to find one and just connect to it.
2022-04-26 13:16:00 +0200 <Bulby[m]> yes, but that dbus-send command will be set in stone (or at best dependent on envvars)
2022-04-26 13:16:35 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-04-26 13:18:42 +0200gehmehgeh(~user@user/gehmehgeh)
2022-04-26 13:19:58 +0200gpncarl_(~gpncarl@222.249.231.3)
2022-04-26 13:20:10 +0200jinsun__(~jinsun@user/jinsun)
2022-04-26 13:20:39 +0200 <yushyin> seems like the dbus lib is at least somewhat maintained
2022-04-26 13:20:55 +0200 <Bulby[m]> and two versions back it has docs
2022-04-26 13:20:59 +0200gpncarl(~gpncarl@222.249.231.3) (Ping timeout: 246 seconds)
2022-04-26 13:21:13 +0200 <yushyin> check out the examples and/or the freedesktop tutorial on dbus and see what you can do with that
2022-04-26 13:21:17 +0200lyiriyah[m](~lyiriyahm@2001:470:69fc:105::cc0)
2022-04-26 13:21:26 +0200 <yushyin> https://dbus.freedesktop.org/doc/dbus-tutorial.html
2022-04-26 13:21:27 +0200 <Bulby[m]> what examples
2022-04-26 13:21:36 +0200 <yushyin> https://github.com/rblaze/haskell-dbus/tree/master/examples
2022-04-26 13:22:46 +0200 <Bulby[m]> ah, so the bus is an open thing... and I can tune in to only 1 event than dbus-send will send to
2022-04-26 13:23:36 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 272 seconds)
2022-04-26 13:23:40 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-04-26 13:24:22 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-04-26 13:29:36 +0200machinedgod(~machinedg@24.105.81.50) (Remote host closed the connection)
2022-04-26 13:30:35 +0200acidjnk(~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de)
2022-04-26 13:30:44 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-26 13:31:45 +0200 <yushyin> Bulby[m]: it's a message bus for IPC, with some processes providing 'services' via this message bus and other processes accessing these services (sending messages,getting messages)
2022-04-26 13:32:10 +0200 <Bulby[m]> I will figure it out eventually 😄
2022-04-26 13:33:53 +0200 <yushyin> it has a pretty high-level object model with interfaces, methods, signals ... one has to read up a bit on the subject first
2022-04-26 13:34:53 +0200 <Bulby[m]> I HATE READING! I LOVE STUMBLING INTO SOLUTONS!
2022-04-26 13:40:08 +0200Hiring(~Hiring@31.222.238.38)
2022-04-26 13:40:29 +0200xff0x_(~xff0x@om126158204045.30.openmobile.ne.jp)
2022-04-26 13:40:55 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2022-04-26 13:41:17 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-04-26 13:41:38 +0200xaotuk(~sasha@gore.copyleft.no) (Ping timeout: 246 seconds)
2022-04-26 13:42:14 +0200 <geekosaur> mrrr. dbus is client side only, apparently
2022-04-26 13:42:35 +0200 <geekosaur> DBus was the first release of what is now dbus
2022-04-26 13:42:38 +0200 <Bulby[m]> i am not sending anything
2022-04-26 13:42:46 +0200 <geekosaur> ok
2022-04-26 13:43:54 +0200xaotuk(~sasha@109.245.225.166)
2022-04-26 13:45:08 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 246 seconds)
2022-04-26 13:47:16 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee)
2022-04-26 13:48:15 +0200 <geekosaur> well, maybe not ok. sending is notthe point of client side vs. server side, a server might well only receive. you still need the ability to establish a new endpoint versus connecting to an existing one, etc.
2022-04-26 13:48:42 +0200 <geekosaur> although that little Iknowof the dbus api should cover that part at least
2022-04-26 13:49:02 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de)
2022-04-26 13:50:48 +0200 <Bulby[m]> dbus seems to have no convientional access to the IO monad 😱 meaning unsafePerformIO
2022-04-26 13:51:07 +0200 <geekosaur> https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L241-L252 as client, sending to a server written in C (see also https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L80-L82)
2022-04-26 13:51:59 +0200 <geekosaur> I don't understand that comment, its operations run in IO as shown in my links
2022-04-26 13:52:29 +0200 <Bulby[m]> I mean I want to println in the callback
2022-04-26 13:52:32 +0200_xor(~xor@74.215.232.169)
2022-04-26 13:56:51 +0200 <Bulby[m]> oh, AutoMethod lets me use IO 😶
2022-04-26 13:57:37 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-04-26 13:59:02 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 250 seconds)
2022-04-26 14:01:01 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
2022-04-26 14:04:37 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de)
2022-04-26 14:06:19 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de) (Client Quit)
2022-04-26 14:09:28 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de)
2022-04-26 14:10:23 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de) (Client Quit)
2022-04-26 14:11:19 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 14:12:21 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds)
2022-04-26 14:12:22 +0200mattil(~mattil@helsinki.portalify.com) (Ping timeout: 272 seconds)
2022-04-26 14:13:15 +0200dminuoso(~dminuoso@user/dminuoso)
2022-04-26 14:14:37 +0200dminuoso(~dminuoso@user/dminuoso) (Client Quit)
2022-04-26 14:14:50 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 14:15:59 +0200dminuoso(~dminuoso@user/dminuoso)
2022-04-26 14:22:52 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 14:26:11 +0200xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-04-26 14:27:39 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-04-26 14:30:16 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 14:32:29 +0200cross(~cross@spitfire.i.gajendra.net)
2022-04-26 14:32:44 +0200jespada_(~jespada@146.70.119.92) (Ping timeout: 260 seconds)
2022-04-26 14:35:31 +0200jespada(~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
2022-04-26 14:42:06 +0200alx741(~alx741@host-181-198-243-150.netlife.ec)
2022-04-26 14:42:15 +0200Pickchea(~private@user/pickchea) (Ping timeout: 276 seconds)
2022-04-26 14:42:54 +0200[Leary](~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) (Remote host closed the connection)
2022-04-26 14:43:08 +0200[Leary](~Leary]@122-58-90-96-vdsl.sparkbb.co.nz)
2022-04-26 14:44:38 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 14:48:23 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.4.1)
2022-04-26 14:49:11 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-04-26 14:57:58 +0200zer0bitz(~zer0bitz@2001:2003:f444:8f00:9939:dfc8:bfb9:90c2)
2022-04-26 14:58:50 +0200jespada(~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 250 seconds)
2022-04-26 15:02:03 +0200jespada(~jespada@194.37.96.158)
2022-04-26 15:08:50 +0200geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca)
2022-04-26 15:18:17 +0200shlevy[m](~shlevymat@2001:470:69fc:105::1:d3b1)
2022-04-26 15:19:59 +0200acidjnk(~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-04-26 15:21:16 +0200Guest5420(~Guest54@c-73-151-189-117.hsd1.ca.comcast.net)
2022-04-26 15:21:56 +0200Simon76(~Simon@2001:4ca0:0:f237:9dd4:cf64:12cb:6b07)
2022-04-26 15:22:25 +0200Guest5420(~Guest54@c-73-151-189-117.hsd1.ca.comcast.net) ()
2022-04-26 15:24:39 +0200vorpuni(~pvorp@2001:861:3881:c690:691f:4814:d40:6070)
2022-04-26 15:27:26 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2022-04-26 15:27:45 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-04-26 15:30:01 +0200ystael(~ystael@user/ystael) (Quit: Lost terminal)
2022-04-26 15:31:59 +0200abastro(~abab9579@192.249.26.99)
2022-04-26 15:41:32 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-04-26 15:41:32 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-04-26 15:41:32 +0200wroathe(~wroathe@user/wroathe)
2022-04-26 15:45:45 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 15:50:50 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 15:51:15 +0200AndrewAndrewYu
2022-04-26 15:51:56 +0200ubert1(~Thunderbi@2a02:8109:9880:303c:2b38:2bad:43a9:a91c)
2022-04-26 15:53:56 +0200AndrewYuAndrew
2022-04-26 15:54:14 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-04-26 15:55:03 +0200ystael(~ystael@user/ystael)
2022-04-26 15:56:21 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-04-26 15:58:09 +0200zmt00(~zmt00@user/zmt00)
2022-04-26 15:58:14 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-04-26 15:59:11 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds)
2022-04-26 16:00:27 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2022-04-26 16:02:56 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-04-26 16:03:43 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-26 16:03:58 +0200coot(~coot@213.134.190.95)
2022-04-26 16:07:00 +0200akegalj(~akegalj@93-138-184-212.adsl.net.t-com.hr) (Quit: leaving)
2022-04-26 16:08:15 +0200Guest9846(~Thunderbi@240e:474:1c2:42c0:611f:3dbf:5d1e:14)
2022-04-26 16:08:57 +0200 <Guest9846> how to install haskell on ubuntu?
2022-04-26 16:09:54 +0200 <geekosaur> https://haskell.org/ghcup
2022-04-26 16:10:01 +0200 <geekosaur> the packaged ghc is way too old
2022-04-26 16:10:20 +0200 <Guest9846> how about haskell-platform
2022-04-26 16:10:49 +0200 <geekosaur> haskell-platform was discontinued
2022-04-26 16:11:08 +0200 <geekosaur> it's better to let build tools like stack and cabal manage libraries for you
2022-04-26 16:11:53 +0200 <Guest9846> ok
2022-04-26 16:12:55 +0200Guest9846(~Thunderbi@240e:474:1c2:42c0:611f:3dbf:5d1e:14) (Quit: Guest9846)
2022-04-26 16:13:00 +0200 <geekosaur> the closest we get to "platforms" is stack LTS resolvers, but even then y... feh
2022-04-26 16:15:12 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 276 seconds)
2022-04-26 16:16:16 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-26 16:17:21 +0200Simon76(~Simon@2001:4ca0:0:f237:9dd4:cf64:12cb:6b07) (Quit: Client closed)
2022-04-26 16:18:15 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-04-26 16:23:54 +0200searemind(~searemind@122.161.49.176)
2022-04-26 16:24:22 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-04-26 16:24:24 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 16:25:33 +0200searemind(~searemind@122.161.49.176) (Remote host closed the connection)
2022-04-26 16:25:58 +0200searemind(~searemind@122.161.49.176)
2022-04-26 16:29:30 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds)
2022-04-26 16:29:45 +0200Brandon_IX(~brandon@178-79-138-117.ip.linodeusercontent.com) (Quit: leaving)
2022-04-26 16:30:34 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-04-26 16:31:03 +0200dextaa4(~dextaa@user/dextaa)
2022-04-26 16:31:40 +0200vicfred(~vicfred@user/vicfred)
2022-04-26 16:35:34 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-04-26 16:36:33 +0200Sgeo(~Sgeo@user/sgeo)
2022-04-26 16:36:59 +0200Pickchea(~private@user/pickchea)
2022-04-26 16:38:50 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-04-26 16:39:43 +0200searemind(~searemind@122.161.49.176) (Quit: 0.9.4)
2022-04-26 16:43:38 +0200abastro(~abab9579@192.249.26.99) (Ping timeout: 246 seconds)
2022-04-26 16:45:38 +0200searemind(~searemind@122.161.49.176)
2022-04-26 16:46:19 +0200searemind(~searemind@122.161.49.176) (Client Quit)
2022-04-26 16:47:52 +0200mmhat(~mmh@55d4c7b7.access.ecotel.net)
2022-04-26 16:48:44 +0200Bulby[m]sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/6a10a5aac52fcc1a4dd97626b3f876594992…
2022-04-26 16:52:54 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds)
2022-04-26 16:53:28 +0200mvk(~mvk@2607:fea8:5ce3:8500::aa1d)
2022-04-26 16:54:28 +0200 <geekosaur> what's the other side look like? the example code I've seen suggests you don't have that quite right
2022-04-26 16:55:16 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-04-26 16:55:41 +0200 <geekosaur> that said I'm not a dbus expert
2022-04-26 16:56:52 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net)
2022-04-26 16:57:53 +0200 <Bulby[m]> https://paste.tomsmeding.com/oIiQXaNe
2022-04-26 17:00:26 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Quit: Leaving)
2022-04-26 17:01:02 +0200cdman(~dcm@user/dmc/x-4369397) (Quit: Leaving)
2022-04-26 17:01:13 +0200yauhsien(~yauhsien@61-231-45-36.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-04-26 17:01:23 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-04-26 17:02:42 +0200 <geekosaur> hm, that seems to match up, assuming the method you're sending is the Introspect one
2022-04-26 17:02:53 +0200 <Bulby[m]> yes
2022-04-26 17:03:07 +0200 <Bulby[m]> so why is it not printing
2022-04-26 17:03:18 +0200Pickchea(~private@user/pickchea) (Ping timeout: 276 seconds)
2022-04-26 17:03:18 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds)
2022-04-26 17:04:05 +0200 <geekosaur> UnknownObject suggests the client didn't get registered somehow, unless what it's saying is you missed some step to make it introspectable
2022-04-26 17:04:25 +0200 <geekosaur> since you don't seem to register any methods, just the object, that may be the problem
2022-04-26 17:06:59 +0200 <Bulby[m]> that autoMethod function it takes in is `String -> IO String`, so when I call the method it should be printing that string
2022-04-26 17:09:17 +0200Brandon_IX(brandon@2a01:7e00::f03c:92ff:feab:6b7c)
2022-04-26 17:09:31 +0200 <geekosaur> but the method you're calling is org.freedesktop.DBus.Introspectable.Introspect, isn't it?
2022-04-26 17:09:59 +0200 <Bulby[m]> yes, but that can be called on any client, no?
2022-04-26 17:11:18 +0200 <geekosaur> I would guess it needs some support so it can send back what methods the client can accept
2022-04-26 17:13:23 +0200xaotuk(~sasha@109.245.225.166) (Ping timeout: 246 seconds)
2022-04-26 17:19:41 +0200xff0x_(~xff0x@om126158204045.30.openmobile.ne.jp) (Read error: Connection reset by peer)
2022-04-26 17:20:51 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8229:e9bc:f0d0:5ffc) (Quit: WeeChat 2.8)
2022-04-26 17:23:03 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-04-26 17:23:18 +0200 <geekosaur> hm. actually if I read the introspection example correctly you call it differently. (I'm rummaging around in the source package)
2022-04-26 17:23:32 +0200 <Bulby[m]> ah, I have fixed it, it was my object path
2022-04-26 17:23:38 +0200 <geekosaur> yes
2022-04-26 17:24:02 +0200fendor_(~fendor@178.115.43.124.wireless.dyn.drei.com)
2022-04-26 17:24:18 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-04-26 17:25:10 +0200Bulby[m]sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/7154e75622d062b80bc9a88bd43084a1e284…
2022-04-26 17:25:59 +0200 <Bulby[m]> that will be... fun
2022-04-26 17:26:48 +0200fendor(~fendor@178.165.165.71.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2022-04-26 17:27:30 +0200 <geekosaur> you have to annotate stuff with HasCallStack constraints to get a meaningful call stack
2022-04-26 17:28:04 +0200 <Bulby[m]> I mean, i'm surprised it showed up here at not over at the main terminal
2022-04-26 17:28:47 +0200f-a(f2a@f2a.jujube.ircnow.org)
2022-04-26 17:31:54 +0200Hiring(~Hiring@31.222.238.38) (Quit: Client closed)
2022-04-26 17:33:19 +0200merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-04-26 17:33:29 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-04-26 17:33:46 +0200 <geekosaur> my guess is that's from --print-reply and something unexpected went wrong processing the request
2022-04-26 17:35:32 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-04-26 17:36:19 +0200alp_(~alp@user/alp) (Ping timeout: 240 seconds)
2022-04-26 17:38:35 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5)
2022-04-26 17:39:11 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds)
2022-04-26 17:39:56 +0200 <Bulby[m]> 😍 IT WORKS
2022-04-26 17:40:12 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-04-26 17:40:43 +0200merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl)
2022-04-26 17:40:58 +0200 <geekosaur> I'm curious as to why you went with string when dbus supports typed values
2022-04-26 17:41:26 +0200 <Bulby[m]> you can pipe in any value
2022-04-26 17:43:58 +0200 <monochrom> I guess you want to accept any string and do your own parsing and basically reinvent the wheel.
2022-04-26 17:44:10 +0200f-a(f2a@f2a.jujube.ircnow.org) ()
2022-04-26 17:44:20 +0200f-a(f2a@f2a.jujube.ircnow.org)
2022-04-26 17:44:40 +0200 <Bulby[m]> no, I don't parse anything. it just gets tossed into a string formatter and displayed on the status bar
2022-04-26 17:46:38 +0200 <Bulby[m]> that error earlier is me forgetting to fill in the format
2022-04-26 17:46:51 +0200anomal(~anomal@87.227.196.109) (Remote host closed the connection)
2022-04-26 17:46:59 +0200slaydr(~slaydr@173.239.197.19) (Remote host closed the connection)
2022-04-26 17:47:03 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-04-26 17:47:11 +0200 <EvanR> what does the d in dbus stand for
2022-04-26 17:47:47 +0200 <monochrom> Wikipedia says "desktop".
2022-04-26 17:48:05 +0200 <Bulby[m]> 🖥️🚌
2022-04-26 17:48:09 +0200 <monochrom> I would guess so too, the people are freedesktop.org
2022-04-26 17:48:25 +0200 <megaTherion> it isnt even busd
2022-04-26 17:48:38 +0200 <monochrom> heh
2022-04-26 17:48:52 +0200 <monochrom> They have systemd, we have system fc. >:)
2022-04-26 17:49:13 +0200monochrommv /usr/bin/ghc /usr/bin/systemfc
2022-04-26 17:49:15 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 17:50:32 +0200lbseale(~ep1ctetus@user/ep1ctetus)
2022-04-26 17:51:25 +0200dsrt^(~dsrt@50.227.69.228) (Remote host closed the connection)
2022-04-26 17:52:01 +0200 <EvanR> mv /bin/mv /bin/mv
2022-04-26 17:53:22 +0200 <monochrom> Oh wait https://richarde.dev/papers/2017/dep-haskell-spec/dep-haskell-spec.pdf has both a system d and a system dc :)
2022-04-26 17:53:43 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-04-26 17:55:05 +0200 <jonathanx> I am looking into lenses, and made a Traversable' using = row :: Int -> Traversal' (Matrix a) a
2022-04-26 17:55:05 +0200 <jonathanx> row r = lens (Matrix.getRow' r) (Matrix.setRow r) . Lens.traverse
2022-04-26 17:55:28 +0200comerijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-04-26 17:55:57 +0200 <jonathanx> Now I want to turn it into an IndexedTraversable (Where the index is the vector index= Int)
2022-04-26 17:56:13 +0200 <jonathanx> But when I try to look up how to do it I get lost in lenses typeclasses
2022-04-26 17:57:29 +0200merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-04-26 17:58:06 +0200 <jonathanx> can anyone hint me in some direction? :)
2022-04-26 18:00:06 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80) (Quit: You have been kicked for being idle)
2022-04-26 18:01:25 +0200stackdroid18(14094@user/stackdroid)
2022-04-26 18:02:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 18:02:40 +0200comerijn(~merijn@86-86-29-250.fixed.kpn.net) (Quit: Lost terminal)
2022-04-26 18:05:11 +0200lbseale(~ep1ctetus@user/ep1ctetus) (Quit: Leaving)
2022-04-26 18:07:39 +0200lbseale(~ep1ctetus@user/ep1ctetus)
2022-04-26 18:10:38 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2022-04-26 18:13:17 +0200searemind(~searemind@122.161.49.176)
2022-04-26 18:14:09 +0200dextaa4(~dextaa@user/dextaa) (Remote host closed the connection)
2022-04-26 18:14:09 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-26 18:20:45 +0200ubert1(~Thunderbi@2a02:8109:9880:303c:2b38:2bad:43a9:a91c) (Remote host closed the connection)
2022-04-26 18:20:46 +0200mvk(~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds)
2022-04-26 18:21:33 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 18:24:34 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-04-26 18:26:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 18:28:06 +0200raehik(~raehik@178.251.171.164)
2022-04-26 18:29:09 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 18:31:56 +0200 <jonathanx> I figured it out!
2022-04-26 18:32:40 +0200 <jonathanx> I still haven't found a good way to "discover" lenses, since all the type machinery makes it unhoogleable
2022-04-26 18:33:24 +0200 <jonathanx> What's the best way to learn them on a higher level that doens't involve building a personal relationship with kmett?
2022-04-26 18:33:53 +0200 <EvanR> you're basically a lens jedi now. Despite everyone in the star wars universe / haskell universe having lightsabers / lenses, you have to invent your own instead of picking them up at the corner store
2022-04-26 18:34:32 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-04-26 18:34:53 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 18:35:16 +0200 <jonathanx> right, I'll add "Make a competitor to Control.Lens" to my todo list
2022-04-26 18:35:34 +0200 <EvanR> I mean, build the final lens from first principles
2022-04-26 18:35:47 +0200searemind(~searemind@122.161.49.176) (Quit: 0.9.4)
2022-04-26 18:36:03 +0200 <EvanR> also there are other lens libs that claim to be easier, like optics
2022-04-26 18:37:08 +0200 <jonathanx> I think most haskell libraries claim to be better than their competitors in some ways, and it's hard to know what's actually better until you've tried it
2022-04-26 18:37:19 +0200 <jonathanx> and now I feel invested :D
2022-04-26 18:37:56 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-04-26 18:40:07 +0200 <EvanR> honestly I think it's easier to grok such esoteric nonsense by getting as many perspectives at once xD
2022-04-26 18:40:24 +0200ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer)
2022-04-26 18:40:41 +0200 <Rembane> Trying to see patterns in the operators is also quite useful imo
2022-04-26 18:40:55 +0200ralu1(~ralu@static.211.245.203.116.clients.your-server.de)
2022-04-26 18:41:17 +0200 <EvanR> I don't even see lenses anymore, just blonde brunette redhead...
2022-04-26 18:43:03 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 18:49:05 +0200 <Zemyla> I know what lenses are, I know how they work, but I don't know all the operators in Control.Lens.
2022-04-26 18:49:32 +0200 <geekosaur> neither do I, but they follow enough of a pattern that I can often guess at them
2022-04-26 18:49:43 +0200 <Rembane> I want an AI that finds the most useful lens without me searching for it.
2022-04-26 18:50:25 +0200 <maerwald> Rembane: if only that was a joke
2022-04-26 18:50:41 +0200 <Rembane> maerwald: Yeah...
2022-04-26 18:51:01 +0200 <monochrom> Why not go one step further, an AI that writes the complete code.
2022-04-26 18:51:07 +0200 <Rembane> maerwald: Can the typed holes functionality help with that? I haven't dared trying.
2022-04-26 18:52:14 +0200 <maerwald> Deriving code from specifications is nothing new and you don't need an AI for it.
2022-04-26 18:52:50 +0200econo(uid147250@user/econo)
2022-04-26 18:53:11 +0200 <maerwald> But people probably want an AI to tell them what they want to build
2022-04-26 18:53:16 +0200 <maerwald> so there we go
2022-04-26 18:53:21 +0200 <Rembane> That's true, but where would I get my VC money if I didn't have an AI?
2022-04-26 18:53:36 +0200mc47(~mc47@xmonad/TheMC47)
2022-04-26 18:55:31 +0200 <EvanR> can my AI generate a gamified tech tree with the steps needed to do my project
2022-04-26 18:55:45 +0200 <EvanR> I'll even do the steps, as a compromise
2022-04-26 18:56:23 +0200 <monochrom> No, the AI should also do the steps. You are no longer needed.
2022-04-26 18:57:15 +0200 <monochrom> To be sure, there is stiil room for you in recreational programming contests.
2022-04-26 18:57:53 +0200 <monochrom> The same way we have maranthons as games but public transit and cargo logistics don't actually rely on runners.
2022-04-26 18:59:02 +0200 <monochrom> There are spelling bee contests but you don't actually hire a winner for spellchecking in production.
2022-04-26 19:01:50 +0200 <monochrom> When AI finally takes over the full devop stack, we can finally go back to programming just for fun and aesthetics. No more worries about "you don't do this in production code" or "best practices". Isn't that liberating and brave?
2022-04-26 19:02:07 +0200f-a(f2a@f2a.jujube.ircnow.org) ()
2022-04-26 19:02:47 +0200 <geekosaur> until your production falls over because the AIs are too busy arguing over best practices :)
2022-04-26 19:02:56 +0200 <monochrom> haha
2022-04-26 19:04:17 +0200 <geekosaur> AIs produced by humans will have the same shortcomings humans do. this has already been demonstrated (AIs have sexism and racism biases)
2022-04-26 19:08:42 +0200 <EvanR> the AIs determine java and go are the most viable languages and we are all disappoint
2022-04-26 19:09:23 +0200 <monochrom> "why learn haskell? it is not used by skynet" >:)
2022-04-26 19:09:45 +0200 <geekosaur> "No more worries about "you don't do this in production code" or "best practices". Isn't that liberating and brave?"
2022-04-26 19:09:48 +0200cosimone(~user@93-44-185-79.ip98.fastwebnet.it) (Read error: Connection reset by peer)
2022-04-26 19:09:51 +0200 <geekosaur> frees us to program inHaskell
2022-04-26 19:10:04 +0200 <geekosaur> let Skynet have Skynet languages :)
2022-04-26 19:10:53 +0200 <EvanR> then they use java and go in a way that doesn't have security holes and we are screwed
2022-04-26 19:12:17 +0200 <EvanR> "why were you guys so bad at security" skynet says
2022-04-26 19:15:13 +0200 <Rembane> "It's a human thing" <- all humans
2022-04-26 19:15:23 +0200mvk(~mvk@2607:fea8:5ce3:8500::aa1d)
2022-04-26 19:16:07 +0200eraziel(~eraziel@modemcable169.17-58-74.mc.videotron.ca)
2022-04-26 19:16:34 +0200 <eraziel> is there an ergonomic way to expose record fields but also forbid record updates ?
2022-04-26 19:16:40 +0200 <eraziel> I want read only access to record fields, essentially
2022-04-26 19:16:50 +0200 <maerwald> use... functions
2022-04-26 19:18:05 +0200 <monochrom> If you have "data X = X{x::Int}", something about "module M(X, x)"
2022-04-26 19:18:47 +0200ptrcmd(~ptrcmd@user/ptrcmd) (Ping timeout: 240 seconds)
2022-04-26 19:19:11 +0200 <eraziel> but then you can use the record update syntax with x
2022-04-26 19:19:20 +0200 <eraziel> which I only figured out today somehow
2022-04-26 19:19:30 +0200 <monochrom> No, one would need X(..) for record update syntax.
2022-04-26 19:19:31 +0200 <eraziel> and I'd like to prevent that
2022-04-26 19:19:45 +0200ptrcmd(~ptrcmd@user/ptrcmd)
2022-04-26 19:19:45 +0200 <maerwald> monochrom: you don't need the constructor to do a record update?
2022-04-26 19:19:53 +0200 <maerwald> eraziel: use functions
2022-04-26 19:19:56 +0200 <eraziel> no you don't
2022-04-26 19:20:05 +0200 <eraziel> yeah functions work, obviously
2022-04-26 19:20:13 +0200 <monochrom> OK let me be clearer with one fewer name clash.
2022-04-26 19:20:24 +0200 <monochrom> If you have "data X = Mk{x::Int}", something about "module M(X, x)"
2022-04-26 19:21:06 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-26 19:21:12 +0200 <eraziel> that still allows "yourInstance {x = 42}"
2022-04-26 19:21:23 +0200ec(~ec@gateway/tor-sasl/ec) (Client Quit)
2022-04-26 19:21:24 +0200 <eraziel> I just tested it :x
2022-04-26 19:21:29 +0200 <monochrom> Ah OK sorry.
2022-04-26 19:21:35 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-26 19:22:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 19:23:16 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-04-26 19:24:28 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-04-26 19:24:42 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-26 19:24:45 +0200 <monochrom> Hrm, record pattern synonym is a thing. Maybe you can make a unidirectional pattern synonym, lacking the construct direction.
2022-04-26 19:24:57 +0200 <EvanR> haskell gives up and includes "const keyword" as well as "private keyword" to the next version of the standard
2022-04-26 19:24:59 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds)
2022-04-26 19:25:56 +0200 <monochrom> Yeah it can "For a unidirectional record pattern synonym we define record selectors but do not allow record updates or construction."
2022-04-26 19:26:50 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-04-26 19:27:01 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-26 19:27:23 +0200 <eraziel> EvanR: do you have a link with more information ?
2022-04-26 19:27:26 +0200raehik(~raehik@178.251.171.164) (Ping timeout: 246 seconds)
2022-04-26 19:27:48 +0200 <monochrom> I think EvanR was joking.
2022-04-26 19:27:55 +0200 <eraziel> lmao damn
2022-04-26 19:27:59 +0200Hiring(~Hiring@31.222.238.38)
2022-04-26 19:28:06 +0200 <eraziel> I'll look into pattern synonyms I guess
2022-04-26 19:28:43 +0200 <eraziel> I wish we had something like Rust "submodule in a file" to unit test private things like this :/
2022-04-26 19:29:04 +0200 <monochrom> You won't regret investing time into learning pattern synonyms. It's liberating.
2022-04-26 19:29:23 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-04-26 19:29:56 +0200 <EvanR> first law of private members of a module is that someone will always want to access it
2022-04-26 19:30:12 +0200ec(~ec@gateway/tor-sasl/ec) (Client Quit)
2022-04-26 19:30:17 +0200 <monochrom> Ah yes submodules are great. Why not? Racket has it, Rust has it, everyone has it...
2022-04-26 19:30:23 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-26 19:30:44 +0200 <Rembane> Or put it into an Internal module, write "plz no" at the top of it and then done.
2022-04-26 19:30:46 +0200 <EvanR> I've been joking about silly aspects of OOP languages, and here we are with "one module per file" silliness for real
2022-04-26 19:30:57 +0200 <monochrom> We can have nested functions and nested let and nested do-notation, why not also nested modules... OK I'll stop.
2022-04-26 19:31:14 +0200 <Rembane> Why can't we have nested irc channels?
2022-04-26 19:31:22 +0200cosimone(~user@93-44-185-79.ip98.fastwebnet.it)
2022-04-26 19:31:25 +0200 <monochrom> :)
2022-04-26 19:31:48 +0200 <__monty__> +1 for Agda-style modules.
2022-04-26 19:32:03 +0200 <monochrom> Please don't tempt me. After we have nesting, next I will demand "why limit to trees? I want DAGs..."
2022-04-26 19:32:22 +0200 <Rembane> monochrom: Are you gonna put Turing complete modules into Haskell? :O
2022-04-26 19:32:34 +0200 <monochrom> Nah don't worry I'll stop at DAGs.
2022-04-26 19:33:14 +0200 <monochrom> I understand that, for example, wanting cycles is unfair and often bad.
2022-04-26 19:34:20 +0200 <EvanR> cycles are unfair?
2022-04-26 19:34:25 +0200 <monochrom> But Perl probably does Turing-complete modules.
2022-04-26 19:34:56 +0200 <Rembane> Generally recursive modules must be good.
2022-04-26 19:35:46 +0200 <geekosaur> perldoesn't really do modules. it just runs them, they work iff they follow the conventions
2022-04-26 19:36:23 +0200 <geekosaur> (or if they follow a different set of conventions, they become pragmas instead of modules)
2022-04-26 19:38:15 +0200 <geekosaur> (remember, folks, "package" is not a compile-time entity….)
2022-04-26 19:39:07 +0200 <monochrom> That probably means Turing-complete module system and in addition Turing-complete pragma system. Under the interpretation "if you follow a certain convention, people agree that you're doing a module/pragma".
2022-04-26 19:39:33 +0200 <janus> geekosaur: what do you mean by not being a compile-time entity? there is PackageImports
2022-04-26 19:40:00 +0200 <monochrom> So for example suppose I say "if <arbitrary program> <code that follows the convention that people read as importing a module>"
2022-04-26 19:40:23 +0200Brandon_IX(brandon@2a01:7e00::f03c:92ff:feab:6b7c) (Quit: WeeChat 3.0)
2022-04-26 19:40:23 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-26 19:42:43 +0200thyriaen(~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de)
2022-04-26 19:43:42 +0200 <geekosaur> janus, I was talking about monochrom's Perl comment
2022-04-26 19:43:58 +0200 <geekosaur> not Haskell imports
2022-04-26 19:44:14 +0200 <janus> oh, i thought it must've been haskell because it said compile
2022-04-26 19:44:24 +0200 <monochrom> heh
2022-04-26 19:44:38 +0200 <geekosaur> even perl has a compile phase (and so does python)
2022-04-26 19:44:52 +0200 <janus> just-in-time-compilation?
2022-04-26 19:45:10 +0200 <geekosaur> in fact if you go looking at your system's python install you'll see a bunch of *.pyc files which are the saved result of compilation
2022-04-26 19:45:22 +0200 <geekosaur> but usually they aren't saved for user code
2022-04-26 19:45:36 +0200 <geekosaur> there is still a distinct compile pass though
2022-04-26 19:46:06 +0200 <janus> but i remember people putting binary data at the end of perl files
2022-04-26 19:46:14 +0200 <janus> and then prefixing it with an unpack step
2022-04-26 19:46:34 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2022-04-26 19:46:42 +0200 <geekosaur> that's a different kind of hack
2022-04-26 19:47:00 +0200 <janus> but i don't understand how you can compile a perl file that has stuff like that
2022-04-26 19:47:08 +0200 <monochrom> When bytecodes like that are involved, whether you call it "interpret" or "compile" is just community convention.
2022-04-26 19:47:10 +0200 <janus> cause to preserve the binary blob, it would have to be part of the ast
2022-04-26 19:47:20 +0200 <janus> but asts don't typically have stuff like that
2022-04-26 19:47:29 +0200 <geekosaur> go look at __DATA__
2022-04-26 19:48:06 +0200 <monochrom> And Perl adds nuance because it iterates over an interleaving of parsing, making bytecode, running bytecode.
2022-04-26 19:48:07 +0200 <geekosaur> it's a magic filehandle consisting of the source file following the __DATA__ line
2022-04-26 19:48:08 +0200 <EvanR> bytecodes as opposed to machine code which is made of... also bytes
2022-04-26 19:48:37 +0200 <geekosaur> so the AST ends but there's a special filehandle opened on the rest of the file
2022-04-26 19:49:09 +0200 <monochrom> Yes I would rather say P-code than bytecode.
2022-04-26 19:49:23 +0200 <monochrom> The idea started with many Pascal implementations.
2022-04-26 19:49:29 +0200 <monochrom> Hence the P.
2022-04-26 19:49:55 +0200 <monochrom> But who remembers that? Millenials only know as far back as Java, and even then barely.
2022-04-26 19:50:13 +0200 <janus> i think it is misleading to say you compile myscript.pl if you actually only compile the first part and require the RTS to open a file descriptor on the rest
2022-04-26 19:50:45 +0200 <geekosaur> that is not the kind of compiling I was talking about
2022-04-26 19:51:26 +0200 <monochrom> ooohhhh Perl has __DATA__ sections? \∩/ BASIC and COBOL had that too...
2022-04-26 19:52:29 +0200 <geekosaur> you can (or could; it seems to have been discontinued, probably because it was mostly worthless) compile a perl script with perl -c
2022-04-26 19:52:42 +0200 <geekosaur> this does not give you a binary blob at the end of the perl script, but a separate file
2022-04-26 19:52:52 +0200 <geekosaur> you just don't gain much from doing it
2022-04-26 19:53:02 +0200 <EvanR> Perl: COBOL of the... oh
2022-04-26 19:53:13 +0200 <monochrom> ;)
2022-04-26 19:54:26 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-04-26 19:56:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-04-26 19:56:30 +0200 <geekosaur> mm, slightly wrong, -c is check mode
2022-04-26 19:56:40 +0200 <EvanR> I wonder if haskell has packages to effectively support anything COBOL could do
2022-04-26 19:56:47 +0200 <geekosaur> I don't recall how you did precompilation, but it hardly matters because you get so little out of it
2022-04-26 19:57:26 +0200 <geekosaur> 99% of what cobol could do was read/write binary (or card reader/punch) formatted records and sort
2022-04-26 19:58:01 +0200 <monochrom> I think Okasaki figured out a trick to define things so that "multiple x by y" type-checks and equals to x*y, but it causes type inference to take exponential time.
2022-04-26 19:58:23 +0200 <EvanR> lol
2022-04-26 19:58:49 +0200 <monochrom> But OK in the case of mimicking COBOL you just have "multiple x by y", that's already the longest thing possible, so OK.
2022-04-26 19:59:16 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-04-26 19:59:30 +0200 <monochrom> But Okasaki was figuring out how to, e.g., "begin 1 2 3 4 end = [1,2,3,4]", and that's when the program length can be arbitrarily long.
2022-04-26 19:59:39 +0200 <EvanR> this brochure on cobol from earlier this year from GNU COBOL project side, is the concrete syntax really the most compelling feature
2022-04-26 19:59:50 +0200 <EvanR> aside*
2022-04-26 20:00:28 +0200 <geekosaur> the most compelling feature for cobol is being able to keep using the same programs you were 40 years ago
2022-04-26 20:00:32 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-04-26 20:00:40 +0200 <geekosaur> this actually means a lot to many businesses
2022-04-26 20:00:56 +0200 <geekosaur> (although thta raises the question of why the FSF cares what said businesses think)
2022-04-26 20:01:07 +0200 <EvanR> not exactly AGILE
2022-04-26 20:01:21 +0200 <geekosaur> agile is pretty much the opposite of what they want
2022-04-26 20:02:12 +0200 <monochrom> Unpopular opinion: Dragons are web-scale. They have webs, and they have scales.
2022-04-26 20:04:31 +0200vicfred(~vicfred@user/vicfred)
2022-04-26 20:04:44 +0200 <EvanR> GNU COBOL can only be a way of sticking it to the man because other COBOL products are apparently pricey
2022-04-26 20:05:22 +0200kilolympus(~kilolympu@31.205.200.235)
2022-04-26 20:05:26 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-04-26 20:05:57 +0200 <EvanR> or maybe it's to accelerate the collapse of the market and so the technology
2022-04-26 20:06:07 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-04-26 20:07:36 +0200fr33domlover(~fr33@141.226.183.231)
2022-04-26 20:08:28 +0200 <geekosaur> well, actually they only care about business to the extent that they don't TiVoify it, which seems unlikely for COBOL
2022-04-26 20:08:51 +0200 <geekosaur> and for selling support, which is especially important to these businesses, they want someone on call 24/7 for problems
2022-04-26 20:09:09 +0200 <geekosaur> Internet support isn't going to interest them
2022-04-26 20:09:26 +0200 <Bulby[m]> i thought the node devs were maintaining COBOL /s
2022-04-26 20:10:06 +0200mbuf(~Shakthi@182.64.156.25) (Quit: Leaving)
2022-04-26 20:11:05 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 20:11:21 +0200 <geekosaur> they just haven't learned the lessons of COBOL
2022-04-26 20:11:32 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-04-26 20:12:08 +0200 <geekosaur> to wit: there are fields in which you can have a program that is stable and does not need to be changed any more, and it can and will keep doing the thing it was designed to do for years, even decades
2022-04-26 20:12:11 +0200 <geekosaur> and this is OKAY
2022-04-26 20:12:14 +0200fr33domlover(~fr33@141.226.183.231) (Client Quit)
2022-04-26 20:12:45 +0200deadmarshal_(~deadmarsh@95.38.115.70) (Ping timeout: 256 seconds)
2022-04-26 20:12:58 +0200 <EvanR> can more fields have this? please
2022-04-26 20:13:07 +0200 <geekosaur> you don't need 50 reimplementations of it, you don't need bells and whistles, it just works.
2022-04-26 20:20:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 20:21:06 +0200acidjnk(~acidjnk@p200300d0c73b45335982c41922b7b0a0.dip0.t-ipconnect.de)
2022-04-26 20:22:12 +0200redb(~nmh@136.49.49.211) (Ping timeout: 276 seconds)
2022-04-26 20:23:02 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 20:25:46 +0200dcoutts_(~duncan@host213-122-143-245.range213-122.btcentralplus.com)
2022-04-26 20:27:20 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-04-26 20:29:59 +0200zyklotomic(~ethan@res380d-128-61-86-213.res.gatech.edu) (Ping timeout: 240 seconds)
2022-04-26 20:30:44 +0200thyriaen(~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de) (Quit: Leaving)
2022-04-26 20:31:21 +0200 <shlevy[m]> Does anyone know what, if anything, would break if I built a stage 1 ghc with the internal interpreter? I do *not* want this for TemplateHaskell, plan to use `iserv` for that, I want this to enable https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7377
2022-04-26 20:32:16 +0200zyklotomic(~ethan@r4-128-61-95-41.res.gatech.edu)
2022-04-26 20:32:29 +0200 <geekosaur> that's probably a question for #ghc, not #haskell, but I could see problems if the bootstrap ghc's version doesn't match the stage 1's version
2022-04-26 20:33:22 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 20:37:42 +0200 <geekosaur> (in particular the stage1 ghc will be using the bootstrap version's RTS, which suggests to me that wired-ins may not match for code executed during compilation)
2022-04-26 20:39:54 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-04-26 20:42:22 +0200 <shlevy[m]> geekosaur: Ah, didn't remember #ghc, thanks
2022-04-26 20:43:02 +0200Pickchea(~private@user/pickchea)
2022-04-26 20:43:04 +0200simendsjo(~user@84.211.91.241)
2022-04-26 20:45:03 +0200 <shlevy[m]> <geekosaur> "(in particular the stage1 ghc..." <- I'd compile with the bootstrap compiler, but *against* the ghc lib of stage1
2022-04-26 20:47:55 +0200megaTherion(~therion@unix.io) (Ping timeout: 260 seconds)
2022-04-26 20:49:03 +0200redb(~nmh@136.49.49.211)
2022-04-26 20:53:33 +0200redb(~nmh@136.49.49.211) (Ping timeout: 256 seconds)
2022-04-26 20:53:33 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds)
2022-04-26 20:58:19 +0200simendsjo(~user@84.211.91.241) (Remote host closed the connection)
2022-04-26 21:01:31 +0200geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
2022-04-26 21:01:42 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-04-26 21:02:54 +0200megaTherion(~therion@unix.io)
2022-04-26 21:03:36 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5)
2022-04-26 21:04:06 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-04-26 21:04:15 +0200averell(~averell@user/averell) (Quit: .)
2022-04-26 21:09:12 +0200averell(~averell@user/averell)
2022-04-26 21:10:31 +0200[Leary](~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) (Remote host closed the connection)
2022-04-26 21:10:47 +0200[Leary](~Leary]@122-58-90-96-vdsl.sparkbb.co.nz)
2022-04-26 21:12:39 +0200ccntrq(~Thunderbi@2a01:e34:eccb:b060:5717:8bb4:874e:9726) (Remote host closed the connection)
2022-04-26 21:13:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 21:16:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 21:18:15 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 21:19:26 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-04-26 21:20:10 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 21:21:07 +0200redb(~nmh@136.49.49.211)
2022-04-26 21:24:49 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 21:25:33 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-04-26 21:25:51 +0200redb(~nmh@136.49.49.211) (Ping timeout: 256 seconds)
2022-04-26 21:26:16 +0200myme(~myme@2a01:799:d5a:cd00:7ca6:39bc:e22b:ee2b) (Ping timeout: 248 seconds)
2022-04-26 21:27:15 +0200myme(~myme@2a01:799:d5a:cd00:39b8:863a:6d20:cd9e)
2022-04-26 21:27:36 +0200deadmarshal_(~deadmarsh@95.38.113.141)
2022-04-26 21:28:41 +0200eraziel(~eraziel@modemcable169.17-58-74.mc.videotron.ca) (Quit: Client closed)
2022-04-26 21:30:46 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 21:32:24 +0200deadmarshal_(~deadmarsh@95.38.113.141) (Ping timeout: 276 seconds)
2022-04-26 21:40:26 +0200pavonia(~user@user/siracusa)
2022-04-26 21:42:31 +0200vorpuni(~pvorp@2001:861:3881:c690:691f:4814:d40:6070) (Ping timeout: 260 seconds)
2022-04-26 21:47:42 +0200redb(~nmh@136.49.49.211)
2022-04-26 21:50:46 +0200Guest91(~Guest91@caliga.eecs.tufts.edu)
2022-04-26 21:51:27 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 21:52:33 +0200redb(~nmh@136.49.49.211) (Ping timeout: 276 seconds)
2022-04-26 21:56:17 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-04-26 21:56:58 +0200notzmv(~zmv@user/notzmv)
2022-04-26 21:57:32 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 22:00:20 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 22:00:49 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 22:02:21 +0200 <Guest91> Backstory: I'm trying to get a central install -- not a home directory install! -- of GHC and various Haskell tools built for RHEL 8.  I've built ghc-9.2.2, and used ghcup to put a temporary-use 'cabal' binary in ~/.ghcup/bin so I can run 'cabal v1-install' to put stuff centrally.  But the ghcup-provided 'cabal' binary can do no such thing.  No
2022-04-26 22:02:21 +0200 <Guest91> matter what I try, it barfs out multiple rejections of various dependencies and exits with:
2022-04-26 22:02:22 +0200 <Guest91> After searching the rest of the dependency tree exhaustively, these were the
2022-04-26 22:02:22 +0200 <Guest91> goals I've had most trouble fulfilling: [list of all dependencies]
2022-04-26 22:02:23 +0200 <Guest91> Even something as simple as 'cabal install cabal-install' fails the same way, but 'cabal install xml' works.  It looks like it can't install anything that's already under ~/.ghcup, even though I specifically don't want it to overwrite anything in ~/.ghcup.  Is there any way to force it to install somewhere else?
2022-04-26 22:03:13 +0200mastarija(~mastarija@2a05:4f46:e04:6000:dcea:d813:208c:e9e1)
2022-04-26 22:03:46 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 22:03:47 +0200 <Guest91> Note that my final goal is to have a central install of various tools to be shared by multiple users, and my temporary stuff deleted with 'rm -rf ~/.ghcup ~/.ghc ~/.cabal"
2022-04-26 22:05:33 +0200redb(~nmh@136.49.49.211)
2022-04-26 22:06:09 +0200 <sclv> Guest91: in the above you've written 'cabal install cabal-install' but did you actually mean to write 'cabal v1-install cabal-install'?
2022-04-26 22:06:28 +0200 <mastarija> How do I add a flag for the particular package in my cabal.project file?
2022-04-26 22:06:29 +0200 <Guest91> I tried both; neither worked.
2022-04-26 22:06:41 +0200 <sclv> note that if you've used any not-v1 cabal install commands you'll have a ghc environment file lying around, and those can cause trouble
2022-04-26 22:07:03 +0200 <sclv> you should delete the environment file, and use `v1-install --global` _only_
2022-04-26 22:07:25 +0200 <Guest91> OK, trying to clobber things first then re-ghcup myself a cabal binary.
2022-04-26 22:07:37 +0200 <sclv> the cabal binary will be the same
2022-04-26 22:07:41 +0200 <sclv> and you don't need to clobber everything
2022-04-26 22:07:47 +0200 <sclv> just delete a ghc environment file if it exists
2022-04-26 22:07:52 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-04-26 22:08:01 +0200 <Guest91> Past experience says that clobbering everything is often necessary :/
2022-04-26 22:08:05 +0200 <sclv> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/packages.html#package-environments
2022-04-26 22:08:08 +0200 <geekosaur> also if you have installed ghc using ghcup and have not used the envar to point the install to e.g. /usr/local, "global" will be the ghc library directory under ~/.ghcup
2022-04-26 22:08:31 +0200 <Guest91> The GHC install I have is standalone, not done with ghcup.
2022-04-26 22:08:52 +0200 <sclv> then it is confusing that you say "it can't install anything that's already under ~/.ghcup"
2022-04-26 22:08:57 +0200 <sclv> because no libraries will be under there!
2022-04-26 22:09:01 +0200 <sclv> just binaries
2022-04-26 22:09:10 +0200 <sclv> and cabal doesn't know or care about those
2022-04-26 22:09:26 +0200 <Guest91> Hrm.  Trying again post-clobber.
2022-04-26 22:09:51 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 22:09:58 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 22:10:45 +0200redb(~nmh@136.49.49.211) (Ping timeout: 276 seconds)
2022-04-26 22:11:01 +0200 <sclv> the environment file i'm warning about will be in $XDG_DATA_HOME/ghc/arch-os-version/environments/default
2022-04-26 22:11:33 +0200 <Guest91> I don't have that environment variable set.  What does it default to?
2022-04-26 22:12:00 +0200mastarija(~mastarija@2a05:4f46:e04:6000:dcea:d813:208c:e9e1) (Quit: Leaving)
2022-04-26 22:12:03 +0200 <geekosaur> ~/.local on unix
2022-04-26 22:12:16 +0200liz(~liz@host109-151-125-217.range109-151.btcentralplus.com)
2022-04-26 22:12:46 +0200 <Guest91> Aha!  OK, clobbering that too.
2022-04-26 22:13:33 +0200 <Guest91> Nothing in ~/.local/ghc.
2022-04-26 22:13:46 +0200 <geekosaur> if you have ~/.ghc it may be using that
2022-04-26 22:13:51 +0200 <geekosaur> (backwards compat)
2022-04-26 22:14:16 +0200 <Guest91> I whacked that already.  Trying again with a new ~/.ghcup/bin/cabal
2022-04-26 22:16:08 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 22:16:38 +0200 <Guest91> Nada.  Same error.
2022-04-26 22:17:06 +0200 <sclv> oh wait with cabal-install it may be that there's legit no install plan with 9.2.2
2022-04-26 22:17:14 +0200 <sclv> that's what you get for using the latest compiler
2022-04-26 22:17:19 +0200 <Guest91> D'oh!
2022-04-26 22:17:36 +0200 <Guest91> I can fall back to 8.10.7, which is what I used to build 9.2.2.  Will have to check with the instructor though.
2022-04-26 22:17:40 +0200 <sclv> you can pick out a good universe of libs too
2022-04-26 22:17:49 +0200 <sclv> i mean... you have the binary
2022-04-26 22:17:54 +0200 <sclv> no need to be able to bootstrap it
2022-04-26 22:18:55 +0200 <sclv> most libs you'll want globally installed for end-users should be fine
2022-04-26 22:19:47 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-04-26 22:20:05 +0200anomal(~anomal@87.227.196.109)
2022-04-26 22:20:13 +0200 <sclv> (its rather irritating about cabal-install but its release cycle is usually _immediately before_ or coincident with a compiler release, but it can't be built against a stable latest-release until that release already happens, so its frequently one behind)
2022-04-26 22:24:28 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2022-04-26 22:24:51 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-04-26 22:25:22 +0200jakalx(~jakalx@base.jakalx.net)
2022-04-26 22:26:12 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2022-04-26 22:28:12 +0200 <Guest91> So downgrading to an earlier 9.2 might work?
2022-04-26 22:28:23 +0200 <sclv> not 9.2
2022-04-26 22:28:32 +0200 <Guest91> 9.1, OK.
2022-04-26 22:28:39 +0200 <sclv> i'd go with 8.10.7
2022-04-26 22:28:43 +0200 <sclv> for building cabal-install
2022-04-26 22:28:48 +0200 <sclv> but again, you have _no need_ to build it
2022-04-26 22:28:50 +0200 <sclv> you already have it
2022-04-26 22:29:00 +0200redb(~nmh@136.49.49.211)
2022-04-26 22:30:07 +0200 <Guest91> I would like to have an install of that somewhere other than my homedir.  Past experience says that many issues with cabal are easily solved by deleting all the cabal and ghc-related directories in ~, and having my only copy of cabal there is problematic.  I suppose I can re-ghcup myself every time.
2022-04-26 22:30:09 +0200 <sclv> and even if you do build it, that doesn't prevent you from providing a systemwide 9.2.2 in general, it just means that you'll have used 8.10.7 to build a particular binary
2022-04-26 22:30:26 +0200 <sclv> you don't need to re-ghcup yourself for cabal install. its literally _just_ a binary
2022-04-26 22:30:32 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2022-04-26 22:31:44 +0200 <sclv> all ghcup does is download and unpack the appropriate binary tarball from https://downloads.haskell.org/cabal/cabal-install-3.6.2.0/
2022-04-26 22:31:45 +0200 <Guest91> 'cabal v1-install template-haskell' also failed -- and that had no dependency but itself.  Again, something that seems to come with cabal-install, and things not in that stack looked to install fine (zlib, for example)
2022-04-26 22:32:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-04-26 22:33:07 +0200 <sclv> template-haskell is not reinstallable
2022-04-26 22:33:07 +0200 <sclv> its a "builtin" lib -- its coupled to the compiler and can only be the version that comes with the compiler
2022-04-26 22:33:07 +0200 <sclv> genrally the things you say "come with cabal-install" are things that come with ghc, and are mainly but not entirelly unreinstallable
2022-04-26 22:33:34 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 22:33:36 +0200 <Henson> hi everyone, I'm trying to figure out how to do something with existential types. I've boiled it down to a simple example here: https://paste.tomsmeding.com/XmnhxI61 I want to be able to set different types of a class to the foo2 record of the Foo type. Does anybody have any suggestions on how to do this correctly?
2022-04-26 22:33:41 +0200 <Guest91> Ah, OK.  I just saw it as one of the dependencies that was failing when I tried to get cabal-install to install where I wanted it.
2022-04-26 22:34:09 +0200redb(~nmh@136.49.49.211) (Ping timeout: 276 seconds)
2022-04-26 22:34:24 +0200 <Guest91> And it looked to have no dependencies of its own, which is why I tried it.
2022-04-26 22:34:41 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-04-26 22:36:33 +0200redb(~nmh@136.49.49.211)
2022-04-26 22:36:49 +0200 <Guest91> I will try dropping the cabal binary manually into the appropriate bindir and install only things that I don't already have from ghc itself.
2022-04-26 22:37:58 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 22:39:12 +0200 <tomsmeding> Henson: not entirely sure why that doesn't work, but here's another approach: https://play-haskell.tomsmeding.com/play/paste/TLFK6v3P/1
2022-04-26 22:39:29 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Quit: mikoto-chan)
2022-04-26 22:39:47 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 22:40:31 +0200 <tomsmeding> Henson: at the very least you need a GADT to do this; the (Show a) context (dictionary) on your regular Foo wasn't actually embedded in the data type, so you could never actually _use_ that Show
2022-04-26 22:40:43 +0200 <tomsmeding> the GADT actually stores the Show dictionary in the data type at runtime
2022-04-26 22:41:00 +0200 <tomsmeding> (as if you had another `a -> String` field in the data type)
2022-04-26 22:42:02 +0200 <Henson> tomsmeding: ok, thank you for the suggestion. Haskell suggested either existential quantification or GADTs, so thanks for showing me show it could be done.
2022-04-26 22:42:32 +0200 <Henson> tomsmeding: but it looks like I have to use pattern matching and that records are not possible?
2022-04-26 22:44:26 +0200 <tomsmeding> Henson: I think to get the dictionary out of the GADT, you have to pattern match indeed. You can still use records, somewhat, but apparently they seem quite crippled around the existential fields?
2022-04-26 22:44:29 +0200 <tomsmeding> I'm not sure either
2022-04-26 22:44:33 +0200redb(~nmh@136.49.49.211) (Ping timeout: 276 seconds)
2022-04-26 22:44:56 +0200redb(~nmh@136.49.49.211)
2022-04-26 22:45:05 +0200 <tomsmeding> like, you can replace the (Foo x _) pattern match by (foo { foo1 = x }) and it works fine, but that doesn't really help
2022-04-26 22:45:29 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 22:45:46 +0200Me-me(~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net)
2022-04-26 22:46:12 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-04-26 22:46:31 +0200 <Henson> tomsmeding: ok. The thing I'm really trying to do with this is to have a Camera data type that can contain an exposure controller that belongs to a certain class. I would like to try to avoid having the type of the camera also depend on the type of the exposure controller, because it could in principle be altered at run time. Is this the right track for solving my problem?
2022-04-26 22:48:31 +0200 <Henson> tomsmeding: and what do you mean by "Show dictionary" and "context (dictionary)" in what you were saying?
2022-04-26 22:48:31 +0200 <tomsmeding> Henson: how practical would it be to make a new data type, `data SomeExpCon where SomeExpCon :: IsExposureController a => a -> SomeExpCon`, and implement the functionality you need of an ExpCon on that data type?
2022-04-26 22:48:38 +0200 <tomsmeding> ah!
2022-04-26 22:49:01 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-0019-c4db-1431-3cc1.res6.spectrum.com)
2022-04-26 22:49:07 +0200 <tomsmeding> Henson: `class Show a where show :: a -> String` becomes `data Show a = ShowDict { show :: a -> String }` at runtime
2022-04-26 22:49:34 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 22:49:39 +0200 <tomsmeding> and if you write `f :: (A, B) => c -> d -> e`, then at runtime that becomes `f :: (a, b) -> c -> d -> e`
2022-04-26 22:50:23 +0200 <tomsmeding> when I say a "Show dictionary", I mean the dictionary (i.e. record; GHC calls it a dictionary) containing the definitions of the methods of Show that gets passed around at runtime
2022-04-26 22:50:58 +0200 <tomsmeding> and at runtime you _need_ that dictionary, because if you write `f :: Show a => a -> String; f x = show x`, and supposing `f` isn't inlined, `f` needs to pull a definition of `show` from _somewhere_
2022-04-26 22:51:04 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 22:51:15 +0200 <tomsmeding> and that somewhere is from the dictionary that it also gets passed
2022-04-26 22:52:12 +0200redb(~nmh@136.49.49.211) (Remote host closed the connection)
2022-04-26 22:52:15 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-04-26 22:52:20 +0200redb(~nmh@136.49.49.211)
2022-04-26 22:52:23 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 22:52:44 +0200 <tomsmeding> Henson: open this https://play-haskell.tomsmeding.com/play/paste/lexvC47g/1 , click Core, and look at the type of Main.$wfoo (it's near the top)
2022-04-26 22:52:52 +0200 <Henson> tomsmeding: thank you for the explanation. I didn't know that stuff was happening behind the scenes.
2022-04-26 22:53:03 +0200 <tomsmeding> (so here GHC realised that Show only has one member, so it just inlined that one member)
2022-04-26 22:53:27 +0200zer0bitz(~zer0bitz@2001:2003:f444:8f00:9939:dfc8:bfb9:90c2) (Ping timeout: 260 seconds)
2022-04-26 22:54:31 +0200 <Henson> tomsmeding: interesting. What is this "Tidy Core" output?
2022-04-26 22:54:31 +0200 <tomsmeding> another example: change foo to `foo :: Eq a => a -> String ; foo x = if x == x && x /= x then "yes" else "no"` and see that it now gets two extra arguments (quiz: what are they :p)
2022-04-26 22:55:45 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Quit: leaving)
2022-04-26 22:55:49 +0200 <geekosaur> core has a lot of extra information in it which is being stripped for readability
2022-04-26 22:55:50 +0200goepsilongo(~goepsilon@2603-7000-ab00-62ed-8077-381b-a4b0-5dd2.res6.spectrum.com)
2022-04-26 22:56:05 +0200 <tomsmeding> Henson: GHC parses your program into a Haskell AST, resolves names, typechecks, and then converts into an intermediate language called Core. Most optimisation passes run on Core; this "Tidy Core" output is the state of Core after optimisation. It's a bit like haskell, but has some differences as well. (After Core, the program gets converted to STG, and then to Cmm, and then to machine code)
2022-04-26 22:56:06 +0200 <geekosaur> there are command line arguments you can use to do the same thing, to inspect core locally
2022-04-26 22:56:20 +0200 <tomsmeding> yeah this is just `ghc -ddump-simpl Main.hs`
2022-04-26 22:56:44 +0200 <geekosaur> oh, you don';t do the -dsuppress-uniques or whatever on top?
2022-04-26 22:56:54 +0200redb(~nmh@136.49.49.211) (Ping timeout: 276 seconds)
2022-04-26 22:57:07 +0200 <tomsmeding> geekosaur: https://github.com/tomsmeding/pastebin-haskell/blob/play/bwrap-files/entry.sh#L33
2022-04-26 22:57:08 +0200 <geekosaur> anyway you can do this locally, I think the dump-core package is the current preferred way to get nice clean core to look at
2022-04-26 22:57:18 +0200 <monochrom> Add -dsuppress-all to omit some information so you don't get overwhelmed at the beginning.
2022-04-26 22:58:54 +0200 <monochrom> -dsuppress-unique is a two-edged sword though. Distinct variables look like the same variable.
2022-04-26 22:59:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 23:01:01 +0200 <monochrom> Hah feature request:" -duniqueness-seed=1394" so you can get reproducible randomized variable names :)
2022-04-26 23:01:44 +0200tomsmedingclicked "Core" multiple times and got identical output
2022-04-26 23:01:45 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-04-26 23:01:50 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 23:02:03 +0200 <monochrom> Hrm
2022-04-26 23:02:07 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-04-26 23:02:11 +0200monochromgoes try
2022-04-26 23:02:24 +0200 <monochrom> Is that 9.0? 9.2? 8.10?
2022-04-26 23:02:32 +0200 <tomsmeding> https://play-haskell.tomsmeding.com/play/paste/lexvC47g/1
2022-04-26 23:02:37 +0200 <tomsmeding> select your favourite version!
2022-04-26 23:02:49 +0200 <geekosaur> I thought they made things fixed these days so reproducible builds were possible
2022-04-26 23:02:58 +0200 <geekosaur> I may be misremembering though
2022-04-26 23:03:05 +0200 <EvanR> these records passed around as part of "dictionary passing" are like, the smallest dictionaries ever right xD
2022-04-26 23:03:22 +0200 <geekosaur> try the dictionary for Foldable :)
2022-04-26 23:03:41 +0200 <tomsmeding> EvanR: this one has a bunch of stuff as well https://hackage.haskell.org/package/snap-core-1.0.5.0/docs/Snap-Core.html#t:MonadSnap
2022-04-26 23:04:17 +0200 <EvanR> class MonadSnap where liftSnap
2022-04-26 23:04:20 +0200 <tomsmeding> (superclasses are fields in the dictionary, evidently)
2022-04-26 23:04:20 +0200 <monochrom> Nice.
2022-04-26 23:04:31 +0200 <tomsmeding> (because you need their fields too)
2022-04-26 23:04:32 +0200 <EvanR> ah I see
2022-04-26 23:05:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-26 23:05:25 +0200 <EvanR> still that is still small compared to a dictionary
2022-04-26 23:05:38 +0200 <tomsmeding> thinking about Oxford?
2022-04-26 23:05:43 +0200 <tomsmeding> I mean, yeah :p
2022-04-26 23:05:52 +0200 <EvanR> and I imagine indexing is not doing a binary search is it
2022-04-26 23:06:14 +0200 <monochrom> No, hardcoded offset.
2022-04-26 23:07:00 +0200 <EvanR> "void star array passing" xD
2022-04-26 23:08:09 +0200kaskal(~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) (Quit: ZNC - https://znc.in)
2022-04-26 23:08:27 +0200kaskal(~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8)
2022-04-26 23:10:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 23:10:05 +0200 <EvanR> less dictionary and more cheat sheet
2022-04-26 23:11:58 +0200 <tomsmeding> EvanR: think C struct, that's also not going to do binary search :p
2022-04-26 23:12:10 +0200 <tomsmeding> that would be the stupidest C compiler ever
2022-04-26 23:12:29 +0200 <tomsmeding> or, more likely, it's actually a C interpreter
2022-04-26 23:13:19 +0200 <EvanR> it's funny because in many languages the equivalent of C structs using dictionaries
2022-04-26 23:13:36 +0200 <EvanR> (very small)
2022-04-26 23:13:50 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 23:14:11 +0200 <EvanR> here we don't do that but call them dictionaries xD
2022-04-26 23:14:48 +0200 <monochrom> Let's start calling them objects, just for fun.
2022-04-26 23:15:21 +0200 <monochrom> "classes are implemented by object passing" will go on to become a great slogan
2022-04-26 23:15:32 +0200alp_(~alp@user/alp)
2022-04-26 23:16:13 +0200 <tomsmeding> makes me think of an article I read at some point where someone bragged about having worked at google or somesuch and having named a field in a protocol "stuff"
2022-04-26 23:17:12 +0200 <monochrom> I think I heard of that.
2022-04-26 23:17:45 +0200 <monochrom> Maybe not bragging but explaining that it is really generic, can't have a more specific name.
2022-04-26 23:18:07 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 23:18:27 +0200 <tomsmeding> yeah
2022-04-26 23:18:35 +0200 <tomsmeding> can't seem to find the post now tough
2022-04-26 23:18:39 +0200 <tomsmeding> *though
2022-04-26 23:18:47 +0200 <monochrom> No worries :)
2022-04-26 23:20:02 +0200 <tomsmeding> monochrom: did you find a reproducer for nondeterministic names, or do they indeed seem deterministic nowadays?
2022-04-26 23:20:21 +0200 <monochrom> They are deterministic now, yeah. Tried 8.10.7.
2022-04-26 23:20:45 +0200 <tomsmeding> I tried all five compilers available on that list (though with a very small program), and it was all deterministic
2022-04-26 23:21:25 +0200 <monochrom> I only remember old things such as BASIC, COBOL, and Hugs, you see... :)
2022-04-26 23:21:51 +0200 <tomsmeding> at least Hugs had a friendly name
2022-04-26 23:23:54 +0200michalz(~michalz@185.246.204.125) (Remote host closed the connection)
2022-04-26 23:24:21 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 23:24:51 +0200alp_(~alp@user/alp) (Ping timeout: 256 seconds)
2022-04-26 23:26:03 +0200 <geekosaur> my recollection is various folks including the nix folks (and nix users working on/with ghc) begged for that determinism
2022-04-26 23:26:28 +0200redb(~nmh@136.49.49.211)
2022-04-26 23:29:00 +0200asivitz(uid178348@id-178348.tinside.irccloud.com)
2022-04-26 23:29:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 23:31:52 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 23:33:11 +0200abrantesasf(~abrantesa@189.115.192.139)
2022-04-26 23:35:17 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-26 23:37:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-04-26 23:37:41 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 23:42:14 +0200Pickchea(~private@user/pickchea) (Ping timeout: 246 seconds)
2022-04-26 23:42:58 +0200wolfshappen(~waff@irc.furworks.de) (Quit: later)
2022-04-26 23:43:20 +0200wolfshappen(~waff@irc.furworks.de)
2022-04-26 23:43:43 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 23:45:15 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-26 23:45:35 +0200hololeap(~hololeap@user/hololeap)
2022-04-26 23:45:46 +0200vysn(~vysn@user/vysn) (Ping timeout: 250 seconds)
2022-04-26 23:47:56 +0200malinoskj2903(~malinoskj@48.170-avail-pool-cc.sccoast.net)
2022-04-26 23:48:17 +0200 <shlevy[m]> Yes we did :D
2022-04-26 23:49:15 +0200 <shlevy[m]> In general we want byte-determinism in all of our builds but the non-determinism in GHC was particularly bad because it meant actually incompatible builds results
2022-04-26 23:49:32 +0200abrantesasf(~abrantesa@189.115.192.139) (Remote host closed the connection)
2022-04-26 23:49:40 +0200malinoskj290(~malinoskj@48.170-avail-pool-cc.sccoast.net) (Ping timeout: 250 seconds)
2022-04-26 23:49:46 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-04-26 23:50:10 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-04-26 23:51:00 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-26 23:52:16 +0200malinoskj2903(~malinoskj@48.170-avail-pool-cc.sccoast.net) (Ping timeout: 250 seconds)
2022-04-26 23:55:32 +0200malinoskj290(~malinoskj@48.170-avail-pool-cc.sccoast.net)
2022-04-26 23:56:03 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2022-04-26 23:58:36 +0200abrantesasf(~abrantesa@189.115.192.139)
2022-04-26 23:59:20 +0200anomal(~anomal@87.227.196.109) (Remote host closed the connection)
2022-04-26 23:59:39 +0200bshelden(~bshelden@S010664777d493f93.vf.shawcable.net)