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.