Logs on 2023-07-28 (liberachat/#haskell)
| 00:01:34 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 00:02:14 | × | flounders quits (~flounders@24.246.133.1) (Ping timeout: 250 seconds) |
| 00:02:17 | <dsal> | I just heard about amazonka2 arriving at hackage. Just came here to say woo. |
| 00:03:03 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 00:03:57 | <shapr> | oh wow, amazonka got an update?! |
| 00:04:13 | <shapr> | dsal: did you see my blog post from yesterday? Android app in Haskell? |
| 00:04:27 | × | phma quits (~phma@host-67-44-208-59.hnremote.net) (Read error: Connection reset by peer) |
| 00:04:52 | → | phma joins (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871) |
| 00:04:55 | → | maulanazn joins (~maulanazn@103.144.170.135) |
| 00:05:14 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:05:44 | <maulanazn> | Hello everyone |
| 00:06:02 | ← | maulanazn parts (~maulanazn@103.144.170.135) () |
| 00:06:05 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 00:06:24 | <shapr> | that's about the attention span most people have |
| 00:06:29 | <geekosaur> | o.O |
| 00:06:42 | → | califax joins (~califax@user/califx) |
| 00:07:39 | → | maulanazn joins (~maulanazn@103.144.170.135) |
| 00:09:06 | <yushyin> | :D |
| 00:11:02 | ← | maulanazn parts (~maulanazn@103.144.170.135) () |
| 00:11:57 | → | maulanazn joins (~maulanazn@103.144.170.135) |
| 00:12:01 | → | reach__ joins (~reach@142.198.51.47) |
| 00:12:06 | ← | maulanazn parts (~maulanazn@103.144.170.135) () |
| 00:14:54 | <jackdk> | Thanks dsal. I've been pushing that boulder for two years and it feels good to get it over the top. |
| 00:15:03 | → | maulanazn joins (~maulanazn@103.144.170.135) |
| 00:15:10 | × | maulanazn quits (~maulanazn@103.144.170.135) (Quit: Leaving.) |
| 00:25:59 | → | libertyprime joins (~libertypr@203.96.203.44) |
| 00:26:12 | × | xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 245 seconds) |
| 00:28:19 | → | xff0x joins (~xff0x@178.255.149.135) |
| 00:30:11 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 00:30:12 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 00:30:12 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:35:39 | × | reach__ quits (~reach@142.198.51.47) (Ping timeout: 246 seconds) |
| 00:37:49 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 00:39:30 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 246 seconds) |
| 00:40:26 | × | xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 245 seconds) |
| 00:40:28 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 00:42:24 | → | EsoAlgo81 joins (~EsoAlgo@129.146.136.145) |
| 00:42:31 | → | xff0x joins (~xff0x@2405:6580:b080:900:f296:7c8e:ce20:8b85) |
| 00:43:17 | × | img quits (~img@user/img) (Ping timeout: 245 seconds) |
| 00:44:23 | → | img joins (~img@user/img) |
| 00:49:08 | → | mrmr4 joins (~mrmr@user/mrmr) |
| 00:49:47 | × | mrmr quits (~mrmr@user/mrmr) (Ping timeout: 246 seconds) |
| 00:49:48 | mrmr4 | is now known as mrmr |
| 00:50:32 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:50:50 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 00:57:29 | <Axman6> | jackdk: thanks for all your thankless work, I know how hard you've been working on this, and the changes made in 2.0 really add some polish on an already amazing project |
| 00:57:58 | <Axman6> | (I say thankless, but I thank jackdk every chance I get for his work on this) |
| 00:58:34 | <jackdk> | Axman6: "thanks for all your thankless work" <- Paging Mr. Russell `;-)` |
| 00:58:46 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 245 seconds) |
| 00:59:01 | <Axman6> | The thank of all thanks that do not contain themselves |
| 00:59:07 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds) |
| 00:59:14 | <dsal> | shapr: I didn't. Where do I see that? |
| 00:59:53 | <jackdk> | https://shapr.github.io/posts/2023-07-25-android-app-in-haskell.html I think? |
| 01:01:47 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 260 seconds) |
| 01:02:22 | <arahael_> | jackdk: That's very cool. :) |
| 01:02:36 | <arahael_> | jackdk: Would you have been confident to take the same approach for iOS? |
| 01:02:50 | <jackdk> | arahael_: You'll have to ask shapr, it's his blog post |
| 01:03:25 | <arahael_> | Ah, ok. |
| 01:03:53 | <arahael_> | reflex-frp does seem to be the most promising tool for this, but I'm somehow less confident when it comes to using it for iOS in production - feels experimental. |
| 01:05:20 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 01:06:10 | → | razetime joins (~quassel@117.193.5.53) |
| 01:11:16 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:36 | → | pavonia joins (~user@user/siracusa) |
| 01:15:06 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 01:16:21 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 01:17:24 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:18:56 | → | jmd_ joins (~jmdaemon@user/jmdaemon) |
| 01:22:59 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 01:27:52 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
| 01:29:03 | → | yangby joins (~secret@183.128.108.131) |
| 01:33:25 | × | mvk quits (~mvk@2607:fea8:5c9a:a600::1c6d) (Ping timeout: 245 seconds) |
| 01:37:12 | → | sm[i] joins (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) |
| 01:39:11 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 01:44:10 | × | hugo- quits (znc@verdigris.lysator.liu.se) (Ping timeout: 244 seconds) |
| 01:48:28 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 01:50:33 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 01:52:22 | × | perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2) |
| 01:52:45 | → | perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) |
| 01:56:39 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 02:00:17 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 02:01:16 | × | codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 246 seconds) |
| 02:07:42 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds) |
| 02:11:37 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 245 seconds) |
| 02:13:37 | × | sm[i] quits (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) (Quit: sm[i]) |
| 02:16:18 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 02:16:56 | × | td_ quits (~td@i5387090B.versanet.de) (Ping timeout: 246 seconds) |
| 02:17:09 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 02:18:41 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 246 seconds) |
| 02:19:04 | → | td_ joins (~td@i53870935.versanet.de) |
| 02:19:07 | × | libertyprime quits (~libertypr@203.96.203.44) (Quit: leaving) |
| 02:19:45 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 02:19:50 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:19:50 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:19:50 | finn_elija | is now known as FinnElija |
| 02:19:57 | → | reach__ joins (~reach@142.198.51.47) |
| 02:20:41 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c) |
| 02:23:07 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 02:24:49 | → | sm[i] joins (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) |
| 02:35:31 | × | perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2) |
| 02:41:55 | × | terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat) |
| 02:42:36 | × | phma quits (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871) (Read error: Connection reset by peer) |
| 02:43:02 | → | phma joins (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871) |
| 02:43:28 | → | terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::) |
| 02:43:31 | → | perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) |
| 02:45:44 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
| 02:46:04 | × | mei quits (~mei@user/mei) (Ping timeout: 246 seconds) |
| 02:50:04 | → | mei joins (~mei@user/mei) |
| 02:50:51 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 02:55:07 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 02:55:55 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 03:05:17 | × | mei quits (~mei@user/mei) (Ping timeout: 244 seconds) |
| 03:05:30 | × | perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2) |
| 03:06:01 | → | perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) |
| 03:07:27 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 03:09:18 | → | mei joins (~mei@user/mei) |
| 03:12:56 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 03:15:36 | × | reach__ quits (~reach@142.198.51.47) (Ping timeout: 246 seconds) |
| 03:18:19 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 03:19:19 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 03:20:38 | → | foul_owl_ joins (~kerry@174-21-159-141.tukw.qwest.net) |
| 03:20:47 | × | foul_owl quits (~kerry@185.219.141.162) (Ping timeout: 244 seconds) |
| 03:25:26 | × | foul_owl_ quits (~kerry@174-21-159-141.tukw.qwest.net) (Ping timeout: 245 seconds) |
| 03:27:23 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 03:27:52 | → | califax joins (~califax@user/califx) |
| 03:29:34 | × | aforemny quits (~aforemny@2001:9e8:6cfc:2a00:d5a2:6a3b:38ac:cbd4) (Ping timeout: 244 seconds) |
| 03:29:44 | → | aforemny_ joins (~aforemny@2001:9e8:6ce2:4f00:57f9:d120:56d4:9724) |
| 03:32:16 | × | jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 246 seconds) |
| 03:34:26 | → | jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
| 03:37:03 | → | foul_owl_ joins (~kerry@193.29.61.236) |
| 03:40:05 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: Reconnecting) |
| 03:41:04 | → | sm joins (~sm@plaintextaccounting/sm) |
| 03:41:56 | × | texasmynsted quits (~username@99.96.221.112) (Ping timeout: 250 seconds) |
| 03:42:52 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 245 seconds) |
| 03:45:41 | → | trev joins (~trev@user/trev) |
| 03:52:49 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 04:04:02 | × | razetime quits (~quassel@117.193.5.53) (Ping timeout: 246 seconds) |
| 04:06:29 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:08:30 | × | sm[i] quits (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) (Quit: sm[i]) |
| 04:26:08 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 04:45:44 | → | razetime joins (~quassel@117.193.5.53) |
| 04:55:36 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 04:57:28 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 04:59:04 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
| 05:04:57 | → | nattiestnate joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) |
| 05:10:25 | <dsal> | My build's trying to build connection. Is there any way I can figure out why? It's not an obvious dependency. |
| 05:11:21 | <dsal> | Oh, I just figured out `stack dot --external` directly answers my question. |
| 05:13:58 | <dsal> | Weird, I was specifying network-conduit-tls >= 1.4 but it was apparently building something older. |
| 05:14:27 | × | ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 244 seconds) |
| 05:16:23 | → | ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
| 05:20:16 | → | reach__ joins (~reach@142.198.51.47) |
| 05:22:19 | → | seeg123456 joins (~seeg12345@64.176.64.83) |
| 05:25:18 | × | reach__ quits (~reach@142.198.51.47) (Ping timeout: 244 seconds) |
| 05:27:16 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 05:45:44 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 05:46:59 | × | mixfix41 quits (~sdeny9ee@user/mixfix41) (Ping timeout: 260 seconds) |
| 05:51:19 | → | CiaoSen joins (~Jura@2a05:5800:2a3:b400:664b:f0ff:fe37:9ef) |
| 05:54:25 | → | titibandit joins (~titibandi@user/titibandit) |
| 05:54:26 | → | bgs joins (~bgs@212-85-160-171.dynamic.telemach.net) |
| 06:05:42 | → | titiband1t joins (~titibandi@user/titibandit) |
| 06:07:53 | × | titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 06:14:00 | ← | seeg123456 parts (~seeg12345@64.176.64.83) () |
| 06:14:57 | × | Luj quits (~Luj@2a01:e0a:5f9:9681:b61c:443d:ba92:3071) (Quit: Ping timeout (120 seconds)) |
| 06:15:14 | → | Luj joins (~Luj@2a01:e0a:5f9:9681:9d2:9ce:d805:54e2) |
| 06:16:28 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 06:19:58 | → | mmhat joins (~mmh@p200300f1c73d1944ee086bfffe095315.dip0.t-ipconnect.de) |
| 06:19:58 | × | mmhat quits (~mmh@p200300f1c73d1944ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 06:20:30 | × | foul_owl_ quits (~kerry@193.29.61.236) (Ping timeout: 245 seconds) |
| 06:21:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:22:32 | → | acidjnk joins (~acidjnk@p200300d6e7072f09b522d1b3cfe8e851.dip0.t-ipconnect.de) |
| 06:23:46 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 260 seconds) |
| 06:29:00 | → | kenran joins (~user@user/kenran) |
| 06:34:00 | → | bliminse joins (~bliminse@user/bliminse) |
| 06:34:43 | → | foul_owl_ joins (~kerry@185.219.141.162) |
| 06:35:05 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 06:35:16 | → | dibblego joins (~dibblego@116.255.1.151) |
| 06:35:16 | × | dibblego quits (~dibblego@116.255.1.151) (Changing host) |
| 06:35:16 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 06:36:55 | → | seeg123456 joins (~seeg12345@64.176.64.83) |
| 06:39:39 | × | shapr quits (~user@2600:1700:c640:3100:fa13:6c46:116:2be9) (Ping timeout: 246 seconds) |
| 06:40:51 | ← | seeg123456 parts (~seeg12345@64.176.64.83) () |
| 06:41:11 | → | Guest8558 joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) |
| 06:41:16 | → | seeg123456 joins (~seeg12345@64.176.64.83) |
| 06:44:24 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:47:35 | → | chele joins (~chele@user/chele) |
| 06:47:51 | → | oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
| 06:50:30 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
| 06:55:53 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 06:59:11 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 07:01:07 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 07:01:08 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 07:01:08 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 07:03:06 | → | simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk) |
| 07:03:44 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:05:42 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 07:06:35 | → | dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 07:06:36 | × | dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 07:06:36 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 07:06:53 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds) |
| 07:07:05 | dobblego | is now known as dibblego |
| 07:11:47 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds) |
| 07:13:41 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 07:14:35 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 07:14:35 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 07:14:35 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 07:16:11 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 07:19:39 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 07:20:44 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 07:22:28 | → | fendor joins (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) |
| 07:23:35 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 07:24:35 | × | ft quits (~ft@p3e9bc61e.dip0.t-ipconnect.de) (Quit: leaving) |
| 07:24:50 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 07:25:47 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 264 seconds) |
| 07:26:50 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 07:26:50 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 07:26:50 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 07:32:49 | <Inst> | erm, does anyone use halide? Since I can't get accelerate to work :( |
| 07:32:55 | <Inst> | well, not without stack, but lazy |
| 07:33:14 | <Inst> | bleh, tbh, i'll just install halide via msys on win64 and see how well that works out |
| 07:35:01 | <[exa]> | that platform isn't very compatible with the idea of getting stuff to work |
| 07:35:15 | <[exa]> | (apologies for slightly brutal honesty) |
| 07:36:29 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds) |
| 07:37:02 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 07:37:02 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 07:37:02 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 07:37:43 | <mzg> | [exa]: have to write that response down, it seems to be reusable to various other situations |
| 07:38:18 | <Inst> | ehhh, msys doesn't have it |
| 07:38:31 | <Inst> | yeah, i know, i can't even get more niche python libs to work on windows |
| 07:51:55 | × | simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 240 seconds) |
| 07:53:47 | → | simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk) |
| 07:55:18 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 07:58:05 | nattiestnate | is now known as internatetional |
| 07:58:07 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection) |
| 07:59:21 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 08:00:18 | × | simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 244 seconds) |
| 08:01:55 | <davean> | Inst: I can say accelerate has worked for me on linux without too much trouble. I have heard people *have* gotten it to work on windows, but I forget who |
| 08:02:10 | × | arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds) |
| 08:03:14 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 08:04:08 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:04:47 | <Inst> | I can't figure out how to get the newer versions of accelerate to install from github |
| 08:05:59 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 08:14:16 | × | phma quits (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871) (Read error: Connection reset by peer) |
| 08:15:18 | → | phma joins (~phma@2001:5b0:210f:78d8:de61:1bc2:fcbd:591a) |
| 08:18:18 | → | dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 08:18:18 | × | dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 08:18:18 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 08:18:28 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 258 seconds) |
| 08:18:59 | dobblego | is now known as dibblego |
| 08:21:43 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 08:22:04 | <[exa]> | Inst: git clone the repo and add it to your project using `cabal.project` config? |
| 08:29:59 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:30:39 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:32:09 | → | danse-nr3 joins (~francesco@151.37.208.115) |
| 08:32:44 | → | tbagrel1 joins (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605) |
| 08:33:23 | × | tbagrel1 quits (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605) (Client Quit) |
| 08:33:45 | × | internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2) |
| 08:33:57 | → | tbagrel1 joins (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605) |
| 08:34:04 | → | internatetional joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) |
| 08:37:09 | <tbagrel1> | Hey! I'm currently working on GHC memory model, and I don't exactly understand when a thunk will be overwritten with a constructor or overwritten by an indirection (IND) pointing to a newly allocated constructor. I tried to run some tests, by forcing a thunk of a small struct VS big struct, but I couldn't derive any rule from my empirical results. The larger scope of the project is inspecting |
| 08:37:10 | <tbagrel1> | GHC's heap at runtime (which currently works well, except when encountering indirections) |
| 08:37:56 | → | ub joins (~Thunderbi@178.165.173.150.wireless.dyn.drei.com) |
| 08:37:58 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:38:01 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 244 seconds) |
| 08:38:37 | → | ubert1 joins (~Thunderbi@178.165.173.150.wireless.dyn.drei.com) |
| 08:39:42 | × | razetime quits (~quassel@117.193.5.53) (Ping timeout: 246 seconds) |
| 08:39:57 | × | ubert quits (~Thunderbi@178.115.37.112.wireless.dyn.drei.com) (Ping timeout: 245 seconds) |
| 08:39:57 | ubert1 | is now known as ubert |
| 08:44:51 | → | mango joins (~finn@2001:861:5863:3d50:1ef0:ac25:6f3c:22c7) |
| 08:57:19 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection) |
| 08:57:35 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 08:57:55 | → | razetime joins (~quassel@117.193.5.53) |
| 08:58:51 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 09:02:49 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds) |
| 09:14:11 | → | gugu256 joins (~gugu256@93.22.132.228) |
| 09:14:46 | <gugu256> | Hi everybody |
| 09:15:04 | <gugu256> | if i want to uninstall haskell, what folders should I remove (Windows) |
| 09:15:36 | <gugu256> | uninstall GHCUP |
| 09:15:43 | <gugu256> | uninstall Cabal & Stack |
| 09:16:43 | <gugu256> | ??? |
| 09:17:09 | × | yangby quits (~secret@183.128.108.131) (Quit: Go out for a walk and buy a drink.) |
| 09:18:37 | → | yangby joins (~secret@183.128.108.131) |
| 09:20:53 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c) (Remote host closed the connection) |
| 09:24:59 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 09:26:28 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 09:27:52 | <danse-nr3> | gugu256, ghcup has its uninstallation doc https://www.haskell.org/ghcup/install/#uninstallation. Not sure whether it uninstall also cabal and stack |
| 09:30:31 | → | mango_ joins (~finn@2001:861:5863:3d50:37ea:5881:7052:43c7) |
| 09:31:08 | → | dobblego joins (~dibblego@116.255.1.151) |
| 09:31:08 | × | dobblego quits (~dibblego@116.255.1.151) (Changing host) |
| 09:31:08 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 09:31:09 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 09:31:09 | × | mango quits (~finn@2001:861:5863:3d50:1ef0:ac25:6f3c:22c7) (Ping timeout: 246 seconds) |
| 09:31:12 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 09:31:39 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:31:52 | dobblego | is now known as dibblego |
| 09:42:22 | × | yangby quits (~secret@183.128.108.131) (Ping timeout: 252 seconds) |
| 09:42:42 | → | yangby joins (~secret@183.128.108.131) |
| 09:42:51 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 09:42:52 | <maerwald> | gugu256: why |
| 09:43:37 | × | mango_ quits (~finn@2001:861:5863:3d50:37ea:5881:7052:43c7) (Ping timeout: 246 seconds) |
| 09:43:51 | → | simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk) |
| 09:43:53 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
| 09:44:49 | → | mango joins (~finn@2001:861:5863:3d50:d28b:7203:a2f5:ab43) |
| 09:44:50 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 09:45:36 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:45:44 | Lord_of_Life_ | is now known as Lord_of_Life |
| 09:48:30 | <gugu256> | maerwald: 6 GB |
| 09:48:44 | <maerwald> | gugu256: how much you got |
| 09:49:19 | × | simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 244 seconds) |
| 09:49:34 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 09:50:29 | → | simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk) |
| 09:53:33 | <maerwald> | gugu256: are you still counting? |
| 09:53:41 | → | gugu_ joins (~gugu256@219.134.22.93.rev.sfr.net) |
| 09:53:56 | × | gugu_ quits (~gugu256@219.134.22.93.rev.sfr.net) (Remote host closed the connection) |
| 09:54:11 | <probie> | maerwald: does that really matter? It seems like a non sequitur. Even if it's just 4KiB there should be instructions on how to get rid of it |
| 09:54:13 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:54:13 | → | gugu_ joins (~gugu256@219.134.22.93.rev.sfr.net) |
| 09:54:20 | <maerwald> | probie: there is |
| 09:54:23 | <maerwald> | ghcup nuke |
| 09:54:46 | gugu_ | is now known as gugu265 |
| 09:54:47 | <maerwald> | just like in the oppenheimer movie |
| 09:54:57 | <gugu265> | 6 GB of disk space is too much for just a compiler |
| 09:55:07 | <maerwald> | hmm... you can reduce it by removing profiling libs |
| 09:55:22 | <maerwald> | ghcup gc --help |
| 09:55:30 | <maerwald> | it can go down to 1GB for just GHC |
| 09:56:22 | <gugu265> | i removed everything |
| 09:56:30 | <maerwald> | you nuked it? |
| 09:56:35 | <[exa]> | cabal clean --oppenheimer |
| 09:56:38 | <maerwald> | lol |
| 09:56:41 | × | Guest8558 quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 245 seconds) |
| 09:56:46 | × | gugu256 quits (~gugu256@93.22.132.228) (Ping timeout: 250 seconds) |
| 09:58:19 | <maerwald> | gugu265: also check ~/.cabal directory |
| 09:58:36 | × | internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2) |
| 09:58:43 | <gugu265> | yes i removed it too |
| 09:58:50 | → | internatetional joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) |
| 09:58:58 | × | driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
| 09:59:04 | <maerwald> | and now what? |
| 09:59:33 | → | driib joins (~driib@vmi931078.contaboserver.net) |
| 10:01:11 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 264 seconds) |
| 10:01:39 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 10:01:52 | <gugu265> | now, i'll re-install haskell with less shit and more gold |
| 10:01:58 | <maerwald> | uhm... how? |
| 10:02:12 | <gugu265> | i'll just download the GHC ? |
| 10:02:19 | <maerwald> | that'll still be 2GB lol |
| 10:02:35 | <gugu265> | that's 4GB less |
| 10:02:40 | <gugu265> | what version should I use ? |
| 10:02:47 | <maerwald> | I won't tell you |
| 10:02:49 | <gugu265> | 9.6.2 |
| 10:02:49 | <gugu265> | 9.4.5 |
| 10:02:49 | <gugu265> | 9.2.8 |
| 10:02:54 | <maerwald> | but the other 4GB were due to HLS, not GHC |
| 10:02:56 | <[exa]> | gugu265: tbh I'm doing the same, just get the binary ghc + binary cabal and put them into the system properly |
| 10:02:58 | <maerwald> | you could have just uninstalled that |
| 10:03:22 | <maerwald> | now you don't have an easy mechanism to remove profiling libs, for example |
| 10:03:27 | <maerwald> | unless you know how to do it manually |
| 10:03:34 | <maerwald> | seems like a step backwards |
| 10:03:37 | <gugu265> | OK SO WHAT SHOULD I DO ? |
| 10:03:43 | <maerwald> | first: panic |
| 10:03:48 | <gugu265> | i don't have haskell installed on my computer, at all |
| 10:03:48 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:03:52 | <gugu265> | what do I do |
| 10:04:28 | <maerwald> | curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=yes sh |
| 10:04:57 | <gugu265> | i'm on windows, u sure it'll work ? |
| 10:05:01 | <maerwald> | ah |
| 10:05:03 | <maerwald> | sec |
| 10:05:30 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 10:05:34 | <gugu265> | I mean, i have MySys installed |
| 10:05:49 | × | acro quits (~acro@user/acro) (Quit: Bye.) |
| 10:05:49 | × | ouroboros quits (~ouroboros@user/ouroboros) (Quit: Bye.) |
| 10:05:49 | <maerwald> | alright |
| 10:06:05 | ← | seeg123456 parts (~seeg12345@64.176.64.83) () |
| 10:06:52 | <maerwald> | Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; try { Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true, $true } catch { Write-Error $_ } |
| 10:06:56 | <maerwald> | that should do |
| 10:07:02 | → | acro joins (~acro@user/acro) |
| 10:07:45 | <maerwald> | [exa]: manual installation on windows is quite challenging |
| 10:08:04 | → | ouroboros joins (~ouroboros@user/ouroboros) |
| 10:08:09 | <gugu265> | yes that's the command they told me to do in the beginning |
| 10:08:19 | <gugu265> | ok so now my question is, what do i need to install |
| 10:08:22 | <maerwald> | gugu265: but this one is different |
| 10:08:30 | <maerwald> | it will not install GHC |
| 10:08:31 | <gugu265> | like what's the point of cabal and stack ? |
| 10:08:40 | <maerwald> | gugu265: ignore stack for now |
| 10:08:44 | <gugu265> | "it will not install GHC" ??? |
| 10:08:50 | <maerwald> | yes, it's minimal |
| 10:08:50 | <gugu265> | I want GHC, that's all i want actually |
| 10:08:53 | <maerwald> | ok |
| 10:09:07 | <maerwald> | then after it's done, you type: ghcup install ghc 9.4.5 |
| 10:09:07 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 10:09:17 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2) |
| 10:09:20 | <maerwald> | it won't install HLS, stack or cabal |
| 10:10:28 | → | puke joins (~puke@user/puke) |
| 10:10:50 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 10:11:22 | <gugu265> | extracting mysys archive... |
| 10:11:31 | <maerwald> | you can tell it to use an existing msys2 |
| 10:11:35 | <gugu265> | I didnt install anything else than Mysys btw |
| 10:11:44 | <gugu265> | yeah but i don't know where is it |
| 10:11:50 | <maerwald> | I don't know either |
| 10:12:26 | <gugu265> | will it install ghci |
| 10:12:27 | <gugu265> | ? |
| 10:12:58 | <maerwald> | `ghcup install ghc 9.4.5` will |
| 10:13:09 | <gugu265> | ok |
| 10:13:11 | <gugu265> | And btw |
| 10:13:12 | <maerwald> | or rather |
| 10:13:20 | <maerwald> | ghcup install ghc --set 9.4.5 |
| 10:13:23 | <gugu265> | Why do we need SOOO MUCH space just for 1 language ? |
| 10:13:35 | <maerwald> | no idea |
| 10:13:56 | <gugu265> | I'm gonna fckin raid the Glasgow University |
| 10:14:07 | <maerwald> | maintaining compilers seems to be somewhat of a challenge is my guess |
| 10:14:33 | <maerwald> | gugu265: uhm... |
| 10:15:52 | <gugu265> | 262MB just for ghc/ghci |
| 10:15:55 | <gugu265> | WHHYYYYY |
| 10:16:01 | <danse-nr3> | is it not nice to get so much love from newcomers |
| 10:16:04 | <maerwald> | gugu265: in US, these types of jokes are not that much appreciated (bc they actually happen) |
| 10:16:15 | <maerwald> | so I'm guessing this is European humor |
| 10:16:15 | <danse-nr3> | yeah that was quite bad |
| 10:16:30 | <danse-nr3> | gugu265, you use windows anyways, why would you care about memory usage |
| 10:16:43 | <maerwald> | lol |
| 10:16:44 | <gugu265> | maerwald: Very European humor, my bad. And when i said raiding i kinda meant like a viking attack in my head |
| 10:16:56 | <maerwald> | ok, viking attack with flowers? Makes sense |
| 10:16:56 | <gugu265> | Cuz you know scotland |
| 10:17:42 | <gugu265> | Merging file tree from "C:\ghcup\tmp\ghcup-61967fa73e18beb9\ghc-9.4.5-x86_64-unknown-mingw32" to "C:\ghcup\ghc\9.4.5" |
| 10:17:50 | <maerwald> | yeah |
| 10:17:53 | <gugu265> | it's been doing that for like 2 minutes |
| 10:17:56 | <maerwald> | right |
| 10:18:05 | <maerwald> | well... I know why |
| 10:18:12 | <maerwald> | but I can't say whether we can fix it |
| 10:18:21 | <maerwald> | it installs file by file for safety reasons |
| 10:18:29 | <maerwald> | instead of moving entire directory |
| 10:18:40 | <maerwald> | and apparently, those syscalls are SLOW on windows |
| 10:18:44 | <gugu265> | it's so damn slow |
| 10:19:07 | <gugu265> | maerwald: tried Linux once, almost destroyed my computer. never agin. |
| 10:19:31 | <maerwald> | linux destroyed your computer or you did? |
| 10:19:35 | <gugu265> | I did |
| 10:19:52 | <maerwald> | well, I guess you are somewhat of a viking after all |
| 10:20:00 | <gugu265> | i messed up when trying to go back to windows, and my computer couldn't boot up |
| 10:20:10 | <maerwald> | I think destroying computers was a tradition in old times |
| 10:20:17 | <gugu265> | Yess yes |
| 10:20:21 | <gugu265> | my ancestors did that |
| 10:20:28 | <maerwald> | excellent |
| 10:20:36 | <gugu265> | OdinSH >>> other command line tools |
| 10:20:44 | <gugu265> | [ Info ] GHC installation successful |
| 10:20:48 | <gugu265> | Wooho |
| 10:21:04 | <[exa]> | \o/ |
| 10:21:08 | <maerwald> | so... can you type `ghci`? |
| 10:21:22 | <gugu265> | it's not in path, SHITT |
| 10:21:23 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c) |
| 10:21:29 | <maerwald> | did you run refreshenv? |
| 10:21:32 | <maerwald> | in your powershell |
| 10:21:38 | <gugu265> | will do |
| 10:21:43 | <[exa]> | gugu265: btw few hundreds of megs are a normal minimum for any compiler nowadays, unfortunately |
| 10:22:28 | <gugu265> | refreshenv doesn't exist |
| 10:23:10 | <gugu265> | i mean, I have the paths of ghc and ghci |
| 10:23:16 | <gugu265> | can't i just add it myself in path ? |
| 10:23:45 | <maerwald> | gugu265: RefreshEnv.exe |
| 10:23:51 | <maerwald> | use tab completion man |
| 10:24:44 | <gugu265> | where do i find refreshenv.exe ? |
| 10:25:04 | <maerwald> | in your powershell |
| 10:25:09 | <gugu265> | it doesn't work |
| 10:25:24 | <gugu265> | wdym use tab completion ? |
| 10:25:29 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c) (Ping timeout: 244 seconds) |
| 10:26:01 | <maerwald> | close powershell and open again |
| 10:26:26 | <gugu265> | still doesn't work |
| 10:26:50 | <[exa]> | ghci or RefreshEnv.exe ? |
| 10:26:56 | <gugu265> | both lol |
| 10:27:15 | <gugu265> | ok all good |
| 10:27:20 | <gugu265> | i added it in my path |
| 10:27:22 | <gugu265> | myself |
| 10:27:29 | <gugu265> | like a big boy |
| 10:27:32 | <gugu265> | and it works |
| 10:27:40 | <maerwald> | now you have it twice |
| 10:27:46 | <gugu265> | twice ? |
| 10:27:49 | <maerwald> | yes |
| 10:27:52 | <maerwald> | in your PATH |
| 10:28:00 | <maerwald> | oh |
| 10:28:04 | <maerwald> | it's RefreshEnv.cmd |
| 10:28:06 | <gugu265> | it was not in my path |
| 10:28:21 | <maerwald> | check your path settings, I'm positive there will be two entries that are the same |
| 10:28:22 | <gugu265> | RefreshEnv.cmd doesn't work |
| 10:28:25 | <maerwald> | lol |
| 10:28:32 | <maerwald> | your windows is busted |
| 10:28:49 | <gugu265> | ,ope |
| 10:28:50 | <gugu265> | nope |
| 10:29:00 | <gugu265> | there aren't 2 duplicate entries |
| 10:29:05 | <maerwald> | yes, prolly too old powershell version or something else |
| 10:29:39 | <gugu265> | Windows 11 :skull: |
| 10:29:49 | <maerwald> | or too new lol |
| 10:29:50 | <maerwald> | xD |
| 10:30:21 | <gugu265> | OK |
| 10:30:33 | <gugu265> | So now i have an actual question abt haskell |
| 10:31:06 | × | CiaoSen quits (~Jura@2a05:5800:2a3:b400:664b:f0ff:fe37:9ef) (Ping timeout: 258 seconds) |
| 10:31:06 | <maerwald> | I think you used up your support time already |
| 10:31:09 | <maerwald> | jk :P |
| 10:31:24 | → | Guest8558 joins (~finn@176-151-21-224.abo.bbox.fr) |
| 10:31:50 | <gugu265> | how come i cna write 3+3 in GHCI, and it works |
| 10:32:04 | <gugu265> | but if i write 3+3 in a .hs file and then GHC this file, it says EROROROROR |
| 10:32:16 | <maerwald> | ghci is an interactive repl |
| 10:32:26 | <maerwald> | a proper source file is something different |
| 10:32:30 | <maerwald> | you'll need bindings |
| 10:32:38 | <maerwald> | you can't have free floating expressions |
| 10:32:44 | <maerwald> | what they gonna do? |
| 10:32:52 | → | titiband1t joins (~titibandi@user/titibandit) |
| 10:32:54 | <maerwald> | fall through your editor or what |
| 10:33:00 | <gugu265> | ok |
| 10:33:20 | <[exa]> | gugu265: try something like: main = print (3+3) |
| 10:33:25 | <gugu265> | is this resource good : http://learnyouahaskell.com/ |
| 10:33:33 | <gugu265> | [exa]: oh thx! |
| 10:33:52 | <[exa]> | gugu265: the LYAH book has a newer and much updated version here https://learnyouahaskell.github.io/ |
| 10:34:04 | <[exa]> | (still including the silly pictures) |
| 10:34:20 | <gugu265> | oh thanks |
| 10:35:18 | <maerwald> | gugu265: https://www.haskell.org/ghcup/steps/ |
| 10:35:20 | <maerwald> | here's a first steps guide |
| 10:35:25 | <[exa]> | also good. |
| 10:35:57 | <gugu265> | The Glorious Glasgow Haskell Compilation System, version 9.4.5 go brrr |
| 10:36:27 | × | danse-nr3 quits (~francesco@151.37.208.115) (Remote host closed the connection) |
| 10:36:49 | → | danse-nr3 joins (~francesco@151.37.208.115) |
| 10:38:33 | × | razetime quits (~quassel@117.193.5.53) (Remote host closed the connection) |
| 10:38:55 | × | mango quits (~finn@2001:861:5863:3d50:d28b:7203:a2f5:ab43) (Ping timeout: 246 seconds) |
| 10:43:43 | <maerwald> | gugu265: you can leave donations |
| 10:43:52 | <gugu265> | what ? |
| 10:43:59 | <maerwald> | look |
| 10:44:06 | <maerwald> | you're enjoying Haskell... don't deny it |
| 10:44:16 | <maerwald> | only fair to sponsor it |
| 10:44:50 | <gugu265> | cabal update |
| 10:44:50 | <gugu265> | Downloading the latest package list from hackage.haskell.org |
| 10:44:55 | <gugu265> | why is this so long |
| 10:44:58 | <maerwald> | that's gonna take a while yeah |
| 10:45:01 | <maerwald> | 500mb I think |
| 10:45:04 | <teddyc> | [exa]: ah and they removed the "you're fat lose some weight fatty" in the fork. good |
| 10:45:34 | <gugu265> | ok i'll just ^C that then |
| 10:45:38 | <maerwald> | what? |
| 10:45:55 | <maerwald> | well... ^C doesn't always work on windows xD |
| 10:46:01 | <maerwald> | oops |
| 10:46:10 | <maerwald> | depends on your cabal version |
| 10:46:45 | × | simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 245 seconds) |
| 10:49:08 | <[exa]> | teddyc: whoa good |
| 10:50:48 | <maerwald> | lyah is fat shaming? |
| 10:51:16 | <Rembane> | Yeah, it was. Very meh. |
| 10:53:52 | → | mncheck joins (~mncheck@193.224.205.254) |
| 10:54:27 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds) |
| 10:54:47 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 10:54:47 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 10:54:47 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 10:55:49 | × | perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2) |
| 10:59:46 | → | simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk) |
| 11:01:18 | × | titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection) |
| 11:03:00 | → | perrierjouet1 joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) |
| 11:03:52 | × | gugu265 quits (~gugu256@219.134.22.93.rev.sfr.net) (Remote host closed the connection) |
| 11:04:17 | → | gugu265 joins (~gugu256@219.134.22.93.rev.sfr.net) |
| 11:13:39 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 11:15:44 | → | seeg123456 joins (~seeg12345@64.176.64.83) |
| 11:17:40 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 11:18:03 | → | bontaq joins (~user@ool-45779b84.dyn.optonline.net) |
| 11:19:05 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 246 seconds) |
| 11:22:31 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
| 11:24:47 | <maerwald> | dunno why I'm thinking of fat vikings now |
| 11:25:10 | <Rembane> | maerwald: Have you played Lost Vikings lately? |
| 11:25:22 | <maerwald> | nope... I haven't played games in years |
| 11:25:36 | <maerwald> | maybe I should get a game controller |
| 11:25:50 | <maerwald> | (can't use mouse for long) |
| 11:27:07 | <Rembane> | It's a real classic, dunno if it's actually good |
| 11:27:24 | <Rembane> | https://en.wikipedia.org/wiki/The_Lost_Vikings |
| 11:27:41 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 11:30:16 | <danse-nr3> | that was a great one |
| 11:39:42 | → | maulanazn joins (~maulanazn@103.144.170.135) |
| 11:39:53 | ← | maulanazn parts (~maulanazn@103.144.170.135) () |
| 11:49:12 | × | hdggxin quits (~hdggxin@122.175.41.19) (Ping timeout: 240 seconds) |
| 11:49:32 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds) |
| 11:52:50 | → | mima joins (~mmh@ppp-212-114-180-185.dynamic.mnet-online.de) |
| 11:53:22 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 11:53:56 | <kenran> | I want to call https://hackage.haskell.org/package/sdl2-2.5.5.0/docs/SDL-Raw-Video.html#v:getWindowWMInfo, where SysWMInfo is a Ptr (), but the official SDL2 docs say that in order for that function to work, its info.version field needs to be filled in by another procedure call first. I haven't really done C FFI in Haskell, so I'm struggling with that part |
| 11:55:04 | × | gugu265 quits (~gugu256@219.134.22.93.rev.sfr.net) (Ping timeout: 250 seconds) |
| 11:56:26 | <kenran> | I need to (I think) call getVersion :: MonadIO m => Ptr Version -> m (), but that Ptr needs to point "into" the SysWMInfo struct. Is that even possible with it being Ptr ()? |
| 11:57:14 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 11:57:14 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 11:57:14 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 11:57:35 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 11:57:48 | <kenran> | (the C code would be something like: SDL_SysWMInfo info; SDL_VERSION(&info.version); SDL_GetWindowWMInfo(&window, &info); |
| 12:00:51 | × | perrierjouet1 quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2) |
| 12:03:40 | → | perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) |
| 12:03:47 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 12:04:46 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
| 12:05:14 | × | AlexNoo quits (~AlexNoo@178.34.162.202) (Read error: Connection reset by peer) |
| 12:05:16 | → | lambdabot joins (~lambdabot@silicon.int-e.eu) |
| 12:05:16 | × | lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host) |
| 12:05:16 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 12:05:39 | → | AlexNoo joins (~AlexNoo@178.34.162.202) |
| 12:05:43 | × | Guest8558 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 12:06:07 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:08:52 | → | hdggxin joins (~hdggxin@122.175.41.19) |
| 12:09:11 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 245 seconds) |
| 12:09:44 | <geekosaur> | kenran, `plusPtr` is a thing |
| 12:10:26 | <geekosaur> | the parameter to `Ptr` is meaningless except as a tag you can use to keep distinct `Ptr`s straight in Haskell (that is, it's phantom) |
| 12:11:59 | → | MajorBiscuit joins (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) |
| 12:12:46 | <kenran> | geekosaur: ahh thanks, that makes one thing clear for me! So.... in order to even get the initial SysWMInfo, I'd need to allocate manually? Or how else would I even get that initial info pointer? |
| 12:13:21 | <geekosaur> | this might be easier using "CApi" calling convention (requires `CApiFFI` extension) because then you could call `SDL_VERSION(&info.version)` directly, assuming it's `Storable` |
| 12:13:32 | <geekosaur> | that's what `alloca` is for |
| 12:18:12 | <kenran> | sorry, I'm struggling to even clearly formulate my questions :) thanks for all the advice! (probably) last question: in order to use alloca, I'd need a Haskell type for the `a`, which in my case doesn't exist yet. Is that correct? |
| 12:18:45 | <kenran> | (I'll just read up on C FFI from scratch now) |
| 12:18:57 | <geekosaur> | here's where you want `Storable` |
| 12:19:18 | <geekosaur> | which lets you describe a mapping between a C `struct` and a Haskell type |
| 12:19:35 | × | danse-nr3 quits (~francesco@151.37.208.115) (Read error: Connection reset by peer) |
| 12:19:50 | → | danse-nr3 joins (~francesco@151.35.133.32) |
| 12:20:50 | <geekosaur> | and `hsc2hs` is one of several tools that helps you build `Storable` instances (`c2hs` is another, somewhat more automated but can make mistakes or need extra help because in C there's no difference between `foo *x` and `foo x[n]`) |
| 12:21:13 | → | gugu265 joins (~gugu256@219.134.22.93.rev.sfr.net) |
| 12:25:39 | → | gurkenglas joins (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de) |
| 12:26:33 | → | dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 12:26:33 | × | dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 12:26:34 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 12:26:41 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 12:27:17 | dobblego | is now known as dibblego |
| 12:27:21 | <chiselfuse> | what's wrong with this? f :: a -> a f 1 = 1 |
| 12:27:40 | <chiselfuse> | • No instance for (Eq a) arising from the literal ‘1’ |
| 12:30:36 | <geekosaur> | you specified "any type `a`" then used one that requires `Eq` for a pattern match |
| 12:31:07 | <kenran> | cool, I seem to begin to grasp it :) so in my case I could create an .hsc file, containing my MySysWMInfo definition (where I use the existing Version type) and mapping, then use alloca to get a pointer, call getVersion |
| 12:31:13 | <kenran> | I'll try that later on, thanks again geekosaur |
| 12:31:48 | <chiselfuse> | geekosaur: by pattern match you mean when haskell runs and tries to match the query `f 1` to the definition? |
| 12:31:53 | <geekosaur> | yes |
| 12:32:06 | × | Inst quits (~Inst@c-76-101-10-131.hsd1.fl.comcast.net) (Ping timeout: 245 seconds) |
| 12:32:16 | <geekosaur> | pattern matches on instances of `Num` get translated into guards using `Eq` |
| 12:32:40 | <chiselfuse> | ok, i specified that a should be of Eq and now i'm getting • Could not deduce (Num a) arising from the literal ‘1’ |
| 12:33:20 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:33:43 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds) |
| 12:34:21 | <geekosaur> | right, that's the other `1` which requires `Num` |
| 12:34:42 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 12:34:51 | <chiselfuse> | but what if i want to have `f 2 = True` |
| 12:35:24 | × | simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Quit: Leaving) |
| 12:38:05 | <ncf> | functions can't return different types based on the value of their argument, at least in haskell |
| 12:40:12 | <geekosaur> | I take it you're used to something like Java where you can use `java.lang.Object` of which everything is an instance? |
| 12:40:37 | <geekosaur> | we don't have any equivalent to that, and in particular there is no subtyping |
| 12:41:12 | × | jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
| 12:42:14 | → | Inst joins (~Inst@c-76-101-10-131.hsd1.fl.comcast.net) |
| 12:45:43 | → | hugo- joins (znc@verdigris.lysator.liu.se) |
| 12:46:45 | × | acidjnk quits (~acidjnk@p200300d6e7072f09b522d1b3cfe8e851.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 12:55:06 | <chiselfuse> | how can i define a function that returns a function of its own type? |
| 12:55:59 | <chiselfuse> | it takes say an Int, and returns a function that takes an Int that returns a function that takes an Int... and so on |
| 12:57:23 | × | MajorBiscuit quits (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 244 seconds) |
| 12:57:55 | × | Inst quits (~Inst@c-76-101-10-131.hsd1.fl.comcast.net) (Ping timeout: 258 seconds) |
| 12:57:55 | <danse-nr3> | how would such function even return anything? |
| 12:58:27 | <danse-nr3> | *ever |
| 12:59:00 | <chiselfuse> | hmm good point, guess i'll need a helper |
| 12:59:16 | → | MajorBiscuit joins (~MajorBisc@c-001-019-004.client.tudelft.eduvpn.nl) |
| 12:59:19 | <chiselfuse> | wait no |
| 12:59:27 | → | barcisz joins (~barcisz@83.6.202.49.ipv4.supernova.orange.pl) |
| 12:59:34 | <chiselfuse> | don't know actually |
| 12:59:46 | <chiselfuse> | i'm trying to use currying to implement a variadic function |
| 12:59:53 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 12:59:55 | <chiselfuse> | without using other haskell features |
| 13:00:32 | <chiselfuse> | so i was thinking of returning the function over and over so it'd apply itself again and again on all functions until it reaches a delimiter |
| 13:00:46 | <danse-nr3> | i guess a list does not give you the flexibility you are looking for |
| 13:00:53 | <chiselfuse> | s/on all functions/on all arguments/ |
| 13:01:00 | → | Cale joins (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) |
| 13:01:03 | <geekosaur> | you need a way to match a delimiter, which gets you into the realm of typeclasses |
| 13:01:03 | <chiselfuse> | danse-nr3: i don't want to use that either |
| 13:01:08 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 13:01:14 | <geekosaur> | e.g. PrintfType |
| 13:01:17 | <chiselfuse> | i want f 1 2 3 4 5 ... delimiter |
| 13:02:13 | → | acidjnk joins (~acidjnk@p200300d6e7072f09a8b60c3f1e99feab.dip0.t-ipconnect.de) |
| 13:02:21 | <danse-nr3> | like `f (Just 1) (Just 2) (Just 3) Nothing` |
| 13:02:31 | <chiselfuse> | danse-nr3: yes |
| 13:03:17 | → | dobblego joins (~dibblego@116.255.1.151) |
| 13:03:18 | × | dobblego quits (~dibblego@116.255.1.151) (Changing host) |
| 13:03:18 | → | dobblego joins (~dibblego@haskell/developer/dibblego) |
| 13:03:28 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 13:03:28 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:03:41 | <chiselfuse> | uh, how did you say i'd achieve that again? |
| 13:03:46 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 13:04:00 | dobblego | is now known as dibblego |
| 13:04:07 | <ncf> | typeclasses (but your delimiter wouldn't be Nothing, it would be an element of another type) |
| 13:04:12 | <danse-nr3> | geekosaur, i am scared of looking into that, printf seemed hacky and unsafe the last time i looked into it |
| 13:05:16 | <geekosaur> | it's not, really. and while I think the current version uses more stuff, the basic trick is Haskell98 |
| 13:05:44 | <chiselfuse> | ncf: what's "typeclasses", it's stuff like Eq, how would i use that? |
| 13:05:59 | <geekosaur> | granting that any way to do this is "hacky" in some sense, because Haskell doesn't really do variadic functions |
| 13:08:38 | <danse-nr3> | yeah, not easily though. chiselfuse's question is interesting though, although i find it hard to apply my brain on something that seems more easily achievable with lists |
| 13:08:57 | <danse-nr3> | *not easily at least |
| 13:12:02 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 13:12:06 | <danse-nr3> | i cannot think of a function that could call itself with that interface. Maybe an helper, but then it would feed another function that takes lists. Would it still be worth anything for you chiselfuse? |
| 13:13:26 | <chiselfuse> | danse-nr3: that'd be fine |
| 13:15:47 | <danse-nr3> | now i am in trouble ... maybe you know that it is theoretically impossible and are just testing us :D ... i will give this a try shortly |
| 13:17:51 | <chiselfuse> | i am not testing anyone lol, someone implied it was possible that's all i know |
| 13:18:21 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 13:21:56 | <danse-nr3> | `f (Just 1) (Just 2) (Just 3) Nothing (Just 4)` should throw a compiler error. So at compiler time we would need to know the result of applying `f` ... that sounds like going against some principles of computer science |
| 13:23:27 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:25:59 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:26:38 | <danse-nr3> | nope, i think it is not possible. Maybe ncf knows a way with typeclasses |
| 13:26:53 | <ncf> | i just said that was not possible |
| 13:28:39 | <ncf> | for the typeclass trick, see https://hackage.haskell.org/package/base-4.18.0.0/docs/Text-Printf.html#t:PrintfType |
| 13:29:17 | <ncf> | that has no delimiter, but you can add one if you want to by adding an arrow in the base case |
| 13:37:43 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:37:49 | → | masterbuilder joins (~masterbui@user/masterbuilder) |
| 13:39:19 | → | sm[i] joins (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) |
| 13:43:15 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 13:43:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:44:07 | × | sm[i] quits (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) (Client Quit) |
| 13:48:55 | ← | seeg123456 parts (~seeg12345@64.176.64.83) () |
| 13:54:08 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:59:52 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
| 14:03:35 | × | mei quits (~mei@user/mei) (Read error: Connection reset by peer) |
| 14:05:24 | → | ystael joins (~ystael@user/ystael) |
| 14:06:01 | → | mei joins (~mei@user/mei) |
| 14:07:26 | × | puke quits (~puke@user/puke) (Ping timeout: 246 seconds) |
| 14:08:12 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:14:24 | × | internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2) |
| 14:19:42 | → | internatetional joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) |
| 14:19:44 | × | ub quits (~Thunderbi@178.165.173.150.wireless.dyn.drei.com) (Quit: ub) |
| 14:20:48 | → | mango joins (~finn@2001:861:5863:3d50:4d58:d5db:5cbe:9ed8) |
| 14:21:08 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 14:26:55 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 14:28:22 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 14:29:45 | <EvanR> | danse-nr3, a funny application of dependent types, which obeys computer science, is having the type of printf depend on the format string passed in |
| 14:30:13 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 14:31:04 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 250 seconds) |
| 14:31:15 | <EvanR> | which is an extreme roundabout way to achieve something that's ultimately a bad idea probably xD |
| 14:34:58 | × | perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 250 seconds) |
| 14:35:55 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 14:37:53 | → | sm[i] joins (~sm@172.56.113.55) |
| 14:38:50 | <danse-nr3> | well, that does not seem too bad, provides type safety |
| 14:39:40 | <[exa]> | type safety against a string |
| 14:39:50 | <[exa]> | pls don't |
| 14:40:33 | <danse-nr3> | uh? Given a formatting string you get a type safe function to consume values that fit there |
| 14:41:03 | <[exa]> | it sounds like a good idea right? |
| 14:41:21 | <danse-nr3> | no, you are right. Better ignore everything and explode at runtime |
| 14:41:23 | <geekosaur> | now you just need a way to make sure that string is a constant |
| 14:42:19 | <[exa]> | danse-nr3: or have an actual correct formatter/prettyprinter in place |
| 14:43:36 | <[exa]> | btw if the string is compiletime constant you could use TH to convert it to correctly typed formatting function, which is IMO much less of an atrocity |
| 14:44:48 | <danse-nr3> | i see what you mean ... yeah i guess that the ergonomy of passing a string that affects the type is similar to pass a typed value that would not require dependent types |
| 14:45:34 | <geekosaur> | I think there's at least one printf impl that does that on hackage? |
| 14:45:35 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 14:45:42 | <geekosaur> | although it may be a proof of concept |
| 14:47:58 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 14:48:22 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 14:48:39 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 14:50:10 | → | perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) |
| 14:50:26 | <[exa]> | I somehow guessed it's gonna be named printf-th and voila |
| 14:50:40 | × | Lycurgus quits (~juan@user/Lycurgus) (Client Quit) |
| 14:51:42 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 14:52:09 | × | mango quits (~finn@2001:861:5863:3d50:4d58:d5db:5cbe:9ed8) (Ping timeout: 258 seconds) |
| 14:52:46 | × | sm[i] quits (~sm@172.56.113.55) (Quit: sm[i]) |
| 14:54:55 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 14:55:05 | → | sm[i] joins (~sm@2607:fb90:3c9a:6cc7:e920:67c0:23ad:80fa) |
| 15:00:38 | → | Inst joins (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0) |
| 15:01:11 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds) |
| 15:04:33 | × | gugu265 quits (~gugu256@219.134.22.93.rev.sfr.net) (Read error: Connection reset by peer) |
| 15:05:35 | × | sm[i] quits (~sm@2607:fb90:3c9a:6cc7:e920:67c0:23ad:80fa) (Quit: sm[i]) |
| 15:06:40 | → | simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk) |
| 15:06:48 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:07:55 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 15:08:03 | → | seeg123456 joins (~seeg12345@64.176.64.83) |
| 15:11:37 | × | MajorBiscuit quits (~MajorBisc@c-001-019-004.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.6) |
| 15:14:41 | → | Inst_ joins (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0) |
| 15:16:23 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 15:18:04 | × | Inst quits (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0) (Ping timeout: 260 seconds) |
| 15:18:12 | → | Inst__ joins (~Inst@2601:6c4:4081:2fc0:b8e3:e527:5654:3c93) |
| 15:19:09 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 15:19:12 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:20:23 | × | Inst_ quits (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0) (Ping timeout: 264 seconds) |
| 15:20:47 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
| 15:23:59 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c) |
| 15:24:35 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 15:26:06 | × | masterbuilder quits (~masterbui@user/masterbuilder) (Quit: Lost terminal) |
| 15:29:39 | <danse-nr3> | is there a compiler feature to make the performance of `map f . filter g` equal to mapMaybe, iterating a list only once? |
| 15:31:27 | <danse-nr3> | list fusion, i guess https://wiki.haskell.org/GHC_optimisations#Fusion |
| 15:32:06 | <geekosaur> | right, but then you have to see if using that fires any appropriate RULES |
| 15:32:09 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 15:32:31 | <geekosaur> | list fusion requires that someone predefine the fusion rules |
| 15:34:46 | <danse-nr3> | i guess i will use mapMaybe then. Cheers |
| 15:35:02 | × | mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 260 seconds) |
| 15:36:41 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
| 15:37:31 | × | tbagrel1 quits (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605) (Quit: WeeChat 3.5) |
| 15:38:20 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 15:39:08 | <geekosaur> | looks to me like map and filter are both FB rules, see Note [Inline FB functions] in GHC.List |
| 15:39:29 | <geekosaur> | so it should optimize, not to mapMaybe but to something morally equivalent |
| 15:39:47 | <geekosaur> | and perhaps faster |
| 15:40:15 | <geekosaur> | (single pass, no Maybe involved) |
| 15:41:04 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 15:41:49 | × | dfg quits (~dfg@user/dfg) (Remote host closed the connection) |
| 15:42:15 | → | dfg joins (~dfg@dfg.rocks) |
| 15:42:15 | × | dfg quits (~dfg@dfg.rocks) (Changing host) |
| 15:42:15 | → | dfg joins (~dfg@user/dfg) |
| 15:45:11 | <geekosaur> | so instead of mapMaybe it should filterFB and mapFB in the same list operation, either dropping the filtered element or mapping it |
| 15:46:02 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 15:46:37 | <danse-nr3> | thanks, but seems a bit opaque, i think i will stick to mapMaybe for now |
| 15:46:59 | <geekosaur> | it is a bit opaque, but it's suitably clever |
| 15:47:08 | <geekosaur> | ghc is pretty good at this stuff |
| 15:47:11 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 15:47:59 | → | arahael_ joins (~arahael@115-64-199-191.tpgi.com.au) |
| 15:48:06 | <danse-nr3> | yep, it will be handy for the times where we did not notice, and maybe with time i will learn the rules |
| 15:48:53 | <danse-nr3> | is there a table to look up for them? |
| 15:49:17 | <geekosaur> | as a practical matter, the rules are "write the obvious code and worry about optimization if and when it's shown to be necessary" |
| 15:49:44 | → | razetime joins (~quassel@117.193.5.53) |
| 15:49:59 | <geekosaur> | also you may be left pretty embarrassed if your mapMaybe ends up slower than ghc's FB optimizations |
| 15:50:20 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 15:50:28 | <danse-nr3> | you told me "you have to see if using that fires any appropriate rules", so i thought there was some reference somewhere |
| 15:50:50 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 15:50:59 | <geekosaur> | the reference is the source code. I probably should not have said that since this seems like a "premature optimization" situation |
| 15:51:42 | <danse-nr3> | yeah i am not dying for bits on this, just general good practice in writing |
| 15:51:44 | <geekosaur> | if you insist on premature optimization then yes, you either look around for `RULE`s or you inspect GHC Core |
| 15:52:02 | → | shapr joins (~user@2600:1700:c640:3100:54fd:7954:acad:5050) |
| 15:52:05 | <geekosaur> | good practice is to write for the reader unless profiling a hot path shows otherwise |
| 15:52:22 | × | arahael_ quits (~arahael@115-64-199-191.tpgi.com.au) (Ping timeout: 252 seconds) |
| 15:52:54 | <danse-nr3> | well i also had stumbled upon list fusion before and was looking for an easy way to conceptualise it |
| 15:53:31 | <geekosaur> | conceptually, list operations get split up into pieces that can be combined into a single fold |
| 15:53:56 | <geekosaur> | so map becomes "call a function", filter becomes "select or reject an item", etc. |
| 15:55:47 | × | simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Quit: Leaving) |
| 15:56:08 | <danse-nr3> | yeah, but i have no elements to say which list passes will be optimised or not unless i look at the source. To put it simple this is not that simple, will study it a bit more the next time i feel it could help |
| 15:56:12 | <geekosaur> | and ghc does a lot of work to turn obvious code into these optimized folds for you, and you should generally report a bug if it fails |
| 15:59:21 | <[Leary]> | danse-nr3: If you want to understand list fusion, implement operations for `newtype List a = List (forall r. r -> (a -> r) -> r)` and observe that they fuse. Data.List RULES basically just map into this alternate representation. |
| 16:00:12 | × | highvoltage quits (~highvolt@bcdcac82.skybroadband.com) (Ping timeout: 240 seconds) |
| 16:01:03 | → | ft joins (~ft@p3e9bc61e.dip0.t-ipconnect.de) |
| 16:01:14 | <int-e> | :t flip foldr |
| 16:01:15 | <lambdabot> | Foldable t => b -> (a -> b -> b) -> t a -> b |
| 16:01:31 | <int-e> | [Leary]: you're missing an `r` |
| 16:01:38 | <[Leary]> | Oh, I missed a tyvar or two. Yeah, oops. |
| 16:02:30 | × | mima quits (~mmh@ppp-212-114-180-185.dynamic.mnet-online.de) (Ping timeout: 250 seconds) |
| 16:03:02 | → | highvoltage joins (~highvolt@bcdcac82.skybroadband.com) |
| 16:03:03 | × | ft quits (~ft@p3e9bc61e.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 16:04:59 | ← | seeg123456 parts (~seeg12345@64.176.64.83) () |
| 16:05:22 | × | acidjnk quits (~acidjnk@p200300d6e7072f09a8b60c3f1e99feab.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 16:05:31 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 16:07:19 | <danse-nr3> | not sure what you mean. I should implement `flip foldr`, and then? How do i observe that it fuses? |
| 16:07:57 | → | mei joins (~mei@user/mei) |
| 16:08:14 | → | flounders joins (~flounders@24.246.133.1) |
| 16:08:50 | <int-e> | :t \xs nil cons -> foldr cons nil xs |
| 16:08:51 | <lambdabot> | Foldable t => t a -> b -> (a -> b -> b) -> b |
| 16:10:25 | <int-e> | danse-nr3: The idea is that `forall r. r -> (a -> r -> r) -> r` is isomorphic to [a], and `foldr`, after shuffling arguments is one direction of the isomorphism. |
| 16:10:43 | <[Leary]> | danse-nr3: Rearranging the arguments of `foldr`, we have `[a] -> (forall b. b -> (a -> b -> b) -> b)`. You can also write the other direction; this type is another way to represent lists. If you write operations like `map` and `filter` on this representation, you'll be able to see intuitively (or by algebraic substitution) that they fuse. |
| 16:10:53 | <int-e> | And the other direction can be derived from `foldr (:) [] xs = xs`. |
| 16:11:27 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 16:11:52 | <int-e> | So if you understand `foldr`, understanding `forall r. r -> (a -> r -> r) -> r` should be fairly easy. |
| 16:12:51 | → | acidjnk joins (~acidjnk@p200300d6e7072f09e09871481cfbcb71.dip0.t-ipconnect.de) |
| 16:17:56 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 16:18:12 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 16:19:52 | → | danse-nr3_ joins (~francesco@151.37.218.65) |
| 16:20:20 | <danse-nr3_> | i think we are sidetracking ... but i will try to learn this thing. How can `forall r. r -> (a -> r -> r) -> r` be isomorphic to `[a]`? |
| 16:20:29 | <danse-nr3_> | so "abc" would correspond to? |
| 16:20:31 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 16:20:57 | <[Leary]> | \nil cons -> cons 'a' (cons 'b' (cons 'c' nil)) |
| 16:21:16 | × | danse-nr3 quits (~francesco@151.35.133.32) (Read error: Connection reset by peer) |
| 16:21:37 | <danse-nr3_> | :t \nil cons -> cons 'a' (cons 'b' (cons 'c' nil)) |
| 16:21:38 | <lambdabot> | t -> (Char -> t -> t) -> t |
| 16:22:28 | <danse-nr3_> | cool stuff :) |
| 16:22:45 | × | barcisz quits (~barcisz@83.6.202.49.ipv4.supernova.orange.pl) (Quit: Connection closed) |
| 16:22:49 | → | Drew[m]1 joins (~drewefenw@2001:470:69fc:105::c8c4) |
| 16:22:58 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 16:27:39 | <danse-nr3_> | well looks like i have got some exercise do to in my spare time. Thanks geekosaur [Leary] int-e |
| 16:29:58 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 16:31:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 16:32:04 | × | nick4 quits (~nick@2600:8807:9084:7800:504a:bdb:1c92:8eb1) (Ping timeout: 246 seconds) |
| 16:36:41 | → | ft joins (~ft@p3e9bc61e.dip0.t-ipconnect.de) |
| 16:38:25 | × | ddellacosta quits (~ddellacos@146.70.185.168) (Ping timeout: 245 seconds) |
| 16:38:54 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:38:58 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:41:47 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 16:42:01 | × | billchenchina quits (~billchenc@103.152.35.21) (Remote host closed the connection) |
| 16:42:10 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:42:29 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 246 seconds) |
| 16:49:36 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 245 seconds) |
| 16:51:29 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:52:14 | → | mango joins (~finn@2001:861:5863:3d50:dac7:1c9e:d3d9:d11b) |
| 16:52:28 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 244 seconds) |
| 16:52:42 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 17:01:48 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 17:02:44 | → | ddellacosta joins (~ddellacos@146.70.168.156) |
| 17:09:00 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 17:10:17 | × | flounders quits (~flounders@24.246.133.1) (Ping timeout: 246 seconds) |
| 17:15:23 | × | Alex_test quits (~al_test@178.34.162.202) (Ping timeout: 246 seconds) |
| 17:15:28 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 17:16:05 | × | AlexZenon quits (~alzenon@178.34.162.202) (Ping timeout: 246 seconds) |
| 17:17:14 | × | hook54321 quits (sid149355@id-149355.ilkley.irccloud.com) (Changing host) |
| 17:17:14 | → | hook54321 joins (sid149355@user/hook54321) |
| 17:19:28 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Remote host closed the connection) |
| 17:20:30 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 250 seconds) |
| 17:23:41 | → | Alex_test joins (~al_test@178.34.162.202) |
| 17:23:50 | × | fendor quits (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection) |
| 17:25:47 | <EvanR> | danse-nr3_, to show isomorphism between A and B you need maps between them that cancel each other |
| 17:26:01 | → | notzmv joins (~zmv@user/notzmv) |
| 17:27:21 | <EvanR> | encode decode where decode can't fail |
| 17:30:22 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:32:01 | → | AlexZenon joins (~alzenon@178.34.162.202) |
| 17:33:14 | <danse-nr3_> | yeah i think i understand that, thanks |
| 17:37:17 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:43:18 | <Inst__> | seems unfortunately accurate |
| 17:43:19 | <Inst__> | https://github.com/vrom911/haskeller-answers/blob/master/src/HaskellerAnswers.hs |
| 17:45:36 | <yushyin> | no |
| 17:49:44 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
| 17:51:08 | <Inst__> | in the sense that many haskellers are guilty of the satirized behavior in the list at one time or another |
| 17:56:04 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds) |
| 17:57:03 | <ddellacosta> | I feel like most of these are jokes, but yeah "just use nix" does get said a bit much (saying this as a nix user myself) |
| 17:59:57 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
| 18:02:48 | → | billchenchina joins (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) |
| 18:03:11 | → | titibandit joins (~titibandi@user/titibandit) |
| 18:03:18 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 18:03:48 | → | merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
| 18:05:12 | × | talismanick quits (~user@76.133.152.122) (Remote host closed the connection) |
| 18:05:25 | <yushyin> | seems to me to be more of a trend, at some point it was also 'just use stack' |
| 18:05:56 | <dolio> | Some of these I've never heard, I think. |
| 18:06:44 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 18:08:08 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 18:08:21 | × | merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
| 18:09:03 | <yushyin> | many of these statements are actually rather poorly received and also rejected by the regulars here |
| 18:09:28 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 250 seconds) |
| 18:16:27 | → | bratwurst joins (~dfadsva@2604:3d09:207f:f650::c680) |
| 18:16:58 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 18:17:30 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:21:09 | → | titibandit joins (~titibandi@user/titibandit) |
| 18:21:32 | × | razetime quits (~quassel@117.193.5.53) (Remote host closed the connection) |
| 18:21:54 | → | Guest8558 joins (~finn@176-151-21-224.abo.bbox.fr) |
| 18:22:24 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:25:53 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds) |
| 18:26:37 | → | simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk) |
| 18:33:17 | × | mango quits (~finn@2001:861:5863:3d50:dac7:1c9e:d3d9:d11b) (Ping timeout: 245 seconds) |
| 18:35:43 | → | mango joins (~finn@2001:861:5863:3d50:8912:5927:5eae:b7b) |
| 18:36:25 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:36:56 | <cheater> | dolio: like which one |
| 18:38:36 | × | czy quits (~user@host-140-26.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
| 18:43:36 | <dolio> | "Types are IDE" |
| 18:44:48 | <dolio> | Also, two of them look like garbage that is the output of @pl which are like texbook examples of why "only write pointfree code" is a bad idea. |
| 18:46:45 | <int-e> | Though to be fair to @pl, it would never use (<$>) for (.) |
| 18:48:43 | × | mango quits (~finn@2001:861:5863:3d50:8912:5927:5eae:b7b) (Ping timeout: 244 seconds) |
| 18:51:01 | <dolio> | Yeah, it's possible someone figured that one out by hand. |
| 18:51:19 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 18:52:58 | × | h2t_ quits (~h2t@user/h2t) (Quit: ZNC - https://znc.in) |
| 18:53:17 | → | h2t joins (~h2t@user/h2t) |
| 18:53:24 | <dolio> | If it was, something like that is clearly goofing around. So I'm not sure why it's, "unfortunately accurate," that people like to do things like that that are clearly a bad idea just on a goof. |
| 18:56:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:01:35 | × | simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 246 seconds) |
| 19:04:06 | → | son0p joins (~ff@181.136.122.143) |
| 19:05:51 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 19:09:22 | → | pavonia joins (~user@user/siracusa) |
| 19:09:56 | → | mixfix41 joins (~sdeny9ee@user/mixfix41) |
| 19:10:45 | <monochrom> | Parametricity can prove the difficult direction of why [a] is isomorphic to forall r. r -> (a -> r -> r) -> r. |
| 19:11:26 | <monochrom> | Actually some of you saw that I put that difficult direction on my assignment, using a=Int. :) |
| 19:12:09 | <monochrom> | Today I'm thinking how to be more abstract and, assuming that an initial algebra is already known to exist, how to use Yoneda's lemma to replace parametricity. |
| 19:13:21 | <mauke> | r -> (a -> w -> r) -> x -> d |
| 19:13:51 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:16:16 | → | misterfish joins (~misterfis@178.228.71.213) |
| 19:16:30 | <int-e> | mauke: still friendlier than stabby lenses |
| 19:17:29 | <monochrom> | I think this is on the right track. (Given a functor F for us to make F-algebras. Assume it has an intial algebra.) Use the forgetful functor U from F-algebras to carriers in Set. Then by Yoneda, (forall a. (homomorphism from initial algebra to algebra a) -> U (algebra a)) is isomorphic to U (initial algebra). |
| 19:17:32 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:17:50 | <monochrom> | And "(homomorphism from initial algebra to algebra a)" can be simplified to F a -> a. |
| 19:20:40 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 19:23:00 | <ncf> | so, forall r. r → (a → r → r) → r ≃ forall r. (Maybe (a, r) → r) → r ≃ forall r. (ListF a r → r) → r ≃ forall r. (Fix (ListF a) → r) → r ≃ Fix (ListF a) ≃ [a] |
| 19:23:51 | × | misterfish quits (~misterfis@178.228.71.213) (Ping timeout: 244 seconds) |
| 19:24:17 | <ncf> | well, this is not typed enough :) |
| 19:25:24 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 19:27:57 | × | bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 19:27:57 | <monochrom> | If you attempt a parametricity proof, it is simpler to stick to r -> (a -> r -> r) -> r. Don't pack it up into ListF. :) |
| 19:28:17 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 19:28:23 | <monochrom> | But if you want a general proof that works for all algebraic types, then yeah. |
| 19:28:43 | × | forell quits (~forell@user/forell) (Quit: ZNC - https://znc.in) |
| 19:29:58 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 19:33:03 | <dolio> | I think it's a lot less clear how to get this to work with categories, if you want to make literal sense of the quantified type. |
| 19:35:22 | <dolio> | You have to know the right tricks to make mixed variance stuff work out. |
| 19:36:12 | <ncf> | smells like the end |
| 19:36:24 | <monochrom> | I literally try to shoehorn "natural transformation" into it whenever I see forall. So I prefer shoehorning category theory into it. :) |
| 19:37:12 | <monochrom> | And in this case, yeah for 5 minutes I didn't know what to to with the variance of "F a -> a". Then I tried "wait, it's an F-algebra, let me switch to another category". |
| 19:37:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 19:37:22 | <dolio> | Right, but in this case it can't be natural. So if you know a little, you might have heard about 'dinatural' transformations, and think you have to do that. |
| 19:37:38 | → | forell joins (~forell@user/forell) |
| 19:37:54 | <dolio> | But I think that's a mistake. They don't actually work. That led some people to come up with 'strong dinatural,' which as far as I can tell was invented only for this purpose. |
| 19:37:55 | <monochrom> | And so the natural transformation is from Hom(initial algebra, -) to U. (where Hom is for the category of F algebras.) |
| 19:38:21 | → | dom0 joins (~u0_a242@79.116.108.247) |
| 19:38:52 | <dolio> | But then category theorists have another trick called 'extranatural,' which behaves better, and covers almost everything people want to do. So I think you'd want to try to massage things into that form first. |
| 19:39:32 | <ncf> | just jump straight to using an end imo |
| 19:43:44 | <monochrom> | Why can't it be natural? Alternatively, I may be proving a much weaker claim, and just focusing on what's given to be natural. |
| 19:44:23 | <monochrom> | And also weak in terms of presuming somehow we already have an initial algebra in some other form in the first place. |
| 19:45:02 | <monochrom> | And my conclusion at the moment is only "isomorphic in Set" so it's still an unstructured bijection. |
| 19:45:26 | <dolio> | monochrom: Because r occurs in both covariant and contravariant positions. |
| 19:45:38 | <dolio> | No matter how you split it up. |
| 19:46:58 | <monochrom> | But I'm using Hom(initial algebra, -). |
| 19:47:17 | <ncf> | so you're not formalising the whole thing |
| 19:47:48 | <monochrom> | The fact that it simplifies to "/\r. F r -> r" is afterwards. |
| 19:48:00 | <dolio> | Yeah, I mean if you want to make sense of a formula like `forall r. r -> (a -> r -> r) -> r` |
| 19:49:11 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 19:50:27 | × | nyc quits (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Changing host) |
| 19:50:27 | → | nyc joins (~nyc@user/nyc) |
| 19:51:44 | × | danse-nr3_ quits (~francesco@151.37.218.65) (Ping timeout: 250 seconds) |
| 19:53:38 | <monochrom> | OK I see. I still don't know whether "forall r. (F r -> r) -> r" is the same as "forall algebra a. a -> U a". |
| 19:57:08 | <dolio> | No, should be `forall algebra a. U a`, I think. |
| 19:57:25 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 19:58:01 | <dolio> | The type of values that all algebras are required to have. |
| 19:58:19 | <monochrom> | I began with "forall algebra a. Hom(initial, a) -> U a". Initiality allows simplifying Hom(initial, a) to a. |
| 19:59:22 | <dolio> | No, there is a unique homomorphism from the initial algebra to each other algebra. |
| 19:59:40 | <dolio> | So Hom(initial, a) is the unit type. |
| 20:00:06 | <monochrom> | Oh darn, right. |
| 20:02:51 | <monochrom> | Thanks. My excuse is I didn't have tea today! |
| 20:03:00 | <monochrom> | And didn't have wine last night! |
| 20:05:35 | <mauke> | https://www.youtube.com/watch?v=u_776fo3XHc |
| 20:08:22 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 20:13:50 | × | internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2) |
| 20:32:06 | <Inst__> | yushyin: that's why it's satire |
| 20:34:21 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:37:03 | → | Pickchea joins (~private@user/pickchea) |
| 20:41:42 | → | fendor joins (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) |
| 20:44:07 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2) |
| 20:47:50 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 20:49:44 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 20:55:46 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 20:57:01 | → | nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) |
| 21:01:29 | × | bratwurst quits (~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 246 seconds) |
| 21:04:13 | × | kimiamania60 quits (~681cf57f@user/kimiamania) (Quit: PegeLinux) |
| 21:04:39 | → | kimiamania60 joins (~681cf57f@user/kimiamania) |
| 21:04:58 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:07:05 | × | nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 246 seconds) |
| 21:10:18 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 21:11:00 | × | dom0 quits (~u0_a242@79.116.108.247) (Quit: WeeChat 4.0.1) |
| 21:15:27 | <justsomeguy> | Hi #haskell. I've been learning Haskell, with some help here and there, from haskellbook.com and this IRC channel. I got through the basics, recursion/folding/ADTs/how to define type classes, as well as Functor and Monad. But now I feel a little burnt out on that book. What do you think I should do from here to continue learning? |
| 21:16:32 | <jade[m]> | find something you find interesting and create a project or contribute to an existing project!! |
| 21:16:48 | <jade[m]> | no amount of learning will be as valuable as actually using what you learnt |
| 21:16:49 | <justsomeguy> | I was considering doing a bunch of small projects, like a website link health checker, a command-line todo app, etc, but to be honest I always get stuck. Maybe I'm just dumb. |
| 21:17:31 | <monochrom> | burnt out => don't continue? |
| 21:17:32 | <jade[m]> | You're not, it's normal to get stuck once you get to bigger projects, that's expected even |
| 21:18:01 | <jade[m]> | also yeah, burnt out means you should probably take a break and get some breathing room |
| 21:18:02 | → | mima joins (~mmh@ppp-212-114-180-85.dynamic.mnet-online.de) |
| 21:18:48 | → | hololeap_ joins (~quassel@user/hololeap) |
| 21:19:27 | <monochrom> | burnt out /\ looking for more => addiction >:) |
| 21:19:39 | <justsomeguy> | lol, that sounds right |
| 21:19:42 | → | reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) |
| 21:19:48 | <jade[m]> | haha |
| 21:20:47 | × | acidjnk quits (~acidjnk@p200300d6e7072f09e09871481cfbcb71.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 21:21:21 | <justsomeguy> | I think I'm going to try the tutorial for IHP, and see how that goes. I could use a simple personal website, and at least I have a pretty good idea what goes into making one from the sysadmin side. |
| 21:21:44 | → | sm[i] joins (~sm@2601:196:4b80:3a40:65:7c1f:38cd:576) |
| 21:22:00 | × | hololeap quits (~quassel@user/hololeap) (Ping timeout: 246 seconds) |
| 21:22:11 | → | nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) |
| 21:23:13 | × | ncf quits (~n@monade.li) (Quit: Fairfarren.) |
| 21:24:02 | × | reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 250 seconds) |
| 21:24:29 | → | ncf joins (~n@monade.li) |
| 21:25:26 | <sm> | not sure how "simple" that will be |
| 21:25:45 | <justsomeguy> | I mean, it looks super complex! But also probably very guided. |
| 21:26:13 | <monochrom> | simple personal website => html. what's haskell doing there? |
| 21:26:24 | <sm> | step 1. be a nix user ? |
| 21:26:41 | <justsomeguy> | Hmm, ok, scratch that idea. |
| 21:27:06 | <monochrom> | But you can s/simple/Goldberg machine/ |
| 21:27:07 | <sm> | I'm making a simple personal website myself, with shake and pandoc |
| 21:27:50 | <sm> | "simple" |
| 21:27:51 | <sm> | right |
| 21:28:16 | <monochrom> | You can do some of my assignments at http://www.cs.utoronto.ca/~trebla/CSCC24-2023-Summer/ |
| 21:28:39 | × | hololeap_ quits (~quassel@user/hololeap) (Quit: Bye) |
| 21:28:55 | → | hololeap joins (~quassel@user/hololeap) |
| 21:29:12 | <justsomeguy> | Thanks for sharing. If I do I'll send you a link to my attempts, monochrom. |
| 21:29:58 | → | mango joins (~finn@2001:861:5863:3d50:38dd:bfcb:d7f1:6ae4) |
| 21:30:31 | <justsomeguy> | Battery is running out. Thanks for the advice, everyone. |
| 21:30:37 | <sm> | there are some complete guided haskell projects out there.. I think https://haskell-via-sokoban.nomeata.de is one |
| 21:30:49 | <sm> | good luck |
| 21:31:05 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
| 21:31:43 | <sm> | clash of code is also fun! hard at first but you start fresh every few minutes |
| 21:39:49 | → | acidjnk joins (~acidjnk@p200300d6e7072f7488c486b520f19958.dip0.t-ipconnect.de) |
| 21:45:31 | × | fendor quits (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection) |
| 21:46:02 | × | forell quits (~forell@user/forell) (Ping timeout: 260 seconds) |
| 21:46:47 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 21:51:19 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 21:54:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:59:57 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:06:29 | × | lyxia quits (~lyxia@poisson.chat) (Quit: WeeChat 3.7) |
| 22:07:05 | × | gurkenglas quits (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 22:07:18 | × | bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection) |
| 22:08:23 | × | Guest8558 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 264 seconds) |
| 22:13:01 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:14:44 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 22:16:21 | × | mango quits (~finn@2001:861:5863:3d50:38dd:bfcb:d7f1:6ae4) (Ping timeout: 260 seconds) |
| 22:17:48 | → | forell joins (~forell@user/forell) |
| 22:18:10 | × | phma quits (~phma@2001:5b0:210f:78d8:de61:1bc2:fcbd:591a) (Read error: Connection reset by peer) |
| 22:19:16 | → | phma joins (phma@2001:5b0:211c:f748:3478:76f9:d3a9:cc0a) |
| 22:22:52 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 22:24:32 | × | nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 245 seconds) |
| 22:27:52 | × | acidjnk quits (~acidjnk@p200300d6e7072f7488c486b520f19958.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 22:29:36 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 22:30:26 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:32:02 | → | mei joins (~mei@user/mei) |
| 22:35:56 | <hololeap> | I've got a broad question of how to parse a text file with a parser combinator library |
| 22:36:40 | <hololeap> | say there are 3 types of lines, 1) header lines which have some obvious structure 2) relevant lines that we want to gather 3) irrelevant lines that we want to ignore |
| 22:37:19 | → | nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) |
| 22:37:24 | <hololeap> | when a header line is reached, it should scan the lines below it until it reaches another header line. of the lines scanned, it makes a list of the relevant lines and stores them in some data structure under the header |
| 22:37:44 | <hololeap> | what's the best/most obvious way to structure a parser like this? |
| 22:38:18 | <jade[m]> | that sounds fairly straightforward - how are header lines indicated? |
| 22:38:41 | <hololeap> | let's just say that the header lines look like: - header |
| 22:38:49 | <hololeap> | (that is a '-', a space, then a title) |
| 22:39:11 | <hololeap> | relevant lines start with 'http' |
| 22:41:16 | <jade[m]> | mhm, so you want a parser that uses many over another parser that first reads a header line and then accepts lines starting with http |
| 22:41:35 | × | nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 246 seconds) |
| 22:41:37 | <jade[m]> | what library are you using specifically? |
| 22:41:55 | <hololeap> | megaparsec |
| 22:42:22 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 22:44:16 | <hololeap> | I guess this kind of loosely translates into converting [Either HeaderName (Maybe URL)] to (Map HeaderName [URL]) |
| 22:45:45 | <geekosaur> | (anyone else feel an urge to write it in awk?) |
| 22:45:47 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 22:46:29 | <hololeap> | so it would have to store the HeaderName somewhere temporary and gather the URLs until a new HeaderName is reached, at which point it writes the previous mess to the Map |
| 22:46:42 | <hololeap> | but I feel like that's a imperative way of thinking about it |
| 22:46:53 | <jade[m]> | it is indeed |
| 22:47:31 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
| 22:48:29 | <jade[m]> | with a parser combinator you would rather parse a list of headers paired with a list of lines (via a record for example) and then put those in a map using one of the smart constructors for a Map |
| 22:48:57 | <jade[m]> | basically makeMap (many paragraph) |
| 22:49:32 | <jade[m]> | eh, you'd probably fmap that, sorry |
| 22:49:48 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 22:50:19 | <hololeap> | ok, even more absract: convert [Either a b] to [(a, [b])] so that each pair consists of an 'a' and a list of consecutive 'b's that follow it |
| 22:50:31 | → | gurkenglas joins (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de) |
| 22:51:33 | <hololeap> | sorry, it seems like I start thinking about problems like these more clearly after I ask in irc :3 |
| 22:51:41 | <ncf> | what do you do if the list starts with Right? |
| 22:52:02 | → | dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au) |
| 22:52:02 | × | dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host) |
| 22:52:02 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 22:52:09 | <ncf> | (answer: you raise a parse error. so this should happen in the parser) |
| 22:52:27 | <hololeap> | I was going to say, ignore the entries until the first Left |
| 22:55:57 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Excess Flood) |
| 22:57:33 | → | arahael_ joins (~arahael@115-64-199-191.tpgi.com.au) |
| 22:58:44 | × | Xe quits (~cadey@tailscale/xe) (Ping timeout: 246 seconds) |
| 23:04:20 | × | arahael_ quits (~arahael@115-64-199-191.tpgi.com.au) (Ping timeout: 246 seconds) |
| 23:09:59 | × | forell quits (~forell@user/forell) (Quit: ZNC - https://znc.in) |
| 23:13:18 | → | forell joins (~forell@user/forell) |
| 23:17:17 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds) |
| 23:17:34 | × | wroathe quits (~wroathe@user/wroathe) (Quit: Lost terminal) |
| 23:19:10 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:19:15 | → | lyxia joins (~lyxia@poisson.chat) |
| 23:21:31 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 23:22:09 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 23:24:05 | × | byte quits (~byte@user/byte) (Quit: Quitting...) |
| 23:24:51 | → | mauke_ joins (~mauke@user/mauke) |
| 23:25:40 | → | byte joins (~byte@user/byte) |
| 23:26:28 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 246 seconds) |
| 23:26:28 | mauke_ | is now known as mauke |
| 23:26:41 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
| 23:27:27 | → | nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) |
| 23:29:16 | × | gurkenglas quits (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de) (Ping timeout: 258 seconds) |
| 23:30:01 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
| 23:31:51 | → | bratwurst joins (~dfadsva@2604:3d09:207f:f650::c3b) |
| 23:32:07 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 23:32:47 | × | nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 260 seconds) |
| 23:38:02 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 23:43:09 | → | arahael_ joins (~arahael@115-64-199-191.tpgi.com.au) |
| 23:43:41 | → | mvk joins (~mvk@2607:fea8:5c9a:a600::1c6d) |
| 23:48:54 | × | arahael_ quits (~arahael@115-64-199-191.tpgi.com.au) (Ping timeout: 244 seconds) |
| 23:57:09 | → | Xe joins (~cadey@tailscale/xe) |
All times are in UTC on 2023-07-28.