Home liberachat/#haskell: Logs Calendar

Logs on 2022-10-25 (liberachat/#haskell)

00:00:10 × kimjetwav quits (~user@2607:fea8:235e:b600:b115:f56:940e:2252) (Remote host closed the connection)
00:01:19 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
00:04:50 × wonko quits (~wjc@user/wonko) (Ping timeout: 250 seconds)
00:05:06 ec joins (~ec@gateway/tor-sasl/ec)
00:26:03 jmorris joins (uid537181@id-537181.uxbridge.irccloud.com)
00:39:12 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:39:12 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:39:12 wroathe joins (~wroathe@user/wroathe)
00:41:55 × Kaipei quits (~Kaiepi@108.175.84.104) (Ping timeout: 272 seconds)
00:42:02 beteigeuze1 joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
00:42:32 × beteigeuze quits (~Thunderbi@89.187.168.47) (Ping timeout: 250 seconds)
00:42:32 beteigeuze1 is now known as beteigeuze
00:51:03 × beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Remote host closed the connection)
00:51:21 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
00:52:34 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
00:53:34 causal joins (~user@50.35.83.177)
00:56:50 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 250 seconds)
00:59:10 Peerin joins (~Peerin@154.3.36.102)
01:00:27 <j4cc3b> Anyone ever get this error message using Cabal on M1 MBP? Cannot specify -O# and --passes=/--foo-pass, use -passes='default<O#>,other-pass'. opt' failed in phase `LLVM Optimiser'
01:00:51 <j4cc3b> it happened for an older package, and its happening now for a newly updated package (AES)
01:06:31 Lycurgus joins (~juan@user/Lycurgus)
01:07:13 caryhartline joins (~caryhartl@2600:1700:2d0:8d30:7075:e274:b18d:7a76)
01:08:42 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:08:47 <geekosaur> that's a too-new llvm opt, iirc
01:10:28 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:43 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (K-Lined)
01:10:43 × edi quits (~edi@user/edi) (K-Lined)
01:10:43 × Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (K-Lined)
01:10:43 × tomsmeding quits (~tomsmedin@static.21.109.88.23.clients.your-server.de) (K-Lined)
01:10:43 × red-snail quits (~snail@static.151.210.203.116.clients.your-server.de) (K-Lined)
01:10:43 × Philonous quits (~Philonous@user/philonous) (K-Lined)
01:10:43 × dminuoso quits (~dminuoso@user/dminuoso) (K-Lined)
01:10:43 × kawen quits (~quassel@static.208.191.216.95.clients.your-server.de) (K-Lined)
01:10:44 × auri quits (~auri@fsf/member/auri) (K-Lined)
01:10:44 × hexology quits (~hexology@user/hexology) (K-Lined)
01:10:44 × lambdap237 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (K-Lined)
01:10:44 × mcfrdy quits (~mcfrdy@user/mcfrdy) (K-Lined)
01:10:44 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (K-Lined)
01:10:44 × aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (K-Lined)
01:11:02 hexology joins (~hexology@user/hexology)
01:11:04 <j4cc3b> Ah, alright. I'll see if I can find an older llvm version. Thanks
01:11:28 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/issues/21936
01:11:35 mcfrdy joins (~mcfrdy@user/mcfrdy)
01:11:55 kawen joins (~quassel@static.208.191.216.95.clients.your-server.de)
01:11:57 auri joins (~auri@fsf/member/auri)
01:12:00 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
01:12:01 tomsmeding joins (~tomsmedin@2a01:4f8:c0c:5e5e::2)
01:12:01 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
01:12:06 Philonous joins (~Philonous@user/philonous)
01:12:06 dminuoso joins (~dminuoso@user/dminuoso)
01:12:09 aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de)
01:12:22 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
01:14:37 red-snail joins (~snail@static.151.210.203.116.clients.your-server.de)
01:16:07 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
01:16:20 × Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 250 seconds)
01:16:34 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:16:56 × FragByte quits (~christian@user/fragbyte) (Ping timeout: 276 seconds)
01:18:25 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
01:18:39 × slack1256 quits (~slack1256@191.125.99.71) (Ping timeout: 272 seconds)
01:26:52 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
01:26:52 × xacktm quits (~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
01:28:13 <j4cc3b> geekosaur Thanks, I downgraded to llvm 14 and got cabal to work
01:39:10 × xff0x quits (~xff0x@2405:6580:b080:900:274f:8858:84b:2f95) (Ping timeout: 272 seconds)
01:41:41 × beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Remote host closed the connection)
01:42:04 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
01:43:24 Guest395 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net)
01:43:45 × Guest395 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host)
01:43:45 Guest395 joins (~textual@user/polo)
01:43:49 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
01:45:48 × Guest395 quits (~textual@user/polo) (Client Quit)
01:49:41 polo_ joins (~polo@user/polo)
01:52:22 × j4cc3b quits (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Quit: Client closed)
01:53:23 biberu\ joins (~biberu@user/biberu)
01:55:41 xacktm joins (~xacktm@user/xacktm)
01:57:17 × biberu quits (~biberu@user/biberu) (Ping timeout: 272 seconds)
01:57:17 biberu\ is now known as biberu
01:59:11 × beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 272 seconds)
02:00:12 micahcantor joins (~micahcant@132.161.188.118)
02:02:00 Guest17 joins (~Guest17@132.161.188.57)
02:02:16 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
02:03:39 frost75 joins (~frost@user/frost)
02:03:56 × Guest17 quits (~Guest17@132.161.188.57) (Client Quit)
02:06:09 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
02:08:17 × polo_ quits (~polo@user/polo) (Ping timeout: 276 seconds)
02:12:47 × td_ quits (~td@83.135.9.20) (Ping timeout: 260 seconds)
02:14:16 td_ joins (~td@83.135.9.24)
02:19:05 nate2 joins (~nate@98.45.169.16)
02:19:16 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:22:15 Feuermagier_ joins (~Feuermagi@213.149.82.60)
02:23:08 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
02:24:54 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:24:54 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:24:54 finn_elija is now known as FinnElija
02:25:02 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 260 seconds)
02:26:00 × Feuermagier_ quits (~Feuermagi@213.149.82.60) (Read error: Connection reset by peer)
02:26:53 FragByte joins (~christian@user/fragbyte)
02:29:12 × mvk quits (~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 272 seconds)
02:29:19 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:30:17 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
02:31:13 meooow joins (~meooow@165.232.184.169)
02:33:17 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
02:35:24 freeside joins (~mengwong@103.252.202.193)
02:35:55 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds)
02:38:54 × frost75 quits (~frost@user/frost) (Quit: Client closed)
02:40:09 × micahcantor quits (~micahcant@132.161.188.118) (Ping timeout: 244 seconds)
02:40:12 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
02:42:49 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:43:52 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:55:15 j4cc3b joins (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net)
02:55:18 polo joins (~polo@user/polo)
02:58:52 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
03:00:36 freeside joins (~mengwong@103.252.202.193)
03:08:19 micahcantor joins (~micahcant@132.161.188.118)
03:09:07 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
03:11:59 × polo quits (~polo@user/polo) (Ping timeout: 276 seconds)
03:20:45 king_gs joins (~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0)
03:20:55 × king_gs quits (~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Client Quit)
03:22:35 mixfix41 joins (~sdeny9ee@user/mixfix41)
03:29:45 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 272 seconds)
03:41:44 × birdgoose quits (~birdgoose@2406:e003:1d87:6601:ad3a:1d2e:9fb1:dfac) (Quit: Konversation terminated!)
03:43:47 birdgoose joins (~jesse@151.210.175.160)
03:45:42 polo joins (~polo@user/polo)
03:46:42 chronon joins (~chronon@user/chronon)
03:50:25 × micahcantor quits (~micahcant@132.161.188.118) (Ping timeout: 244 seconds)
03:52:56 × polo quits (~polo@user/polo) (Ping timeout: 276 seconds)
03:56:17 × danza quits (~francesco@ge-19-125-62.service.infuturo.it) (Ping timeout: 240 seconds)
03:57:55 nate2 joins (~nate@98.45.169.16)
03:58:13 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
04:03:02 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
04:04:37 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds)
04:06:21 × birdgoose quits (~jesse@151.210.175.160) (Quit: Konversation terminated!)
04:06:34 birdgoose joins (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe)
04:07:13 freeside joins (~mengwong@103.252.202.193)
04:09:22 danza joins (~francesco@151.68.249.142)
04:11:36 × j4cc3b quits (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds)
04:14:05 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 272 seconds)
04:14:19 freeside joins (~mengwong@103.252.202.193)
04:17:27 zaquest joins (~notzaques@5.130.79.72)
04:18:32 ski joins (~ski@remote11.chalmers.se)
04:19:56 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
04:33:56 wroathe joins (~wroathe@user/wroathe)
04:35:23 nate2 joins (~nate@98.45.169.16)
04:36:37 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds)
04:38:37 AkechiShiro joins (~licht@user/akechishiro)
04:39:44 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 276 seconds)
04:40:22 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
04:40:56 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
04:45:00 mbuf joins (~Shakthi@49.204.140.84)
04:49:13 freeside joins (~mengwong@103.252.202.193)
04:55:00 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:56:32 kenran joins (~user@user/kenran)
04:58:44 × ckiorrrrrrrrrrrs quits (~ckiorrrrr@c-76-17-6-165.hsd1.ga.comcast.net) (Remote host closed the connection)
04:59:30 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
05:01:29 × birdgoose quits (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Quit: Konversation terminated!)
05:01:44 birdgoose joins (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe)
05:08:25 Maeda joins (~Maeda@91-161-10-149.subs.proxad.net)
05:10:22 Guest5366 is now known as money
05:12:02 × boxscape_ quits (~boxscape_@81.191.27.107) (Remote host closed the connection)
05:12:10 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:13:57 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
05:14:15 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
05:15:45 boxscape_ joins (~boxscape_@81.191.27.107)
05:17:48 × boxscape_ quits (~boxscape_@81.191.27.107) (Remote host closed the connection)
05:21:26 × fjMSX quits (~hypni2p@2.92.213.55) (Remote host closed the connection)
05:29:27 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
05:30:03 × Peerin quits (~Peerin@154.3.36.102) (Remote host closed the connection)
05:30:55 ec joins (~ec@gateway/tor-sasl/ec)
05:34:43 nate2 joins (~nate@98.45.169.16)
05:36:20 × birdgoose quits (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Ping timeout: 250 seconds)
05:38:50 birdgoose joins (~jesse@151.210.175.160)
05:39:01 × P1RATEZ quits (piratez@user/p1ratez) (Remote host closed the connection)
05:39:22 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds)
05:40:51 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 272 seconds)
05:49:02 × birdgoose quits (~jesse@151.210.175.160) (Quit: Konversation terminated!)
05:49:12 × raym quits (~ray@user/raym) (Ping timeout: 260 seconds)
05:49:25 birdgoose joins (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe)
05:51:56 × sameer quits (~sameer@2409:4070:6e10:74c0::81c8:d301) (Ping timeout: 250 seconds)
05:52:25 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
05:52:32 sameer joins (~sameer@2409:4070:2db0:cb01::c089:7411)
05:56:05 raym joins (~ray@user/raym)
05:56:07 <Clinton[m]> As silly as this may seem, are these instances law abiding?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/f8298a10f2170a4f89c99acce653599b49765387>)
05:56:58 <Clinton[m]> (this is a cut down example which doesn't really demonstrate what I'm trying to achieve)
05:58:23 <jackdk> Clinton[m]: looks like `Blah ~ Const [Int]`
05:59:00 <jackdk> @info Const
05:59:00 <lambdabot> Const
05:59:03 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
05:59:08 <jackdk> :i Const
05:59:13 <jackdk> % :i Const
05:59:13 <yahb2> <interactive>:1:1: error: Not in scope: ‘Const’
05:59:19 <Clinton[m]> Oh wow.
05:59:39 <Clinton[m]> I love Haskell
05:59:39 <jackdk> Anyway, `instance Monoid r => Applicative (Const r)`
06:09:44 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
06:18:37 × jargon quits (~jargon@184.101.208.112) (Remote host closed the connection)
06:20:39 mmhat joins (~mmh@p200300f1c730762dee086bfffe095315.dip0.t-ipconnect.de)
06:26:57 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
06:27:35 gmg joins (~user@user/gehmehgeh)
06:29:38 jpds joins (~jpds@gateway/tor-sasl/jpds)
06:36:34 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 250 seconds)
06:38:01 mncheck joins (~mncheck@193.224.205.254)
06:48:48 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:49:46 jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
06:52:31 EvanR_ joins (~EvanR@user/evanr)
06:53:19 × EvanR quits (~EvanR@user/evanr) (Ping timeout: 272 seconds)
06:58:13 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:59:48 × jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Remote host closed the connection)
07:00:05 jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
07:01:27 michalz joins (~michalz@185.246.207.200)
07:02:05 yangby joins (~secret@115.197.21.96)
07:09:30 chele joins (~chele@user/chele)
07:10:06 × yangby quits (~secret@115.197.21.96) (Quit: Go out for a walk and buy a drink.)
07:11:50 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds)
07:13:22 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
07:20:47 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
07:22:39 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
07:24:32 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:24:37 × talismanick quits (~talismani@76.133.152.122) (Ping timeout: 240 seconds)
07:26:53 merijn joins (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl)
07:27:16 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 250 seconds)
07:28:56 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
07:29:09 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 272 seconds)
07:30:06 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
07:34:12 × sameer quits (~sameer@2409:4070:2db0:cb01::c089:7411) (Ping timeout: 250 seconds)
07:34:26 sameer joins (~sameer@2409:4070:2db0:cb01::c089:7411)
07:35:41 × jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
07:37:15 jco joins (~jco@90-228-194-139-no542.tbcn.telia.com)
07:39:17 × danza quits (~francesco@151.68.249.142) (Read error: Connection reset by peer)
07:40:26 <jco> Hi, I'm being temporarily (hopefully) stupid. Is there a general way in which you can rewrite a fold, where you don't use the element (only the accumulator), to something "simpler"? Small (but somewhat ugly) snippet at: https://paste.tomsmeding.com/V9lcJMde. Here you see that I don't really use `_i`.
07:41:03 lortabac joins (~lortabac@2a01:e0a:541:b8f0:e245:517d:6b8a:16f8)
07:42:16 <dminuoso> You could write that as a replicateM I suppose
07:42:33 <lyxia> or iterate
07:44:49 henrytill joins (e0180937c3@2604:bf00:561:2000::e8c)
07:44:51 <dminuoso> Personally I would probably write it as just a handrolled loop.
07:45:21 <dminuoso> Lets you write it in curred form as well
07:47:11 acidjnk joins (~acidjnk@p200300d6e7137a282ddda09dd97b606e.dip0.t-ipconnect.de)
07:47:38 <dminuoso> jco: Along these lines https://gist.github.com/dminuoso/1e76c685d5168d8fe8881de0230a5208
07:48:23 <dminuoso> Oh, actually the `zeroGroupCount - 1` is silly, can just use `n`
07:48:31 <dminuoso> Updated gist
07:48:33 <jco> dminuoso: Thanks, I'll take a look!
07:48:50 Kaipei joins (~Kaiepi@108.175.84.104)
07:49:17 fserucas|eod joins (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
07:49:43 chomwitt joins (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1)
07:49:59 × fserucas|eod quits (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit)
07:50:15 fserucas|eod joins (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
07:52:17 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
07:54:48 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:59:29 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
08:01:19 nschoe joins (~q@2a01:e0a:8e:a190:6b6f:b6f8:7b03:5cf7)
08:03:15 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
08:05:39 × jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Remote host closed the connection)
08:05:56 jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
08:07:08 × birdgoose quits (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Ping timeout: 250 seconds)
08:07:27 nate2 joins (~nate@98.45.169.16)
08:08:19 jakalx parts (~jakalx@base.jakalx.net) ()
08:11:06 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:12:42 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
08:16:04 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:19:49 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
08:30:19 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
08:32:44 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection)
08:41:34 birdgoose joins (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe)
08:42:29 jakalx joins (~jakalx@base.jakalx.net)
08:47:13 cfricke joins (~cfricke@user/cfricke)
09:01:41 __monty__ joins (~toonn@user/toonn)
09:02:36 × KaitoDaumoto quits (~asdf@user/kaitodaumoto) (Remote host closed the connection)
09:03:37 shapr joins (~user@net-5-88-239-29.cust.vodafonedsl.it)
09:21:37 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
09:32:56 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:33:13 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
09:34:23 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
09:34:24 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
09:37:42 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 250 seconds)
09:39:12 random-jellyfish joins (~random-je@user/random-jellyfish)
09:42:22 × random-jellyfish quits (~random-je@user/random-jellyfish) (Client Quit)
09:43:42 × darkstardevx quits (~darkstard@50.126.124.156) (Ping timeout: 260 seconds)
09:45:32 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:51:04 nilradical joins (~nilradica@user/naso)
09:52:05 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
09:53:00 × nilradical quits (~nilradica@user/naso) (Client Quit)
09:54:46 nilradical joins (~nilradica@user/naso)
09:58:11 × ft quits (~ft@p3e9bc845.dip0.t-ipconnect.de) (Quit: leaving)
10:03:42 × birdgoose quits (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Ping timeout: 250 seconds)
10:05:26 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:e245:517d:6b8a:16f8) (Ping timeout: 250 seconds)
10:06:37 darkstardevx joins (~darkstard@50.126.124.156)
10:07:37 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
10:07:37 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds)
10:07:52 × darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection)
10:08:16 darkstardevx joins (~darkstard@50.126.124.156)
10:18:29 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7)
10:22:21 tomboy64 joins (~tomboy64@user/tomboy64)
10:23:54 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
10:27:07 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 272 seconds)
10:27:48 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
10:29:31 × nilradical quits (~nilradica@user/naso) ()
10:34:57 × Kaipei quits (~Kaiepi@108.175.84.104) (Ping timeout: 240 seconds)
10:43:50 axeman joins (~quassel@2a02:8109:a380:78:6c88:f7de:5432:98cd)
10:45:42 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 258 seconds)
10:46:05 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
10:46:05 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
10:46:28 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds)
10:48:23 × vglfr quits (~vglfr@145.224.100.190) (Remote host closed the connection)
10:49:16 vglfr joins (~vglfr@145.224.100.190)
10:50:04 × axeman quits (~quassel@2a02:8109:a380:78:6c88:f7de:5432:98cd) (Ping timeout: 250 seconds)
10:53:57 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
10:55:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
10:56:20 Kaipei joins (~Kaiepi@108.175.84.104)
10:56:52 ec joins (~ec@gateway/tor-sasl/ec)
10:57:19 gmg joins (~user@user/gehmehgeh)
10:58:40 wonko joins (~wjc@user/wonko)
10:59:32 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6)
11:02:05 causal joins (~user@50.35.83.177)
11:05:29 jmorris joins (uid537181@id-537181.uxbridge.irccloud.com)
11:08:00 xff0x joins (~xff0x@2405:6580:b080:900:ca36:cc78:fa79:2e35)
11:12:56 × califax quits (~califax@user/califx) (Remote host closed the connection)
11:12:56 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
11:12:56 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
11:14:07 chexum joins (~quassel@gateway/tor-sasl/chexum)
11:14:08 ChaiTRex joins (~ChaiTRex@user/chaitrex)
11:14:55 califax joins (~califax@user/califx)
11:17:22 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 250 seconds)
11:18:10 jakalx parts (~jakalx@base.jakalx.net) ()
11:19:11 argento joins (~argent0@168-227-97-23.ptr.westnet.com.ar)
11:20:30 × ajb quits (~ajb@mimas.whatbox.ca) (Quit: bye)
11:20:40 ajb joins (~ajb@mimas.whatbox.ca)
11:21:50 jakalx joins (~jakalx@base.jakalx.net)
11:23:17 schweers joins (~user@p200300e5773c9a00c23ebafffe9bd9c9.dip0.t-ipconnect.de)
11:25:46 lyle joins (~lyle@104.246.145.85)
11:27:55 × koz quits (~koz@121.99.240.58) (Ping timeout: 252 seconds)
11:32:00 axeman joins (~quassel@2a02:8109:a380:78:eda1:cd6d:3994:f202)
11:35:04 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
11:35:49 koz joins (~koz@121.99.240.58)
11:36:08 lortabac joins (~lortabac@2a01:e0a:541:b8f0:ac5b:f1ab:700:d86f)
11:39:28 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 250 seconds)
11:39:59 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
11:40:13 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 272 seconds)
11:41:08 <lyle> Here's a code snippit: https://paste.tomsmeding.com/KpZq9ht3
11:41:52 <lyle> If I have a constructor that takes a Text, and call it with {}, what is happening. Is there a name for this language feature?
11:44:18 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
11:45:07 ec joins (~ec@gateway/tor-sasl/ec)
11:46:57 <int-e> It's part of the record syntax, but without specifying any fields, which somehow makes this work for non-record constructors.
11:48:05 <int-e> It was already that way with Haskell 98, "The pattern F {} matches any value built with constructor F, whether or not F was declared with record syntax."
11:49:17 × vglfr quits (~vglfr@145.224.100.190) (Remote host closed the connection)
11:49:31 <int-e> (The space is not mandatory. I personally like omitting it (as done in the snippet) because it ties the {} block to the constructor rather than making it look like a braced expression.)
11:49:43 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 272 seconds)
11:49:50 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
11:49:52 vglfr joins (~vglfr@145.224.100.190)
11:51:32 kuribas joins (~user@silversquare.silversquare.eu)
11:53:39 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Client Quit)
11:53:48 <dminuoso> Ohh! With the space it suddenly makes sense why it looks the way it looks.
11:53:57 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
11:53:57 <dminuoso> I've actually wondered about this myself before.
11:54:09 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
11:54:53 <lyle> Ok, I understand now--thanks!
11:55:19 <lyle> It's about the matching, I was looking at the {} as a argument.
11:55:45 <dminuoso> lyle: well you can sort of think of it along the sides of an argument.
11:56:04 <dminuoso> Foo { field1 = 1, field2 = 'b' }
11:56:07 <dminuoso> Foo { field1 = 1 }
11:56:10 <dminuoso> Foo {}
11:57:00 <dminuoso> % data Foo = Foo { f1 :: Int, f2 :: Char }
11:57:00 <yahb2> <no output>
11:57:06 <dminuoso> % x = Foo {}
11:57:06 <yahb2> <interactive>:14:5: warning: [-Wmissing-fields] ; • Fields of ‘Foo’ not initialised: ; f1 :: Int ; f2 :: Char ; • In the expression: Foo {} ; In an equation for ‘x’: x...
11:57:15 <dminuoso> So this *is* valid.
11:59:50 × wonko quits (~wjc@user/wonko) (Ping timeout: 250 seconds)
12:00:05 <merijn> It's a nice way to match specific constructors without needing to care about the number of arguments it has
12:00:16 × axeman quits (~quassel@2a02:8109:a380:78:eda1:cd6d:3994:f202) (Ping timeout: 250 seconds)
12:00:29 <merijn> So if you refactor and change the fields later, you don't have to fix the pattern except where it matters
12:00:42 × vglfr quits (~vglfr@145.224.100.190) (Remote host closed the connection)
12:01:19 cfricke joins (~cfricke@user/cfricke)
12:01:19 <lyle> Ok, thanks everyone. This has been very helpful.
12:01:43 <int-e> :t Nothing{}
12:01:44 <lambdabot> Maybe a
12:01:59 vglfr joins (~vglfr@145.224.100.190)
12:02:37 <dminuoso> :t Nothing{}{}
12:02:38 <lambdabot> error: Empty record update
12:02:50 × vglfr quits (~vglfr@145.224.100.190) (Remote host closed the connection)
12:03:04 <dminuoso> I feel like an empty record update should be valid!
12:03:34 vglfr joins (~vglfr@145.224.100.190)
12:03:34 <dminuoso> It's just like allowing a typeclass without type variables
12:03:37 <int-e> I kind of agree... though your example might convince me otherwise
12:04:32 <int-e> But I've had the `default{ ... }` case, where ... are options that I was playing around with, and it's annoying that the code breaks when the `...` is all commented out.
12:05:14 <int-e> But not allowing Nothing{}{}{}{}{}{}{} might be a boon.
12:05:37 <dminuoso> It just feels an arbitrary restriction
12:06:05 <dminuoso> `flip . flip . flip . flip` is not illegal either
12:06:23 <dminuoso> It might be silly and redudant, but I dont need GHC to hold my hands here
12:06:37 <dminuoso> % data Foo = Foo { f1 :: Int, f2 :: Char }
12:06:37 <yahb2> <no output>
12:06:41 <dminuoso> % Foo { f1 }
12:06:41 <yahb2> <interactive>:32:7: error: ; • Couldn't match expected type ‘Int’ with actual type ‘Foo -> Int’ ; • Probable cause: ‘f1’ is applied to too few arguments ; In the ‘f1’ field of a recor...
12:06:44 <dminuoso> How is this syntactically valid?
12:07:00 <merijn> dminuoso: NamedFieldPuns?
12:07:04 <dminuoso> Ohh
12:07:21 <int-e> % let f1 = 2 in Foo { f1 } -- let's check
12:07:21 <yahb2> <interactive>:34:1: error: ; • No instance for (Show Foo) ; arising from a use of ‘Yahb2Defs.limitedPrint’ ; • In a stmt of an interactive GHCi command: ; Yahb2Defs.limitedP...
12:07:30 <int-e> oh.
12:08:05 <int-e> % deriving instance Show Foo
12:08:05 <yahb2> <no output>
12:08:14 <int-e> % let f1 = 2 in Foo { f1 }
12:08:14 <yahb2> <interactive>:38:15: warning: [-Wmissing-fields] ; • Fields of ‘Foo’ not initialised: ; f2 :: Char ; • In the expression: Foo {f1} ; In the expression: let f1 = 2 in Foo {f1} ...
12:08:29 <int-e> % let f1 = 2 in Foo { f1, f2 = 3 }
12:08:29 <yahb2> <interactive>:40:30: error: ; • No instance for (Num Char) arising from the literal ‘3’ ; • In the ‘f2’ field of a record ; In the expression: Foo {f1, f2 = 3} ; In the expressi...
12:08:41 <int-e> % let f1 = 2 in Foo { f1, f2 = '3' }
12:08:41 <yahb2> Foo {f1 = 2, f2 = '3'}
12:08:49 <int-e> urgh, should've tested privately
12:08:56 nate2 joins (~nate@98.45.169.16)
12:08:59 <dminuoso> merijn: I prefer RecordWildCards for this job.
12:09:38 <dminuoso> It's an extension I flip on liberally, even though I wish the unhygenic macro (on pattern matching) part was a separate extension
12:09:45 <int-e> % let f1 = 2 in Foo { f1 } { f2 = '3' } -- should this warn? :P
12:09:45 <yahb2> <interactive>:46:15: warning: [-Wmissing-fields] ; • Fields of ‘Foo’ not initialised: ; f2 :: Char ; • In the expression: Foo {f1} ; In the expression: Foo {f1} {f2 = '3'} ; ...
12:10:18 × ajb quits (~ajb@mimas.whatbox.ca) (Quit: bye)
12:10:44 <dminuoso> int-e: Presumably the pattern match coverage checker could be twisted around for this. But the second functions are in the mix, like `let f1 = 2 in Foo { f1 } $ { f2 = '3' }` this would no longer work.
12:12:38 ajb joins (~ajb@mimas.whatbox.ca)
12:14:12 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
12:15:27 <int-e> % data Bar a = Bar { x :: a, y :: a } deriving Show
12:15:27 <yahb2> <no output>
12:15:38 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
12:15:59 <int-e> % Bar () () { x = 1 } { y = 1 } -- I guess the idea of updating fields one by one is doomed anyway
12:15:59 <yahb2> <interactive>:50:8: error: ; • Constructor ‘()’ does not have field ‘x’ ; • In the expression: () {x = 1} ; In the second argument of ‘Bar’, namely ‘() {x = 1} {y = 1}’ ; In the...
12:15:59 <kuribas> Why do OOP or lisp researchers need to pick on static types? I saw the talk by Sussman, who's work I greatly admire, then he states "we should focus on flexibility and expressiveness, not on type systems". Why do they think their work invalidates type theory?
12:17:52 <int-e> ...maybe if all your code is perfect on the first try...
12:17:52 <dminuoso> kuribas: For one, type systems dont just rule out bad programs, they also have a false positive rate.
12:18:17 <dminuoso> Good and expressive type systems that dont filter out too many good programs (without inconveniencing the user) are rare.
12:19:02 <kuribas> even then, you are not obliged to use the type system for everything.
12:19:20 <dminuoso> The value of a type system rapidly decreases if you offer escape hatches
12:19:33 <dminuoso> You can observe this in typescript
12:19:41 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
12:20:21 <kuribas> the python static type checker has a "strict" mode, which forces you to put a type on all inputs.
12:20:24 <dminuoso> And bolting on a type system after the fact tends to be extremely hard for a language that has had semantics and additions for potentially decades without the worry of a type system.
12:20:31 <kuribas> You can still use "Any" of course.
12:21:05 × argento quits (~argent0@168-227-97-23.ptr.westnet.com.ar) (Quit: Lost terminal)
12:25:17 <kuribas> int-e: also, his book is mostly on numerical techniques, or interesting algorithms.
12:25:49 <kuribas> int-e: a type system has diminishing returns there, however for structure heavy data (REST apis), I find it indespensible.
12:26:04 <int-e> ah, the world where everything is a number
12:26:21 <int-e> (except for NaN)
12:26:33 <kuribas> These techniques seem orthogonal to typesystems to me, they don't invalidate the work of type theorists.
12:27:04 <dminuoso> One thing that is definitely incompatible with convenience, is type systems around numbers.
12:27:15 <int-e> . o O ( "god is real, unless declared to be an integer" )
12:27:26 ajb joins (~ajb@mimas.whatbox.ca)
12:27:35 <dminuoso> Consider the number of numeric types we have, and how often you realToFrac or fromInteger you way from a to b
12:27:41 <dminuoso> Probably losing information along the way. silently.
12:27:54 <dminuoso> The type system causes inconvenience and *still* doesnt prevent information loss
12:28:23 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:29:16 <dminuoso> Similar story with floating point numbers, though IEEE754 does allow for exception mechanisms, we just dont have this.
12:30:26 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
12:30:56 ajb_ joins (~ajb@mimas.whatbox.ca)
12:31:06 <dminuoso> We could of course wrap every computation that could overflow/underflow/narrow a type in some `Either NumericError`, making it doubly inconvenient and relying on magic deforestation to not dunk performance entirely
12:32:01 <dminuoso> Though for what its worth, I think `int-cast` solves the `fromIntegral` problem mostly nicely
12:32:06 <raehik> oh reminds me dminuoso , if I want an efficient `Word16 -> Int16`, is `fromIntegral` good enough? will it be turned into some efficient primop
12:32:18 <dminuoso> raehik: Yes, it will internally be a noop
12:32:41 × Kaipei quits (~Kaiepi@108.175.84.104) (Read error: Connection reset by peer)
12:32:44 <dminuoso> raehik: But for flatparse, I would just use the underlying primop manually
12:33:01 <raehik> lovely. there's a nice explicit `word16ToInt16 :: Word16# -> Int16#` exported on 9.4 and maybe 9.2, but not prior
12:33:08 <raehik> make that `word16ToInt16#`
12:33:15 <dminuoso> raehik: let us talk about that subject
12:33:37 <dminuoso> Ive come to the conclusion, that supporting sized primtypes before 9.2 is a fools errand, even internally
12:33:48 <dminuoso> before 9.2 you can just unsafeCoerce# between them
12:33:56 × ajb_ quits (~ajb@mimas.whatbox.ca) (Client Quit)
12:34:09 <dminuoso> but the reality is, you really cant do anything with sized primops except unsafeCoerce# them to Word# -> and then use them
12:34:50 <raehik> OK. Learning that due to our heavy inlining and GHC's reliable unboxing (apparently?), I'm happy to agree
12:35:39 <dminuoso> but keeping Word# internally is unfeasible for two reasons: a) it busts 32 bit compatibility (which requires Word64# prims - for which there are primops on 32 bit systems on GHC <= 9.0)
12:36:01 <dminuoso> And b) it pins us to a legacy framework that will eventually lead to worse code generation
12:36:40 <dminuoso> For instance: post 9.2/9.4 a `data Foo = Foo Word8# Word8# Word8# Word8#` can be packed into a single Word32#
12:37:06 <dminuoso> But if we fling around a Word# that eventually gets narrowed, I can see it impacting cmm generation slightly
12:37:45 <dminuoso> raehik: so what we have, is what we should stick to. except the Word64# part, that needs fixing pre 9.0
12:37:51 × xff0x quits (~xff0x@2405:6580:b080:900:ca36:cc78:fa79:2e35) (Ping timeout: 272 seconds)
12:38:23 <dminuoso> Presumably its the way it is, because haddock doesnt reflect well enough the CPP switched shenanigans in ghc-prim that happens when word size is less than 64.
12:38:54 <dminuoso> you cant even see the Word64# primops on hackage for older GHCs, because that haddock gets executed on a 64 bit machine
12:40:27 xff0x joins (~xff0x@2405:6580:b080:900:ca36:cc78:fa79:2e35)
12:41:02 × koz quits (~koz@121.99.240.58) (Ping timeout: 260 seconds)
12:41:09 Kaiepi joins (~Kaiepi@108.175.84.104)
12:41:47 juri__ joins (~juri@79.140.114.58)
12:42:12 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
12:43:41 × kenran quits (~user@user/kenran) (Remote host closed the connection)
12:44:37 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:44:56 ajb joins (~ajb@mimas.whatbox.ca)
12:44:58 <raehik> dminuoso: oops I dropped connection. last msg 7min ago
12:45:13 <raehik> I wrote: If we use Word64 and the "Word64" prims (e.g. `indexWord64OffAddr#`), are we OK for 32-bit support and performance?
12:46:13 <raehik> W64# and the various related primops use Word64# on 9.4, Word# on 64-bit pre-9.4, Word32# on 32-bit pre-9.4. is that correct?
12:46:27 × juri_ quits (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 272 seconds)
12:47:40 <raehik> so we can always wrap one of the output of such a primop into `W64# :: x -> Word64` then rely on GHC unboxing later
12:47:51 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
12:47:58 <raehik> s/one of the output/the output
12:48:22 koz joins (~koz@121.99.240.58)
12:48:58 <raehik> Wait I got that wrong. On 32-bit, the Word64 primops should return Word64#.
12:49:01 <raehik> https://downloads.haskell.org/ghc/latest/docs/users_guide/9.4.1-notes.html
12:49:23 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6)
12:56:17 × ubert quits (~Thunderbi@178.165.171.4.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
12:56:18 <dminuoso> raehik: Correct, and more to the point on pre 9.0 there's a bunch of Word64# primops too.
12:57:15 ubert joins (~Thunderbi@178.165.171.4.wireless.dyn.drei.com)
12:57:27 <dminuoso> In simple terms: at <= 9.0 there's only two effective prim types: Word# and Word64#, but the latter is turned off - along with all 64-bit sized primops - on 64 bit systems
12:57:36 <raehik> dminuoso: do you want to use the primops that explicitly work on Word64# s, rather than the ones with Word64 in the name but actually working on Word# s (on 64-bit)?
12:57:40 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:58:08 <dminuoso> Yes!
12:58:37 <kuribas> int-e: btw, this book:https://mitpress.mit.edu/9780262045490/software-design-for-flexibility/
12:58:53 <dminuoso> raehik: Or rather, on 32 bit they tend to do work on Word64#
12:59:01 <dminuoso> raehik: the primops themselves are CPP switched.
12:59:17 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds)
12:59:18 <dminuoso> a fact you cannot easily observe via hackage, because there is no actual haskell source code to see this
12:59:32 <dminuoso> (that is, even haddock doesnt help with view source, because there is no source)
12:59:32 <raehik> Right, but they must be in the primops pp file or whatever
12:59:41 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7)
12:59:45 <dminuoso> They are, but here comes the next big catch
12:59:49 <dminuoso> not all of them are exposed
13:00:07 <dminuoso> some are exposed only via ghc-prim (which we can just depend upon, its just part of ghc), but not all
13:00:23 <dminuoso> I have not yet been able to figure out which primops are exported and which ones are not
13:00:35 <dminuoso> Furthermore GHC.Exts from base has only a subset of what GHC.Prim has
13:00:47 <dminuoso> And GHC.Prim is a subset from what is defined in the primops pp file
13:01:43 <raehik> hmmm! I see
13:02:14 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:02:28 <raehik> why do you want the explicit Word64# primops? easier compatibility going forward, less CPP confusing things (behind the scenes or in flatparse)?
13:02:50 <dminuoso> 32 bit compatibility.
13:03:21 ajb joins (~ajb@mimas.whatbox.ca)
13:04:10 <raehik> provided we're using Word64s which should use Word64# on 32-bit (pre-9.4), what's the difference in compatibility?
13:04:21 <dminuoso> raehik: Ah and for the Word64# some arent even primops, so for example you would only find eqWord64# in GHC.Word on 32 bits
13:04:52 <dminuoso> raehik: Well, the W64 combinators become safe to use on 32 bit systems. Without it, they are not.
13:04:53 <raehik> yeah, I found that -- had to box instead
13:04:56 <dminuoso> And not just that
13:05:04 <dminuoso> Anything that transitively uses them, which is essentially everything
13:05:16 <dminuoso> say `string` relies on scan64# for example
13:05:40 <dminuoso> which means the usability of the entire library hinges on this
13:05:51 <dminuoso> (or we introduce flags to just work in 32 bit sized chunks)
13:06:03 <dminuoso> and mark Word64 bit combinators as incompatible on 32 bit systems
13:06:14 <int-e> kuribas: Hmm I see. Sounds interesting. Shouldn't types be largely independent from that though?
13:06:18 <dminuoso> The benefit of that approach is that its much much faster
13:06:33 <dminuoso> because much of the Word64# machine is implemented via FFI
13:06:38 <dminuoso> (in older GHC on 32 bit)
13:07:00 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 250 seconds)
13:07:08 <kuribas> int-e: yes, that's my thought.
13:07:45 <dminuoso> raehik: I dont know, maybe ultimately the answer is to just disable all the 64 bit machinery entirely if WORD_SIZE_IN_BITS < 64
13:08:17 <dminuoso> but it requires a bit of additional CPP switcheroo, byteString of string both need to work with either scan64# or scan32# for the large chunks
13:08:28 <dminuoso> *byteString or string
13:08:44 freeside joins (~mengwong@103.252.202.193)
13:09:21 <raehik> dminuoso: I'm confused. As I understand Word64,Word64# are still there and still 8-bytes on 32-bit, just probably lots slower due to the machine word size mismatch. Why would the W64 combinators be unsafe?
13:09:33 cfricke joins (~cfricke@user/cfricke)
13:10:16 <dminuoso> raehik: So consider `byteString` for instance. It starts in Word64# chunks until there's just Word8#'s left.
13:11:02 <dminuoso> If we correctly map scan64# to 32 bit, then we will for a bunch of (what is now) primops instead go through ffi.
13:11:02 × teddyc quits (theodorc@cassarossa.samfundet.no) (Quit: WeeChat 3.0)
13:11:37 <dminuoso> So two scan32# will likely be faster than scan64# on 32 bit systems
13:12:28 <dminuoso> One way to address this, is to rebuild `byteString` to start with Word32# (that is Word#) chunks, until there's just Word8#'s left. The presence of 64 bit primitives would just enable someone to use them, but they are inherently slow.
13:13:02 <dminuoso> So in that scenario they are not unsafe, just slow to the point that its better to not provide them.
13:13:41 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 272 seconds)
13:14:40 <raehik> ah! so you want to retain good 32-bit performance
13:15:26 <dminuoso> Its additional work and ultimately baggage we will carry on. We already have most combinators duplicated across Basic and Stateful, providing 32 bit versions for each is not helping.
13:15:40 × kuribas quits (~user@silversquare.silversquare.eu) (Read error: Connection reset by peer)
13:15:43 <dminuoso> I dont have good answers honestly, every time I look at it I dont like my previous perspective
13:15:52 <MangoIV[m]> Does anybody here use the `hls-eval-plugin` with a different editor than vscode? Thanks in advance.
13:16:09 <raehik> I wasn't really bothered if we forwent decent 32-bit performance. And I agree with your point above checking WORD_SIZE_IN_BITS
13:16:17 zmt00 joins (~zmt00@user/zmt00)
13:16:36 <dminuoso> Lets at the very least include an `#if WORD_SIZE_IN_BITS < 32; error "32 bit not supported"; #endif` then
13:16:49 <dminuoso> Oh, `WORD_SIZE_IN_BITS < 64` of course
13:16:52 kuribas joins (~user@silversquare.silversquare.eu)
13:17:09 <dminuoso> If we do that, then the Word64# story becomes easier for GHC 9.4
13:17:20 <raehik> dminuoso: why would 32-bit not be supported? I thought the problem was just it would perform poorly
13:17:43 <dminuoso> Mmm fair
13:17:45 <raehik> Maybe I was missing sth on the 9.4 side, if primops don't align the same way
13:18:34 <dminuoso> Well, if we do want 32 bit support, we have to map out all the 64bit primops and see if there's any roundtripping through Word#
13:19:08 <dminuoso> Either way, the compatibility shims we have so far is exactly what we need, and we need to keep on doing this.
13:19:09 <raehik> Ah, that's true. I was working on cleaning up Word(#) vs. Word64(#) usage in my branch
13:19:12 <dminuoso> (I dont see a way to refactor this)
13:21:46 nilradical joins (~nilradica@user/naso)
13:22:17 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 240 seconds)
13:23:19 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
13:24:13 <nilradical> after upgrading to macos 13, my tests do not compile: "Bad interface file: .... x.hi mismatched interface file profile tag (wanted "", got "dyn")"
13:24:31 kuribas parts (~user@silversquare.silversquare.eu) (ERC (IRC client for Emacs 27.1))
13:26:43 freeside joins (~mengwong@103.252.202.193)
13:27:50 <nilradical> false alarm, i did a cabal clean and rebuild and now it works. i do get some warnings though:
13:27:55 <nilradical> ld: warning: directory not found for option '-L/opt/local/lib/'
13:27:55 <nilradical> ld: warning: directory not found for option '-L/usr/local/lib/'
13:27:55 <nilradical> ld: warning: -undefined dynamic_lookup may not work with chained fixups
13:30:02 teddyc joins (theodorc@cassarossa.samfundet.no)
13:30:06 <dminuoso> raehik: By the way, here's my newest addition to the flatparse zoo: refocus :: BS.ByteString -> Parser e a -> Parser e a
13:30:14 <dminuoso> Temporarily switches out the internal buffer. :)
13:30:34 azimut joins (~azimut@gateway/tor-sasl/azimut)
13:30:48 <int-e> ...useful for implementing #include...
13:30:52 <dminuoso> Indeed. :)
13:31:12 <raehik> oh, nice! neat indeed
13:34:51 Sgeo joins (~Sgeo@user/sgeo)
13:35:14 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
13:42:27 kuribas joins (~user@silversquare.silversquare.eu)
13:45:33 kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net)
13:46:20 haritz joins (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk)
13:46:20 × haritz quits (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) (Changing host)
13:46:20 haritz joins (~hrtz@user/haritz)
13:47:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:50:31 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:52:52 × jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
13:53:16 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
13:53:37 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
13:53:37 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
13:53:37 wroathe joins (~wroathe@user/wroathe)
13:54:08 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:57:01 shriekingnoise joins (~shrieking@186.137.167.202)
13:59:17 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
14:03:26 Tuplanolla joins (~Tuplanoll@91-159-69-240.elisa-laajakaista.fi)
14:04:57 × schweers quits (~user@p200300e5773c9a00c23ebafffe9bd9c9.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
14:07:14 × cytokine_storm quits (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 250 seconds)
14:07:20 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
14:07:29 cytokine_storm joins (~cytokine_@user/cytokine-storm/x-1083107)
14:08:43 ChaiTRex joins (~ChaiTRex@user/chaitrex)
14:10:37 × juri__ quits (~juri@79.140.114.58) (Read error: Connection reset by peer)
14:15:02 wonko joins (~wjc@user/wonko)
14:15:37 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
14:16:46 juri_ joins (~juri@79.140.120.117)
14:18:10 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:18:22 × juri_ quits (~juri@79.140.120.117) (Read error: Connection reset by peer)
14:21:48 juri_ joins (~juri@79.140.120.117)
14:22:37 × juri_ quits (~juri@79.140.120.117) (Read error: Connection reset by peer)
14:24:17 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 260 seconds)
14:24:42 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
14:26:48 juri_ joins (~juri@84-19-175-179.pool.ovpn.com)
14:30:42 × ajb quits (~ajb@mimas.whatbox.ca) (Quit: bye)
14:36:26 ahrat joins (~ahrat@user/ahrat)
14:37:10 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
14:37:36 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
14:41:08 micahcantor joins (~micahcant@132.161.188.118)
14:41:39 × micahcantor quits (~micahcant@132.161.188.118) (Client Quit)
14:41:54 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 250 seconds)
14:43:09 × phma quits (phma@2001:5b0:211b:8ac8:bff1:e65f:43d1:3dd5) (Read error: Connection reset by peer)
14:44:00 phma joins (~phma@2001:5b0:211f:f528:7435:f7cd:de72:7162)
14:44:39 zebrag joins (~chris@user/zebrag)
14:52:57 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
14:53:53 ChaiTRex joins (~ChaiTRex@user/chaitrex)
15:08:21 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
15:13:30 × dextaa quits (~DV@user/dextaa) (Quit: Leaving)
15:14:26 dextaa joins (~DV@user/dextaa)
15:16:32 <Profpatsch> kinda annoying that the default instance of <|> for IO is `catchException`
15:16:43 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
15:16:43 <Profpatsch> Instead of passing through the Alternative instance of the inner type
15:17:02 dextaa4 joins (~DV@user/dextaa)
15:17:09 <Profpatsch> But I can use Monoid I guess
15:19:10 × dextaa quits (~DV@user/dextaa) (Ping timeout: 250 seconds)
15:19:10 dextaa4 is now known as dextaa
15:20:48 × nilradical quits (~nilradica@user/naso) ()
15:22:47 ajb joins (~ajb@mimas.whatbox.ca)
15:25:25 × dextaa quits (~DV@user/dextaa) (Ping timeout: 272 seconds)
15:26:34 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
15:28:27 × jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
15:29:14 × jco quits (~jco@90-228-194-139-no542.tbcn.telia.com) (Remote host closed the connection)
15:30:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:30:28 dextaa joins (~DV@user/dextaa)
15:31:43 ajb joins (~ajb@mimas.whatbox.ca)
15:31:49 × dextaa quits (~DV@user/dextaa) (Client Quit)
15:32:55 dextaa joins (~DV@user/dextaa)
15:32:57 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
15:33:29 ChaiTRex joins (~ChaiTRex@user/chaitrex)
15:34:43 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
15:35:47 kuribas` joins (~user@silversquare.silversquare.eu)
15:36:34 × kuribas quits (~user@silversquare.silversquare.eu) (Read error: Connection reset by peer)
15:39:26 ajb joins (~ajb@mimas.whatbox.ca)
15:41:13 <davean> Profpatsch: You can of course use applicative to Alternative the interiors of the IO actions, but the IO actions themselves have to be Alternative because they also encode failing.
15:43:10 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
15:43:30 × quintasan_ quits (~quassel@quintasan.pl) ()
15:43:41 quintasan joins (~quassel@quintasan.pl)
15:45:46 boxscape_ joins (~boxscape_@81.191.27.107)
15:47:22 × kuribas` quits (~user@silversquare.silversquare.eu) (Remote host closed the connection)
15:49:29 × ahrat quits (~ahrat@user/ahrat) (Ping timeout: 272 seconds)
15:49:50 × dextaa quits (~DV@user/dextaa) (Quit: Leaving)
15:49:51 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
15:50:27 ahrat joins (~ahrat@user/ahrat)
15:50:50 dextaa joins (~DV@user/dextaa)
15:54:03 ajb joins (~ajb@mimas.whatbox.ca)
15:56:30 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
15:56:57 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
15:57:57 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:58:36 × Tuplanolla quits (~Tuplanoll@91-159-69-240.elisa-laajakaista.fi) (Ping timeout: 250 seconds)
15:59:20 ajb joins (~ajb@mimas.whatbox.ca)
16:00:05 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection)
16:00:06 × aaronv quits (~aaronv@user/aaronv) (Quit: You have been kicked for being idle)
16:00:35 <jonathanx> when I store data in a TVar (though newTVar/writeTVar), is the data evaluated fully?
16:00:48 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
16:01:08 <jonathanx> or can data in a TVar be in the form of unevaluated thunks?
16:02:15 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
16:03:11 × Kaiepi quits (~Kaiepi@108.175.84.104) (Quit: Leaving)
16:04:24 <geekosaur> pretty sure it's like any other *ref/*var and can hold thunks. consider using $!
16:04:24 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
16:04:34 o-90 joins (~o-90@gateway/tor-sasl/o-90)
16:08:08 Kaiepi joins (~Kaiepi@108.175.84.104)
16:09:56 ajb joins (~ajb@mimas.whatbox.ca)
16:10:27 nate2 joins (~nate@98.45.169.16)
16:10:32 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
16:11:17 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection)
16:12:20 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:12:48 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:12:56 × ajb quits (~ajb@mimas.whatbox.ca) (Quit: bye)
16:14:12 Tuplanolla joins (~Tuplanoll@91-159-68-111.elisa-laajakaista.fi)
16:15:42 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
16:16:08 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
16:17:57 × nschoe quits (~q@2a01:e0a:8e:a190:6b6f:b6f8:7b03:5cf7) (Ping timeout: 240 seconds)
16:22:19 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
16:23:56 econo joins (uid147250@user/econo)
16:28:12 Guest47 joins (~Guest47@106.203.214.117)
16:32:22 × Guest47 quits (~Guest47@106.203.214.117) (Client Quit)
16:33:38 × detuneattune quits (~detuneatt@user/detuneattune) (Quit: The Lounge - https://thelounge.chat)
16:38:12 redmp joins (~redmp@mobile-166-137-178-135.mycingular.net)
16:38:17 × merijn quits (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
16:38:58 WzC joins (~Frank@77-162-168-71.fixed.kpn.net)
16:39:12 coldtom4 joins (~coldtom@coldrick.cc)
16:39:13 caubert_ joins (~caubert@user/caubert)
16:39:13 × Square quits (~a@user/square) (Ping timeout: 252 seconds)
16:39:13 × x88x88x quits (~x88x88x@149.28.53.172) (Ping timeout: 252 seconds)
16:39:16 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
16:39:20 L29Ah joins (~L29Ah@wikipedia/L29Ah)
16:39:34 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:ac5b:f1ab:700:d86f) (Quit: WeeChat 2.8)
16:39:57 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds)
16:39:57 × tstat quits (~tstat@user/tstat) (Ping timeout: 252 seconds)
16:39:57 × Trattue quits (~Trattue@152.70.182.158) (Ping timeout: 252 seconds)
16:40:16 justache joins (~justache@user/justache)
16:40:19 orcus- joins (~orcus@user/brprice)
16:40:19 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
16:40:19 × Logio quits (em@kapsi.fi) (Ping timeout: 252 seconds)
16:40:19 × orcus quits (~orcus@user/brprice) (Ping timeout: 252 seconds)
16:40:19 × dfordivam1 quits (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (Ping timeout: 252 seconds)
16:40:19 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 252 seconds)
16:40:20 × Hecate quits (~mariposa@user/hecate) (Ping timeout: 252 seconds)
16:40:26 drewolson0 joins (~drewolson@user/drewolson)
16:40:29 polux3 joins (~polux@51-15-169-172.rev.poneytelecom.eu)
16:40:41 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 252 seconds)
16:40:41 × WarzoneCommand quits (~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 252 seconds)
16:40:41 × gabiruh_ quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
16:40:41 × heath quits (~heath@user/heath) (Ping timeout: 252 seconds)
16:40:41 × maerwald quits (~maerwald@user/maerwald) (Ping timeout: 252 seconds)
16:40:41 × c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 252 seconds)
16:40:41 × tolt quits (~weechat-h@li219-154.members.linode.com) (Ping timeout: 252 seconds)
16:40:41 × int-e quits (~noone@int-e.eu) (Ping timeout: 252 seconds)
16:40:42 × alp quits (~alp@user/alp) (Ping timeout: 252 seconds)
16:40:42 × hippoid quits (~idris@user/hippoid) (Ping timeout: 252 seconds)
16:40:42 × polux quits (~polux@51-15-169-172.rev.poneytelecom.eu) (Ping timeout: 252 seconds)
16:40:42 × koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Ping timeout: 252 seconds)
16:40:42 maerwald_ joins (~maerwald@mail.hasufell.de)
16:40:42 polux3 is now known as polux
16:40:51 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
16:40:56 YoungFrawg joins (~youngfrog@2a02:a03f:ca07:f900:79d4:df1f:2403:242a)
16:41:03 × Unode quits (~Unode@194.94.44.220) (Ping timeout: 252 seconds)
16:41:03 × rodental quits (~rodental@38.146.5.222) (Ping timeout: 252 seconds)
16:41:03 × shane quits (~shane@ana.rch.ist) (Ping timeout: 252 seconds)
16:41:03 × foul_owl quits (~kerry@23.82.194.107) (Ping timeout: 252 seconds)
16:41:03 × mmaruseacph2 quits (~mihai@198.199.98.239) (Ping timeout: 252 seconds)
16:41:03 × kjak quits (~kjak@pool-108-31-114-135.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
16:41:03 × chymera quits (~chymera@ns1000526.ip-51-81-46.us) (Ping timeout: 252 seconds)
16:41:03 × YoungFrog quits (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 252 seconds)
16:41:04 × SIben quits (~SIben@ns3106586.ip-5-135-191.eu) (Ping timeout: 252 seconds)
16:41:04 × kosmikus quits (~kosmikus@nullzig.kosmikus.org) (Ping timeout: 252 seconds)
16:41:04 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Ping timeout: 252 seconds)
16:41:04 × Techcable quits (~Techcable@user/Techcable) (Ping timeout: 252 seconds)
16:41:04 × caubert quits (~caubert@user/caubert) (Ping timeout: 252 seconds)
16:41:04 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 252 seconds)
16:41:04 × akhesacaro quits (~caro@212-83-144-58.rev.poneytelecom.eu) (Ping timeout: 252 seconds)
16:41:04 × telser_ quits (~quassel@user/telser) (Ping timeout: 252 seconds)
16:41:04 × drewolson quits (~drewolson@user/drewolson) (Ping timeout: 252 seconds)
16:41:04 × coldtom quits (~coldtom@coldrick.cc) (Ping timeout: 252 seconds)
16:41:04 × _________ quits (~nobody@user/noodly) (Ping timeout: 252 seconds)
16:41:05 drewolson0 is now known as drewolson
16:41:05 coldtom4 is now known as coldtom
16:41:16 Unode joins (~Unode@194.94.44.220)
16:41:20 Trattue joins (~Trattue@152.70.182.158)
16:41:25 × koolazer quits (~koo@user/koolazer) (Ping timeout: 252 seconds)
16:41:25 × bcoppens quits (~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 252 seconds)
16:41:25 × isamiamsam quits (~d@zukertort.childrenofmay.org) (Ping timeout: 252 seconds)
16:41:25 × hexeme quits (~hexeme@user/hexeme) (Ping timeout: 252 seconds)
16:41:25 × tdammers quits (~tdammers@77.109.72.118.res.static.edpnet.net) (Ping timeout: 252 seconds)
16:41:25 × davean quits (~davean@davean.sciesnet.net) (Ping timeout: 252 seconds)
16:41:25 × piele quits (~piele@tbonesteak.creativeserver.net) (Ping timeout: 252 seconds)
16:41:25 × justHaunted quits (~justache@user/justache) (Ping timeout: 252 seconds)
16:41:25 × pie_ quits (~pie_bnc@user/pie/x-2818909) (Ping timeout: 252 seconds)
16:41:26 × sm[i] quits (~user@plaintextaccounting/sm) (Ping timeout: 252 seconds)
16:41:26 × Rembane quits (~Rembane@li346-36.members.linode.com) (Ping timeout: 252 seconds)
16:41:27 hexeme_ joins (~hexeme@user/hexeme)
16:41:47 × fjmorazan quits (~quassel@user/fjmorazan) (Ping timeout: 252 seconds)
16:41:47 × Zemyla quits (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com) (Ping timeout: 252 seconds)
16:41:47 × cross quits (~cross@spitfire.i.gajendra.net) (Ping timeout: 252 seconds)
16:41:47 × tessier quits (~treed@98.171.210.130) (Ping timeout: 252 seconds)
16:41:47 × robbert-vdh quits (~robbert@robbertvanderhelm.nl) (Ping timeout: 252 seconds)
16:41:47 × carbolymer quits (~carbolyme@dropacid.net) (Ping timeout: 252 seconds)
16:41:49 pie_ joins (~pie_bnc@user/pie/x-2818909)
16:41:49 piele joins (~piele@tbonesteak.creativeserver.net)
16:41:55 telser joins (~quassel@user/telser)
16:41:57 YoungFrawg is now known as YoungFrog
16:42:03 carbolymer joins (~carbolyme@dropacid.net)
16:42:03 fjmorazan joins (~quassel@user/fjmorazan)
16:42:12 Logio joins (em@kapsi.fi)
16:42:12 chymera joins (~chymera@ns1000526.ip-51-81-46.us)
16:42:15 Hecate joins (~mariposa@user/hecate)
16:42:24 Maxdamantus joins (~Maxdamant@user/maxdamantus)
16:42:25 kosmikus joins (~kosmikus@nullzig.kosmikus.org)
16:42:36 heath joins (~heath@user/heath)
16:42:37 int-e joins (~noone@int-e.eu)
16:42:37 dfordivam1 joins (~dfordivam@tk2-219-19469.vs.sakura.ne.jp)
16:42:38 koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com)
16:42:38 hippoid joins (~idris@user/hippoid)
16:42:42 tolt joins (~weechat-h@li219-154.members.linode.com)
16:42:43 alpm joins (~alp@user/alp)
16:42:49 shane joins (~shane@ana.rch.ist)
16:42:51 barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk)
16:42:56 SIben joins (~SIben@ns3106586.ip-5-135-191.eu)
16:42:56 kjak joins (~kjak@pool-108-31-114-135.washdc.fios.verizon.net)
16:42:58 mmaruseacph2 joins (~mihai@198.199.98.239)
16:43:01 Zemyla joins (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com)
16:43:04 _________ joins (~nobody@user/noodly)
16:43:07 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
16:43:07 Techcable joins (~Techcable@user/Techcable)
16:43:08 bcoppens joins (~bartcopp@vpn2.bartcoppens.be)
16:43:19 Rembane joins (~Rembane@li346-36.members.linode.com)
16:43:21 isamiamsam joins (~d@zukertort.childrenofmay.org)
16:43:27 koolazer joins (~koo@user/koolazer)
16:43:35 tessier joins (~treed@98.171.210.130)
16:43:39 robbert-vdh joins (~robbert@robbertvanderhelm.nl)
16:43:52 cross joins (~cross@spitfire.i.gajendra.net)
16:43:59 tstat joins (~tstat@user/tstat)
16:44:00 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
16:45:50 x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
16:46:11 × niko quits (niko@libera/staff/niko) (Ping timeout: 608 seconds)
16:47:18 Square joins (~a@user/square)
16:47:24 c_wraith joins (~c_wraith@adjoint.us)
16:48:07 sm[i] joins (~user@plaintextaccounting/sm)
16:48:50 nschoe joins (~q@2a01:e0a:8e:a190:8a5e:a72c:c353:f747)
16:51:46 ajb joins (~ajb@mimas.whatbox.ca)
16:52:29 × ajb quits (~ajb@mimas.whatbox.ca) (Read error: Connection timed out)
16:53:23 niko joins (niko@libera/staff/niko)
16:53:33 rodental joins (~rodental@38.146.5.222)
16:54:12 davean joins (~davean@davean.sciesnet.net)
16:54:12 tdammers joins (~tdammers@77.109.72.118.res.static.edpnet.net)
16:54:54 foul_owl joins (~kerry@23.82.194.107)
16:56:24 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
16:56:39 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
16:58:03 justache is now known as justHaunted
16:58:25 titibandit joins (~titibandi@xdsl-87-78-36-34.nc.de)
16:58:52 thyriaen joins (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
17:00:08 × wonko quits (~wjc@user/wonko) (Ping timeout: 250 seconds)
17:01:28 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:02:40 EvanR_ is now known as EvanR
17:05:24 merijn joins (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl)
17:06:21 akhesacaro joins (~caro@212-83-144-58.rev.poneytelecom.eu)
17:08:21 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
17:10:18 × titibandit quits (~titibandi@xdsl-87-78-36-34.nc.de) (Remote host closed the connection)
17:22:12 × beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 260 seconds)
17:25:30 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
17:28:51 beteigeuze joins (~Thunderbi@89.187.168.55)
17:29:43 finsternis joins (~X@23.226.237.192)
17:30:22 × shapr quits (~user@net-5-88-239-29.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
17:33:04 × beteigeuze quits (~Thunderbi@89.187.168.55) (Ping timeout: 250 seconds)
17:34:37 × raym quits (~ray@user/raym) (Ping timeout: 240 seconds)
17:36:45 raym joins (~ray@user/raym)
17:38:57 × mixfix41 quits (~sdeny9ee@user/mixfix41) (Ping timeout: 240 seconds)
17:46:38 ajb joins (~ajb@mimas.whatbox.ca)
17:49:00 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:49:21 × ajb quits (~ajb@mimas.whatbox.ca) (Read error: Connection timed out)
17:51:32 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection)
17:53:58 ajb joins (~ajb@mimas.whatbox.ca)
17:54:11 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
17:55:26 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
17:56:59 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
17:57:11 ajb joins (~ajb@mimas.whatbox.ca)
18:00:16 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
18:00:16 × Vajb quits (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
18:00:33 Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
18:00:41 × boxscape_ quits (~boxscape_@81.191.27.107) (Remote host closed the connection)
18:00:58 boxscape_ joins (~boxscape_@81.191.27.107)
18:04:51 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:05:40 ft joins (~ft@p3e9bc845.dip0.t-ipconnect.de)
18:06:43 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
18:06:54 alpm is now known as alp
18:09:49 mvk joins (~mvk@2607:fea8:5ce3:8500::a80f)
18:10:49 × mbuf quits (~Shakthi@49.204.140.84) (Quit: Leaving)
18:17:28 × Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
18:19:02 Vajb joins (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
18:20:54 × koz quits (~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in)
18:21:39 koz joins (~koz@121.99.240.58)
18:25:23 ajb joins (~ajb@mimas.whatbox.ca)
18:28:25 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
18:30:00 × SethTisue quits (sid14912@id-14912.ilkley.irccloud.com) ()
18:30:10 SethTisue joins (sid14912@id-14912.ilkley.irccloud.com)
18:30:35 ajb joins (~ajb@mimas.whatbox.ca)
18:31:05 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds)
18:31:07 zeenk joins (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
18:33:31 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
18:35:36 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
18:36:57 × nschoe quits (~q@2a01:e0a:8e:a190:8a5e:a72c:c353:f747) (Quit: Switching off)
18:45:42 × lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.7.1)
18:46:22 ajb joins (~ajb@mimas.whatbox.ca)
18:46:35 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
18:49:22 × ajb quits (~ajb@mimas.whatbox.ca) (Quit: bye)
18:54:06 × hnOsmium0001 quits (uid453710@user/hnOsmium0001) (Ping timeout: 264 seconds)
18:57:41 hnOsmium0001 joins (uid453710@user/hnOsmium0001)
18:59:00 danza joins (~francesco@151.43.89.78)
18:59:12 talismanick joins (~talismani@76.133.152.122)
19:05:40 phma_ joins (phma@2001:5b0:211f:f528:7435:f7cd:de72:7162)
19:05:48 × fserucas|eod quits (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
19:07:24 coot joins (~coot@213.134.171.3)
19:09:26 × phma quits (~phma@2001:5b0:211f:f528:7435:f7cd:de72:7162) (Ping timeout: 276 seconds)
19:16:33 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection)
19:25:45 dextaa2 joins (~DV@user/dextaa)
19:27:57 × dextaa quits (~DV@user/dextaa) (Ping timeout: 240 seconds)
19:27:57 dextaa2 is now known as dextaa
19:30:57 × redmp quits (~redmp@mobile-166-137-178-135.mycingular.net) (Ping timeout: 240 seconds)
19:31:22 × danza quits (~francesco@151.43.89.78) (Ping timeout: 255 seconds)
19:41:13 redmp joins (~redmp@mobile-166-137-178-135.mycingular.net)
19:43:45 × boxscape_ quits (~boxscape_@81.191.27.107) (Remote host closed the connection)
19:44:08 danza joins (~francesco@ca-18-217-177.service.infuturo.it)
20:00:43 × redmp quits (~redmp@mobile-166-137-178-135.mycingular.net) (Ping timeout: 246 seconds)
20:02:48 redmp joins (~redmp@mobile-166-177-249-89.mycingular.net)
20:06:02 × zebrag quits (~chris@user/zebrag) (Ping timeout: 250 seconds)
20:11:19 × redmp quits (~redmp@mobile-166-177-249-89.mycingular.net) (Ping timeout: 272 seconds)
20:11:57 nate2 joins (~nate@98.45.169.16)
20:13:09 kuribas joins (~user@ptr-17d51epif3m378oeqcg.18120a2.ip6.access.telenet.be)
20:14:45 noctux1 is now known as noctuks
20:15:39 <kuribas> dynamic types are so intuitive! The types don't get in the way!
20:15:44 <kuribas> "TypeError: only integer scalar arrays can be converted to a scalar index"
20:16:52 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds)
20:17:03 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a)
20:17:06 phma_ is now known as phma
20:17:28 redmp joins (~redmp@mobile-166-177-249-89.mycingular.net)
20:18:13 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
20:20:52 × caubert_ quits (~caubert@user/caubert) (Remote host closed the connection)
20:21:04 caubert joins (~caubert@user/caubert)
20:21:38 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 250 seconds)
20:24:30 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:24:45 <EvanR> were you trying to use a double array as an index
20:25:06 <kuribas> should be in #haskell-offtopic, sorry
20:25:08 <EvanR> if so, a dynamic typicist might say that should work
20:25:25 <kuribas> I was just concatenating an three arrays in python
20:26:44 <EvanR> I went to see if I could reproduce that and realized ubuntu encouraged me to uninstall python last week
20:26:56 <EvanR> so I did lol
20:27:24 <kuribas> numpy.concatenate(numpy.repeat(0.0, 30), irfft([0 if x < 10 else x - 10 for x in range(20)]))
20:28:49 <kuribas> ah, the first argument is a list
20:35:18 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
20:39:18 <EvanR> yeah I vaguely remember working in languages X and Y where no one seemed to know what the arguments were supposed to be, it was something you just had to feel
20:39:34 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
20:39:53 <EvanR> sometimes attempts were made at documentation
20:40:41 <EvanR> arguments and return type(s)
20:40:42 <kuribas> EvanRI guess looking at the source code?
20:41:22 <EvanR> for return types yeah a lot of looking at source because that was more rarely documented
20:46:37 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Ping timeout: 240 seconds)
20:47:24 × mmhat quits (~mmh@p200300f1c730762dee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
20:49:14 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:53:24 dkeohane joins (~dkeohane@csm-wl-dhcp-207-224.mines.edu)
20:54:00 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
20:56:02 mastarija joins (~mastarija@188.252.197.165)
20:56:33 <mastarija> is there a way to see some intermediate representation code of a haskell program
20:56:54 <mastarija> For example, code that is a result of a tail call optimization?
20:57:05 <mastarija> *elimination
20:57:32 polo joins (~polo@user/polo)
20:57:45 <geekosaur> -ddump-ds to the compiler
20:58:19 <geekosaur> although tail call elimination isn't reallly a thing: all calls are tail calls and CPS
20:58:38 × merijn quits (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
20:59:09 × coot quits (~coot@213.134.171.3) (Quit: coot)
21:00:15 <mastarija> Ok, that's the flag I was looking for
21:00:17 <mastarija> Thanks!
21:01:09 mmhat joins (~mmh@p200300f1c73076dbee086bfffe095315.dip0.t-ipconnect.de)
21:02:20 <monochrom> Most of the intermediate representations (ds, core, stg) will not disambiguate it because they are all still functional languages.
21:02:33 <geekosaur> also most of the optimizations happen to the core representation, and ds is the first core stage, not the last
21:02:52 <monochrom> The first intermediate form that actually says "allocate heap" or "push stack" is Cmm.
21:03:24 <monochrom> Alternatively the black box observation is benchmarking and possibily profiling.
21:04:30 <mastarija> So, -ddump-opt-cmm is also something to look at.
21:04:40 <mastarija> I'm not really optimizing anything, just exploring a little
21:04:57 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
21:05:28 × thyriaen quits (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Ping timeout: 246 seconds)
21:05:44 <geekosaur> be aware that the code is already CPS-transformed at that point, so will be harder to follow than imperative-style code
21:07:07 <monochrom> When it's my turn to look at these things, I use the full suite -ddump-simpl -ddump-prep -ddump-final-stg -ddump-<one of the cmms> -ddump-asm so I have all the stepping stones I need to connect Haskell to asm.
21:07:26 chexum joins (~quassel@gateway/tor-sasl/chexum)
21:07:51 <monochrom> Plus https://github.com/takenobu-hs/haskell-ghc-illustrated for background knowledge.
21:07:57 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
21:09:35 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:10:08 ajb joins (~ajb@mimas.whatbox.ca)
21:10:21 <monochrom> My view is that once you desugar "jsr xxx ... ret" to "push foo, jmp xxx ... pop bx, jmp bx" you no longer see a difference between "call - return" and CPS.
21:10:37 × danza quits (~francesco@ca-18-217-177.service.infuturo.it) (Ping timeout: 240 seconds)
21:11:25 × ajb quits (~ajb@mimas.whatbox.ca) (Read error: Connection timed out)
21:11:31 <monochrom> because the latter is CPS but it's call-return desugared.
21:12:09 <monochrom> Corollary: Unpopular opinion: RISC does hardware CPS transform >:)
21:12:50 <geekosaur> https://play-haskell.tomsmeding.com/ may also be of interest
21:13:09 <geekosaur> note the buttons at top left to request various kinds of dumps
21:13:58 <mastarija> Nice resources. Thanks.
21:14:11 <mastarija> I didn't know about the ghc illustrated :)
21:14:38 × polo quits (~polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:15:53 <mastarija> what would be a good flag to check if rewrite rules have been applied?
21:16:08 ajb joins (~ajb@mimas.whatbox.ca)
21:16:25 <geekosaur> -ddump-rule-firings
21:17:22 <geekosaur> note that this only tells you that a rule fired, not what it did; I don't recall off the top of my head how you get that
21:18:29 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c48:38cf:dc4d:4fed)
21:19:08 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
21:22:44 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c48:38cf:dc4d:4fed) (Ping timeout: 250 seconds)
21:23:25 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:24:07 polo joins (~polo@user/polo)
21:24:10 merijn joins (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl)
21:28:09 <mastarija> Does haskell do any optimisations to a code like this? `sum (x:xs) = x + sum xs`
21:29:40 <mastarija> I don't quite understand if rewrite rules can be used to rewrite patterns like `f (x:xs) = x `op` f xs` in terms of `foldr` or something.
21:34:57 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 240 seconds)
21:36:12 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:36:25 × mastarija quits (~mastarija@188.252.197.165) (Quit: Leaving)
21:37:39 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
21:40:00 <geekosaur> @tell mastarija no, because it would have different strictness (pattern matches are strict unless using ~, folds are usually lazy)
21:40:00 <lambdabot> Consider it noted.
21:40:38 <geekosaur> @tell mastarija rewrite rules are generally very careful to maintain the strictness guarantees of the original code
21:40:38 <lambdabot> Consider it noted.
21:43:19 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:43:57 × polo quits (~polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:44:31 polo joins (~polo@user/polo)
21:47:18 × polo quits (~polo@user/polo) (Client Quit)
21:47:25 freeside joins (~mengwong@103.252.202.193)
21:51:57 × acidjnk quits (~acidjnk@p200300d6e7137a282ddda09dd97b606e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
21:53:50 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
21:58:17 × merijn quits (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
22:00:12 dfee joins (~dfee@162-227-164-101.lightspeed.sntcca.sbcglobal.net)
22:00:31 <dfee> how accurate are download counts on hackage?
22:02:07 ajb joins (~ajb@mimas.whatbox.ca)
22:04:30 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:05:02 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
22:05:36 <geekosaur> not sure "accurate" is meaningful without other information (like, is it per month or what?)
22:05:55 ajb joins (~ajb@mimas.whatbox.ca)
22:06:14 <geekosaur> not information from you, to be clear. I'm not sure it's even meaningful much less accurate…
22:06:56 <geekosaur> might be a question for #haskell-infrastructure, I think (#hackage is more for the cabal side of it)
22:06:56 × chomwitt quits (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) (Ping timeout: 250 seconds)
22:07:07 <dfee> i'm trying to understand the size of the haskell community. i see that the most popular package is `aeson` and it has 1314 downloads in the last 30 days.
22:08:14 <geekosaur> well, it's not the largest community out there. and download counts will be fuzzed by caching (possibly including server side)
22:08:55 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
22:09:15 <geekosaur> that said, aeson is pretty commonly used, but only by programs for web dev. there's more than that out there, and in fact I've never written a web server or client in haskell
22:09:17 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
22:09:26 <dfee> i don't know too much about haskell – though i like the FP nature of it – but am kinda wondering if i should build a product in it, or dedicate that time to another language; e.g. scala or rust.
22:09:56 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
22:10:07 <dfee> most of the work i do is web dev. a lot of python, java, typescript (node and web), etc.
22:10:14 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
22:11:51 <dfee> a fairly typical web dev concept is GraphQL; this is a sort of bellwether for $webdev in any language. but it's surprising that Haskell doesn't have a very strong/straightforward story here.
22:12:47 <dfee> i've identified both morpheus and mu-haskell, but haven't found significant buy-in anywhere i've looked (e.g. r/haskell or HN)
22:13:23 <dfee> but as to "why haskell?", there's something about it that just feels... kinda beautiful.
22:23:56 Midjak joins (~Midjak@82.66.147.146)
22:29:21 q0r joins (~user@162.255.84.96)
22:30:52 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:31:24 polo joins (~polo@user/polo)
22:38:29 × kuribas quits (~user@ptr-17d51epif3m378oeqcg.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
22:39:27 jmdaemon joins (~jmdaemon@user/jmdaemon)
22:39:31 × michalz quits (~michalz@185.246.207.200) (Remote host closed the connection)
22:39:47 × mmhat quits (~mmh@p200300f1c73076dbee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
22:40:32 <sm> isn't there a bunch of graphql stuff in haskell ?
22:40:50 × Tuplanolla quits (~Tuplanoll@91-159-68-111.elisa-laajakaista.fi) (Quit: Leaving.)
22:41:12 <sm> https://hasura.io being the most prominent
22:42:23 <sm> ah, you found two. If it's not straightforward, that would certainly be not too unusual
22:42:46 × dkeohane quits (~dkeohane@csm-wl-dhcp-207-224.mines.edu) (Ping timeout: 246 seconds)
22:43:40 merijn joins (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl)
22:45:13 <sm> straightfoward is not always our forté..
22:48:32 × merijn quits (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
22:50:54 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 272 seconds)
22:53:21 zebrag joins (~chris@user/zebrag)
22:54:56 jmorris joins (uid537181@id-537181.uxbridge.irccloud.com)
22:55:48 <dfee> sm my concern with hasura is that it's almost to much of a behemoth. maybe that's a good thing (i should think), but my concern is that i'm not starting with my project in mind.
22:55:54 <dfee> *"product" in mind
22:57:00 <dfee> alas, sm another question for you – how did you get started. i've been reading "from first principles", and it's been generally good, but i'm not really doing anything of merit. i need to get my hands dirty *and* read that book.
22:57:45 <dfee> to be honest, i think the "quickstart" of haskell leaves some confusion. there's stack, cabal, nix, etc. where should i even start?
23:01:21 <sm> dfee, you're not alone, it's a daily FAQ. Recently community consensus and haskell.org's download page have converged on ghcup, check that
23:01:42 <sm> previously, and even still today, "just stack" is also a fine answer
23:01:53 ajb joins (~ajb@mimas.whatbox.ca)
23:02:22 <dfee> + bazel, as i saw tweag had an article on it the other day: https://www.tweag.io/blog/2022-10-20-bazel-example-servant-elm-1/
23:02:38 <sm> I forget what resources worked for me, it took time and several attempts. Tons more resources now, eg
23:02:38 <sm> @where books
23:02:38 <lambdabot> See `LYAH',`RWH',`YAHT',`SOE',`HR',`PIH',`TFwH',`wikibook',`PCPH',`HPFFP',`FSAF',`HftVB',`HTAC',`TwT',`FoP',`PFAD',`WYAH',`non-haskell-books'. Also https://www.extrema.is/articles/haskell-books,
23:02:38 <lambdabot> https://www.vex.net/~trebla/haskell/learn-sources
23:02:45 <sm> @where links
23:02:45 <lambdabot> https://haskell-links.org collected Haskell links and search tools, including @where links
23:04:54 × ajb quits (~ajb@mimas.whatbox.ca) (Quit: bye)
23:08:53 <sm> well, among other things I read all manuals and survival guides for ghc, ghc-pkg, cabal, stack, .... which maybe wasn't quick but certainly helped
23:09:11 ubert1 joins (~Thunderbi@77.119.201.227.wireless.dyn.drei.com)
23:10:37 × ubert quits (~Thunderbi@178.165.171.4.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
23:10:37 ubert1 is now known as ubert
23:11:20 <sm> lots of ways to get your hands dirty, depending on what you want to master
23:11:37 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 240 seconds)
23:12:48 <sm> "building random haskell sh*t" is a good one
23:16:31 <Axman6> dfee: I would strongly recommend against deciding on Scala above Haskell, I've been using it in my dfay job and I've been shocked how awful it is as a language. They've somehow managed tot ake all the worst parts of Java and Haskell, and glue them together in ways that feel completely inconsistent. I'm so strongly convinced it's an awful choice that I've updated my linkedin profile to specifically tell recruiters to not bother me with Scala jobs. Haskell is a
23:16:31 <Axman6> simepl language, with unlimited abstraction; Scala is a language you're always having tofight to get it to do what should be simple.
23:16:48 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
23:18:10 freeside joins (~mengwong@103.252.202.193)
23:18:12 <sm> go and rust are both nice for a little contrast to complement haskell
23:18:32 × polo quits (~polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:19:08 <Axman6> dfee: Hasura provides one of the best GraphQL servers around, which can sit in front of several RDBMSs, all written in Haskell. I'm not sure what the client side of GraphQL looks like, but I'm sure there must be a few options
23:19:22 ajb joins (~ajb@mimas.whatbox.ca)
23:20:07 <Axman6> sm: eh, Rust is fine, but Go has always felt like it was intentionally designed to be insulting to software engineers; "You're too dumb to use the 'advanced' features like Generics, or concurrency in any other form than the one we think is cute"
23:20:28 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5107:bda4:d7f3:6fa)
23:21:01 <sm> Axman6: I hear you, but I spent some time with it the other day, and dropped that mindset; it's not competing with haskell/rust, it's more like a really great scripting language
23:21:16 <sm> with strengths of its own, like being straightforward
23:21:16 <hpc> a compiled scripting language?
23:21:21 <sm> yup
23:21:59 <jackdk> It seems to attract a lot of people who became fed up with Python for various reasons
23:22:11 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
23:22:17 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
23:22:46 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 250 seconds)
23:24:40 ajb joins (~ajb@mimas.whatbox.ca)
23:24:56 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5107:bda4:d7f3:6fa) (Ping timeout: 250 seconds)
23:25:29 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
23:25:34 <Axman6> I struggle to see it as a better python too, python provides much more to the developer, and the benefits of faster execution really don't outweigh the costs of having to copy and paste the same code again and again because 'developers are too dumb to need abstraction'
23:26:15 <sm> go's much better at packaging/cross compilation/easy deployment I'd say
23:26:25 <hpc> go has since added templating
23:26:51 <hpc> i guess developers are too stupid for java-style generics, but they are smart enough for c++ style templating?
23:27:06 <Axman6> which is notiously simple...
23:27:20 pavonia joins (~user@user/siracusa)
23:27:35 × ajb quits (~ajb@mimas.whatbox.ca) (Client Quit)
23:28:35 <hpc> although, maybe the trend isn't to go from python to a language that lets them do more, but the opposite
23:28:41 <sm> go is limiting but the strong KISS aesthetic is a refreshing feature
23:29:07 <hpc> because if you look back instead, the migration to python was from perl, which is one of the most expressive languages ever
23:29:43 <hpc> maybe people really do just want to phone it in for $300k+options
23:29:52 <geekosaur> sm, imo you just explained why it's a replacement for python 🙂
23:31:11 <dolio> I don't think I'd really describe perl as very expressive.
23:31:37 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
23:33:12 <dolio> It might be very concise for certain jobs, but it's not great at various things outside those jobs.
23:33:40 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:33:47 <hpc> it has first-class functions, a better version of python's f-strings, a flexible function calling syntax with named arguments, varargs, and all sorts of things
23:33:59 <hpc> cpan was the first language-specific package manager
23:34:32 <Axman6> I listened to a podcast recently about cpan and it being the origin of package management
23:34:36 <hpc> all sorts of array slice syntax, the best string manipulation syntax of any language even to date
23:35:00 <geekosaur> I'd argue about that, actually
23:35:02 <hpc> it has the easiest way to execute other commands
23:35:08 sm too, nice history
23:35:25 <hpc> all of this back in the early 90s
23:35:31 <geekosaur> snobol/icon has as good string manipulation and it's way more readable
23:35:42 <dolio> I had to implement Turing machines in perl, and I had to fake multi-dimensional arrays as map lookups of strings "$i,$j".
23:35:45 <sm> CPAN has no central package repository, right ?
23:35:48 <geekosaur> and I say this as someone who loved perl
23:36:17 × son0p quits (~ff@181.136.122.143) (Ping timeout: 240 seconds)
23:36:37 <hpc> dolio: whaaaaaaat? perl totally could do that
23:37:49 <hpc> you can literally write $foo = [[1, 2, 3], [4, 5, 6]];
23:38:03 freeside joins (~mengwong@103.252.202.193)
23:38:18 <hpc> $foo[1][2] == 6
23:41:49 <jackdk> Axman6: Python is a very difficult language for me to understand, because I have to imagine "how would a rushed C programmer implement this?" to predict the behaviour of its runtime. Only then does its scoping rules, mutable default arguments, etc make sense to me.
23:46:00 × mvk quits (~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 272 seconds)
23:46:28 <yushyin> hpc: afair this only works since perl5, if dolio meant perl<5, it probably didn't work yet
23:46:37 × crns quits (~netcrns@user/crns) (Ping timeout: 260 seconds)
23:46:39 ajb joins (~ajb@mimas.whatbox.ca)
23:46:47 <dolio> I don't really recall.
23:47:54 crns joins (~netcrns@p5dc33e65.dip0.t-ipconnect.de)
23:47:54 × crns quits (~netcrns@p5dc33e65.dip0.t-ipconnect.de) (Changing host)
23:47:54 crns joins (~netcrns@user/crns)
23:48:13 <monochrom> hpc: In "$foo = [[1, 2, 3], [4, 5, 6]];", should it really be $? @?
23:48:26 <monochrom> which is my beef with Perl.
23:48:27 × caryhartline quits (~caryhartl@2600:1700:2d0:8d30:7075:e274:b18d:7a76) (Quit: caryhartline)
23:49:42 <jackdk> I think that sets `$foo` to an array reference, which is a scalar value
23:49:49 <jackdk> but I haven't written any perl for a long long time
23:50:20 <Axman6> The only perl I ever wrote was an irssi plugin... I think it was to share what you were listenting to in iTunes, when that was a thing people did
23:50:31 <Axman6> might have been a system info thing actually
23:51:55 <Axman6> ah, it was a Growl notification thing (the precursor to proper notification on Mac OS X - someone stuck it on github ten years ago: https://github.com/kfdm/irssi-growl)
23:52:13 <hpc> jackdk is right
23:52:26 <geekosaur[m]> Right, for that it would have needed to be $foo->[1][2]
23:52:29 <yushyin> $ is correct, it's a arrayref of arrayrefs. but you need $foo->[1][2]
23:52:55 <hpc> ah, right
23:53:07 <monochrom> SML's "foo = ref [[1,2,3], [4,5,6]]" would be much clearer.
23:53:14 <hpc> also, () denotes arrays/hashes, and []/{} denote references to arrays/hashes
23:53:35 <geekosaur[m]> Biggest problem with perl
23:53:37 <hpc> because of list flattening
23:53:46 <monochrom> So basically although Perl is unambiguous, it requires the reader to reverse engineer "how can $ make sense in this context?".
23:54:11 <yushyin> () denotes 'lists'
23:54:25 <hpc> it's like pointers
23:54:38 <hpc> (for better and worse)
23:54:57 merijn joins (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl)
23:55:30 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
23:56:21 <monochrom> No. It's like I don't tell you I'm 53 years old, I tell you my age mod 3 is 2, my age mod 5 is 3, my age mod 7 is 4, and I'm under 104.
23:58:00 <monochrom> It's like I don't use ADTs, I turn on RankNTypes and use System F and Church encoding all the time.
23:58:42 <monochrom> It's like I load an always-on ROT13 plugin into my IRC client.
23:59:06 <hpc> it's like they're not even monoids in the category of endofunctors, they're actually monads in the 2-category of monads
23:59:49 <dolio> You've got to use ADTs to define the non-strictly positive types that allow asymptotically more efficient operations on Church encodings. :þ

All times are in UTC on 2022-10-25.