Home liberachat/#haskell: Logs Calendar

Logs on 2021-10-04 (liberachat/#haskell)

00:00:34 × CiaoSen quits (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
00:02:52 Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
00:03:30 × gentauro quits (~gentauro@user/gentauro) (Ping timeout: 265 seconds)
00:03:58 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
00:07:01 × noircode quits (~noircode@bras-base-london1483w-grc-27-70-51-121-7.dsl.bell.ca) (Quit: noircode)
00:14:58 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
00:15:08 gentauro joins (~gentauro@user/gentauro)
00:20:32 × eggplant_ quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
00:21:07 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
00:22:40 × gentauro quits (~gentauro@user/gentauro) (Ping timeout: 252 seconds)
00:27:07 × Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
00:28:15 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
00:28:25 gentauro joins (~gentauro@user/gentauro)
00:29:05 × Morrow quits (~MorrowM_@147.161.8.124) (Read error: Connection reset by peer)
00:31:03 xlei joins (akans@pool-68-129-84-118.nycmny.fios.verizon.net)
00:32:06 noircode joins (~noircode@bras-base-london1483w-grc-27-70-51-121-7.dsl.bell.ca)
00:33:26 machinedgod joins (~machinedg@24.105.81.50)
00:39:02 syntactic_sugar joins (~amoljha@2601:644:8601:2e30::822c)
00:41:27 sprout joins (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76)
00:42:20 hiruji` joins (~hiruji@2606:6080:1002:8:3285:30e:de43:8809)
00:42:25 × hiruji quits (~hiruji@user/hiruji) (Read error: Connection reset by peer)
00:46:28 × sprout quits (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76) (Ping timeout: 252 seconds)
00:48:56 × mestre quits (~mestre@191.177.175.57) (Quit: leaving)
00:53:37 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
01:11:31 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
01:15:04 × xff0x quits (~xff0x@2001:1a81:5271:d100:cabc:9b33:6d47:3c5f) (Ping timeout: 252 seconds)
01:16:28 × noircode quits (~noircode@bras-base-london1483w-grc-27-70-51-121-7.dsl.bell.ca) (Quit: noircode)
01:16:45 xff0x joins (~xff0x@2001:1a81:52ac:b800:6148:6b8d:b98a:69f7)
01:17:45 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
01:24:51 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
01:25:40 × rembo10 quits (~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in)
01:26:54 shriekingnoise joins (~shrieking@186.137.144.80)
01:26:59 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
01:36:57 Vajb joins (~Vajb@85-76-12-121-nat.elisa-mobile.fi)
01:37:28 × Psybur quits (~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection)
01:43:20 jinsun joins (~quassel@user/jinsun)
01:52:52 × Gestotterd quits (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) (Remote host closed the connection)
01:53:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:55:46 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
02:04:40 × lemonsni- quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
02:15:12 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
02:18:40 × Vajb quits (~Vajb@85-76-12-121-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
02:18:57 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
02:22:12 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
02:24:23 × yinghua quits (~yinghua@2800:2121:1400:900:dcb4:546c:e7a3:d616) (Quit: Leaving)
02:25:43 × alx741 quits (~alx741@186.178.109.221) (Quit: alx741)
02:27:17 geekosaur joins (~geekosaur@xmonad/geekosaur)
02:27:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
02:39:27 lavaman joins (~lavaman@98.38.249.169)
02:39:27 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
02:40:36 MQ-17J joins (~MQ-17J@8.6.144.233)
02:44:04 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
02:46:39 × robertm quits (robertm@lattice.rojoma.com) (Quit: WeeChat 3.0)
02:48:46 robertm joins (robertm@lattice.rojoma.com)
02:51:50 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
02:58:52 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
02:59:30 × td_ quits (~td@muedsl-82-207-238-036.citykom.de) (Ping timeout: 268 seconds)
03:00:44 td_ joins (~td@94.134.91.189)
03:01:01 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:02:47 mbuf joins (~Shakthi@223.184.52.129)
03:04:58 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
03:05:59 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
03:06:43 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
03:08:47 alx741 joins (~alx741@186.178.109.221)
03:12:40 × alx741 quits (~alx741@186.178.109.221) (Client Quit)
03:13:46 × MQ-17J quits (~MQ-17J@8.6.144.233) (Ping timeout: 252 seconds)
03:14:03 MQ-17J joins (~MQ-17J@8.6.144.233)
03:19:21 sprout joins (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76)
03:31:24 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
03:34:10 hendursaga joins (~weechat@user/hendursaga)
03:41:06 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
03:42:01 fef joins (~thedawn@user/thedawn)
03:51:47 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
03:52:28 cheater joins (~Username@user/cheater)
04:00:06 pierrot_ is now known as pierrot
04:09:06 × syntactic_sugar quits (~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1)
04:09:06 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
04:11:04 × sprout quits (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76) (Ping timeout: 252 seconds)
04:12:07 noircode joins (~noircode@bras-base-london1483w-grc-27-70-51-121-7.dsl.bell.ca)
04:12:09 × retroid_ quits (~retro@176.255.22.194) (Quit: Connection error?!)
04:13:50 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
04:21:41 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
04:21:44 emf joins (~emf@2620:10d:c090:400::5:6163)
04:23:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:24:02 xiongxin joins (~quassel@119.123.103.95)
04:26:21 dolio joins (~dolio@130.44.130.54)
04:26:36 × dolio quits (~dolio@130.44.130.54) (Remote host closed the connection)
04:29:25 dolio joins (~dolio@130.44.130.54)
04:30:42 codolio joins (~dolio@130.44.130.54)
04:31:25 × dolio quits (~dolio@130.44.130.54) (Read error: Connection reset by peer)
04:33:12 × codolio quits (~dolio@130.44.130.54) (Client Quit)
04:33:59 dolio joins (~dolio@130.44.130.54)
04:37:32 falafel joins (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com)
04:38:07 falafel_ joins (~falafel@2603-8000-d800-688c-61b9-3ce8-a014-0678.res6.spectrum.com)
04:39:35 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
04:40:11 × falafel_ quits (~falafel@2603-8000-d800-688c-61b9-3ce8-a014-0678.res6.spectrum.com) (Remote host closed the connection)
04:40:36 falafel_ joins (~falafel@2603-8000-d800-688c-61b9-3ce8-a014-0678.res6.spectrum.com)
04:42:26 × falafel quits (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) (Ping timeout: 260 seconds)
04:45:04 × falafel_ quits (~falafel@2603-8000-d800-688c-61b9-3ce8-a014-0678.res6.spectrum.com) (Ping timeout: 252 seconds)
04:47:46 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 252 seconds)
04:54:08 noircode parts (~noircode@bras-base-london1483w-grc-27-70-51-121-7.dsl.bell.ca) (Good Bye)
04:54:29 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 245 seconds)
04:58:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
05:03:13 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
05:05:20 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
05:05:35 Vajb joins (~Vajb@85-76-12-137-nat.elisa-mobile.fi)
05:06:53 hyiltiz joins (~quassel@31.220.5.250)
05:07:37 × Vajb quits (~Vajb@85-76-12-137-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
05:08:53 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
05:15:25 chomwitt joins (~chomwitt@2a02:587:dc04:fc00:12c3:7bff:fe6d:d374)
05:16:53 × cjb quits (~cjb@user/cjb) (Read error: Connection reset by peer)
05:17:19 × rembo10_ quits (~rembo10@65.108.80.86) (Quit: ZNC 1.8.2 - https://znc.in)
05:17:58 rembo10 joins (~rembo10@65.108.80.86)
05:23:50 michalz joins (~michalz@185.246.204.93)
05:25:46 × Zer000 quits (~phil@64.137.132.26) (Ping timeout: 252 seconds)
05:30:03 benin0369323016 joins (~benin@183.82.205.238)
05:35:25 rtjure joins (~rtjure@bras-79-132-17-74.comnet.bg)
05:37:17 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:41:35 retroid_ joins (~retro@176.255.22.194)
05:43:12 lavaman joins (~lavaman@98.38.249.169)
05:45:31 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:46:42 kenran joins (~kenran@200116b82bc39c0005d8caac869328c5.dip.versatel-1u1.de)
05:50:04 × kenran quits (~kenran@200116b82bc39c0005d8caac869328c5.dip.versatel-1u1.de) (Client Quit)
05:50:28 kenran joins (~kenran@200116b82bc39c0005d8caac869328c5.dip.versatel-1u1.de)
05:51:00 × kenran quits (~kenran@200116b82bc39c0005d8caac869328c5.dip.versatel-1u1.de) (Client Quit)
05:57:06 kenran joins (~kenran@200116b82bc39c0005d8caac869328c5.dip.versatel-1u1.de)
06:00:18 Guest|4 joins (~Guest|4@user-109-243-214-26.play-internet.pl)
06:01:35 × Guest|4 quits (~Guest|4@user-109-243-214-26.play-internet.pl) (Client Quit)
06:03:14 × xiongxin quits (~quassel@119.123.103.95) (Ping timeout: 245 seconds)
06:03:29 vysn joins (~vysn@user/vysn)
06:12:36 jakalx parts (~jakalx@base.jakalx.net) ()
06:18:00 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
06:18:06 × byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 260 seconds)
06:19:30 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
06:22:07 sprout joins (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76)
06:22:31 lortabac joins (~lortabac@2a01:e0a:541:b8f0:afbb:bfd4:a938:ea92)
06:24:51 xiongxin joins (~quassel@119.123.103.95)
06:35:37 × chomwitt quits (~chomwitt@2a02:587:dc04:fc00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds)
06:37:31 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
06:44:29 byorgey joins (~byorgey@155.138.238.211)
06:45:58 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:47:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
06:52:03 Guest7842 joins (~Guest78@103.142.31.135)
06:52:37 Guest7842 is now known as almight
06:52:51 snekism joins (~user@88.160.31.174)
06:54:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:56:02 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:56:02 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
06:56:02 wroathe joins (~wroathe@user/wroathe)
06:57:36 jakalx joins (~jakalx@base.jakalx.net)
07:00:22 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
07:03:37 cfricke joins (~cfricke@user/cfricke)
07:05:23 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
07:12:08 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
07:14:27 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
07:16:25 matijja` is now known as matijja
07:18:32 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
07:26:10 jumper149 joins (~jumper149@80.240.31.34)
07:26:16 chele joins (~chele@user/chele)
07:27:22 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:28:08 gehmehgeh joins (~user@user/gehmehgeh)
07:28:27 × danso quits (~danso@23-233-111-52.cpe.pppoe.ca) (Read error: Connection reset by peer)
07:28:39 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
07:29:06 danso joins (~danso@23-233-111-52.cpe.pppoe.ca)
07:30:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:33:54 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
07:37:43 chomwitt joins (~chomwitt@ppp-2-85-111-14.home.otenet.gr)
07:39:02 × almight quits (~Guest78@103.142.31.135) (Quit: Client closed)
07:39:40 fendor joins (~fendor@77.119.211.168.wireless.dyn.drei.com)
07:47:10 Aleksejs_Home is now known as Aleksejs
07:47:33 Heisen joins (~Heisen@77.240.67.20)
07:55:11 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:02:21 alzgh joins (~alzgh@user/alzgh)
08:06:00 hendursa1 joins (~weechat@user/hendursaga)
08:06:45 × Heisen quits (~Heisen@77.240.67.20) (Quit: Client closed)
08:08:42 × Athas quits (athas@2a01:7c8:aaac:1cf:88c8:741d:5f54:df9c) (Quit: ZNC 1.8.2 - https://znc.in)
08:08:52 Athas joins (athas@2a01:7c8:aaac:1cf:e73c:6e45:62dc:617a)
08:08:57 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:10:06 acidjnk_new joins (~acidjnk@p200300d0c703cb91f5ee47946ee36d17.dip0.t-ipconnect.de)
08:10:32 acidjnk_new3 joins (~acidjnk@p200300d0c703cb913dee8582a4f338ca.dip0.t-ipconnect.de)
08:12:15 acidjnk joins (~acidjnk@p200300d0c703cb91c9138e174fd8a68e.dip0.t-ipconnect.de)
08:12:49 × xiongxin quits (~quassel@119.123.103.95) (Ping timeout: 245 seconds)
08:14:37 × acidjnk_new quits (~acidjnk@p200300d0c703cb91f5ee47946ee36d17.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
08:15:10 × acidjnk_new3 quits (~acidjnk@p200300d0c703cb913dee8582a4f338ca.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
08:17:33 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:33 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:36 allbery_b is now known as geekosaur
08:20:37 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
08:21:54 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Quit: Lost terminal)
08:22:13 Maxdamantus joins (~Maxdamant@user/maxdamantus)
08:23:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Remote host closed the connection)
08:25:38 <sm> why can I `stack install` only certain packages into stack's global package db ?
08:26:10 <sm> eg `stack install silently` works, but `stack install linebreak` just says "using precompiled package" and doesn't install it
08:26:59 <jneira[m]> uh, why it is already installed?
08:27:11 <jneira[m]> s/why/cause/
08:27:58 <jneira[m]> but what do you mean with `stack's global package db`?
08:28:07 <sm> it's not.. `stack exec -- ghc-pkg list` shows silently but not linebreak
08:28:32 <sm> the package db that stack uses when you're not in a stack project
08:30:32 <sm> specifically, if I'm in $HOME and try to stack install various packages, it will add some of them to `/Users/simon/.stack/snapshots/x86_64-osx/ea767d7b5d9b130137b6dfa5ccdecaaab9e849b83fdef4b8a1ccfb9856b75749/8.10.7/pkgdb` but not others
08:30:33 <jneira[m]> hmm stack can have packages in the local package db (.stack-work) and in the snapshots package dbs ($HOME/stack/snapshots), maybe `stack exec -- ghc-pkg list`does not take in account the latter?
08:30:59 <jneira[m]> ah, you are already watching snapshots
08:31:01 <sm> (there's also `/Users/simon/.stack/global-project/.stack-work/install/x86_64-osx/ea767d7b5d9b130137b6dfa5ccdecaaab9e849b83fdef4b8a1ccfb9856b75749/8.10.7/pkgdb`, where it puts nothing, so far)
08:32:25 <sm> it's odd that it works with some packages but not others, I'm not seeing what makes the difference
08:32:40 <jneira[m]> hmm maybe it is random but silently is in lts-18.12 and linebrak no
08:33:01 <jneira[m]> s/linebrak/linebreak/
08:33:48 <sm> ah, now I do. It works for packages which are in the global project's stackage snapshot
08:34:43 <jneira[m]> hmm and where the rest would go?
08:35:24 <jneira[m]> they have to be in some pkgdb i suppose
08:36:45 <sm> normally `stack install` can install things that are only in hackage ( I thought ). They go to the same local pkgdb as packages installed from stackage
08:37:11 <sm> you do have to specify the package version in this case. But that doesn't help this time
08:37:34 <sm> it's a mystery. I hope stack gets some new maintainers soon
08:38:19 × hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
08:38:56 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
08:39:04 × ByronJohnson quits (~bairyn@mail.digitalkingdom.org) (Ping timeout: 245 seconds)
08:51:07 xiongxin joins (~quassel@113.116.33.66)
08:53:07 nschoe joins (~quassel@2a01:e0a:8e:a190:ba51:8df:6acb:482e)
09:07:50 × emf quits (~emf@2620:10d:c090:400::5:6163) (Quit: emf)
09:08:44 mestre joins (~mestre@191.177.175.57)
09:11:12 <jneira[m]> hmm i wonder if the info could be placed in the pantry sqlite database and be passed to ghc on the fly using some temp mechanism, maybe examining the logs with `-v` could help
09:19:13 Heisen joins (~Heisen@77.240.67.20)
09:19:15 <maerwald> sm: I doubt it
09:20:30 <merijn> I'd assume that people cared enough they'd already be maintainers
09:20:40 <maerwald> merijn: also not
09:20:48 × sm2n quits (~sm2n@user/sm2n) (Read error: Connection reset by peer)
09:20:53 <maerwald> that assumes that PRs are reviewed and maintainers added ;)
09:20:59 sm2n joins (~sm2n@user/sm2n)
09:21:29 <maerwald> and stack can barely keep up with Cabal development
09:21:39 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:21:55 <Heisen> Are there a way to configure Sublime Text so that instead of it using tabs when I press enter for a new line it uses a couple of spaces instead?
09:22:24 <sm> maerwald: cabal was in this position for a long time, it's quite possible things can change
09:23:07 <maerwald> sm: I can't remember cabal having hostile maintainers... it was more the awful state of the codebase that kept contributors away
09:23:29 <jneira[m]> ahem
09:23:36 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
09:23:42 <sm> I can. Contributing to stack was waay more inviting. You probably feel the opposite, I know.
09:24:05 <maerwald> sm: corrects
09:24:06 <merijn> Inviting how? maerwald spoke specifically about *people*
09:24:19 <merijn> hvr and Oleg were super supportive and helpful and Emily is too
09:24:22 Guest50 joins (~Guest50@88.85.216.62)
09:24:32 <maerwald> I find stack codebase more pleasing than cabals, so I actually wrote quite a few patches
09:24:42 <maerwald> despite not using stack
09:24:42 <merijn> Cabal was a PITA not because of its maintainers, but it's legacy backwards codebase
09:25:00 CiaoSen joins (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
09:25:25 <jneira[m]> both have `wont fix`, stack has 50 closed issues with that label :-P
09:25:27 <sm> there was a time people were finding contributing to cabal hard. Perhaps it was phadej blasting them for bothering him. I don't remember the details of course
09:25:51 <sm> or hvr being unreachable
09:26:03 <sm> I'm happy things have changed
09:26:06 <maerwald> I also fixed a *massive* performance issue in stack's pantry library (which is awfully over-engineered btw). People have been complaining about this issue for a couple years, yet the PR has seen zero comments.
09:26:28 <merijn> maerwald: I increasingly find myself disappointed by the FPComplete libraries
09:26:35 <Hecate> I remember seeing people leave cabal development because of the WT maintainers
09:26:39 <maerwald> while Snoyman laments over missing maintainers and bad Cabal developers in his blog post
09:26:46 <Hecate> they had goals that didn't align with the good of the community
09:26:56 <sm> maerwald, stack is under-maintained right now, so it's not surprising. Snoyman explained this, and put out the call for help
09:26:59 <merijn> They seem nicely engineered and robust at first, but evntually break
09:26:59 <jneira[m]> well ignoring vs unkind but honest responses
09:27:03 <Hecate> phadej famously was burnt-out as a cabal maintainer
09:27:04 <sm> nothing strange here
09:27:06 <jneira[m]> not sure what is worse
09:27:12 <maerwald> sm: well, why are they ignoring PRs then? ;)
09:27:35 <merijn> Yeah, blaming phadej is the exact reason why he was so agigated to begin with >.>
09:27:38 × Heisen quits (~Heisen@77.240.67.20) (Quit: Client closed)
09:27:48 <sm> undermaintained. Nobody with time to review PRs. You must know that is famously time-intensive
09:28:14 <maerwald> sm: lol what?
09:28:18 <Hecate> merijn: I'm rather blaming WT management who assigned him on cabal when he didn't want to and it caused him to burn-out
09:28:34 <Hecate> clearly it lacked three other people, with at least one person with a product vision
09:28:37 <maerwald> sm: if you call for help, and then people help, and you still don't bother accepting that help... then what is that?
09:28:47 <merijn> Hecate: I meant more sm's comment about phadej complaining
09:28:52 <Hecate> merijn: ah sorry
09:28:58 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Ping timeout: 260 seconds)
09:29:02 <sm> I don't know why you are arguing with me. You're a FOSS maintainer ? haven't you noticed that "help" sometimes is rather costly to deal with ?
09:29:09 <jneira[m]> and only one maintainer for cabal, having to do triaging, patches, releases... too much
09:29:09 <maerwald> sm: no
09:29:21 <sm> some prs are easy to accept, others are not
09:29:29 <maerwald> you can't have both ways...
09:29:37 <merijn> Hecate: Also, do you, like, replace your morning coffee with meth to have the energy for the 30 projects you seem to be juggling? :p
09:29:39 <sm> sometimes nobody has time to even look.
09:29:40 <maerwald> if you don't review PRs, then your project is *dead*
09:29:57 <sm> so cabal was dead then. But, now it's not.
09:30:12 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
09:30:26 <jneira[m]> well some pr's were reviewed
09:30:32 geekosaur joins (~geekosaur@xmonad/geekosaur)
09:30:50 <maerwald> phadej did review PRs
09:31:37 <jneira[m]> (even a quick add tests or fuck off is better than ignoring sometimes)
09:31:41 <Hecate> phadej was dead inside
09:32:15 <maerwald> Hecate: doesn't that fall under doctor-patient confidentiality? ;p
09:32:21 <merijn> Speaking of, does he still hangout on IRC occasionally?
09:32:30 <jneira[m]> but a quick we have time righ now but thank you for contriuting is even nicer :-)
09:32:31 <merijn> I need to poke him about some haskell-CI PRs
09:32:38 <jneira[m]> * quick we dont have time
09:32:43 <Hecate> maerwald: I'm just a necromancer :P
09:33:12 <merijn> Hecate: Resurrect my motivation, plx
09:33:23 <maerwald> jneira[m]: exactly... if you don't respond to a PR at all... but then have time to write lengthy blog posts about how no one is helping your projeect
09:33:27 <maerwald> I feel something is off
09:33:31 <maerwald> and there's an attitude issue
09:33:36 <Hecate> merijn: you do realise that as a necromancer you'll be submitted to my will in exchange for walking this earth again?
09:33:53 <Hecate> but okay if that's you thing, I'm gonna dom you into finishing your PRs :P
09:34:17 <[exa]> the only thing worse than maintaining OSS in free time is maintaining software-maintenance-related OSS in free time
09:35:03 __monty__ joins (~toonn@user/toonn)
09:35:41 <sm> maerwald: you seem to be bitter about it yourself, and maybe this comes across in your PRs
09:36:03 <merijn> Hecate: If I could be *made* to do things, I would've already finished them >.>
09:36:10 <maerwald> sm: lol what?
09:36:31 <maerwald> check my PRs out ;)
09:36:56 <sm> I have read a few, I get a general tone. I could be wrong
09:37:05 <maerwald> example?
09:37:07 <merijn> No amount of making myself do work has ever reached the level of productivity of "gonna quickly hack this together for shits & giggles!" >.>
09:37:46 <merijn> [exa]: People who say they are "responsible" for a project because people use it are true masochists...
09:37:50 <sm> no example right now, sorry
09:37:56 <maerwald> sm: also, I don't care about stack development... I started contributing, because I get bug reports about it since ghcup supports it. I'm starting to think that was a mistake.
09:38:33 <[exa]> merijn: yeah that's usually the way to lose it
09:38:47 <sm> best to work on things you care about, certainly
09:39:05 × nschoe quits (~quassel@2a01:e0a:8e:a190:ba51:8df:6acb:482e) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
09:39:20 <maerwald> sm: xD
09:39:23 <merijn> [exa]: My maintenance philosophy is "I'll get to it when I get to it *and* conditional on me liking the change"
09:39:23 <sm> that's why I've been making a terminal game lately. Gotta have some fun sometimes
09:39:27 samebchase9 is now known as samebchase
09:39:55 <merijn> [exa]: 'But I depend on your package!' "well, sounds like you'd better pay me to give a shit, then! :D"
09:40:26 <[exa]> sm: re "things you care about", it's a bit complicated with the packaging software, normally the healthy OSS way is to solve your problem and just share the code to avoid others wasting energy on the same effort, but packaging always needs more people and organization
09:41:13 <maerwald> sm: my main point is really that something doesn't add up when you're complaining about a) missing maintainers and b) too fast Cabal development, but then a) refuse to welcome contributors and b) refuse to communicate with Cabal devs
09:41:15 <[exa]> merijn: I've got a curated list of responses for this. :D
09:41:21 <sm> agreed, it's tough, and a balance
09:41:38 <Hecate> < merijn> Hecate: If I could be *made* to do things, I would've already finished them >.> // you just need to find the right leather harness and whip :P
09:41:55 <Hecate> find a BDSM dungeon near your place and finish your thesis there!
09:42:11 <sm> but probably the point stands.. if you care about packaging, you'll be able to help effectively with that
09:42:22 <maerwald> merijn: I have an Aberfeldy 16yo, which I don't particularly like. Would that speed up your maintenance efforts?
09:42:32 robosexual joins (~spaceoyst@88.85.216.62)
09:42:32 <sm> maerwald: I didn't see any complaint
09:42:39 <merijn> maerwald: I accept non-monetary bribes, yes :p
09:42:55 <sm> I saw a busy maintainer explaining their situation and inviting help
09:43:19 <merijn> Hecate: Well, barring any complaints the non-cosmetic side is finished as of yesterday :p
09:43:20 <maerwald> claiming to invite help
09:43:22 <sm> of a particular kind, which he described
09:43:38 <sm> you've got chip on your shoulder about it, I guess
09:43:40 <merijn> All it cost me was my mental health!
09:43:40 <Hecate> merijn: congratulations, your mistress must be proud of you :p
09:43:58 <sm> sorry, I can't but say it from how you keep talking about it
09:44:05 <maerwald> lol
09:44:30 lavaman joins (~lavaman@98.38.249.169)
09:44:33 <sm> I Could Be Wrong. Just how it sounds :)
09:46:30 × Guest50 quits (~Guest50@88.85.216.62) (Quit: Client closed)
09:46:58 <merijn> Hecate: Now I just a need a 3month break to remember what joy feels like >.>
09:47:09 <maerwald> "I'm sorry, we won't be accepting your PRs, because you didn't hit the right tone!"
09:47:21 <maerwald> xD
09:48:39 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
09:48:58 <jneira[m]> lol
09:49:03 <maerwald> which is particularly funny given how aggressive Snoyman usually is on an issue
09:49:14 <maerwald> and I don't even mind that anmyore
09:49:15 <sm> not to keep arguing, here's the recent post I'm referring to: https://www.snoyman.com/blog/babies-oss-maintenance . Folks can read it and decide for themselves.
09:49:32 <jneira[m]> sorry i am gonna close the pr and remove the branch cause you did not was kind with my changes XD
09:49:35 <merijn> Anyway, time for a lunch walk while it's sunny
09:49:57 <maerwald> I've had people call my software broken sh*t and then provide excellent debugging information... they've had a rough evening, so whatever
09:50:06 <jneira[m]> s/did/were/, s/was//
09:50:33 brandonh joins (~brandonh@151.82.34.96)
09:50:43 <maerwald> software annoys people, that's fine
09:52:12 <jneira[m]> anyways be kind is cheap in time and you can get new maintainers in the long term so please kill `wont fix`
09:53:10 <maerwald> jneira[m]: my impression is that FOSS is declining... people were much more eager to open PRs 10 years ago and do work on random projects. So these days, even having a single inexperienced contributor is worth gold.
09:53:33 <jneira[m]> totally agree
09:54:06 <jneira[m]> even if take care costs you 2x time than doing yourself
09:54:13 <maerwald> it usually does
09:54:43 × xff0x quits (~xff0x@2001:1a81:52ac:b800:6148:6b8d:b98a:69f7) (Ping timeout: 252 seconds)
09:54:43 <jneira[m]> and maybe we get FOSS great again among all
09:55:16 × brandonh quits (~brandonh@151.82.34.96) (Ping timeout: 252 seconds)
09:55:44 <maerwald> I briefly worked in a company that allowed one day per month to do whatever you want... I was confused, because I did that almost every week, after I finished my tickets xD
09:55:58 <jneira[m]> lol
09:56:55 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 252 seconds)
09:58:14 <[exa]> "one day to shave sufficient yaks to enable more work"
09:58:54 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:00:22 × robosexual quits (~spaceoyst@88.85.216.62) (Quit: Konversation terminated!)
10:00:45 robosexual joins (~spaceoyst@88.85.216.62)
10:00:46 × chomwitt quits (~chomwitt@ppp-2-85-111-14.home.otenet.gr) (Ping timeout: 252 seconds)
10:05:29 <sm> maerwald, I see your four current open PRs on stack, and I should say I'm grateful, as a stack user. Hopefully you won't take it personally if they seem to get ignored, that's just how it is sometimes. You got some review from dpwiz, so that's something. I think it's possible some individuals or companies will step up sooner or later and things will move again.
10:10:33 <maerwald> sm: if cabal gets better constraint sets support to use stackage sets, we might not need stack anymore, maybe?
10:10:53 <maerwald> well, that and install hooks
10:10:58 <maerwald> *GHC install hooks
10:11:06 <sm> anything is possible
10:11:09 <maerwald> those are the 2 only major things separating them, imo
10:11:24 <sm> cabal might pick up all the good bits of stack eventually
10:12:35 <maerwald> yes, while keeping cabals unix philosophy... enabling more use cases than stack
10:12:41 <jneira[m]> ..without adding a sqlite database in the way :-)
10:12:54 <maerwald> jneira[m]: stack uses 2
10:12:57 <maerwald> not just one
10:13:03 <maerwald> pantry has its own sqlite database
10:13:23 <maerwald> I could go on a long rant about pantry
10:14:23 <jneira[m]> oh. so you maybe know where go the no lts package, we (sm and me) did not find the ghc pkg containing them
10:14:41 <sm> let's not go there :)
10:14:47 <jneira[m]> he
10:15:22 <sm> I don't quite understand what you said, so three of us probably won't make things better :)
10:15:32 xff0x joins (~xff0x@2001:1a81:52ac:b800:6148:6b8d:b98a:69f7)
10:15:34 <maerwald> sm: well, it's one of the reasons why stack can't keep up with Cabal. Some parts are needlessly over-engineered, but then fail on simple things (like... clone a repository once, instead of 20 times)
10:15:50 <jneira[m]> how many dbs only for store package info, lol
10:16:06 <maerwald> if Cabal changes a few things in it's API, you might have to redo the entirety of pantry... but... you don't really need pantry
10:16:14 brandonh joins (~brandonh@to-18-80-27.service.infuturo.it)
10:17:07 <maerwald> jneira[m]: pantry stores the actual contents of repositories in the DB
10:17:14 <maerwald> so the DB quickly grows several GB
10:17:15 × brandonh quits (~brandonh@to-18-80-27.service.infuturo.it) (Client Quit)
10:17:32 <maerwald> I don't think there's any mechanism to clean it up, other than delete it
10:18:16 <jneira[m]> well the cabal store is not easy to clean up neither
10:18:21 <maerwald> I have no idea why it's not just unpacking them into a directory, lol
10:18:32 <jneira[m]> although it does not use a db engine at all
10:19:13 <jneira[m]> and cabal-store-check fails sometimes as you know well ;-)
10:20:09 <maerwald> jneira[m]: yeah, but cabal uses simple directories in ~/.cabal/packages/hackage.haskell.org
10:20:23 <jneira[m]> (sorry for too much tooling stuff, beginners will be scared)
10:20:55 <maerwald> pantry as 17 (!) tables
10:20:57 <jneira[m]> and a somewhat opaque package index as a seudo db engine
10:21:08 <maerwald> *has
10:21:21 <jneira[m]> s/seudo/pseudo/
10:22:49 <jneira[m]> 865 mb of 01-index.tar for me, and i wipe out cabal from time to time
10:23:03 <maerwald> yeah, but that's all of hackage
10:23:13 <maerwald> pantry has that much after building a single package
10:23:38 <jneira[m]> fair enough, too trashy stuff in hackage
10:24:12 <maerwald> because it also puts git repos in it
10:24:22 <jneira[m]> uh?
10:24:50 <maerwald> https://inloop.github.io/sqlite-viewer/
10:25:04 <maerwald> drag and drop ~/.stack/pantry/pantry.sqlite3 there
10:25:17 <jneira[m]> ah you talk about stack
10:25:17 × noctux quits (~noctux@user/noctux) (Ping timeout: 264 seconds)
10:25:19 <maerwald> and then check repo_cache
10:25:30 <maerwald> jneira[m]: yes, cabal doesn't use pantry, thankfully
10:25:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
10:26:41 <jneira[m]> i have to get one of that to examine the hls hiedb
10:26:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:27:42 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
10:29:32 geekosaur joins (~geekosaur@xmonad/geekosaur)
10:29:54 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
10:32:58 hyiltiz joins (~quassel@31.220.5.250)
10:34:33 noctux joins (~noctux@user/noctux)
10:35:25 chomwitt joins (~chomwitt@ppp-2-85-111-14.home.otenet.gr)
10:37:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:38:15 akegalj joins (~akegalj@89-172-45-73.adsl.net.t-com.hr)
10:38:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:43:37 × noctux quits (~noctux@user/noctux) (Ping timeout: 252 seconds)
10:43:45 noctux joins (~noctux@user/noctux)
10:48:04 × noctux quits (~noctux@user/noctux) (Ping timeout: 252 seconds)
10:49:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:49:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:49:52 noctux joins (~noctux@user/noctux)
10:53:23 kayprish joins (~kayprish@cable-188-2-145-210.dynamic.sbb.rs)
10:55:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:55:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:00:12 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:00:42 alx741 joins (~alx741@186.178.109.221)
11:00:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
11:00:48 ulvarrefr joins (~user@185.24.53.152)
11:01:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:04:28 jespada joins (~jespada@2803:9800:9842:7a62:5898:2a80:ce35:b80a)
11:06:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
11:06:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:09:50 <Gurkenglas> Consider a program that's made of a recursion scheme definition and the definition of its argument. Understanding either one would take 10 minutes. You must study one until you understand it without reading the other, and then you are also given the other. Which do you start with?
11:11:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
11:12:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:19:32 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
11:21:50 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
11:22:56 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
11:24:14 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Ping timeout: 260 seconds)
11:30:16 <merijn> Anyone have experience tweaking hlint?
11:31:00 <merijn> Got a PR failing due to hlint rejecting stuff, but the rejection is stupid since the proposed fix doesn't even typecheck
11:31:58 <maerwald> https://github.com/ndmitchell/hlint/blob/master/README.md#ignoring-hints
11:33:17 × awth13 quits (~awth13@user/awth13) (Remote host closed the connection)
11:33:58 <maerwald> put `#ifndef __HLINT__` around all your code
11:34:00 <maerwald> lol
11:36:22 awth13 joins (~awth13@user/awth13)
11:36:41 × hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Ping timeout: 264 seconds)
11:36:55 <jneira[m]> or fix hlint :-)
11:36:59 × TDANG_ quits (~TDANG@216.63.184.7) (Quit: Konversation terminated!)
11:37:56 <merijn> I just don't use hlint
11:38:06 <merijn> But when upstream uses it you don't get a choice
11:38:20 <merijn> And disabling it file wide is probably not acceptable :p
11:39:01 <jneira[m]> nor hint wide i suppose
11:39:17 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
11:40:24 <jneira[m]> but, well, you could fix the code with something that typechecks and make happy hlint at same time i suppose
11:41:06 <jneira[m]> (and open an issue in hlint as protest ;-)
11:41:22 lavaman joins (~lavaman@98.38.249.169)
11:41:41 <maerwald> hlint making CI fail is really odd
11:43:09 Lycurgus joins (~juan@98.4.112.204)
11:44:01 <merijn> maerwald: Some people add an hlint step to CI that fails if hlint complains...
11:44:15 <maerwald> throw stones
11:44:35 <merijn> Agreed, but that doesn't help my shit get merged :p
11:44:41 × kayprish quits (~kayprish@cable-188-2-145-210.dynamic.sbb.rs) (Remote host closed the connection)
11:45:24 <jneira[m]> maerwald: i really hate when ghc does :-P
11:45:49 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
11:46:44 <Hecate> hlint in GHC was a great idea
11:47:06 <maerwald> GHC doesn't fail prematurely on it, does it?
11:47:14 <maerwald> It will still run the other jobs?
11:48:58 <Hecate> I don't remember
11:49:24 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
11:50:16 Guest87 joins (~Guest87@wificampus-099066.grenet.fr)
11:50:18 maerwald throws stones at Hecate
11:50:20 <maerwald> xD
11:50:25 <merijn> Hecate: Depends how much effort you spend setting it up
11:50:38 <Guest87> is there a parser primitive that can ignore escape sequences?
11:50:44 <merijn> It's fairly clear that Neil has a very different view on what Haskell should look like from me
11:50:53 <Guest87> \ espcape sequences
11:50:56 <merijn> As such the default config of hlint just serves to annoy me
11:52:15 Stotteren joins (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net)
11:53:02 snekism` joins (~user@88.160.31.174)
11:54:34 <maerwald> I find this "replace every data type with one constructor with newtype" thing very odd... it seems really something GHC should be able to do on its own if it serves performance, instead of blurring the concepts
11:54:37 × snekism quits (~user@88.160.31.174) (Ping timeout: 252 seconds)
11:55:21 <merijn> maerwald: That recommendation is from the same school of thinking as "You should enable StrictData everywhere by default!"
11:56:39 <Hecate> are there people who seriously think like this?
11:56:55 <merijn> Hecate: Yes
11:57:02 <Hecate> damn
11:57:34 <merijn> Hecate: Reddit and occasionally this channel are full of people who seem to really dislike laziness and advocate enablign Strict/StrictData everywhere by default and "only disabling if it's a problem"
11:57:49 <merijn> Because imagine actively *thinking* about what you're doing and why...
12:01:52 <maerwald> doesn't that go for enabling laziness by default as well? :))
12:02:07 <merijn> maerwald: No. And I have a good argument for why
12:02:36 <merijn> The problem of "this code is to lazy" can be solved locally on the caller side by making it strict there (which will transitively force everything)
12:02:38 <maerwald> I don't believe I'll buy any argument saying you don't need to think about laziness
12:02:51 × Guest87 quits (~Guest87@wificampus-099066.grenet.fr) (Ping timeout: 256 seconds)
12:02:54 <merijn> The problem of "this code is to strict" requires modifying the entire transitive call tree to make it lazier
12:03:10 <merijn> maerwald: Oh, I'm not saying you don't have to think about laziness. You definitely have to
12:03:13 <maerwald> merijn: knowing that a lazy data structure is a problem can take a long time to figure out :)
12:03:16 <maerwald> I've been there
12:03:29 <merijn> This just in, programming requires thinking regardless of what you do
12:03:29 <maerwald> and it cost the business a lot of money
12:04:07 <Hecate> merijn: yes but see, I am not a fool, Reddit's opinion doesn't mean shit to me
12:04:28 <merijn> Hecate: See, the problem is that there *are* many fools out there
12:04:48 <Hecate> that being said I have the privilege of working at a company using Haskell, so I get real-life advice and real-life situations :p
12:04:50 <merijn> Hecate: And beginners who don't know better see these extremists on reddit and here and somehow buy into that sorta thing
12:05:12 <maerwald> I think that's a totally orthogonal point
12:05:21 <maerwald> there are languages with strict by default behavior
12:05:47 <maerwald> whatever you choose, it has trade-offs
12:06:05 <maerwald> it doesn't really blur any concepts
12:06:33 <merijn> Hecate: btw, you're in NL now, right? You should keep an eye out for NL-FP (assuming it can be/is organised again this year)
12:06:57 <Hecate> merijn: no I'm in Paris! But NL is not that far away in train :)
12:07:50 <merijn> Also true, I got Athas to fly in from Denmark last time :p
12:08:01 <Hecate> merijn: if you want to take me to De Kaashoeve in Rotterdam for a date, I'd be more than happy :p
12:08:06 <maerwald> whereas, `data` vs `newtype` isn't just about what the compiler does with it... they convey different concepts
12:08:42 <maerwald> I don't make exceptions newtypes... or anything where I *might* add a constructor in the future
12:10:28 <merijn> Why wait to be taken? :p
12:20:58 × chomwitt quits (~chomwitt@ppp-2-85-111-14.home.otenet.gr) (Ping timeout: 252 seconds)
12:21:14 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
12:21:38 ChaiTRex joins (~ChaiTRex@user/chaitrex)
12:22:07 × xsperry quits (~xs@user/xsperry) ()
12:28:25 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:29:06 × dsf_ quits (~dsf@cpe-66-75-56-205.san.res.rr.com) (Ping timeout: 260 seconds)
12:30:19 × danso quits (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 252 seconds)
12:30:32 <kuribas> maerwald: yeah, and I dislike the warning you get from hlint.
12:31:04 <kuribas> maerwald: data vs newtype isn't just about performance, it's also about semantics.
12:31:10 <maerwald> yes
12:31:37 <maerwald> If I look at a newtype, my idea is "this could have been a type synonmy, but we need a thicker abstraction"
12:32:51 <maerwald> not "I happen to have only on constructor"
12:32:54 <maerwald> *one
12:35:49 × jokleinn quits (~jokleinn@user/jokleinn) (Ping timeout: 252 seconds)
12:37:32 <kuribas> also, if it makes sense to use GeneralizedNewtypeDeriving, or coercion, then it should be a newtype, if not, a data.
12:39:54 dsf_ joins (~dsf@cpe-66-75-56-205.san.res.rr.com)
12:43:37 <Hecate> I don't care much tbh, I have my rules file for HLint that I reuse throughout my projects
12:43:45 <Hecate> and this rule is excluded
12:44:21 <merijn> My rules file is "my eyes" :>
12:46:28 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
12:49:36 <Hecate> ah, if only I wasn't doing 8 hours of Haskell per day, maybe I too could have such thoughts :P
12:50:43 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Ping timeout: 252 seconds)
12:51:58 × pbrisbin_ quits (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) (Quit: WeeChat 3.3)
12:53:13 <kuribas> Hecate: 8 hours of Haskell per day sounds more fun than 8 hours of clojure/python/bash/whatever.
12:55:00 <maerwald> depends whose code
12:55:07 × CiaoSen quits (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
12:55:29 <kuribas> sure, I'll take good clojure code over a messy haskell codebase.
12:55:40 ryantrinkle joins (~ryan@66.152.129.6)
12:55:48 <kuribas> unless I could rewrite the haskell.
12:55:51 <lortabac> I've had bad experiences doing 8 hours of Haskell per day, but it was more related to bad organization than to the code itself
12:56:30 <merijn> When I was working on my Haskell code base 8 hours a day, motivation was much easier :p
12:57:23 <lortabac> whereas my bad experiences with other languages are mostly related to impossibility of refactoring after a certain size
12:58:15 <merijn> I *can* refator large codebases, but if someone created something that's such a rat's nest that I need too, it means I'll be killing someone's baby doing it >.>
12:59:55 <Hecate> lortabac: same
13:00:10 <Hecate> only times I suffered while doing Haskell was due to higher-level concerns
13:00:12 <sshine> <3 killing babies
13:00:18 <Hecate> whereas in JS, pain is immediate
13:00:19 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
13:00:44 <Hecate> kuribas: scrive.com is still recruiting, if you live in the EEA ;)
13:02:05 <sshine> Hecate, hmm, scrive is actually in the same line of business as I'm currently employed in.
13:08:38 <maerwald> wait, there's haskell outside of fintech and blockchain?
13:08:42 <maerwald> no one told me
13:08:58 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
13:09:01 maerwald counts his tokens
13:09:33 <merijn> there's the music site too!
13:09:41 <merijn> And RSS reader :p
13:09:55 <lortabac> I see new job ads all the time on /r/haskell
13:10:00 <sshine> there's the carboncloud thingy, too :)
13:10:13 <sshine> surprisingly many swedish companies
13:11:08 <merijn> Why surprisingly?
13:11:17 <maerwald> sshine: but they don't pay well
13:11:19 <merijn> Chalmers probably plays an important part there
13:11:35 <merijn> EU tech jobs in general don't pay great :p
13:11:51 <sshine> I think so!
13:12:00 <sshine> (wrt. chalmers)
13:12:11 <sshine> and right, EU tech jobs pay less. :)
13:12:48 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
13:12:51 retro_ joins (~retro@176.255.22.194)
13:12:56 <merijn> On the other side, you literally can't pay me enough to work in the US :p
13:13:15 <maerwald> today everything is remote
13:13:21 <maerwald> that's why no one works for EU companies anymore
13:14:09 <maerwald> with their 6 months probabtion period (lol)
13:14:57 <merijn> I'd probably just quit my job if I have to stay remote for another year
13:15:15 snekism`` joins (~user@88.160.31.174)
13:15:28 × retroid_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
13:15:39 <merijn> This lack of hard separation between work and home is tiring as fuck
13:16:32 <maerwald> depends heavily on company culture/coders... if the majority of them is bad at communication, you don't want to be remote, unless you have a very hight frustration threshold
13:16:32 <kuribas> Hecate: thanks!
13:16:35 <lortabac> merijn: in my case it's simple, when the children are back from school, work is forcefully over :D
13:16:37 Lycurgus hopes that's a minority position
13:17:13 × snekism` quits (~user@88.160.31.174) (Ping timeout: 252 seconds)
13:17:45 shriekingnoise joins (~shrieking@186.137.144.80)
13:17:47 <maerwald> pinging someone at work while being blocked and getting an answer 2 hours later that is insufficient... is really awful
13:18:10 <maerwald> and then your workmate lives in Australia and goes to sleep before you can ping again
13:19:03 <kuribas> merijn: you could come to Belgium, and start some haskell services at our company :)
13:19:19 × ryantrinkle quits (~ryan@66.152.129.6) (Ping timeout: 252 seconds)
13:19:22 <kuribas> merijn: we allow one week remote and one week in office.
13:19:49 <maerwald> per year?
13:19:51 <maerwald> :D
13:20:34 <sshine> the remaining 50 weeks are spent in void.
13:20:39 <kuribas> maerwald: per 2 weeks :)
13:21:28 <maerwald> sshine: true work life balance
13:21:53 <tdammers> hah, "allowing" remote
13:22:06 <Lycurgus> yeah
13:22:15 <Lycurgus> allow tells you where it's goin
13:22:21 <tdammers> as if "allowing" people to work from home were nothing but a courtesy extended out of the goodness of the employer's heart
13:22:22 <merijn> kuribas: Belgium sounds considerably further than my current job :p
13:22:35 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:22:50 <kuribas> merijn: ah right :)
13:23:02 <kuribas> merijn: your current job is remote in the netherlands?
13:23:11 <merijn> And I doubt the pay differential is sufficient to warrant relocating :p
13:23:31 <Lycurgus> 'member when they would 'allow' casual dress?
13:23:34 <merijn> We have been all remote since March 14 last year due to COVID
13:23:45 <merijn> Slowly allowing people in the office again
13:23:51 <kuribas> same here
13:24:11 <tdammers> when the reality is you're tapping into a massively larger talent pool for an absolutely minimal investment, you get higher productivity as long as you don't mess it up entirely, you save massive sums on office floor space, *and* you get to guilt-trip people into accepting lower salaries and shittier conditions because you're "allowing" them to work from home
13:24:56 <kuribas> tdammers: and you can hire cheaper people from russia or india
13:25:18 <maerwald> kuribas: if your company is registered in Hong Kong or Singapore :p
13:25:33 <Lycurgus> that's already gone down and it was found that culture trumps price
13:25:48 <Lycurgus> unless the function could completely outsourced
13:26:02 <Lycurgus> *could be
13:26:17 <maerwald> tdammers: yeah, but being productive remotely with people who have never done open source can be really challenging
13:26:31 <Lycurgus> to the extent that IT labor didn move in the way factory labor did
13:26:40 <maerwald> (or in general developers who're already low on the communication skill scale)
13:26:51 <Lycurgus> to the lowest price national supplier
13:27:25 Psybur joins (~Psybur@mobile-166-170-32-197.mycingular.net)
13:27:39 <Lycurgus> culture and strategic interest
13:27:44 slack1256 joins (~slack1256@191.126.227.74)
13:28:09 <tdammers> maerwald: sure, certain ways of managing a dev team won't work, and developers who are used to work in such ways will have a harder time adjusting to a remote-first / remote-only situation
13:28:18 <tdammers> but IME, management tends to be the bigger issue
13:28:55 <tdammers> it's not *working* remotely that's problematic, it's *managing* remotely, especially when your management strategy so far has been driven by distrust and suspicion
13:29:03 <merijn> tbh it's not really the remote part the I dislike
13:29:06 chomwitt joins (~chomwitt@ppp-2-85-111-14.home.otenet.gr)
13:29:14 <merijn> It's the "my house is my office" part I dislike
13:29:52 <tdammers> that's something you have to deal with, yes
13:29:55 <merijn> Home is where I fuck around and have fun and don't have to worry about work. Contaminating home with work, messes with me
13:30:08 <tdammers> personally, I love being able to work from my bed, or the roof terrace, or a cafe on the beach
13:30:17 <merijn> (or vice versa, work gets contaminated with home)
13:30:54 <merijn> I procrastinate and get distracted to easily for that stuff
13:31:21 <tdammers> for me, the biggest challenge is getting the rest of my family to accept that when I'm at work, I'm not available for "home" stuff
13:31:42 <tdammers> (and by "rest of the family", I mainly mean the wife)
13:32:49 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 268 seconds)
13:33:13 <merijn> I can't even get me to accept I'm not available for home stuff xD
13:33:17 <Lycurgus> casual friday was the thing
13:33:34 <maerwald> merijn: you just need two separate rooms
13:33:38 <maerwald> and 2 separate PCs
13:34:06 <merijn> maerwald: Gonna need 2x the salary to afford a place that lets me have *two* dedicated studies >.>
13:34:32 <kuribas> tdammers: I've been thinking to move to an appartment with a garden so I could move my laptop to the garden.
13:34:56 <merijn> Working on a laptop without docking station is ergonomically unacceptable to me
13:35:00 <maerwald> and coder monasteries are still not a thing
13:35:08 <maerwald> oddly
13:35:36 <maerwald> well, Bali has something that resembles that... hotels with coding workspaces
13:37:19 <merijn> I suspect that attracts the kinda people I don't wanna hang out with :p
13:37:35 <maerwald> you're so picky
13:37:56 <maerwald> lots of vegans hanging out there
13:38:07 maerwald chuckles
13:38:34 × MQ-17J quits (~MQ-17J@8.6.144.233) (Ping timeout: 252 seconds)
13:39:36 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
13:39:46 MQ-17J joins (~MQ-17J@8.6.144.233)
13:41:13 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
13:43:11 slowButPresent joins (~slowButPr@user/slowbutpresent)
13:45:05 oxide joins (~lambda@user/oxide)
13:45:49 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Ping timeout: 252 seconds)
13:46:00 Sgeo joins (~Sgeo@user/sgeo)
13:51:06 ByronJohnson joins (~bairyn@mail.digitalkingdom.org)
13:51:42 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
13:53:15 max22- joins (~maxime@2a01cb0883359800a065fae8774bc59b.ipv6.abo.wanadoo.fr)
13:53:32 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:55:54 zebrag joins (~chris@user/zebrag)
13:56:28 × tv1 quits (~tv@user/tv) (Quit: derp)
13:56:41 tv joins (~tv@user/tv)
13:57:25 neurocyte013288 joins (~neurocyte@94.46.73.31)
13:57:25 × neurocyte013288 quits (~neurocyte@94.46.73.31) (Changing host)
13:57:25 neurocyte013288 joins (~neurocyte@user/neurocyte)
14:00:29 × hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection)
14:00:35 × neurocyte013288 quits (~neurocyte@user/neurocyte) (Client Quit)
14:00:56 hendursa1 joins (~weechat@user/hendursaga)
14:01:27 lbseale joins (~lbseale@user/ep1ctetus)
14:03:48 lbseale_ joins (~lbseale@user/ep1ctetus)
14:04:41 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:04:41 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:04:41 wroathe joins (~wroathe@user/wroathe)
14:05:57 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
14:06:19 neurocyte013288 joins (~neurocyte@94.46.73.31)
14:06:19 × neurocyte013288 quits (~neurocyte@94.46.73.31) (Changing host)
14:06:19 neurocyte013288 joins (~neurocyte@user/neurocyte)
14:06:37 × acidjnk quits (~acidjnk@p200300d0c703cb91c9138e174fd8a68e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
14:06:59 × lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 245 seconds)
14:11:52 <sshine> does anyone know of a library that handles rate limits when doing batch requests?
14:12:06 <sshine> oh. 'rate-limit'.
14:14:38 × dajoer quits (~david@user/gvx) (Quit: leaving)
14:15:26 Morrow joins (~MorrowM_@147.161.8.76)
14:15:59 × kenran quits (~kenran@200116b82bc39c0005d8caac869328c5.dip.versatel-1u1.de) (Quit: WeeChat info:version)
14:17:02 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
14:17:22 ksqsf joins (~user@2001:da8:d800:611:8897:94f8:9872:d0a)
14:17:54 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
14:23:31 mastarija joins (~mastarija@31.217.25.149)
14:24:11 azeem joins (~azeem@emp-49-166.eduroam.uu.se)
14:27:21 <tdammers> sshine: that's like learning Dutch as a German native speaker. each time you need to know the Dutch word for some German word, it turns out to be the exact equivalent, except when you expect it to, then it's suddenly something completely different
14:27:38 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
14:27:43 <geekosaur> heh
14:27:56 <kuribas> tdammers: zee = mer, meer = see
14:27:57 <lieven> zee meer
14:28:06 <merijn> "bellen" :p
14:28:41 <lieven> I don't really know what zeemeermin is in German
14:29:29 <merijn> lol
14:29:41 <merijn> tdammers: I've found an easy lifehack
14:29:53 <merijn> Just only communicate with people speaking Low German :p
14:34:42 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2.1)
14:35:02 × xiongxin quits (~quassel@113.116.33.66) (Quit: No Ping reply in 180 seconds.)
14:35:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
14:36:17 xiongxin joins (~quassel@119.123.103.95)
14:40:14 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
14:41:14 <tdammers> merijn: case in point, having grown up near the border, I have an easier time understanding Limburgian than the average non-Limburgian Dutch person
14:41:43 hendursaga joins (~weechat@user/hendursaga)
14:41:46 <tdammers> in fact, it's basically the same language on either side of the border, you just use Dutch-based spelling on the Dutch side, and German-based spelling on the German side
14:42:35 <merijn> Nedersaksisch and all that :p
14:42:47 <merijn> I wonder if that will survive for much longer, tbh
14:42:49 <tdammers> that would be further North
14:43:35 <merijn> Yeah, Limburgian is different again, but I'm not familiar with that
14:45:10 <tdammers> Limburgian kind of forms a continuum with the Ripuarian dialects, via the Lower Rhine area where the two meet. Cologne is already firmly in the Ripuarian group, Venlo is clearly Limburgian; the transition happens somewhere in the Viersen / Krefeld / Mönchengladbach / Düsseldorf area
14:50:38 hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com)
14:51:46 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:51:46 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:51:46 wroathe joins (~wroathe@user/wroathe)
14:52:16 danso joins (~danso@23-233-111-52.cpe.pppoe.ca)
14:53:10 <alzgh> Koelle Alaaf!
14:53:59 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
14:54:21 ChaiTRex joins (~ChaiTRex@user/chaitrex)
14:56:09 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
14:56:30 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
15:00:29 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
15:02:22 <lortabac> is there a unification library that doesn't rely on recursion schemes?
15:02:49 <lortabac> unification-fd is great but hard to work with, especially if you have mutually-recursive types
15:06:48 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
15:10:14 × hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 265 seconds)
15:10:28 hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net)
15:13:33 fendor_ joins (~fendor@91.141.76.88.wireless.dyn.drei.com)
15:15:52 × fendor quits (~fendor@77.119.211.168.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
15:16:58 × akegalj quits (~akegalj@89-172-45-73.adsl.net.t-com.hr) (Quit: leaving)
15:17:23 phma_ joins (~phma@host-67-44-208-140.hnremote.net)
15:17:49 × alx741 quits (~alx741@186.178.109.221) (Ping timeout: 245 seconds)
15:17:53 × phma quits (~phma@host-67-44-209-109.hnremote.net) (Read error: Connection reset by peer)
15:18:24 × Morrow quits (~MorrowM_@147.161.8.76) (Read error: Connection reset by peer)
15:25:13 × benin0369323016 quits (~benin@183.82.205.238) (Ping timeout: 252 seconds)
15:26:26 lavaman joins (~lavaman@98.38.249.169)
15:26:41 benin0369323016 joins (~benin@183.82.205.238)
15:28:04 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Remote host closed the connection)
15:28:34 × ksqsf quits (~user@2001:da8:d800:611:8897:94f8:9872:d0a) (Ping timeout: 252 seconds)
15:29:56 jokleinn joins (~jokleinn@user/jokleinn)
15:30:43 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
15:30:56 alx741 joins (~alx741@186.178.109.65)
15:31:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
15:31:49 × Kaipi quits (~Kaiepi@156.34.44.192) (Ping timeout: 252 seconds)
15:34:18 CiaoSen joins (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
15:34:36 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:afbb:bfd4:a938:ea92) (Quit: WeeChat 2.8)
15:34:49 <michalz> hello I've question about getting list of interfaces from haskell under Freebsd. I couldn't find any on hackage. Maybe I missed something obvious and it is easy task.
15:35:50 <Hecate> michalz: network interfaces?
15:36:06 <geekosaur> what do you mean by "list of interfaces"?
15:36:24 geekosaur is actually thinking it's some OOish thing
15:36:43 <Hecate> under Freebsd, sounds like a network interface thingy
15:36:59 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
15:38:25 <Hecate> michalz: test this https://hackage.haskell.org/package/network-info-0.2.0.1
15:38:28 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
15:42:09 mc47 joins (~mc47@xmonad/TheMC47)
15:44:28 × azeem quits (~azeem@emp-49-166.eduroam.uu.se) (Read error: Connection reset by peer)
15:44:39 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Remote host closed the connection)
15:45:11 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:46:00 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
15:46:36 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:47:45 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
15:48:01 azeem joins (~azeem@emp-49-166.eduroam.uu.se)
15:48:16 ec joins (~ec@gateway/tor-sasl/ec)
15:49:13 ksqsf joins (~user@2001:da8:d800:611:2986:ce93:5b81:3cd1)
15:50:39 phma_ is now known as phma
15:52:06 sbmsr joins (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d)
15:53:58 × ksqsf quits (~user@2001:da8:d800:611:2986:ce93:5b81:3cd1) (Ping timeout: 252 seconds)
15:55:17 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 264 seconds)
15:55:43 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
15:55:44 sm joins (~sm@plaintextaccounting/sm)
15:55:46 <myShoggoth> It is Haskell Foundation Office Hours time again, come join us in a few minutes at https://www.twitch.tv/myshoggoth
15:56:06 × snekism`` quits (~user@88.160.31.174) (Remote host closed the connection)
15:56:23 fendor_ is now known as fendor
15:58:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
15:58:55 <sprout> > :t 0
15:58:56 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
15:59:03 <sprout> > :type 0
15:59:05 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
15:59:11 <sprout> hmpf. okay
15:59:22 × MQ-17J quits (~MQ-17J@8.6.144.233) (Ping timeout: 252 seconds)
15:59:25 × xiongxin quits (~quassel@119.123.103.95) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
15:59:55 MQ-17J joins (~MQ-17J@8.6.144.233)
16:00:01 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
16:01:11 jaitoon joins (~Jaitoon@2a02:c7f:a5f:1d00:80a5:88ed:11ad:22ee)
16:01:26 × Arathorn quits (~arathorn@2001:470:69fc:105::1f) (Ping timeout: 268 seconds)
16:01:31 <geekosaur> :t 0
16:01:33 <lambdabot> Num p => p
16:01:40 Arathorn joins (~arathorn@2001:470:69fc:105::1f)
16:01:56 jaitoon2 joins (~Jaitoon@2a02:c7f:a5f:1d00:80a5:88ed:11ad:22ee)
16:02:29 × sbmsr quits (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d) (Quit: WeeChat 2.3)
16:02:48 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: dfllkl)
16:03:03 sbmsr joins (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d)
16:03:34 × SimonWeiss[m] quits (~weiss-dma@2001:470:69fc:105::bebd) (Ping timeout: 250 seconds)
16:03:35 × sbmsr quits (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d) (Client Quit)
16:03:41 × bb010g quits (~bb010g@2001:470:69fc:105::9a5) (Ping timeout: 264 seconds)
16:03:50 SimonWeiss[m] joins (~weiss-dma@2001:470:69fc:105::bebd)
16:03:55 bb010g joins (~bb010g@2001:470:69fc:105::9a5)
16:03:55 sbmsr joins (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d)
16:04:18 Kaiepi joins (~Kaiepi@156.34.44.192)
16:04:26 × schuelermine[m] quits (~schuelerm@user/schuelermine) (Ping timeout: 246 seconds)
16:04:29 × jaitoon1 quits (~Jaitoon@78.110.164.49) (Ping timeout: 245 seconds)
16:04:29 <michalz> Hecate: exactly about this kind package I was asking. Thank you very much
16:04:40 schuelermine[m] joins (~schuelerm@user/schuelermine)
16:04:42 × sbmsr quits (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d) (Client Quit)
16:04:59 × ikex quits (ash@user/ikex) (Quit: ZNC - https://znc.in)
16:05:13 sbmsr joins (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d)
16:05:25 × jaitoon quits (~Jaitoon@2a02:c7f:a5f:1d00:80a5:88ed:11ad:22ee) (Ping timeout: 252 seconds)
16:05:36 ikex joins (~ash@user/ikex)
16:07:29 <sprout> :t let f = (
16:07:30 <lambdabot> error:
16:07:30 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
16:07:32 <sprout> oops
16:07:53 × cloudy quits (~cloudy@2001:470:69fc:105::50c0) (Ping timeout: 264 seconds)
16:08:08 cloudy joins (~cloudy@2001:470:69fc:105::50c0)
16:08:19 <sprout> :t let f = (\f -> f . f) in let d = (\x -> (x,x)) in f f f f d 0
16:08:20 <lambdabot> error:
16:08:20 <lambdabot> • Occurs check: cannot construct the infinite type: b ~ (b, b)
16:08:20 <lambdabot> Expected type: b -> b
16:08:21 ksqsf joins (~user@222.195.85.112)
16:08:29 <sprout> heh
16:08:52 <sprout> :t let f = (\f -> f . f) in let d = (\x -> (x,x)) in f d 0
16:08:52 <lambdabot> error:
16:08:53 <lambdabot> • Occurs check: cannot construct the infinite type: b ~ (b, b)
16:08:53 <lambdabot> Expected type: (b, b) -> (b, b)
16:08:59 × alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 246 seconds)
16:09:14 <sprout> :t let f = (\f -> f . f) in let d = (\x -> x + 1) in f d 0
16:09:15 <lambdabot> Num b => b
16:09:27 <sprout> hmm. ah well
16:10:04 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 250 seconds)
16:10:28 × neurocyte013288 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
16:10:41 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
16:11:05 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (Ping timeout: 246 seconds)
16:11:47 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
16:11:51 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:12:06 <monochrom> "f . f" requires f's domain and codomain to match.
16:12:13 zmt00 joins (~zmt00@user/zmt00)
16:12:17 neurocyte013288 joins (~neurocyte@94.46.73.31)
16:12:17 × neurocyte013288 quits (~neurocyte@94.46.73.31) (Changing host)
16:12:17 neurocyte013288 joins (~neurocyte@user/neurocyte)
16:12:17 <sprout> :t let f = (\f -> f . f) in let d = (\x -> x + 1) in f f d 0
16:12:18 <lambdabot> Num b => b
16:12:29 <sprout> ah, right
16:12:40 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
16:12:59 <sprout> monochrom: thanks
16:13:01 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
16:14:29 × SimonWeiss[m] quits (~weiss-dma@2001:470:69fc:105::bebd) (Ping timeout: 264 seconds)
16:14:35 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (Ping timeout: 246 seconds)
16:14:48 SimonWeiss[m] joins (~weiss-dma@2001:470:69fc:105::bebd)
16:15:04 chisui joins (~chisui@200116b86859c20084cb21a4f7d52a37.dip.versatel-1u1.de)
16:15:05 × xosdy[m] quits (~xosdyalet@2001:470:69fc:105::31f7) (Ping timeout: 264 seconds)
16:15:10 amesgen[m] joins (~amesgenm]@2001:470:69fc:105::82b)
16:15:17 × rosariopulella[m quits (~rosariopu@2001:470:69fc:105::a57) (Ping timeout: 246 seconds)
16:15:20 xosdy[m] joins (~xosdyalet@2001:470:69fc:105::31f7)
16:17:06 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
16:17:07 × azeem quits (~azeem@emp-49-166.eduroam.uu.se) (Read error: Connection reset by peer)
16:17:39 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
16:18:36 rosariopulella[m joins (~rosariopu@2001:470:69fc:105::a57)
16:19:36 × ilkecan[m] quits (~ilkecanma@2001:470:69fc:105::1:79b) (Ping timeout: 250 seconds)
16:20:04 ilkecan[m] joins (~ilkecanma@2001:470:69fc:105::1:79b)
16:20:06 × jaitoon2 quits (~Jaitoon@2a02:c7f:a5f:1d00:80a5:88ed:11ad:22ee) (Ping timeout: 260 seconds)
16:20:11 × bitonic1 quits (~bitonic@2001:470:69fc:105::1812) (Ping timeout: 246 seconds)
16:20:27 ec joins (~ec@gateway/tor-sasl/ec)
16:20:32 × bakinonion[m] quits (~bakinonio@2001:470:69fc:105::ddb3) (Ping timeout: 246 seconds)
16:21:00 bakinonion[m] joins (~bakinonio@2001:470:69fc:105::ddb3)
16:21:14 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 246 seconds)
16:22:17 × carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Ping timeout: 264 seconds)
16:22:27 azeem joins (~azeem@emp-49-166.eduroam.uu.se)
16:22:38 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 246 seconds)
16:22:40 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
16:22:59 carmysilna joins (~brightly-@2001:470:69fc:105::2190)
16:24:20 fgaz joins (~fgaz@2001:470:69fc:105::842)
16:24:28 hyiltiz joins (~quassel@31.220.5.250)
16:25:14 × denbrahe[m] quits (~denbrahem@2001:470:69fc:105::19c0) (Ping timeout: 250 seconds)
16:25:31 ubert joins (~Thunderbi@178.115.39.222.wireless.dyn.drei.com)
16:25:53 × Topik[m] quits (~topikmatr@2001:470:69fc:105::a082) (Ping timeout: 264 seconds)
16:26:02 denbrahe[m] joins (~denbrahem@2001:470:69fc:105::19c0)
16:26:52 × azeem quits (~azeem@emp-49-166.eduroam.uu.se) (Ping timeout: 252 seconds)
16:27:01 Topik[m] joins (~topikmatr@2001:470:69fc:105::a082)
16:27:41 × sky_lounge[m] quits (~skylounge@2001:470:69fc:105::efa6) (Ping timeout: 264 seconds)
16:29:06 sky_lounge[m] joins (~skylounge@2001:470:69fc:105::efa6)
16:29:37 × CiaoSen quits (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
16:31:53 × ericson23141 quits (~ericson23@2001:470:69fc:105::70c) (Ping timeout: 264 seconds)
16:32:13 azeem joins (~azeem@2a00:801:2d3:fa49:17:2898:68c5:cae6)
16:33:10 × MQ-17J quits (~MQ-17J@8.6.144.233) (Ping timeout: 260 seconds)
16:33:38 MQ-17J joins (~MQ-17J@8.6.144.233)
16:33:41 × reza[m] quits (~rezaphone@2001:470:69fc:105::3eda) (Ping timeout: 264 seconds)
16:33:41 × rednaZ[m] quits (~r3dnazmat@2001:470:69fc:105::ba70) (Ping timeout: 264 seconds)
16:34:53 × afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (Ping timeout: 264 seconds)
16:34:53 × ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Ping timeout: 264 seconds)
16:35:58 × wysteriary[m] quits (~wysteriar@2001:470:69fc:105::a42e) (Ping timeout: 268 seconds)
16:36:17 ericson23141 joins (~ericson23@2001:470:69fc:105::70c)
16:36:41 × PotatoHatsue quits (~berberman@2001:470:69fc:105::b488) (Ping timeout: 264 seconds)
16:36:50 bitonic1 joins (~bitonic@2001:470:69fc:105::1812)
16:37:52 × MQ-17J quits (~MQ-17J@8.6.144.233) (Ping timeout: 252 seconds)
16:38:15 rednaZ[m] joins (~r3dnazmat@2001:470:69fc:105::ba70)
16:38:22 reza[m] joins (~rezaphone@2001:470:69fc:105::3eda)
16:38:27 pavonia joins (~user@user/siracusa)
16:38:49 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Remote host closed the connection)
16:39:05 × shiraeeshi[m] quits (~shiraeesh@2001:470:69fc:105::1:77) (Ping timeout: 246 seconds)
16:39:05 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (Ping timeout: 264 seconds)
16:39:41 × bb010g quits (~bb010g@2001:470:69fc:105::9a5) (Ping timeout: 264 seconds)
16:39:42 afotgkmnzj7asv3r joins (~afotgkmnz@2001:470:69fc:105::c24b)
16:41:09 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
16:41:16 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 250 seconds)
16:42:02 rond_ joins (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438)
16:42:02 wysteriary[m] joins (~wysteriar@2001:470:69fc:105::a42e)
16:42:14 × monadfritz[m] quits (~ahdytmatr@2001:470:69fc:105::e1f1) (Ping timeout: 246 seconds)
16:42:34 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 250 seconds)
16:42:56 × lwe[m] quits (~dendrumat@2001:470:69fc:105::2f9b) (Ping timeout: 246 seconds)
16:44:20 ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2)
16:44:44 × Christoph[m] quits (~hpotsirhc@2001:470:69fc:105::2ff8) (Ping timeout: 250 seconds)
16:45:23 × the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Ping timeout: 246 seconds)
16:45:25 × abrantesasf quits (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) (Quit: Leaving)
16:45:27 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
16:45:29 shiraeeshi[m] joins (~shiraeesh@2001:470:69fc:105::1:77)
16:45:45 ec joins (~ec@gateway/tor-sasl/ec)
16:45:50 lavaman joins (~lavaman@98.38.249.169)
16:46:05 glguy is now known as ghoulguy
16:46:07 <zzz> i'm having trouble understanding why my solution to https://www.codewars.com/kata/550756a881b8bdba99000348 isn't performant enough: https://paste.jrvieira.com/1633363625990
16:46:10 python476 joins (~user@88.160.31.174)
16:46:27 × sam[m]1 quits (~sammtopoi@2001:470:69fc:105::e887) (Ping timeout: 268 seconds)
16:46:49 bb010g joins (~bb010g@2001:470:69fc:105::9a5)
16:47:10 × fjmorazan quits (~quassel@user/fjmorazan) (Quit: fjmorazan)
16:47:11 <zzz> i'm using a Map to memoize, i've tried Strict and Lazy. execution time always exceeds the limit
16:47:12 <zzz> what am i missing?
16:47:35 <Hecate> zzz: Yeah, about that… http://h2.jaguarpaw.co.uk/posts/data-map-strict-map-not-strict-map/
16:48:12 fjmorazan joins (~quassel@user/fjmorazan)
16:48:54 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
16:49:47 <Hecate> zzz: did you try using a Text instead of a String?
16:50:04 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
16:50:09 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
16:50:29 × stoicswe[m] quits (~deadlette@2001:470:69fc:105::d277) (Ping timeout: 264 seconds)
16:50:37 monadfritz[m] joins (~ahdytmatr@2001:470:69fc:105::e1f1)
16:51:11 <zzz> Hecate: not sure what you mean
16:51:27 lwe[m] joins (~dendrumat@2001:470:69fc:105::2f9b)
16:52:17 × Topik[m] quits (~topikmatr@2001:470:69fc:105::a082) (Ping timeout: 264 seconds)
16:52:17 × raym quits (~raym@user/raym) (Ping timeout: 264 seconds)
16:52:24 <Hecate> oh sorry, zzz, with all the primed variables I thought I was reading character literals :')
16:52:25 <geekosaur> String is a linked list oif Char; Text is much more optimal
16:52:35 <geekosaur> heh
16:52:42 raym joins (~raym@user/raym)
16:52:49 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
16:52:57 Christoph[m] joins (~hpotsirhc@2001:470:69fc:105::2ff8)
16:53:29 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (Ping timeout: 264 seconds)
16:53:50 × ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Ping timeout: 250 seconds)
16:53:51 × quantum quits (~quantum@user/quantum/x-8556232) (Ping timeout: 268 seconds)
16:54:05 the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f)
16:54:05 hyiltiz joins (~quassel@31.220.5.250)
16:54:55 × azeem quits (~azeem@2a00:801:2d3:fa49:17:2898:68c5:cae6) (Ping timeout: 252 seconds)
16:55:01 sam[m]1 joins (~sammtopoi@2001:470:69fc:105::e887)
16:55:37 azeem joins (~azeem@2a00:801:2d3:fa49:9002:1b34:5306:e795)
16:56:15 <dsal> zzz: Have you tried profiling?
16:56:21 synthmeat1 is now known as synthmeat
16:56:47 <zzz> ah yes sorry. that's not my most elegant style :p
16:57:12 awschnap joins (~lavaman@98.38.249.169)
16:57:18 PotatoHatsue joins (~berberman@2001:470:69fc:105::b488)
16:58:50 stoicswe[m] joins (~deadlette@2001:470:69fc:105::d277)
16:58:56 × rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed)
16:59:24 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
16:59:36 × awschnap quits (~lavaman@98.38.249.169) (Remote host closed the connection)
17:00:43 Topik[m] joins (~topikmatr@2001:470:69fc:105::a082)
17:01:26 quantum joins (~quantum@user/quantum/x-8556232)
17:02:01 emf joins (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5)
17:02:42 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
17:03:11 × doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
17:03:26 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
17:03:26 jaitoon joins (~Jaitoon@2a02:c7f:a5f:1d00:f967:2cdb:e7a7:ac52)
17:04:12 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
17:04:46 <monochrom> zzz: Where do you ever use Map.insert or equiv?
17:04:56 nfd joins (~nfd@user/nfd)
17:05:19 × jokleinn quits (~jokleinn@user/jokleinn) (Ping timeout: 252 seconds)
17:05:20 vladomiro joins (~vladomiro@2806:266:485:8e3a:21a:73ff:fe1a:3ecb)
17:05:34 × Topik[m] quits (~topikmatr@2001:470:69fc:105::a082) (Ping timeout: 268 seconds)
17:05:43 geekosaur joins (~geekosaur@xmonad/geekosaur)
17:06:14 Topik[m] joins (~topikmatr@2001:470:69fc:105::a082)
17:06:55 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
17:06:59 ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2)
17:08:02 zero joins (~z@user/zero)
17:08:29 × justosophy[m] quits (~justosoph@2001:470:69fc:105::572f) (Ping timeout: 264 seconds)
17:08:41 justosophy[m] joins (~justosoph@2001:470:69fc:105::572f)
17:09:11 × zzz quits (~yin@user/zero) (Ping timeout: 246 seconds)
17:09:44 econo joins (uid147250@user/econo)
17:12:27 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
17:12:34 <int-e> . o O ( a pastebin with a websocket... eek )
17:13:10 × yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 252 seconds)
17:13:25 yahb joins (xsbot@user/mniip/bot/yahb)
17:14:08 ec joins (~ec@gateway/tor-sasl/ec)
17:21:36 <zero> int-e: random experiences :p
17:21:51 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:22:13 × shiraeeshi[m] quits (~shiraeesh@2001:470:69fc:105::1:77) (Ping timeout: 268 seconds)
17:22:27 shiraeeshi[m] joins (~shiraeesh@2001:470:69fc:105::1:77)
17:22:47 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
17:23:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:24:41 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (Ping timeout: 268 seconds)
17:24:42 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
17:24:49 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
17:25:26 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
17:25:34 × python476 quits (~user@88.160.31.174) (Remote host closed the connection)
17:25:43 <tomsmeding> oh too bad zzz is gone
17:25:46 <tomsmeding> it's a fun exercise
17:26:29 <tomsmeding> @tell zzz re your recurrence relations kata: try sequencing all evaluations of f, that is to say: make sure that evaluations lower in the tree are cached when performing later evaluations higher up in the tree
17:26:30 <lambdabot> Consider it noted.
17:26:56 tomsmeding is happy with a 13-line solution (excluding imports)
17:26:59 × neurocyte013288 quits (~neurocyte@user/neurocyte) (Ping timeout: 245 seconds)
17:29:17 <tomsmeding> everyone on that site going wild with the state monads, even one person using STRefs
17:29:22 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 250 seconds)
17:29:25 ec joins (~ec@gateway/tor-sasl/ec)
17:29:34 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
17:29:35 tomsmeding just using boring old passing around of values
17:29:43 carbolymer_ is now known as carbolymer
17:30:04 lavaman joins (~lavaman@98.38.249.169)
17:32:01 × mbuf quits (~Shakthi@223.184.52.129) (Quit: Leaving)
17:32:52 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:32:52 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
17:32:52 wroathe joins (~wroathe@user/wroathe)
17:32:59 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
17:33:28 slac97577 joins (~slack1256@181.203.26.196)
17:34:23 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 246 seconds)
17:34:36 xsperry joins (~xs@user/xsperry)
17:35:34 × slack1256 quits (~slack1256@191.126.227.74) (Ping timeout: 252 seconds)
17:38:40 × emf quits (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) (Read error: Connection reset by peer)
17:38:40 emf_ joins (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5)
17:39:20 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
17:40:38 × santiagopim[m] quits (~santiagop@2001:470:69fc:105::e57d) (Ping timeout: 250 seconds)
17:40:52 santiagopim[m] joins (~santiagop@2001:470:69fc:105::e57d)
17:43:08 × ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (Ping timeout: 246 seconds)
17:43:37 k`` joins (~user@152.1.137.158)
17:43:48 ongy[m] joins (~ongymatri@2001:470:69fc:105::5018)
17:44:25 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Ping timeout: 268 seconds)
17:45:55 timCF joins (~timCF@m91-129-108-244.cust.tele2.ee)
17:47:54 <timCF> Hello! Does anybody know the real reason why Cabal can not work with multiple versions of the same package at the same time (like for example Nix does)? It's such an inconvenience..
17:48:10 mei joins (~mei@user/mei)
17:48:17 <k``> I'm trying to define a simple type for tracking whether changes have been made to something, but I'm running into problems with the `Functor` instance. The type is `data Altered a = Altered Bool a` , and `fmap` is defined as `fmap f (Altered _ x) = Altered True x` , since `f` may alter `x`. But that violates the law `fmap id = id` . Is there any way around this, or is it just not a `Functor` ?
17:50:27 <sclv> almost certainly you’ll want the multiple versions to interact and then you’re in a world of pain. also the semantics of managing which package your code refers to become confusing and fragile. plus static compilation with pervasive inlining make it complicated beyond belief
17:50:43 <monochrom> I very much doubt that nix enables using multiple versions of the same C lib in the same exe in the first place.
17:50:50 <[exa]> k``: I hit that problem once, generally it is _not_ a functor. I ended up making my own version of a lensy `set`
17:52:53 × fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 264 seconds)
17:53:07 fendor[m] joins (~fendormat@2001:470:69fc:105::fcbd)
17:54:00 <monochrom> OTOH if you just need "different projects use different versions, just that my file system stores all versions disjointly", cabal already does that, and it's aptly called "nix-style local builds".
17:54:02 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
17:54:02 zero is now known as zzz
17:54:15 zzz parts (~z@user/zero) ()
17:54:16 <k``> [exa]: Thanks. You've saved me some wasted effort. I think it can't actually be a lens, since the lens laws are basically the `Functor` laws, but having a little specialized combinator should work.
17:54:21 <timCF> monochrom: well, Nix is mostly build system, not a compiler. So whatever C lib version is needed for compiled executable - it's there. But the thing is, if there is another executable which wants slightly different C lib version - it's there as well.
17:54:23 zzz joins (~z@user/zero)
17:54:43 <monochrom> Sure.
17:55:11 <monochrom> So "at the same time" has not communicated what you mean.
17:55:15 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
17:55:22 <monochrom> because it means to me "the same exe".
17:56:43 <tomsmeding> and if you mean: one version for executable A and another version for executable B, then cabal can do that :)
17:57:01 echoone joins (~echoone@2a02:8109:a1c0:5d05:5009:2189:2fe:38d5)
17:57:16 <zzz> tomsmeding: thanks for the tip!
17:57:41 <tomsmeding> oh wait zzz = zero
17:57:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:59:00 <zzz> tomsmeding: yes sorry. znc changed it on server reboot
17:59:40 ec joins (~ec@gateway/tor-sasl/ec)
17:59:50 × robosexual quits (~spaceoyst@88.85.216.62) (Quit: Konversation terminated!)
18:00:25 <timCF> tomsmeding: yes, I see) But mostly I have a problems where there are multiple dependencies in my package - A wants C1 and B wants C2. And then it goes deeper into dependency tree. I wonder - why dependency A just can not use code from C1 and dependency B code from the C2?
18:01:17 <timCF> Why C1 always shold be equal to C2 eventually when I brute force versions to make it compile
18:01:20 × sam[m]1 quits (~sammtopoi@2001:470:69fc:105::e887) (Ping timeout: 246 seconds)
18:01:35 sam[m]1 joins (~sammtopoi@2001:470:69fc:105::e887)
18:02:11 <tomsmeding> timCF: what are A, B, C1 and C2 here? executables/libraries? modules?
18:03:12 × fkaSleeper_ quits (~fkaSleepe@gateway/tor-sasl/fkasleeper) (Remote host closed the connection)
18:03:26 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
18:05:21 <[exa]> k``: yeah to make it work I needed to have a functor like ((,) Bool) and then postprocess the whole thing to sink the changes in. And it was clunky.
18:05:48 justsomeguy joins (~justsomeg@user/justsomeguy)
18:06:03 <timCF> tomsmeding: cabal/stack packages
18:06:08 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
18:06:12 × sam[m]1 quits (~sammtopoi@2001:470:69fc:105::e887) (Ping timeout: 250 seconds)
18:06:24 sam[m]1 joins (~sammtopoi@2001:470:69fc:105::e887)
18:06:50 <justsomeguy> Can Numeric.Natural be arbitrarily large? When a Natural exceedes the amount of physical memory, can it still increase, but just go to swap?
18:06:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
18:06:57 <tomsmeding> timCF: like, there's A.cabal, B.cabal, C1.cabal, C2.cabal?
18:07:10 lavaman joins (~lavaman@98.38.249.169)
18:07:12 <timCF> tomsmeding: yes
18:07:28 <zzz> monochrom: you are right, i was in the middle of an edit. here's the correct version: https://paste.jrvieira.com/1633370807371
18:07:29 <tomsmeding> I don't see what would go wrong with multiple versions of dependencies at that level
18:07:31 <timCF> C1 and C2 just different versions of package C
18:07:53 <tomsmeding> new cabal should be able to handle multiple versions of the same package in the same store just fien
18:07:56 <tomsmeding> *fine
18:08:26 <awpr> swapping is the OS' concern, if parts of the Natural are in pages that haven't been used for a long time, they could end up getting swapped out. you probably don't want that to happen though -- I'm not sure how the GC would cope with having enough BigNat chunks to exhaust physical memory
18:08:35 <timCF> interesting.. which version of cabal? Maybe I don't need to struggle then)
18:08:54 <tomsmeding> timCF: >= 3.0
18:09:04 <tomsmeding> or earlier with v2- prefix to commands (cabal v2-build, etc.)
18:09:52 <tomsmeding> historically many people complained that cabal did lots of stuff wrong; 99% of that, if not more, is fixed since the new style cabal
18:10:07 <tomsmeding> (not 100% because no software is perfect)
18:10:14 <timCF> hmm.. Then probably I'm using it wrong way, will try to read more docs)
18:10:15 <timCF> Thanks!
18:10:30 <tomsmeding> timCF: are you running 'cabal install'?
18:10:33 <tomsmeding> if so, probably don't
18:10:41 <tomsmeding> unless it is to install the final executable
18:11:50 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 250 seconds)
18:12:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
18:12:42 <awpr> looks like the chunks are actually stored in a contiguous array, so no GC problems, but then you have the problem that that's one outrageously large allocation, and if it's large enough to exhaust physical memory, then anything that "updates" it means allocating another one of the same size, i.e. swapping the entire memory to disk and thrashing everything as it copies one to the other
18:13:26 <awpr> so in theory yes, it can be large enough to swap without breaking, but in practice that would be pretty disastrous
18:13:44 <tomsmeding> taking "breaking" in the technically correct sense
18:13:59 <awpr> the best kind of not-breaking
18:14:35 <timCF> No, I'm jsut using stack/nix. But usually my issue looks like "dependency A wants C < 1.1 but dependency B wants C > 2.0 and cabal build plan failed". I just was wondering what's the fundamental problem of dependency A using C-1.0 and dependency B using C-2.1.
18:14:51 × max22- quits (~maxime@2a01cb0883359800a065fae8774bc59b.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
18:15:07 <sclv> timCF: imagine C defines a data structure
18:15:17 <tomsmeding> oh you're having A and B dependencies of the same executable? right, then you want two versions of the same package inside the same executable
18:15:33 <sclv> now you have two versions of the data structure that are incompatible in scope, and different parts of the code end up using different versions of the structure
18:15:37 <tomsmeding> monochrom's point was that gcc doesn't support that even :p
18:15:39 <sclv> and none of the code from one version can make use of the other version
18:15:46 <sclv> its a nightmare
18:16:23 × razor[m] quits (~razormone@2001:470:69fc:105::f048) (Ping timeout: 246 seconds)
18:16:23 <tomsmeding> you'd get niceties like "Cannot match type 'FooStructure' with type 'FooStructure'"
18:16:33 <tomsmeding> where one comes from C-1.0 and the other from C-2.0
18:16:35 razor[m] joins (~razormone@2001:470:69fc:105::f048)
18:16:49 <tomsmeding> actually didn't merijn at some point complain about an error like that in the channel
18:17:21 <zzz> tomsmeding: "try sequencing all evaluations of f" <- isn't that what i'm doing? note how i'm folding f': https://paste.jrvieira.com/1633370807371
18:17:24 <int-e> timCF: It may be the case that A (or B) never exposes any detail of C, and that C has no global state, in which case this may be fine. I don't think we have a way of expressing this kind of purely internal dependency though.
18:17:27 <monochrom> Interesting, GHC is more relaxed about that than cabal-install is.
18:17:32 tput joins (~tim@S0106a84e3fe54613.ed.shawcable.net)
18:17:40 <monochrom> err, s/Interesting/Interestingly/ !
18:17:52 <int-e> So the conservative approach is to disallow this scenario completely.
18:18:29 <sclv> right -- you can sort of have fully version qualified imports if you turn em on. but that fixes you to a _precise_ specification of the versions, which cuts against the whole "code works across a range of versions" thing you get from cabal specs
18:18:33 Pickchea joins (~private@user/pickchea)
18:18:39 <monochrom> But this still doesn't mean GHC always allows it. GHC takes a look at "do A and B exchange C data?" and can still reject.
18:18:40 <sclv> so cabal just has a hard "no" rule
18:18:47 <monochrom> So, here is your choice.
18:19:02 <monochrom> A. cabal-install plays it safe and just bans it up front.
18:19:04 <sclv> because it wants to give you an answer that always works ahead of time instead of just trying to compile even if it might fail
18:19:13 <sclv> or, er, what was just said above :-)
18:19:21 <tomsmeding> zzz: you're using a left fold but pushing results on using :. Your result list will be reversed.
18:19:21 × k`` quits (~user@152.1.137.158) (Quit: ERC (IRC client for Emacs 27.1))
18:19:27 <monochrom> B. cabal-install looks the other way so build success/failure is non-deterministic.
18:19:32 <int-e> oh "global state" isn't the whole story... if there are C bits, those may result in clashing symbol names when linking
18:19:48 <zzz> tomsmeding: oh
18:20:01 <int-e> which is bad news if the implementation changed (say, extra arguments were added) between C-1.0 and C-2.0
18:20:09 <monochrom> Oh yeah, c bits too, that's a guaranteed failure.
18:20:50 <tomsmeding> zzz: otherwise it does indeed look fine
18:20:56 × ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (Ping timeout: 246 seconds)
18:21:10 ongy[m] joins (~ongymatri@2001:470:69fc:105::5018)
18:21:33 <tomsmeding> zzz: note that mapAccumL exists; makes that foldl' a bit nicer
18:22:45 <timCF> Yeah, seems like if A and B are not related to each other in any way - using different verisons of C might be fine? But kinda hard to implement that verification I guess
18:24:30 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
18:26:28 <monochrom> <troll>Perhaps dependent typing can solve this problem.</troll>
18:27:15 <tomsmeding> well, dependency typing can solve this
18:27:36 <monochrom> zzz: I have trouble seeing how this memoizes anything other than the base cases.
18:27:36 <tomsmeding> like, typing out your dependencies' source and fixing the incompatibility issues along the way
18:28:28 <tomsmeding> oh right
18:28:39 <tomsmeding> zzz: as monochrom says, in the final otherwise line, you need some more Map.insert
18:28:58 ec joins (~ec@gateway/tor-sasl/ec)
18:28:59 × monadfritz[m] quits (~ahdytmatr@2001:470:69fc:105::e1f1) (Ping timeout: 246 seconds)
18:29:11 monadfritz[m] joins (~ahdytmatr@2001:470:69fc:105::e1f1)
18:30:18 <zzz> tomsmeding: i see it now. thanks
18:32:02 <timCF> Yeah, I just was really amazed by Nix and how it allows to compose literally **any** stuff, and was again frustrated by Cabal trying to upgrade to GHC901. Thanks for replies)
18:32:46 slack1256 joins (~slack1256@191.126.136.33)
18:33:11 × slac97577 quits (~slack1256@181.203.26.196) (Ping timeout: 246 seconds)
18:33:28 × renzhi quits (~xp@2607:fa49:6500:b100::1d9d) (Ping timeout: 252 seconds)
18:33:38 <monochrom> Ugh if you don't need the new-fangled linear types, please stay with 8.10.7 or something, you will have much better library compatibility.
18:34:17 <monochrom> Or the new-fangled record-dot syntax, or something.
18:34:31 <c_wraith> And I'm waiting on 9.2 to finally get released to fix several bugs I've personally hit in the last month
18:34:52 <c_wraith> 9.2 is almost 6 months behind schedule now. yikes.
18:35:02 <monochrom> Yeah I will be pretty quick to adopt 9.2 too, but not 9.0.
18:35:15 awpr is most excited about Quick Look ATM
18:36:29 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
18:36:29 <c_wraith> like.. The raw features of the 9.2 release candidate are really nice, but library compatibility is.. well, what you'd expect for a pre-release version.
18:36:32 × quantum quits (~quantum@user/quantum/x-8556232) (Ping timeout: 250 seconds)
18:39:42 quantum joins (~quantum@user/quantum/x-8556232)
18:39:49 Guest75 joins (~Guest75@179.156.35.4)
18:40:30 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:40:30 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
18:40:30 wroathe joins (~wroathe@user/wroathe)
18:40:38 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Remote host closed the connection)
18:40:56 geekosaur joins (~geekosaur@xmonad/geekosaur)
18:41:59 vicfred joins (~vicfred@user/vicfred)
18:43:58 × ksqsf quits (~user@222.195.85.112) (Remote host closed the connection)
18:44:07 ksqsf joins (~user@2001:da8:d800:611:fcb1:feaa:9083:7bb7)
18:44:58 × synthmeat quits (~synthmeat@user/synthmeat) (Quit: WeeChat 3.2)
18:45:12 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
18:46:19 renzhi joins (~xp@2607:fa49:6500:b100::5845)
18:49:06 × ksqsf quits (~user@2001:da8:d800:611:fcb1:feaa:9083:7bb7) (Ping timeout: 250 seconds)
18:51:19 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:54:24 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
18:56:09 max22- joins (~maxime@2a01cb0883359800445285fddcc1435e.ipv6.abo.wanadoo.fr)
18:56:42 × max22- quits (~maxime@2a01cb0883359800445285fddcc1435e.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
18:57:27 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
18:57:32 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
18:58:34 ec joins (~ec@gateway/tor-sasl/ec)
18:59:26 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
19:01:26 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:01:26 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
19:01:26 wroathe joins (~wroathe@user/wroathe)
19:04:22 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 260 seconds)
19:05:36 × jespada quits (~jespada@2803:9800:9842:7a62:5898:2a80:ce35:b80a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:05:51 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
19:05:57 synthmeat joins (~synthmeat@user/synthmeat)
19:06:03 jespada joins (~jespada@2803:9800:9842:7a62:5898:2a80:ce35:b80a)
19:10:52 × jespada quits (~jespada@2803:9800:9842:7a62:5898:2a80:ce35:b80a) (Ping timeout: 252 seconds)
19:12:36 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:12:46 quasisyntaxed joins (~user@2804:1b2:83:4cd5:4823:3e85:f547:9207)
19:17:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
19:18:03 mortemeur joins (~mortemeur@pool-173-76-107-201.bstnma.fios.verizon.net)
19:18:15 fef joins (~thedawn@user/thedawn)
19:20:36 justsomeguy joins (~justsomeg@user/justsomeguy)
19:22:22 ksqsf joins (~user@2001:da8:d800:611:389f:8369:9f11:52f)
19:27:14 × ksqsf quits (~user@2001:da8:d800:611:389f:8369:9f11:52f) (Ping timeout: 250 seconds)
19:27:51 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
19:29:13 ksqsf joins (~user@222.195.85.112)
19:37:18 <mortemeur> can someone help me with this?: https://gist.github.com/mortemeur/eb1888135c11a66f36ab5dca913afc36
19:37:53 <dminuoso> Hi mortemeur. What question/problem do you have?
19:38:30 <mortemeur> I am getting the error parse error on input = for filter
19:38:36 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:38:46 <dminuoso> mortemeur: Can you perhaps gist the entirety of the error?
19:38:52 <dminuoso> Include it in a separate file of the same gist, perhaps
19:38:57 kayprish joins (~kayprish@46.240.130.158)
19:39:27 <mortemeur> dminuoso: how do I do that in emacs? right now I move the cursor over the offending line and it pops up
19:39:33 <mortemeur> it doesn't seem to be in *Messages*
19:39:54 <dminuoso> mortemeur: Are you using HLS?
19:40:02 <mortemeur> dminuoso: yes
19:41:08 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
19:41:27 <dminuoso> Interesting mmm.
19:42:37 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
19:42:56 ec joins (~ec@gateway/tor-sasl/ec)
19:43:13 <dminuoso> mortemeur: Do you use flycheck? You can also get the errors via `C-c ! l`
19:43:33 <dminuoso> But either way, did you forget to save your buffer perhaps?
19:43:36 <dminuoso> This is valid haskell
19:43:40 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:44:00 <monochrom> Yeah loads fine with me, both as euler1.hs and as Lib.hs
19:44:23 <monochrom> BTW if you say "module Lib" you should not be calling it euler1.hs.
19:44:24 <dminuoso> And if this really doesnt help, Id restart the HLS
19:44:35 <dminuoso> Perhaps something got bugged the wrong way
19:44:40 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
19:45:26 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Ping timeout: 250 seconds)
19:45:35 <mortemeur> Okay, thank you guys
19:50:06 × echoone quits (~echoone@2a02:8109:a1c0:5d05:5009:2189:2fe:38d5) (Quit: Client closed)
19:50:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:50:11 × bsima quits (~bsima@simatime.com) (Quit: ZNC 1.8.2 - https://znc.in)
19:50:43 bsima joins (~bsima@simatime.com)
19:51:56 × Guest75 quits (~Guest75@179.156.35.4) (Quit: Connection closed)
19:54:27 <mortemeur> I get "Precedenc parsing error: Cannot mix '<' and '==' in the same infix expression for this
19:54:34 <mortemeur> euler1 = filter (\x -> (x < 100) && (x `mod` 3 == 0) && (x `mod` 5 == 0)) numbers1
19:55:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
19:56:05 <dminuoso> % x `mod` 3 == 0
19:56:11 <yahb> dminuoso: [Timed out]
19:56:35 <dminuoso> mortemeur: Mmm, Im thinking you have something really bugged over there.
19:56:51 <dminuoso> Maybe something in your emacs config
19:57:15 <awpr> `<` and `==` are not mixed in the same infix expression, in that code. must be an error from a stale build, or the file hasn't been written, or something like that
19:57:18 <dminuoso> There seems to be a discrepancy between what your buffer displays and what HLS thinks
19:57:24 <dminuoso> Have you restarted HLS?
19:57:35 <mortemeur> no, I have been closing and reopening the file
19:57:45 <mortemeur> I will follow your advice and restart, thank you
19:59:16 neurocyte013288 joins (~neurocyte@94.46.73.31)
19:59:16 × neurocyte013288 quits (~neurocyte@94.46.73.31) (Changing host)
19:59:16 neurocyte013288 joins (~neurocyte@user/neurocyte)
19:59:23 × neurocyte013288 quits (~neurocyte@user/neurocyte) (Client Quit)
20:01:47 lavaman joins (~lavaman@98.38.249.169)
20:02:44 bi_functor joins (~bi_functo@192-0-134-138.cpe.teksavvy.com)
20:02:49 × chisui quits (~chisui@200116b86859c20084cb21a4f7d52a37.dip.versatel-1u1.de) (Ping timeout: 256 seconds)
20:03:07 bi_functor is now known as cigsender
20:03:14 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
20:03:40 acidjnk_new joins (~acidjnk@p200300d0c703cb915d8b88e7bc3fb8e2.dip0.t-ipconnect.de)
20:04:03 × mortemeur quits (~mortemeur@pool-173-76-107-201.bstnma.fios.verizon.net) (Quit: Leaving)
20:04:48 hyiltiz joins (~quassel@31.220.5.250)
20:04:54 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 245 seconds)
20:05:12 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:05:56 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 246 seconds)
20:06:55 neurocyte013288 joins (~neurocyte@94.46.73.31)
20:06:55 × neurocyte013288 quits (~neurocyte@94.46.73.31) (Changing host)
20:06:55 neurocyte013288 joins (~neurocyte@user/neurocyte)
20:07:21 <vladomiro> Hi. I'm having problems updating stack in a 32 bits PC, with devuan (a debian fork) installed
20:07:40 <vladomiro> I installed from repositories, and following the instructions from the web page I update stack, but after a very long time appear a very long error
20:08:06 <geekosaur> @where paste
20:08:06 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
20:08:11 juhp joins (~juhp@128.106.188.220)
20:08:23 × soft quits (~soft-matr@2001:470:69fc:105::c75) (Ping timeout: 246 seconds)
20:08:24 <vladomiro> The rror is in here: https://bin.disroot.org/?1c6266d3356b1d70#FpMRbjfrqbTLG16fkFc9th6N67uMasvb2CiLQJymZJuG
20:09:09 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
20:09:33 <maerwald> I don't think there are 32bit binaries anymore anyway
20:09:53 <maerwald> https://github.com/commercialhaskell/stack/releases/tag/v2.7.3
20:10:12 <maerwald> although I have some
20:10:35 lavaman joins (~lavaman@98.38.249.169)
20:11:20 <maerwald> try `stack upgrade --source-only`
20:11:31 <geekosaur> I'm getting a 404 (not found) as well for the URL it's trying to load
20:11:32 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:11:46 <geekosaur> sadly stack chooses a verbose and cryptic way to report those kinds of errors
20:13:22 × bsima quits (~bsima@simatime.com) (Quit: ZNC 1.8.2 - https://znc.in)
20:13:22 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
20:13:35 <maerwald> well, that looks like the upgrade path is simply broken
20:13:44 <vladomiro> maerwald I'll try it, just it will take like an hour
20:13:55 <geekosaur> actually iirc this means they have a very old version of stack and it's fetching from the wrong place
20:13:55 <maerwald> vladomiro: you can try my binaries if you like
20:14:00 <geekosaur> it was last updated in 2019
20:14:10 <maerwald> yeah, broken upgrade path
20:14:21 geekosaur just converted the url to a github.com url to check
20:14:29 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
20:15:13 <dminuoso> Is there a way to get the stack trace for just a particular exception I care about? `+RTS xc -RTS` just overloads my terminal with information.
20:15:38 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
20:15:50 <dminuoso> Like, can GHC instrument my code with HasCallStack constraints similar to how it would set up cost centers?
20:15:57 ec joins (~ec@gateway/tor-sasl/ec)
20:17:31 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:18:08 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
20:18:31 ec joins (~ec@gateway/tor-sasl/ec)
20:20:58 <clever> dminuoso: i think HasCallStack does ~3 magic things
20:21:15 <clever> 1: it adds a special argument to every function
20:21:27 soft joins (~soft-matr@2001:470:69fc:105::c75)
20:21:44 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
20:21:47 <clever> 2: when calling any function that wants it, it will run a special `f` on the input arg it has in the local scope, and pass `f x` on down
20:22:06 <clever> 3: if there is nothing in the local scope, it has a default to feed into `f default`
20:22:34 <clever> `f` then appends the call-site onto a list, so it forms a stack
20:23:01 <dminuoso> Yes. So? :)
20:23:49 <clever> personally, i just add `HasCallStack` to the function that prints an error msg, and it will show the top most callsite that lacks it
20:23:57 <clever> and then just recursively keep adding it, and crashing
20:24:16 <clever> but adding it does increase function call overhead, because it has one extra arg to deal with
20:24:43 <dminuoso> I think we're at cross-purposes here.
20:25:05 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:25:35 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
20:25:40 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:25:42 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:25:53 <geekosaur> dminuoso wants the adding to hapopen automagically, I think
20:26:00 <geekosaur> which I don't think ghc will do
20:26:10 <clever> yeah, i dont know of any way to do it either
20:26:45 <dminuoso> Ah I think I figured out how
20:26:49 <dminuoso> https://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-Exts.html#v:currentCallStack
20:26:53 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
20:27:14 × neurocyte013288 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
20:27:17 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:27:19 <dminuoso> Yes! It works like a charm
20:27:26 <clever> nice
20:28:04 × fendor quits (~fendor@91.141.76.88.wireless.dyn.drei.com) (Remote host closed the connection)
20:28:41 <dminuoso> Mmm, it doesn't quite do the same thing though.
20:29:00 <dminuoso> darn.
20:29:02 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
20:29:08 <Franciman> is there any proposal to change the layout rules of haskell?
20:29:15 <maerwald> wat
20:29:21 <Franciman> I think they are really awkward for almost no reason
20:29:21 <geekosaur> why?
20:29:25 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:29:37 <Franciman> they are really hard, and make writing an indenter by hand really hard.
20:29:41 <maerwald> you can fix that sort of stuff in a new language
20:29:44 <Franciman> Furthermore there are some strange cases happening
20:29:48 <Franciman> like
20:29:55 <maerwald> ships have sailed
20:30:12 <dminuoso> Even miniscule things like monad-of-no-return takes like a decade to pull through.
20:30:18 <dminuoso> Backward breaking changes are really unpopular.
20:30:24 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:30:27 <geekosaur> yeh, they're not going to risk breaking a bunch of existing progranms to make an indenter author's life easier
20:30:58 <Franciman> https://gist.github.com/jabberabbe/8232002cb9ddc7d7a4a404a2c3939b48
20:31:10 <awpr> personally I don't find layout to be awkward in a way that affects me; but to be fair, this is the kind of thing that you can also fix with a new surface syntax
20:31:32 <awpr> wasn't there discussion of a new syntax relating to the Dependent Haskell work?
20:31:49 <dminuoso> Honestly, record updating syntax seems like a way more relevant thing than the difficulty of an indenter author. :p
20:32:05 <Franciman> haskell is becoming a dead language
20:32:08 <Franciman> taking the road of C++
20:32:12 <myShoggoth> oh no
20:32:14 <dminuoso> Ok.
20:32:17 <awpr> lmao
20:33:15 <maerwald> Franciman: C++ at least has a standard that's up to date :p
20:33:38 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:33:38 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:33:47 <yushyin> no risk anyway, since it was never alive :p
20:33:58 <dminuoso> maerwald: By that measure Haskell wins hands down. GHC's source code is the most up-to-date standard you could possibly have.
20:33:59 <Franciman> oh actually haskell is becoming very alive
20:34:04 <Franciman> at the cost of losing its real life
20:34:07 <maerwald> dminuoso: lel
20:34:11 <Franciman> becoming a mainstream soulless language
20:34:31 <awpr> "not wantonly breaking millions of lines of code" = "soulless"
20:34:44 <maerwald> Franciman: linear types and dependent types aren't really "mainstream" :D
20:35:09 <maerwald> I wouldn't mind a bit less funky GHC extensions and higher quality libraries :p
20:35:12 <geekosaur> I'm afraid to ask what Franciman thinks its "real life" is.
20:35:35 <Franciman> its real life is fading into mainstream irrelevance
20:35:46 <Hecate> Franciman: who are you by the way?
20:36:24 <Franciman> a person saying his opinion about: not wanting to break things
20:36:27 <Franciman> because
20:36:30 <Franciman> of reasons
20:36:38 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:36:52 <Franciman> who are you Hecate?
20:36:59 <maerwald> I don't mind breaking things... but they should pay off
20:37:10 <maerwald> e.g. if someones breaks Aeson to fix a security bug? Hell yes
20:37:23 <maerwald> if we break FilePath in all of base to make a proper representation? Yes
20:37:26 <Hecate> Franciman: board member of the HF, notorious community member working on improving documentation, the base library, and GHC
20:37:32 <dminuoso> Franciman: If you want a *special* language, you can always write all your programs in APL.
20:37:33 wroathe joins (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net)
20:37:33 × wroathe quits (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host)
20:37:33 wroathe joins (~wroathe@user/wroathe)
20:37:45 <awpr> look, I get frustrated by legacies sticking around for compatibility reasons as much as the next guy. but that doesn't mean "screw everyone who's already written any Haskell code" is a better choice
20:37:45 <dminuoso> You never have to worry about your language becoming APL because its nearly inaccessible by anyone else.
20:37:55 <Franciman> :D
20:38:11 <dminuoso> *about your language becoming mainstream
20:38:11 <Franciman> Hecate: good
20:38:16 <Franciman> thanks
20:38:21 <awpr> and it REALLY doesn't mean "any language that doesn't break everything on the whims of a beginner complaining about it is a dead language"
20:40:02 <maerwald> Franciman: instead of fighting haskell layout rules, why don't you finish implementing your ghcup patch :p
20:40:21 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
20:40:53 <Franciman> maerwald: I am close to finishing my exams, then I'll be all available
20:40:54 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:40:54 <Franciman> !
20:40:58 <dminuoso> I have the following problem domain: There's a bunch of tasks I wanna run (they could run in parallel or sequence, I dont care), and each one might fork of more tasks - but in a way that tasks are identifiable by some string, so if a particular task is already registered, it wont run twice. There might be some extraordinary conditions by which additional tasks might only fire off, if some
20:41:00 <dminuoso> condition based on some compositite task result is done.
20:41:29 <dminuoso> All this sort of task dispatching logic I can write myself. Is there some toolkit on hackage that would take off the work for me here?
20:41:34 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
20:41:41 <awpr> Haskell could do what BlueSpec did: have two surface syntax styles for the same underlying language. there are a lot of pent-up syntactic infelicities that could do with changing, and if it's a separate frontend, then it doesn't break existing code. it'd have some costs in the form of needing to learn two different syntax styles, but it's at least not blocked by legacy
20:41:44 <timCF> dminuoso: async?
20:42:09 <dminuoso> timCF: It's not the asynchronous part Im thinking of, it's just this sort of "task management" thing.
20:42:19 <Franciman> Hecate: sad you have no plans for cabal :<
20:42:22 <Franciman> I hope the HF has some
20:42:41 wroathe joins (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net)
20:42:41 × wroathe quits (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host)
20:42:41 wroathe joins (~wroathe@user/wroathe)
20:42:49 <maerwald> Franciman: I've been working on stack lately :>
20:42:58 <Franciman> oh ohhhhhh
20:43:01 <Franciman> lol
20:43:03 <Franciman> what'd you do?
20:43:15 <dminuoso> But maybe its actually haxl that I want.
20:43:40 <maerwald> Franciman: trying to integrate with it better and then bugs popped up here and there
20:43:59 <Franciman> nice
20:44:16 × ubert quits (~Thunderbi@178.115.39.222.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
20:44:18 <maerwald> the codebase (in part) is actually quite nice
20:44:26 <maerwald> except for pantry
20:44:35 <timCF> dminuoso: Well, this part I missed a lot since left Erlang in favor of Haskell) Erlang/OTP and BEAM VM is the best in terms of ideas how to organize complex mutithreading programs. But many other aspects unfortunately completely suck(
20:44:56 <dminuoso> timCF: Fun fact, elixir was my gateway drug to Haskell. :)
20:44:58 ec joins (~ec@gateway/tor-sasl/ec)
20:45:51 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:46:18 <timCF> dminuoso: hey bro! I've used Elixir a lot as well, "emulating" proper compile-time safe sum types with macro, but at some point metaprogramming went too far, and my co-workers can not understand my ideas anymore
20:46:38 ubert joins (~Thunderbi@178.115.39.222.wireless.dyn.drei.com)
20:47:09 <dminuoso> timCF: The thing that really annoyed me most, is the lack of a type system (strangely enough I craved for one from my C++ days) and how even rudimentary core things like |> were macros that led to a lot of extremely annoying debugging sessions.
20:47:34 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:47:55 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:48:04 <justsomeguy> Your description is kind of reminiscent of a situation I ran into when troubleshooting service dependencies with systemd (an init system).
20:50:15 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
20:50:45 <timCF> dminuoso: yeah, in Haskell TH at least has a special syntax, in Elixir compile and runtime code and configs are totaly mixed without any hope to understand what is really going on. Haskell so far is the best. As intermediate stage I've tried to use Alpaca and Elchemy languages as more type-safe languages still interopable with BEAM, but back in a days they were very buggy
20:51:01 <Hecate> < Franciman> Hecate: sad you have no plans for cabal :< // You don't seem have any knowledge of what's happening with cabal, so no need to weep
20:51:16 × ubert quits (~Thunderbi@178.115.39.222.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
20:51:17 <Hecate> timCF: I absolutely gave up on macros in Elixir
20:51:17 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:51:40 <Franciman> Hecate: at least I know there is 0 people mantaining it right now
20:51:43 <Franciman> so please
20:51:50 <Franciman> even if your are the king of the world
20:51:58 <sclv> 0 people maintaining what?
20:51:59 <Franciman> it does not mean you can kid me
20:52:09 <maerwald> there are a couple of people
20:52:19 <sclv> here's what's on the roadmap for the next cabal release: https://github.com/haskell/cabal/projects/14
20:52:24 × oxide quits (~lambda@user/oxide) (Ping timeout: 245 seconds)
20:52:38 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:52:43 <Franciman> honestly Hecate you asking who I am, like saying that if I am not part of the hasll foundation I can't say anything
20:52:45 <Franciman> is really boring
20:52:52 <sclv> here's what the last release had https://discourse.haskell.org/t/ann-cabal-3-6-1-0-and-cabal-install-3-6-0-0/3145
20:52:52 <Franciman> ok you are ruling the haskell world
20:52:53 <Franciman> great
20:52:56 <Franciman> I can't say nothing
20:52:59 <Franciman> ok
20:53:14 <maerwald> Franciman: emily is now working on it (via HF, or so I think)
20:53:30 <maerwald> fendor has been doing some work
20:53:31 <sclv> we have about four active maintainers
20:53:32 <Franciman> glad to hear it, last time I checked there were half people working on it
20:53:40 <Franciman> i.e. phadej
20:53:48 <Franciman> who did it like part time
20:54:02 noircode joins (~Izem@137.220.53.172)
20:54:12 <sclv> phaedj has been replaced and there's a whole new team of people doing a lot of stuff
20:54:28 <Franciman> glad to know
20:54:37 <Franciman> not so glad of Hecate treating me like scum, just because he is in the HF
20:54:58 <dminuoso> Not sure what you're trying to accomplish here.
20:55:01 <geekosaur> I didn't see anyone treating you like scum, only you refusing to answer questions
20:55:02 <sclv> first off dont assume peoples genders
20:55:06 <Franciman> sorry
20:55:07 <sclv> secondly you're being incredibly adversarial
20:55:10 <Franciman> ok
20:55:14 <dminuoso> If I I had to guess, it seems like you're trying to just fight, complain and insult.
20:55:15 <Franciman> but I didn't start it
20:55:23 <awpr> you did start it.
20:55:26 <geekosaur> yes, actually, you did
20:55:29 <Franciman> how
20:55:30 <geekosaur> attack from the outset
20:55:35 <Franciman> they asked me: who are you?
20:55:39 <Franciman> is it a good thing to ask?
20:55:41 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
20:55:41 <Franciman> who are you
20:55:44 <Franciman> like saying who are you to speak
20:55:46 <Franciman> you are nothing
20:55:53 <geekosaur> oh, you started with the adversarialness well before that
20:55:54 <Franciman> I am board director of the world
20:56:02 <Hecate> Franciman: the thing is that you're making preposterous statements like "it's sad that cabal isn't maintained", while we have tremendous efforts being poured into cabal, which even led to a release recently
20:56:06 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29)
20:56:19 <Franciman> Hecate: I said soemthing different actually
20:56:21 <sclv> asking who someone is is _not_ adversarial. it helps to know if you're talking to someone you've conversed with by other nicks in other arenas
20:56:25 lavaman joins (~lavaman@98.38.249.169)
20:56:26 <Franciman> I said, sad you don't have plans for cabal
20:56:33 <Hecate> < Franciman> Hecate: at least I know there is 0 people mantaining it right now <- you said that
20:56:37 <Franciman> after
20:56:39 <geekosaur> how exactly do you know that?
20:56:44 <Franciman> I asked before
20:56:50 <Franciman> ok I don't know what's hapening now
20:56:52 <maerwald> I think this is merely a misunderstanding
20:56:55 <geekosaur> especially when they specifically outlined their plans when they released 3.6
20:56:56 <awpr> you're free to have an opinion (e.g. that layout could be improved). but if your opinion is that somebody's passion is "a dead language" because they aren't prioritizing an idea you just threw out there two minutes ago, you should expect a response like "who are you [to dictate what my priorities should be]?"
20:56:57 <maerwald> internet and nuances
20:57:07 <Hecate> maerwald: lol yeah
20:57:53 <Hecate> Franciman: and my first answer was telling that there is nothing to be sad about, no need to make sensationalist statements about lack of plans for Cabal
20:58:21 <Hecate> I don't even know why you thought I had to have plans for cabal, we have very competent people on it who do a vey good job
20:58:34 <Franciman> because you are Hecate from the HF
20:58:37 <Franciman> I am no one
20:58:39 <Franciman> you rule haskell
20:58:39 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 245 seconds)
20:58:41 <Franciman> I can't speak
20:58:45 <dminuoso> Franciman: Feel free to make a GHC proposal for any changes to the langauge you like. You can also bring up ideas on the mailing list. And if you feel that cabal needs more helping hand, rather than complaining perhaps assist yourself or organize additional funding?
20:58:59 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
20:58:59 <dibblego> You are speaking, and it is nonsense. Please stop it.
20:59:02 <dminuoso> Any of these things seem constructive. But you appear to be just adversarial and complaining a lot.
20:59:12 <dminuoso> Almost borderline insulting at times
20:59:20 <Franciman> where did I insult actually?
20:59:20 <dminuoso> That's how you come across to me
20:59:34 <Franciman> vs where did I get insulted by getting told I can't speak because I am noone
20:59:44 <geekosaur> assuming we think you're scum is itself insulting to us
20:59:50 <dminuoso> Nobody said that you cant speak becauise you are noone.
20:59:57 <dminuoso> Im not sure what you're interpreting between the lines here.
21:00:13 <geekosaur> nior am I and I'm getting a bit tired of it
21:00:25 <awpr> "Haskell is a dead language" is incredibly insulting to the many people who are pouring tons of effort into maintaining it and improving it. and the way I interpreted "who are you by the way?" is as a rebuke against exactly that insulting attitude
21:00:32 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 246 seconds)
21:00:36 <maerwald> awpr: no, that's not insulting at all
21:00:58 <maerwald> that's just a sensational statement that was backed up by a discussion
21:01:30 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
21:01:33 <Franciman> I said it is becoming a dead languge, because I tried different times to ask for changes who got blocked by the: backwards compatibility answer
21:01:43 <maerwald> even "Haskell sucks" is not insulting... there was a great constructive reddit thread about that a few years ago, in fact
21:02:30 <geekosaur> apparently caring about millions of lines of exdisting code means you're dead
21:02:50 <maerwald> geekosaur: "you"?
21:02:53 hololeap joins (~hololeap@user/hololeap)
21:02:59 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
21:03:03 <Franciman> indeed, and that's the answer by what's the actual real life of haskell. Avoid success at all costs
21:03:05 <awpr> IMO calling something dead directly dismisses any ongoing effort into it. saying it's evolving frustratingly slowly, or slower than it used to, etc. would be much more reasonable
21:03:13 <Franciman> if you get millions of lines of code, you have success
21:03:16 <Franciman> success unavoided
21:03:19 <Franciman> death imminent
21:04:18 <monochrom> That's disingenuous.
21:04:40 <maerwald> depends on your vision of Haskell, I guess
21:04:42 <Franciman> anyways sorry I didn't mean to be adversarial at all
21:04:45 <Franciman> so sorry Hecate
21:04:47 <Franciman> sorry HF
21:04:56 <Franciman> sorry geekosaur and awpr who got upset
21:05:33 <Franciman> finally
21:05:48 <maerwald> awpr: the language in fact doesn't seem to evolve *at all* ;)
21:05:50 <Franciman> Hecate: I am Franciman the damn creator of ellipse, proudly written in Haskell ^^
21:05:52 <Cale> While I'm all for moving forward pretty aggressively with positive changes to Haskell, on the other hand, there have been a lot of accepted proposals I've been quite unhappy with lately.
21:05:59 <awpr> maerwald: heh, extensions only :)
21:06:00 <maerwald> awpr: or where is the next standard
21:06:25 <maerwald> Cale: DH?
21:06:29 <Franciman> (actually rewriting it in C++ and Ocaml at the same time, but also Haskell)
21:06:40 Lycurgus joins (~juan@98.4.112.204)
21:07:37 <Cale> Dependent Haskell is something that I can almost get behind. Linear Haskell is, as far as I can tell, very much not worth its weight in terms of complicating the implementation and starting a slow spread of polluting libraries with linear versions of everything.
21:08:07 <geekosaur> there's a lot of questions around Backpack as well
21:08:12 <Cale> Almost everything that touches Haskell's record system has been bad, imo
21:08:16 oxide joins (~lambda@user/oxide)
21:08:30 <geekosaur> only half tested, less than half documented, nobody can use it because it doesn't work with stack, ...
21:08:59 <sclv> backpack is something that was great in theory, but yeah it never got enough institutional support to be fully implemented :-/
21:09:10 <Cale> RecordDotSyntax should have been rejected, rather than picking between 8 different proposed means of disambiguating a dozen or so expressions by Condorcet voting
21:09:15 <sclv> i'm not even sure of the full inventory of whats missing to make it really pleasant to use
21:09:25 <sclv> edward seems to have the biggest list of complaints :-)
21:09:36 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
21:09:39 <maerwald> sclv: here's one thing that's missing: people understanding what it is, lol
21:09:53 <monochrom> I like backpack, but I reckon that to a lot of haskeller's, an advanced module system is not needed, they have found workarounds.
21:09:53 <geekosaur> see "less than halfdocumented"
21:10:28 <maerwald> and not getting redirected to a PhD thesis
21:10:52 <geekosaur> and while I dislike stack personally, a mechanism that can't be used with stack is a pretty serious drawback
21:11:47 <awpr> speaking of module systems, the only gripe I can think of with Haskell's current one is the orphan instances situation: if there's an instance `A B`, then either A depends on B, or B depends on A, or it lives in an orphans package that's not always discoverable and pollutes everything downstream with orphan exports
21:12:08 <dminuoso> maerwald: that put me off the most about it. I really want to like backpack, but the only documentation is really that phd thesis...
21:12:19 <Cale> awpr: Orphan instances are a pretty important possibility though, if you're into writing executables.
21:12:21 <dminuoso> or the bunch of libraries that edwardk uses it in..
21:12:57 <monochrom> Ah, so it comes down to my fault, I still haven't written my much promised backpack tutorial... >:)
21:13:01 <dminuoso> awpr: Oh I have a clear winner for whats wrong with the module system. We dont have circular imports!
21:13:12 <awpr> sure, I don't have any problem with them in that context. the issue is that introducing a new typeclass to Hackage requires buy-in from everyone before it can be useful
21:13:12 <dminuoso> If we had circular imports, we could freely structure modules the right way.
21:13:21 <Cale> But yeah, it's a bit of a hassle -- sometimes it's awkward to induce a dependency one way or the other between the package defining an instance and the package defining the data type
21:13:30 <Cale> er, the package defining the class, I mean
21:13:31 <monochrom> (Now this is a good time to ask "monochrom: who the hell do you think you are?" >:) )
21:14:04 <dolio> You can do circular imports. You just need to do extra work.
21:14:12 ec joins (~ec@gateway/tor-sasl/ec)
21:14:18 <awpr> right, more than just awkward IMO: it introduces an undesirable conflict between "make dependencies small" and "be compatible with XYZ"
21:14:38 <awpr> which is usually resolved by "oh well, I guess we'll have an orphans package"
21:14:41 <monochrom> I seriously begin to think that the Haskell committee was very wrong in specifying circular imports. The GHC user's guide has explained why it can't be done automatically, as a matter of principle.
21:14:51 <dolio> I'm pretty skeptical that circular imports are actually the right way of structuring things, though.
21:15:01 × chomwitt quits (~chomwitt@ppp-2-85-111-14.home.otenet.gr) (Ping timeout: 252 seconds)
21:15:02 <monochrom> Note that circular imports "works" for SML because you always have to write module sigs.
21:15:40 <monochrom> So now GHC asks you to write the equiv of module sigs, in fact even less than that, and all of you are complaining.
21:15:43 <Cale> I still haven't really looked into why we can't essentially infer hs-boot files.
21:16:01 <dolio> Having worked on a project that used a language that freely allows circular imports, it turned the entire project into a giant tangle where almost any change required rebuilding everything, slowly.
21:16:10 <Cale> I guess it's a problem in the case that your module doesn't have top-level signatures for the things it defines
21:16:39 mirai67 joins (~serijima7@5.251.199.17)
21:16:51 <Cale> But yeah, that's true. Usually need for circular module dependencies is almost a problem in and of itself
21:17:09 mirai67 parts (~serijima7@5.251.199.17) ()
21:17:36 <dminuoso> Im not sure about that. In a way I trained myself to a particular module structure for no reason other than to avoid circular imports. In languages like C you have these simple loop breaker macros that just work.
21:17:54 <edwardk> dminuoso: i want to like using backpack, but i admit the status quo around haddock and backpack just makes me sad and i stop writing code entirely
21:18:12 <Cale> I guess that kind of gets at why I'm always so upset with nix. It doesn't have a module system, they just use big associative mappings containing the entire universe, and then transform and manipulate and take fixed points of those things.
21:18:13 <awpr> in C and C++ you're also writing the equivalent of the entire .hi file by hand
21:18:43 <Cale> and it becomes impossible to figure out how individual entries in that mapping are defined, because the definition is spread out through so many files
21:18:50 <Cale> (and you don't even know what those files are)
21:18:54 <dminuoso> Cale: to be fair, nix *does* have a module system
21:19:10 <Cale> In the sense of Haskell's module system?
21:19:25 <dminuoso> Cale: Sure, Im talking about the stuff driving the nixos modules
21:19:45 <dminuoso> i.e. <nixpkgs>/lib/modules.nix
21:19:52 <sclv> this reminds me of the famous story about cyclic dependencies on collateralized securities
21:19:55 <edwardk> haskell's module system is basically a glorified namespacing system. its the least offensive and least effective thing that could be offered and called modules
21:20:05 <Cale> I want something where if I can tell which import was responsible for bringing something into scope, I have a pretty strong hint about where to go look for it on disk.
21:20:16 awpr wonders if edwardk was subconsciously summoned by me mentioning the exact problem that inspired creating a whole new language (IIUC)
21:20:25 <dminuoso> awpr: I highlighted him
21:20:35 <sclv> when a debt obligation has some things fall out (like a mortgage that goes into default) then there's specs for it getting replaced by something else -- often shares of some other tranched cdo
21:20:44 <edwardk> the edwardk signal was lit
21:20:53 <Cale> This is a thing that fancier module systems start to erode, usually.
21:21:17 <sclv> and at one point one cdo ended up with shares of a cdo that in turn had shares in it
21:21:23 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
21:21:26 <sclv> so the banks had to solve a fixpoint equation to price it
21:21:27 <edwardk> sclv: hahaha
21:21:48 <dminuoso> Sure. I mean the nixos module system does not give you that traceability, and in fact exposing artifacts works by registering inside this global fixed point, and that introduces a bunch of issues wrt to conflicts/merging, or even understanding the origin of something.
21:21:50 <Cale> But it's pretty important: equational reasoning only does you any good if you can *find* the relevant equations defining the things you're using!
21:21:55 <edwardk> sclv: i really want a reference to this for use when folks ask what the point of fixed points is
21:22:17 × NotIndonesian quits (znc@Indonesians.are.sick.bnc.HUNTERS.thats.bad.mn) (Ping timeout: 264 seconds)
21:22:30 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
21:22:36 NotIndonesian joins (znc@Indonesians.are.sick.bnc.HUNTERS.thats.bad.mn)
21:22:38 <edwardk> sclv: the real question is what to do when the security is outside of its own modulus of convergence. infinite money!
21:23:18 × emf_ quits (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) (Read error: Connection reset by peer)
21:23:31 <int-e> valueless money
21:23:34 emf joins (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5)
21:23:37 <sclv> edwardk: pretty sure the story is in Das' "Traders, Guns and Money"
21:23:45 <sclv> it might be in dermain's "my life as a quant" tho
21:23:53 <monochrom> sclv: Sometimes I joke that it was SPJ's work on the financial contract monad in Haskell that caused it. Sometimes I wonder if that's seriously true...
21:24:01 <edwardk> sclv: roger
21:24:10 <sclv> both rollicking good reads
21:24:14 × slack1256 quits (~slack1256@191.126.136.33) (Remote host closed the connection)
21:24:23 <monochrom> Or perhaps s/caused/enabled/
21:24:36 × chele quits (~chele@user/chele) (Remote host closed the connection)
21:24:39 slack1256 joins (~slack1256@191.126.136.33)
21:24:44 <sclv> not sure how much spj's work had made it into most of the firms doing the models. it was in a few, but certainly not all
21:24:54 <gehmehgeh> I know somebody who works at a reinsurance company (insurance that insures insurance). I wonder if they've ever insured one another in a circle
21:25:04 <sclv> certainly it wasn't used in the valuation models, at most the trading models
21:25:05 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
21:25:07 <gehmehgeh> Have to ask him :D
21:25:08 lavaman joins (~lavaman@98.38.249.169)
21:25:27 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
21:26:00 × emf quits (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) (Remote host closed the connection)
21:26:04 × slack1256 quits (~slack1256@191.126.136.33) (Remote host closed the connection)
21:27:13 <monochrom> Yikes reinsurance haha.
21:27:24 <monochrom> Both terrifying and funny.
21:27:57 <gehmehgeh> There's the Munich Re and the Hanover Re ("Hannover Rück"). Those insurance companies that insure other insurances copmanies
21:28:06 <gehmehgeh> and I think they themselves are insured, too :D
21:28:22 <gehmehgeh> (There are also other reinsurance companies, but those are two I know)
21:28:29 <gehmehgeh> My friend works for one of them
21:29:18 <gehmehgeh> Who insures the insurers? eh? ;)
21:30:03 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
21:30:18 × jaitoon quits (~Jaitoon@2a02:c7f:a5f:1d00:f967:2cdb:e7a7:ac52) (Ping timeout: 250 seconds)
21:30:59 emf joins (~emf@2620:10d:c090:400::5:103e)
21:31:57 noircode parts (~Izem@137.220.53.172) ()
21:31:57 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
21:33:43 <maerwald> Mafia
21:33:49 lavaman joins (~lavaman@98.38.249.169)
21:33:53 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
21:34:03 <maerwald> they visit the insurred in case of insurance claim :D
21:34:55 <gehmehgeh> How reassuring. :D
21:35:02 <gehmehgeh> I mean, reinsuring :D
21:36:31 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
21:41:46 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
21:42:33 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
21:42:58 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
21:44:44 × michalz quits (~michalz@185.246.204.93) (Remote host closed the connection)
21:48:23 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
21:49:43 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
21:51:11 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
21:51:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:53:48 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
21:56:56 × vladomiro quits (~vladomiro@2806:266:485:8e3a:21a:73ff:fe1a:3ecb) (Quit: Leaving)
21:58:27 ec joins (~ec@gateway/tor-sasl/ec)
22:00:44 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:05:48 w-spc-gir joins (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7)
22:07:18 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:641d:d2f8:a9a1:be29) (Remote host closed the connection)
22:10:19 yielduck joins (~yielduck@176.120.238.10)
22:14:07 <sm> Franciman: this is boring to read
22:14:30 <Franciman> what did I do, now?
22:14:58 <monochrom> Ugh please don't raise the dead horse!
22:15:26 <Franciman> oh you refer to the previous statements
22:15:43 <geekosaur> sounds like they were catching up n backscroll
22:15:49 <geekosaur> people do that
22:16:05 <Franciman> sorry if i am too stupid
22:18:41 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:20:13 × w-spc-gir quits (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7) (Read error: Connection reset by peer)
22:20:55 w-spc-gir joins (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7)
22:22:21 × w-spc-gir quits (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7) (Read error: Connection reset by peer)
22:22:52 w-spc-gir joins (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7)
22:23:01 jaitoon joins (~Jaitoon@2a02:c7f:a5f:1d00:28c3:d6d5:1a31:67d4)
22:23:04 abrantesasf joins (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f)
22:23:42 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
22:24:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
22:25:08 gay joins (~AdminUser@77-120-141-90.kha.volia.net)
22:25:12 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:25:26 × w-spc-gir quits (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7) (Read error: Connection reset by peer)
22:25:33 <sm> +1 for no circular imports, it seems to force a certain clarity of structure
22:26:12 ec joins (~ec@gateway/tor-sasl/ec)
22:26:18 <dminuoso> sm: Would you say the same if we had no letrec?
22:26:20 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:905e:1e0b:7428:a16f)
22:26:23 <dminuoso> And no whererec?
22:26:43 <Franciman> does Core have letrec too?
22:26:55 w-spc-gir joins (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7)
22:26:56 <monochrom> Yes.
22:26:58 <Franciman> or is it desugared into a particular form?
22:27:07 <monochrom> No.
22:27:09 <Franciman> I see, and uhm
22:27:20 <Franciman> I think I already asked this, but
22:27:41 <Franciman> I don't remember actually. Is there a paper explaining how core is executed?
22:27:43 <Franciman> in ghc
22:27:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
22:28:05 <monochrom> https://github.com/takenobu-hs/haskell-ghc-illustrated
22:29:13 <Franciman> ty very much
22:29:28 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
22:30:16 <awpr> this isn't a direct answer, but here's an entire book devoted to explaining the whole field in detail, which gives a ton of background and intuition for GHC: https://www.microsoft.com/en-us/research/publication/the-implementation-of-functional-programming-languages/
22:30:29 <awpr> obviously a lot of progress has been made since 1987 that's not in that book :)
22:30:33 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/reading-list#code-generation-and-virtual-machine
22:30:55 <geekosaur> stg instead of core, but stg is what core compiles to
22:31:02 <Franciman> great ty
22:31:12 <Franciman> I was interested in how recursion is treated
22:31:22 <Franciman> in my language I just leverage haskell's laziness
22:31:23 <Franciman> and use fix
22:31:27 <dminuoso> sm: Personally I feel too constrained, the style of making dedicated Types modules just to avoid having to write boot hs files.. it's a constant source of annoyance to me.
22:31:31 × gay quits (~AdminUser@77-120-141-90.kha.volia.net) (Ping timeout: 252 seconds)
22:31:35 <Franciman> but I think this is a bit slow
22:31:59 <geekosaur> stg doesn't know about recursion /per se/; it just jumps into machine code which might jump back to where things started
22:32:09 <Franciman> knowing that a recursive call calls itself, maybe can be optimized away, instead of running a normal function call
22:32:31 <geekosaur> there aren't really any "normal function calls" at the stg level
22:32:31 <Franciman> hmm makes much sense, geekosaur
22:32:38 <Franciman> they all jumps, right?
22:32:42 <Franciman> jumps + push stack things
22:32:46 <geekosaur> you could say everything is already a tail call
22:32:54 <dminuoso> Franciman: This is a tricky proposition. Optimization recursive functions is difficult, since the bread-and-butter (at least for GHC) is inlining.
22:33:24 <geekosaur> you might want to start with the original stg paper to see how and why things work
22:33:52 <geekosaur> there have been some modifications and optimizations since then, but they won't make much sense without an understanding of the original
22:33:58 <dminuoso> After/during the paper, you might also find this helpful https://hackage.haskell.org/package/stgi
22:34:09 <monochrom> At a low level like this, there is no need to avoid self-references, in fact it is clearer to let self-references be self-references. And TCO is also pretty easy at this level.
22:34:38 <Franciman> thanks for that, dminuoso
22:34:53 <monochrom> Whereas, by contrast, for example, if you "compile" self-references to the Y combinator, you are making things worse for all purposes.
22:35:21 <monochrom> Right? Machine codes aren't afraid of self-references.
22:35:33 <Franciman> I feel a bit lost
22:35:34 <dminuoso> monochrom: Reminds me of how recursion schemes tend to make a real dent in performance. :)
22:35:39 <geekosaur> (said original stg paper being "the spineless tagless g-machine"_
22:35:45 × w-spc-gir quits (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7) (Read error: Connection reset by peer)
22:35:48 cjb joins (~cjb@user/cjb)
22:36:09 w-spc-gir joins (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7)
22:36:25 <geekosaur> and evaluation in haskell is more about graph reduction (the "g" in stg) than function calls
22:36:43 <Franciman> because of laziness, I reckon
22:36:48 <geekosaur> yes
22:37:02 <geekosaur> this is basically how you have to implement laziness
22:37:04 <awpr> (the SPJ book I linked gives a good intuition for how this sort of graph reduction works and what drives it, without some of the complexities of current Haskell)
22:37:05 × w-spc-gir quits (~w-spc-gir@2600:380:4710:c16:2c05:423d:6c6d:deb7) (Read error: Connection reset by peer)
22:37:31 <Franciman> thank you all for the interesting details you shared
22:37:42 <Franciman> I am getting furiously mad, because my interpreter is slower than PHP lol
22:37:49 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
22:37:52 <Franciman> so I was trying to understand how real functional languages do recursion
22:38:15 <Franciman> what I implemented is a SECD machine
22:38:39 <monochrom> "interpreter" vs "compiler" also makes a big difference.
22:38:40 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
22:39:04 <monochrom> I dare say that for recursion, compiling is easier.
22:39:27 <monochrom> Way easier. ASM already supports it natively.
22:39:48 <dminuoso> Franciman: In a way, Haskell was a test bed on how to make a lazy functional programming language. It took decades and the combined efforts of many dozens of people to make it fast.
22:39:52 <monochrom> Both cyclic data and cyclic jumps and cyclic jsrs.
22:40:46 <monochrom> But interpreter? My http://www.cs.utoronto.ca/~trebla/CSCC24-2021-Summer/09-semantics-1.html#letrec is my simplest attempt, and it is still not simple.
22:41:19 <dminuoso> monochrom: Question: what is the distinction between a compiler and interpreter in Haskell?
22:41:40 <dminuoso> Is the spineless tagless G machine not a conceptual interpreter?
22:42:07 <Franciman> monochrom: if you use haskell's laziness you can get better than that
22:42:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:42:24 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
22:42:24 wroathe joins (~wroathe@user/wroathe)
22:42:34 <Franciman> by creating this: https://github.com/Franciman/ellipse/blob/stable/src/Eval.hs#L78
22:42:39 <Franciman> you can bind yourself
22:42:43 <Franciman> when creating yourself
22:42:52 <Franciman> thanks to laziness, so you don't have to do it at each app :)
22:43:05 <monochrom> Oh, my previous version did that. Students had much trouble.
22:43:34 <Franciman> a simpler way requires mutation
22:43:47 <Franciman> you put a Loop argument as first bound value
22:43:49 <Franciman> it means loop forever
22:43:54 <Franciman> after evaluating the body
22:43:58 <Franciman> you change that first argument to itself
22:44:19 <Franciman> where itself is a pointer to the evaluated body, now
22:44:20 <Franciman> ol
22:44:28 × mastarija quits (~mastarija@31.217.25.149) (Quit: Leaving)
22:44:37 <Franciman> that's the way I learnt in the little schemer
22:44:40 <Franciman> i think
22:45:34 <Franciman> +1 to dminuoso question
22:45:53 <Franciman> dminuoso: my understanding was that after the STG you compile to Cmm
22:45:59 <Franciman> and then to code
22:46:04 <Franciman> that's the only additional step
22:46:08 <monochrom> Yeah I think that there is a big difference but I have to think how to articulate it.
22:46:28 <Franciman> what you compile is the evaluation process of the STG
22:47:03 <geekosaur> I think that's not actually the question. dminuoso is asking is whether the code that implements the STG representation of the program is in some sense interpreted
22:47:12 <geekosaur> and one can indeed argue for that virewpoint
22:47:22 <geekosaur> it's interpreting a graph, by reducing it
22:47:25 <awpr> to me a compiler is about translating a language to another (usually lower-level) one. if you suppose STG were interpreting bytecode, GHC would still be a compiler, it would just be compiling to an interpreted target
22:47:29 <monochrom> Perhaps my answer is asking back "have you written an STG interpreter?"
22:47:49 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:48:08 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
22:48:32 <dminuoso> geekosaur: Indeed, that was my thought.
22:49:17 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
22:49:36 <dolio> Does that mean that a compiler that outputs x86 isn't a compiler, because you could make an x86 interpreter?
22:50:04 <geekosaur> is javac a compiler?
22:50:07 <shapr> ed wrote one of those once
22:50:26 <geekosaur> for that matter, there's the reduceron. so is ghc a compiler?
22:50:38 <awpr> dolio: is that responding to my comment? I was suggesting exactly the opposite, that a compiler is still a compiler regardless of whether its target is or can be interpreted
22:50:46 <geekosaur> (kinda reverse logic there)
22:51:18 hyiltiz joins (~quassel@31.220.5.250)
22:51:20 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:51:33 <Franciman> a compiler is something that can't say a program terminates every time it does
22:51:37 <Franciman> while an interpreter can do it
22:51:40 <dolio> awpr: I don't think so.
22:51:41 <geekosaur> the question of "compiler or interpreter?" has become a lot more nuanced since the 90s
22:51:47 × oxide quits (~lambda@user/oxide) (Quit: oxide)
22:52:02 <Franciman> so compilers for dependent types are interpreters *game-over*
22:52:08 <geekosaur> s/90s/early &/
22:52:49 bitmapper joins (~user@142.134.87.154)
22:52:50 <awpr> total languages cannot have compilers?
22:53:03 <Franciman> ahah right
22:53:26 <awpr> it's an interesting litmus test though, for Turing-complete languages
22:53:36 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
22:54:30 <Franciman> well a simpler answer is that a compiler produces code
22:54:34 <dolio> Compilers for a dependently typed language probably need interpreters, but the interpreter might not even be using the same semantics per se as the compiler is using for translation.
22:54:36 <Franciman> an interpreter does not do it necessarily
22:54:36 <awpr> and it's also interesting that one of the harder things about a dependent type checker is that it has to include an interpreter (or be capable of executing its own compiled code)
22:54:37 × vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds)
22:54:59 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
22:55:07 <awpr> yeah, compiler outputs another representation of the program, while an interpreter produces the results of executing the program
22:55:35 <geekosaur> now let me complicate that one: is runhaskell an interpreter?
22:55:41 <monochrom> OK I see. You have to accept self-references somewhere. But it looks like a human thinking in terms of ASM has no trouble accepting that self-referencing jmps or jsrs or data are first-class, whereas a human thinking in terms of "how to explain Haskell by Haskell" expect more on the line of "explain recursion in more basic terms".
22:55:50 <geekosaur> how about ctcr? (a tracer for C)
22:56:10 <sm[i]> sorry, didn't see replies (dminuoso), the libera->matrix bridge is acting up
22:56:29 <awpr> hmm. I guess it might be useful to separate "interpreter" into two contexts: as an implementation strategy, and as a use-case
22:56:48 <geekosaur> for that matter, what is the answer if template haskell is involved?
22:56:50 <awpr> runhaskell is an interpreter-shaped program, but it's not implemented by an interpreter (probably)
22:57:10 <monochrom> My PhD supervisor was right again. You can't solve this problem, you can only transform it to someone else's problem. :)
22:57:18 <sm[i]> (wow yes, #haskell:libera.chat on matrix has major delay right now)
22:57:18 <geekosaur> it sort-of is, but even interpreted ghc haskell is compiled (to bytecode)
22:57:35 <dminuoso> sm[i]: Dont worry, it was just seconds apart.
22:57:40 <geekosaur> yeh, someone in #ghc was complaining of that earlier as well
22:57:42 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
22:57:42 <dminuoso> A lot of seconds, but still seconds.
22:57:48 <sm[i]> :)
22:57:49 ec joins (~ec@gateway/tor-sasl/ec)
22:57:50 <monochrom> There was a Casio calculator that implemented C by interpretation. :)
22:57:50 <Franciman> well it is ieasier to avoid this dicotomy
22:57:58 <Franciman> and have a spectrum as classification
22:58:04 <Franciman> with interpreter and compiler on the two sides
22:58:10 <Franciman> or maybe not even
22:58:32 <geekosaur> ctcr, for the record, added tracing calls to a C program, compiled the result, and ran it
22:59:04 <geekosaur> no interpretation involved as normally intended, but the user never sees the intervening steps
22:59:21 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
22:59:46 <geekosaur> and you still have javac as an edge case
23:00:16 <dolio> Is it an edge case?
23:00:26 <Franciman> if you put it that way, every modern compiler has some interpretation in it
23:00:28 <awpr> yeah, giving up on rigid classifications seems like the only reasonable answer. "is runhaskell an interpreter?" "a little bit", "is rustc-on-wasm an interpreter?" "barely", "is python an interpreter?" "mostly"
23:00:29 <Franciman> for example constant folding
23:00:42 <Franciman> and to a more extreme extent, even type inference is a form of interpretation
23:00:44 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:00:51 <dolio> Does it not count as a compiler because the semantics of class files so closely match Java's surface syntax? :þ
23:01:12 <awpr> dolio: it's an automatic code formatter
23:01:13 <monochrom> haha
23:01:23 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:905e:1e0b:7428:a16f) (Remote host closed the connection)
23:02:00 × kayprish quits (~kayprish@46.240.130.158) (Remote host closed the connection)
23:02:13 w-spc-gir joins (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137)
23:02:33 <monochrom> And JIT code optimizations disqualify jre from being an interpreter. (Who writes interpreters that do code optimizations?)
23:02:47 <monochrom> Conclusion: javac is an interpreter, jre is a compiler. >:)
23:03:20 <geekosaur> I think raku's interpreter does JIT optimizations
23:03:45 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
23:03:46 <monochrom> Yeah I was just joking.
23:03:47 zzz is now known as yin
23:06:19 <geekosaur> >> it's an automatic code formatter
23:06:54 <geekosaur> I'm half tempted to claim haskell is too, since core is so relatively close to surface syntax and stg is very close to core
23:06:55 × bitmapper quits (~user@142.134.87.154) (Remote host closed the connection)
23:07:35 <monochrom> It is not worse than "all of them are desugarers" :)
23:07:52 <dolio> Core is just an intermediate step, and it does many transforms on it.
23:08:10 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
23:08:10 <awpr> AMD Ryzen 7 5800X is an interpreter implemented in hardware
23:08:35 <awpr> or I guess it's more of a JIT compiler implemented in hardware
23:08:44 × w-spc-gir quits (~w-spc-gir@2601:646:9c00:594c:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
23:09:16 <geekosaur> so are most modern CPUs
23:09:20 <monochrom> My university names its compiler course "language processors" to recognize the fact that you can have anything between a compiler and an interpreter.
23:09:45 <awpr> geekosaur: yeah, I just picked the first one that came to mind
23:10:06 <monochrom> And perhaps in pratice the fact that the most useful thing one learns is just going to be the parsing part.
23:11:01 <monochrom> Right? How to generate asm code is very niche. But everyone wants to reinvent a markup language or a config language, so learning how to parse is of general interest.
23:16:27 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:16:39 sm2n_ joins (~sm2n@user/sm2n)
23:16:50 × sm2n quits (~sm2n@user/sm2n) (Ping timeout: 260 seconds)
23:23:51 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
23:24:06 geekosaur joins (~geekosaur@xmonad/geekosaur)
23:24:36 × sprout quits (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
23:25:40 spruit11 joins (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76)
23:25:56 × spruit11 quits (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76) (Client Quit)
23:26:08 yin is now known as zzz
23:26:50 × acidjnk_new quits (~acidjnk@p200300d0c703cb915d8b88e7bc3fb8e2.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
23:26:56 sprout joins (~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76)
23:27:27 emf_ joins (~emf@2620:10d:c090:400::5:9346)
23:30:25 × Eoco quits (~ian@x-160-94-179-157.acm.umn.edu) (Quit: WeeChat 2.3)
23:30:50 × emf quits (~emf@2620:10d:c090:400::5:103e) (Ping timeout: 260 seconds)
23:31:21 hyiltiz joins (~quassel@31.220.5.250)
23:33:57 <dminuoso> awpr: Using different terms is only helpful if there's particularly different semantics attached to them, such that we can draw conclusions or insights from that.
23:34:09 <dminuoso> Using different terms out of some, arbitrary, classification, is not.
23:34:48 × emf_ quits (~emf@2620:10d:c090:400::5:9346) (Quit: emf_)
23:35:53 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
23:36:07 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
23:37:47 fresheyeball joins (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net)
23:39:37 <monochrom> Ah, speaking of names and terms...
23:40:24 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
23:41:30 <monochrom> Our university course that covered greedy algorithms and dynamic programming, and then on to NP-hardness and uncomputability, was called "effective and efficient computing". (That was a long time ago. Now the course is split into one "algorithm design" for those algorithm techniques, and one "theory" course for the negative results.)
23:42:10 <nshepperd> the possible and the practical
23:42:34 <monochrom> So one day my related to a prof about my thoughts on that name: since it actually spends much more time on the bad news of NP-hardness and uncomputability, I secretly call it "ineffective and inefficient computing".
23:43:20 <awpr> nah that name's already registered to the Python course
23:43:30 <monochrom> The prof related back that among the profs they had an even better insider joke: "defective and deficient computing".
23:44:33 ec joins (~ec@gateway/tor-sasl/ec)
23:45:04 <awpr> (tongue-in-cheek joke for its own sake, I know good results can be achieved with Python)
23:45:35 <monochrom> :)
23:48:21 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:905e:1e0b:7428:a16f)
23:48:21 dajoer joins (~david@user/gvx)
23:52:09 × fresheyeball quits (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
23:52:30 fresheyeball joins (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net)
23:56:05 × abrantesasf quits (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) (Quit: Leaving)
23:56:35 <monochrom> Well, the Python course, the course itself, would still get that kind of bad vibe.
23:57:50 <monochrom> And it is not really about Python. It is about the 1st-year programming course, doesn't matter which language. A lot of students are going to write severely broken code that makes you feel that computing is hopeless.

All times are in UTC on 2021-10-04.