Logs on 2022-10-19 (liberachat/#haskell)
| 00:04:36 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds) |
| 00:05:46 | → | ezzieygu1wuf joins (~Unknown@user/ezzieyguywuf) |
| 00:09:59 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 00:10:59 | × | ezzieygu1wuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 00:15:03 | → | ezzieygu1wuf joins (~Unknown@user/ezzieyguywuf) |
| 00:17:00 | → | freeside joins (~mengwong@103.252.202.193) |
| 00:17:31 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 00:21:23 | → | rockystone joins (~rocky@user/rockymarine) |
| 00:23:36 | × | mmhat quits (~mmh@p200300f1c7337736ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7) |
| 00:24:23 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
| 00:29:34 | × | inversed quits (~inversed@90.209.137.56) (Read error: No route to host) |
| 00:30:13 | × | TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Quit: Leaving) |
| 00:33:35 | × | wonko quits (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 268 seconds) |
| 00:33:52 | → | inversed joins (~inversed@90.209.137.56) |
| 00:39:44 | × | ezzieygu1wuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 00:52:16 | → | freeside_ joins (~mengwong@103.252.202.193) |
| 00:54:27 | × | mesaoptimizer quits (apotheosis@user/PapuaHardyNet) (Ping timeout: 248 seconds) |
| 00:54:27 | × | madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Ping timeout: 248 seconds) |
| 00:54:49 | → | madnight joins (~madnight@static.59.103.201.195.clients.your-server.de) |
| 00:54:59 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 00:54:59 | × | kmein quits (~weechat@user/kmein) (Ping timeout: 248 seconds) |
| 00:54:59 | × | bcoppens quits (~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 248 seconds) |
| 00:55:03 | → | gabiruh_ joins (~gabiruh@vps19177.publiccloud.com.br) |
| 00:55:06 | → | bcoppens joins (~bartcopp@vpn2.bartcoppens.be) |
| 00:55:31 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 248 seconds) |
| 00:57:23 | → | kmein joins (~weechat@user/kmein) |
| 00:58:13 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 00:59:49 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:59:49 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:59:49 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:59:52 | → | wroathe_ joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 01:01:59 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 01:03:01 | × | mikoto-chan quits (~mikoto-ch@dsl-hkibng32-50dcba-150.dhcp.inet.fi) (Ping timeout: 260 seconds) |
| 01:03:22 | → | vglfr joins (~vglfr@145.224.100.100) |
| 01:10:18 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:31 | → | TonyStone joins (~TonyStone@74.76.51.197) |
| 01:14:21 | → | Lumia joins (~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) |
| 01:16:25 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:20:08 | → | nate1 joins (~nate@98.45.169.16) |
| 01:20:29 | × | Lumia quits (~Lumia@c-24-34-172-110.hsd1.ma.comcast.net) (Changing host) |
| 01:20:29 | → | Lumia joins (~Lumia@user/Lumia) |
| 01:21:39 | × | raym quits (~aritra@user/raym) (Ping timeout: 248 seconds) |
| 01:23:51 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 01:24:01 | × | freeside_ quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 01:24:59 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 01:27:06 | → | freeside joins (~mengwong@103.252.202.193) |
| 01:27:25 | → | raym joins (~aritra@user/raym) |
| 01:30:34 | → | libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) |
| 01:31:36 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 01:35:02 | × | inversed quits (~inversed@90.209.137.56) (Read error: Connection reset by peer) |
| 01:35:31 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:253c:9364:4f2a:ce74) |
| 01:37:55 | → | inversed joins (~inversed@90.209.137.56) |
| 01:38:16 | × | xff0x quits (~xff0x@2405:6580:b080:900:1291:8fa4:a381:47f3) (Ping timeout: 246 seconds) |
| 01:38:20 | × | libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Quit: leaving) |
| 01:39:47 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:253c:9364:4f2a:ce74) (Ping timeout: 248 seconds) |
| 01:44:27 | → | razetime joins (~quassel@117.193.6.127) |
| 01:45:43 | → | jargon joins (~jargon@184.101.208.112) |
| 01:47:12 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 264 seconds) |
| 01:54:00 | × | Lumia quits (~Lumia@user/Lumia) (Quit: ,-) |
| 02:02:12 | × | grymzu quits (~zymurgy@user/zymurgy) (Ping timeout: 264 seconds) |
| 02:04:18 | → | grymzu joins (~zymurgy@user/zymurgy) |
| 02:17:25 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
| 02:18:25 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:19:15 | × | td_ quits (~td@83.135.9.44) (Ping timeout: 248 seconds) |
| 02:21:03 | → | td_ joins (~td@83.135.9.59) |
| 02:23:49 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:25:55 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 02:31:55 | → | yuzhao joins (~yuzhao@36.112.45.77) |
| 02:32:05 | → | rockystone joins (~rocky@user/rockymarine) |
| 02:32:35 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 02:32:47 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
| 02:33:02 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:33:53 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:253c:9364:4f2a:ce74) |
| 02:37:31 | × | yuzhao quits (~yuzhao@36.112.45.77) (Ping timeout: 260 seconds) |
| 02:40:37 | × | vglfr quits (~vglfr@145.224.100.100) (Ping timeout: 268 seconds) |
| 02:40:58 | → | vglfr joins (~vglfr@145.224.100.100) |
| 02:49:21 | → | ezzieygu1wuf joins (~Unknown@user/ezzieyguywuf) |
| 02:59:31 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:00:24 | → | freeside joins (~mengwong@103.252.202.193) |
| 03:01:25 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
| 03:05:01 | → | nate1 joins (~nate@98.45.169.16) |
| 03:07:51 | × | vglfr quits (~vglfr@145.224.100.100) (Ping timeout: 260 seconds) |
| 03:08:03 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 03:11:49 | → | jmorris joins (uid537181@id-537181.uxbridge.irccloud.com) |
| 03:12:20 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 03:13:18 | → | zmt00 joins (~zmt00@user/zmt00) |
| 03:16:16 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Remote host closed the connection) |
| 03:19:59 | → | rockystone joins (~rocky@user/rockymarine) |
| 03:22:13 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:23:40 | × | wroathe_ quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Ping timeout: 268 seconds) |
| 03:23:40 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 03:26:57 | → | yuzhao joins (~yuzhao@36.112.45.77) |
| 03:27:49 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 03:32:13 | × | yuzhao quits (~yuzhao@36.112.45.77) (Ping timeout: 252 seconds) |
| 03:32:54 | → | vglfr joins (~vglfr@145.224.100.100) |
| 03:39:39 | → | Lumia joins (~Lumia@user/Lumia) |
| 03:39:40 | × | Vajb quits (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer) |
| 03:40:12 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 03:46:19 | × | ksu quits (~ksu@user/prtr) (Ping timeout: 250 seconds) |
| 03:48:06 | × | ircbrowse_tom quits (~ircbrowse@2a01:4f8:1c1c:9319::1) (ZNC 1.8.2+deb2build5 - https://znc.in) |
| 03:49:38 | → | ircbrowse_tom joins (~ircbrowse@2a01:4f8:1c1c:9319::1) |
| 03:49:39 | Server | sets mode +Cnt |
| 03:49:47 | → | haskl joins (~haskl@user/haskl) |
| 03:49:48 | → | Unode joins (~Unode@194.94.44.220) |
| 03:49:48 | → | FurudeRika[m] joins (~chitandae@2001:470:69fc:105::1:6039) |
| 03:49:49 | → | stefan-_ joins (~cri@42dots.de) |
| 03:49:52 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 03:49:58 | → | fjmorazan joins (~quassel@user/fjmorazan) |
| 03:50:01 | → | taeaad joins (~taeaad@user/taeaad) |
| 03:50:58 | → | Maja joins (~quassel@178-37-215-128.adsl.inetia.pl) |
| 03:51:22 | → | maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee) |
| 03:51:30 | → | smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32) |
| 03:51:33 | → | srk joins (~sorki@user/srk) |
| 03:51:34 | → | BB[m] joins (~cashmagem@2001:470:69fc:105::f6dc) |
| 03:51:53 | → | sektor[m] joins (~sektor@2001:470:69fc:105::2:3f60) |
| 03:53:01 | → | ksu joins (~ksu@user/prtr) |
| 03:53:07 | → | thaumavorio joins (~thaumavor@thaumavor.io) |
| 03:53:09 | → | expipiplus1 joins (~expipiplu@2001:470:69fc:105::d713) |
| 03:53:13 | → | CeNiEi[m] joins (~cenieimat@2001:470:69fc:105::1:894c) |
| 03:53:28 | → | koolazer joins (~koo@user/koolazer) |
| 03:53:29 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 03:53:34 | → | rockymarine[m] joins (~rockymari@2001:470:69fc:105::2:9a0c) |
| 03:53:37 | → | xstill_ joins (xstill@fimu/xstill) |
| 03:54:05 | → | cafkafk[m] joins (~cafkafkma@2001:470:69fc:105::1:cea8) |
| 03:54:24 | × | jargon quits (~jargon@184.101.208.112) (Remote host closed the connection) |
| 03:54:59 | → | nate1 joins (~nate@98.45.169.16) |
| 03:55:06 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
| 03:55:41 | × | razetime quits (~quassel@117.193.6.127) (Ping timeout: 260 seconds) |
| 03:56:51 | → | Inoperable joins (~PLAYER_1@fancydata.science) |
| 03:57:43 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 03:59:19 | → | MangoIV[m] joins (~mangoivma@2001:470:69fc:105::2:8417) |
| 03:59:37 | → | kenran joins (~user@user/kenran) |
| 04:01:10 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 04:04:19 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 04:05:36 | × | jrm quits (~jrm@user/jrm) (Ping timeout: 260 seconds) |
| 04:10:36 | → | mbuf joins (~Shakthi@49.204.129.148) |
| 04:11:26 | × | bgamari_ quits (~bgamari@64.223.236.29) (Ping timeout: 260 seconds) |
| 04:13:13 | → | freeside joins (~mengwong@103.252.202.193) |
| 04:13:20 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:13:42 | → | Vajb joins (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) |
| 04:16:02 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 04:16:45 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 04:17:44 | → | bgamari joins (~bgamari@64.223.227.132) |
| 04:22:32 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 04:24:45 | → | jonathanx_ joins (~jonathan@178.174.176.109) |
| 04:27:11 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 268 seconds) |
| 04:29:29 | × | vglfr quits (~vglfr@145.224.100.100) (Read error: Connection reset by peer) |
| 04:29:39 | → | vglfr joins (~vglfr@145.224.100.100) |
| 04:31:22 | × | Lumia quits (~Lumia@user/Lumia) (Remote host closed the connection) |
| 04:31:24 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 04:31:47 | → | Lumia joins (~Lumia@user/Lumia) |
| 04:34:37 | → | nate1 joins (~nate@98.45.169.16) |
| 04:36:04 | → | mixfix41 joins (~sdenynine@user/mixfix41) |
| 04:37:39 | → | razetime joins (~quassel@117.193.6.127) |
| 04:38:25 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:39:13 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 04:46:04 | → | jrm joins (~jrm@user/jrm) |
| 04:52:53 | → | Luj3 joins (~Luj@2a01:e0a:5f9:9681:8b6a:8ece:3740:1a44) |
| 05:00:05 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:07:18 | × | frase quits (~Fraser@159.196.13.21) (Ping timeout: 264 seconds) |
| 05:07:36 | × | mbuf quits (~Shakthi@49.204.129.148) (Ping timeout: 264 seconds) |
| 05:07:49 | → | mbuf joins (~Shakthi@49.204.132.253) |
| 05:08:52 | → | frase joins (~Fraser@159.196.13.21) |
| 05:09:40 | × | Lumia quits (~Lumia@user/Lumia) (Ping timeout: 246 seconds) |
| 05:10:21 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 05:16:21 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
| 05:21:33 | × | jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 05:22:40 | → | rockystone joins (~rocky@user/rockymarine) |
| 05:27:31 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 246 seconds) |
| 05:33:57 | → | rockystone joins (~rocky@user/rockymarine) |
| 05:48:16 | × | raym quits (~aritra@user/raym) (Ping timeout: 260 seconds) |
| 05:48:30 | → | raym joins (~aritra@user/raym) |
| 05:51:47 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 268 seconds) |
| 05:54:06 | × | raym quits (~aritra@user/raym) (Ping timeout: 264 seconds) |
| 05:55:25 | → | kenran joins (~user@user/kenran) |
| 05:56:58 | → | yuzhao joins (~yuzhao@36.112.45.77) |
| 05:59:49 | → | raym joins (~aritra@user/raym) |
| 06:01:07 | × | yuzhao quits (~yuzhao@36.112.45.77) (Ping timeout: 246 seconds) |
| 06:05:19 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 246 seconds) |
| 06:08:46 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 06:12:00 | → | yuzhao joins (~yuzhao@36.112.45.77) |
| 06:13:46 | → | chomwitt joins (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) |
| 06:15:31 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:18:25 | → | rockystone joins (~rocky@user/rockymarine) |
| 06:20:22 | × | yuzhao quits (~yuzhao@36.112.45.77) (Ping timeout: 246 seconds) |
| 06:20:56 | × | FragByte quits (~christian@user/fragbyte) (Ping timeout: 260 seconds) |
| 06:20:57 | × | vglfr quits (~vglfr@145.224.100.100) (Read error: Connection reset by peer) |
| 06:21:04 | → | vglfr joins (~vglfr@145.224.100.100) |
| 06:21:27 | → | FragByte joins (~christian@user/fragbyte) |
| 06:26:02 | → | mesaoptimizer joins (apotheosis@user/PapuaHardyNet) |
| 06:26:35 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 06:28:26 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30:5cd5:afa2:55e9:2fce) (Quit: caryhartline) |
| 06:31:50 | × | asm quits (~alexander@burner.asm89.io) (Changing host) |
| 06:31:50 | → | asm joins (~alexander@user/asm) |
| 06:34:33 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 06:35:20 | → | axeman joins (~quassel@2a02:8109:a380:78:7a17:29e5:d092:ea5d) |
| 06:38:48 | → | vn36_ joins (~vn36@123.63.203.210) |
| 06:41:44 | × | axeman quits (~quassel@2a02:8109:a380:78:7a17:29e5:d092:ea5d) (Ping timeout: 268 seconds) |
| 06:43:49 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:6f7e:524f:cc40:2955) |
| 06:45:57 | → | mmhat joins (~mmh@p200300f1c7337736ee086bfffe095315.dip0.t-ipconnect.de) |
| 06:47:38 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 06:51:32 | × | chomwitt quits (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 06:51:57 | → | chomwitt joins (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) |
| 06:54:11 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:57:33 | → | axeman joins (~quassel@2a02:8109:a380:78:bc4:6f73:24d5:f1f3) |
| 06:57:34 | → | kenran` joins (~user@user/kenran) |
| 06:59:48 | × | kenran quits (~user@user/kenran) (Ping timeout: 264 seconds) |
| 07:02:27 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:03:12 | × | axeman quits (~quassel@2a02:8109:a380:78:bc4:6f73:24d5:f1f3) (Ping timeout: 268 seconds) |
| 07:07:00 | × | mbuf quits (~Shakthi@49.204.132.253) (Ping timeout: 264 seconds) |
| 07:07:18 | → | mbuf joins (~Shakthi@49.204.139.143) |
| 07:10:53 | × | hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
| 07:11:56 | → | acidjnk joins (~acidjnk@p200300d6e7137a08b4dee3a6debde38e.dip0.t-ipconnect.de) |
| 07:20:48 | × | thegeekinside quits (~thegeekin@189.180.97.156) (Ping timeout: 264 seconds) |
| 07:21:19 | → | CiaoSen joins (~Jura@p200300c9570723002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 07:22:41 | → | hughjfchen joins (~hughjfche@vmi556545.contaboserver.net) |
| 07:34:13 | × | vglfr quits (~vglfr@145.224.100.100) (Read error: Connection reset by peer) |
| 07:35:01 | → | vglfr joins (~vglfr@145.224.100.100) |
| 07:36:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:37:55 | → | gmg joins (~user@user/gehmehgeh) |
| 07:42:24 | → | Midjak joins (~Midjak@82.66.147.146) |
| 07:49:36 | × | vn36_ quits (~vn36@123.63.203.210) (Ping timeout: 260 seconds) |
| 07:54:47 | → | fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 07:56:23 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:01:08 | → | nate1 joins (~nate@98.45.169.16) |
| 08:06:13 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 08:06:46 | → | freeside joins (~mengwong@151.192.73.74) |
| 08:09:02 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
| 08:09:14 | → | aliosablack joins (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) |
| 08:09:53 | × | chomwitt quits (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Read error: Connection reset by peer) |
| 08:10:24 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 08:11:43 | → | MajorBiscuit joins (~MajorBisc@145.94.160.95) |
| 08:16:36 | → | vn36__ joins (~vn36@123.63.203.210) |
| 08:19:11 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:253c:9364:4f2a:ce74) (Remote host closed the connection) |
| 08:21:38 | → | yvan-sraka joins (~yvan-srak@ip-185-104-137-32.ptr.icomera.net) |
| 08:30:26 | × | vn36__ quits (~vn36@123.63.203.210) (Ping timeout: 260 seconds) |
| 08:31:50 | → | mastarija joins (~mastarija@2a05:4f46:e03:6000:450:24db:a030:2d0b) |
| 08:32:42 | <mastarija> | Are there any situations where GHC can't determine if the pattern matching is exhaustive? |
| 08:35:12 | × | vglfr quits (~vglfr@145.224.100.100) (Read error: Connection reset by peer) |
| 08:35:40 | → | vglfr joins (~vglfr@145.224.100.100) |
| 08:35:49 | × | freeside quits (~mengwong@151.192.73.74) (Ping timeout: 268 seconds) |
| 08:36:14 | × | yvan-sraka quits (~yvan-srak@ip-185-104-137-32.ptr.icomera.net) (Remote host closed the connection) |
| 08:40:48 | <[exa]> | mastarija: if you mix in pattern guards stuff gets pretty complex/undecidable. For simple streamlined single-argument patterns the check should be pretty easy (you literally just check the data constructor coverage) |
| 08:42:28 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 246 seconds) |
| 08:44:15 | × | loras quits (~loras@c-73-139-125-125.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 08:44:30 | → | yvan-sraka joins (~yvan-srak@ip-185-104-137-32.ptr.icomera.net) |
| 08:46:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:46:41 | × | off^ quits (~off@c-76-17-6-165.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 08:50:04 | <mastarija> | Thanks! |
| 08:54:56 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7) |
| 08:57:19 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 08:58:01 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 08:58:37 | → | vglfr joins (~vglfr@145.224.100.100) |
| 09:03:17 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 09:05:23 | <[exa]> | mastarija: btw there are some papers around that concern compiling the pattern matches that involve multiple arguments, which is IIRC sometimes pretty hard to optimize. such as this https://dl.acm.org/doi/abs/10.1145/1411304.1411311 |
| 09:05:45 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:05:55 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 246 seconds) |
| 09:06:35 | <mastarija> | mastarija: likes the paper |
| 09:06:54 | <mastarija> | mastarija, test? |
| 09:06:55 | → | vglfr joins (~vglfr@145.224.100.100) |
| 09:10:11 | <lortabac> | there is also the question of GADTs, for which simple constructor coverage is not enough |
| 09:11:14 | → | freeside joins (~mengwong@103.252.202.193) |
| 09:12:49 | × | aliosablack quits (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Quit: Leaving) |
| 09:13:09 | → | chomwitt joins (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) |
| 09:16:16 | → | freeside_ joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 09:17:12 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 264 seconds) |
| 09:17:12 | × | yvan-sraka quits (~yvan-srak@ip-185-104-137-32.ptr.icomera.net) (Remote host closed the connection) |
| 09:17:52 | → | rockystone joins (~rocky@user/rockymarine) |
| 09:19:40 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) |
| 09:20:21 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 09:22:36 | → | vglfr joins (~vglfr@145.224.100.100) |
| 09:22:58 | × | inversed quits (~inversed@90.209.137.56) (Quit: Connection error?!) |
| 09:24:49 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Ping timeout: 246 seconds) |
| 09:26:39 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 09:26:45 | → | inversed joins (~inversed@90.209.137.56) |
| 09:27:33 | → | vglfr joins (~vglfr@145.224.100.100) |
| 09:27:49 | × | ft quits (~ft@62.155.200.69) (Quit: leaving) |
| 09:35:23 | → | wonko joins (~wjc@2a0e:1c80:2:0:45:15:19:130) |
| 09:37:04 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 246 seconds) |
| 09:37:12 | × | finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer) |
| 09:39:16 | × | MajorBiscuit quits (~MajorBisc@145.94.160.95) (Ping timeout: 260 seconds) |
| 09:39:40 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 09:40:26 | → | __monty__ joins (~toonn@user/toonn) |
| 09:41:12 | <merijn> | mastarija: "Are tehre any situations?" -> yes |
| 09:41:39 | → | vglfr joins (~vglfr@145.224.100.100) |
| 09:41:55 | <merijn> | The number of situations is shrinking, but in general you can probably always construct some niche case that can't be detected |
| 09:42:05 | <merijn> | At least if you include extensions |
| 09:42:27 | ← | frase parts (~Fraser@159.196.13.21) () |
| 09:43:02 | <mastarija> | Yes, but some of those would be "bugs". I'm more interested in things that aren't bugs but aren't possible to be checked for exhaustiveness. |
| 09:43:33 | <merijn> | Once you introduce GADTs and type families there's lots of cases where it isn't solvable, I think |
| 09:43:53 | <mastarija> | lortabac, any simple example of that? |
| 09:44:52 | → | Flow joins (~none@gentoo/developer/flow) |
| 09:48:08 | × | razetime quits (~quassel@117.193.6.127) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 09:48:14 | → | beteigeuze joins (~Thunderbi@89.187.168.55) |
| 09:48:49 | <lortabac> | mastarija: this pattern-matching is exhaustive even though it doesn't handle all the constructors https://paste.tomsmeding.com/BQ1Qb5p2 |
| 09:49:41 | <lortabac> | if you try to add a case for 'Foo' you will get a warning |
| 09:49:54 | <mastarija> | But will Haskell yell at me? If not I'd say it correctly detects patternmatching. |
| 09:50:14 | <mastarija> | *exhaustiveness |
| 09:50:27 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving) |
| 09:51:02 | <lortabac> | now this was a simple case, but there are more complex cases which GHC can't solve |
| 09:51:04 | <mastarija> | This makes sense to me. Foo shouldn't be possible. |
| 09:51:38 | → | Midjak joins (~Midjak@82.66.147.146) |
| 09:52:45 | <merijn> | mastarija: Hold on, there are two possible takes of your question |
| 09:52:57 | <lortabac> | I have one example with 'Fin' where GHC gives me an incorrect warning, unfortunately I don't think I'm able to paste the entire example right now |
| 09:53:14 | <merijn> | mastarija: There is "can GHC always tell me if a pattern match is exhaustive?" and "GHC will always tell me if a pattern match is potentially not exhaustive" |
| 09:53:17 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:53:24 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:53:27 | <merijn> | mastarija: The former is almost certainly not true, the latter should be true |
| 09:53:57 | <merijn> | mastarija: i.e. there are only false negatives (exhaustive matches reported as non-exhaustive), never false positives (non-exhaustive matches reported as exhaustive) |
| 09:53:59 | <mastarija> | I'm more like "is there a case where it's not possible to correctly infer exhaustiveness, and GHC will stay silent" |
| 09:54:45 | <lortabac> | there are cases where the patterns are exhaustive but GHC complains of missing cases |
| 09:54:49 | <mastarija> | And eventually / potentially result in a runtime error |
| 09:55:36 | × | CiaoSen quits (~Jura@p200300c9570723002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 09:55:59 | <lortabac> | but if you get the opposite behavior (GHC thinks that patterns are exhaustive but they aren't) then it's a bug |
| 09:56:30 | <lortabac> | which is exactly what merijn has just said :D |
| 09:57:04 | → | MajorBiscuit joins (~MajorBisc@145.94.160.95) |
| 10:00:39 | <mastarija> | Cool. Thanks! |
| 10:00:50 | → | random-jellyfish joins (~random-je@user/random-jellyfish) |
| 10:04:47 | → | rockystone joins (~rocky@user/rockymarine) |
| 10:09:36 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 10:13:36 | × | raym quits (~aritra@user/raym) (Ping timeout: 264 seconds) |
| 10:13:59 | → | raym joins (~aritra@user/raym) |
| 10:18:06 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 10:18:31 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:18:50 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:18:51 | → | vglfr joins (~vglfr@145.224.100.100) |
| 10:20:15 | → | frost16 joins (~frost@user/frost) |
| 10:23:16 | × | MajorBiscuit quits (~MajorBisc@145.94.160.95) (Ping timeout: 246 seconds) |
| 10:23:30 | → | rockystone joins (~rocky@user/rockymarine) |
| 10:27:35 | → | vn36__ joins (~vn36@123.63.203.210) |
| 10:29:20 | → | mastarija_ joins (~mastarija@2a05:4f46:e03:6000:450:24db:a030:2d0b) |
| 10:32:30 | × | mastarija quits (~mastarija@2a05:4f46:e03:6000:450:24db:a030:2d0b) (Ping timeout: 264 seconds) |
| 10:35:37 | × | perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7) |
| 10:36:05 | → | perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 10:39:56 | × | acidjnk quits (~acidjnk@p200300d6e7137a08b4dee3a6debde38e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 10:40:41 | × | mastarija_ quits (~mastarija@2a05:4f46:e03:6000:450:24db:a030:2d0b) (Quit: Leaving) |
| 10:47:22 | → | Everything joins (~Everythin@37.115.210.35) |
| 10:49:39 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 248 seconds) |
| 10:54:27 | × | potash quits (~foghorn@user/foghorn) (Read error: Connection reset by peer) |
| 10:54:50 | → | potash joins (~foghorn@user/foghorn) |
| 10:55:20 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
| 10:56:24 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 11:11:51 | → | MajorBiscuit joins (~MajorBisc@145.94.160.95) |
| 11:14:48 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
| 11:17:12 | → | acidjnk joins (~acidjnk@p200300d6e7137a08b4dee3a6debde38e.dip0.t-ipconnect.de) |
| 11:17:53 | × | MajorBiscuit quits (~MajorBisc@145.94.160.95) (Read error: Connection reset by peer) |
| 11:18:26 | → | MajorBiscuit joins (~MajorBisc@145.94.160.95) |
| 11:18:35 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:21:29 | × | MajorBiscuit quits (~MajorBisc@145.94.160.95) (Client Quit) |
| 11:25:37 | → | MajorBiscuit joins (~MajorBisc@145.94.160.95) |
| 11:26:01 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 11:26:06 | → | DavidBinder joins (~DavidBind@134.2.10.18) |
| 11:30:10 | → | akegalj joins (~akegalj@213.202.90.118) |
| 11:33:46 | → | CiaoSen joins (~Jura@p200300c9570723002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 11:36:59 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 11:38:49 | → | rockystone joins (~rocky@user/rockymarine) |
| 11:43:56 | → | stackdroid18 joins (14094@user/stackdroid) |
| 11:44:39 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
| 11:45:15 | → | xff0x joins (~xff0x@2405:6580:b080:900:6701:db86:2182:5220) |
| 11:47:30 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 264 seconds) |
| 11:48:49 | → | notzmv joins (~zmv@user/notzmv) |
| 11:55:11 | × | wonko quits (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 260 seconds) |
| 11:58:46 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:00:21 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 12:00:27 | → | rockystone joins (~rocky@user/rockymarine) |
| 12:00:35 | → | mesaoptimizer2 joins (~mesaoptim@user/PapuaHardyNet) |
| 12:00:58 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 12:01:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:02:11 | → | razetime joins (~quassel@117.193.6.127) |
| 12:02:11 | → | nate1 joins (~nate@98.45.169.16) |
| 12:06:33 | × | vn36__ quits (~vn36@123.63.203.210) (Ping timeout: 246 seconds) |
| 12:07:02 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 12:18:08 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds) |
| 12:19:59 | × | euandreh quits (~euandreh@179.214.113.107) (Quit: WeeChat 3.6) |
| 12:20:07 | → | vn36__ joins (~vn36@123.63.203.210) |
| 12:22:54 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) |
| 12:27:24 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Ping timeout: 264 seconds) |
| 12:27:56 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
| 12:28:24 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) |
| 12:29:38 | → | rockystone joins (~rocky@user/rockymarine) |
| 12:31:05 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 12:31:32 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 12:35:16 | → | Neuromancer joins (~Neuromanc@user/neuromancer) |
| 12:35:39 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 12:36:40 | × | haskl quits (~haskl@user/haskl) (Read error: Connection reset by peer) |
| 12:40:18 | × | CiaoSen quits (~Jura@p200300c9570723002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 12:42:26 | × | MajorBiscuit quits (~MajorBisc@145.94.160.95) (Ping timeout: 260 seconds) |
| 12:51:31 | → | CiaoSen joins (~Jura@p200300c9570723002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 12:56:40 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 12:57:56 | → | MajorBiscuit joins (~MajorBisc@145.94.160.95) |
| 12:58:16 | → | littlefinger joins (~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net) |
| 13:00:30 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 13:01:40 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 13:02:30 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 13:10:16 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
| 13:11:07 | × | kuribas quits (~user@silversquare.silversquare.eu) (Read error: Connection reset by peer) |
| 13:11:20 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 13:14:28 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 13:15:10 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:18:04 | × | kuribas quits (~user@silversquare.silversquare.eu) (Read error: Connection reset by peer) |
| 13:19:08 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 13:23:07 | × | Ranhir quits (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
| 13:25:21 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 13:25:44 | → | thegeekinside joins (~thegeekin@189.180.97.156) |
| 13:26:35 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Quit: o/) |
| 13:27:56 | × | m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 260 seconds) |
| 13:28:49 | × | acidjnk quits (~acidjnk@p200300d6e7137a08b4dee3a6debde38e.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 13:29:09 | → | acidjnk joins (~acidjnk@p200300d6e7137a08b4dee3a6debde38e.dip0.t-ipconnect.de) |
| 13:29:49 | × | vn36__ quits (~vn36@123.63.203.210) (Ping timeout: 246 seconds) |
| 13:30:48 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 13:30:59 | → | Sciencentistguy joins (~sciencent@hacksoc/ordinary-member) |
| 13:31:57 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 13:32:14 | → | vn36__ joins (~vn36@123.63.203.210) |
| 13:32:29 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 13:33:55 | × | kuribas quits (~user@silversquare.silversquare.eu) (Remote host closed the connection) |
| 13:34:24 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 13:36:22 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:38:50 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 13:42:46 | → | kuribas joins (~user@silversquare.silversquare.eu) |
| 13:45:12 | <dminuoso> | raehik: It occured to me, that with a bit of lookahead I could have it all: https://gist.github.com/dminuoso/84fc29d4b3c44c056e267b6457938b2c |
| 13:47:42 | → | Bob_Esponja joins (~Bob_Espon@122.red-81-43-10.staticip.rima-tde.net) |
| 13:48:03 | × | Bob_Esponja quits (~Bob_Espon@122.red-81-43-10.staticip.rima-tde.net) (Read error: Connection reset by peer) |
| 13:50:53 | <raehik> | dminuoso: nice! out of interest are you using the stateful parser? |
| 13:51:35 | <dminuoso> | No, while a stateful parser would help a lot, `Int` is just not enough. |
| 13:52:00 | <dminuoso> | If there was an explicit State RealWorld token embeded inside, I could use IORefs in the reader environment |
| 13:52:04 | <dminuoso> | But there's not, sadly. |
| 13:53:15 | <dminuoso> | With sufficient analysis, GHC could swap `f` and `g` around in `f >> g` here |
| 13:53:42 | <dminuoso> | Though mmm, no actually it cant as long as `f` and `g` can err. |
| 13:55:10 | <dminuoso> | {-# NOINLINE liftIO #-} liftIO :: IO a -> Parser e a; liftIO act = Parser $ \fp eob s -> unsafePerformIO (act >> pure (OK# s)) |
| 13:55:14 | <dminuoso> | This looks benign, doesnt it? |
| 13:56:28 | → | acidjnk_new joins (~acidjnk@p200300d6e7137a877551a7e8fd85f50e.dip0.t-ipconnect.de) |
| 13:57:05 | <raehik> | oh that's right, you only get a polymorphic reader environment in the stateful parser |
| 13:57:16 | <dminuoso> | Yeah, Im not entirely sure why that is the case. |
| 13:57:36 | <dminuoso> | Given that both Int and a thunk pointer is just a word |
| 13:58:13 | <dminuoso> | Perhaps it performs worse with STRICT enabled? |
| 13:58:38 | <raehik> | I seem to recall the stateful parser was more experimental. only recently was the reader env changed from Int to polymorphic |
| 13:58:54 | <dminuoso> | Ah on github you mean? |
| 13:59:04 | <raehik> | andras kovacs is very receptive to changes and suggestions |
| 13:59:33 | <dminuoso> | Honestly, I think Ill rather explore the unsafePerformIO route. |
| 13:59:58 | <dminuoso> | Its way easier to predict performance with using IORefs inside a parser |
| 14:00:01 | × | acidjnk quits (~acidjnk@p200300d6e7137a08b4dee3a6debde38e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 14:00:54 | <dminuoso> | Added benefit is that you can also use the non-stateful parser and explicitly parse an env around |
| 14:01:11 | × | CiaoSen quits (~Jura@p200300c9570723002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 14:01:16 | <dminuoso> | Which might perform better and generate smaller code since these extra arguments are not inserted everywhere |
| 14:01:52 | <raehik> | I'm not experienced in that part of Haskell but I'd be super keen to see flatparse put on more weight |
| 14:02:34 | <raehik> | and more examples of usage |
| 14:03:09 | × | freeside_ quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
| 14:09:33 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 14:11:54 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:12:27 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 14:13:49 | × | frost16 quits (~frost@user/frost) (Ping timeout: 244 seconds) |
| 14:15:59 | → | CiaoSen joins (~Jura@2003:c9:5707:2300:2a3a:4dff:fe84:dbd5) |
| 14:16:49 | × | raym quits (~aritra@user/raym) (Ping timeout: 252 seconds) |
| 14:21:32 | → | plasticman joins (~plasticma@pool-165-230-224-156.nat.rutgers.edu) |
| 14:23:10 | <plasticman> | Hi, I've been trying get all permutations of a list, but I'm getting a "cannot construct the infinite type" error, and I can't figure out why |
| 14:23:19 | <plasticman> | my code: https://justpaste.it/2vbbc/pdf |
| 14:27:20 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 14:32:15 | × | vn36__ quits (~vn36@123.63.203.210) (Ping timeout: 268 seconds) |
| 14:33:40 | <dminuoso> | raehik: There was a very recent benchmark, and flatparse came out far ahead in terms of speed and memory usage. |
| 14:34:00 | <dminuoso> | It was sadly missing `parsnip` though, which internally is very similar to flatparse |
| 14:34:36 | × | vglfr quits (~vglfr@145.224.100.100) (Ping timeout: 264 seconds) |
| 14:35:31 | → | vglfr joins (~vglfr@145.224.100.100) |
| 14:36:09 | <dminuoso> | https://gitlab.com/FinnBender/haskell-parsing-benchmarks |
| 14:36:32 | <dminuoso> | Most surprising, alex/happy performed quite poorly in time, and especially in terms of memory consumption |
| 14:37:02 | <raehik> | Wow. Thanks for this |
| 14:37:23 | <raehik> | surprised to see flatparse beat out a handwritten parser so much |
| 14:37:34 | <raehik> | (albeit in mem consumption only) |
| 14:37:36 | <dminuoso> | Well fsvo "handwritten" |
| 14:38:26 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:39:31 | <dminuoso> | But yeah, the main advantage of flatparse is that it operates directly on a bytestring |
| 14:39:48 | <dminuoso> | THe handwritten parser uses BS.uncons to generate tokens, which means you are generating a lot of additional allocations |
| 14:40:26 | <dminuoso> | In typical monadic parser style you do lexing/parsing as one step sort of. It makes the parser much less elegant, but it does save you these extra allocations |
| 14:40:27 | <raehik> | ah, omitting/"inlining" the tokenizing step is why I like parser combinators |
| 14:40:50 | <dminuoso> | flatparse does have a really good example, that you can still do a sort of separate lexing/parsing semantically |
| 14:41:20 | × | random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed) |
| 14:41:23 | <dminuoso> | by having one Lexer module that exposes all the parsers that parse semantic tokens, and one Parser module that ideally only uses parsers from that Lexer module (and combinators from flatparse) |
| 14:41:51 | <geekosaur> | siiigh, and I thought pastebin.com was bad… pdf, really? |
| 14:42:23 | <geekosaur> | can't even copy it without the line numbers |
| 14:42:43 | <dminuoso> | geekosaur: its easy. print it out, cut off the left and top parts of it, and then OCR it back. |
| 14:42:48 | <dminuoso> | Dont complain now! |
| 14:43:14 | → | mncheck joins (~mncheck@193.224.205.254) |
| 14:44:41 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 14:45:46 | <dminuoso> | plasticman: The error `cannot construct the infinite type` here arises because it ends up with something like a ~ [a] here, trying to solve that it ends up doing a ~ [a] ~ [[a]] ~ [[[a]]] ~ [[[[a]]]] ... which means whatever it has found has some such infinite type |
| 14:46:00 | <geekosaur> | anyway, plasticman, looks to me like you have a list comprehension which returns the result of a call to `process` as each element of the result list. this is going to result in `a` unifying with `[a]` |
| 14:46:34 | <geekosaur> | which constructs an infinite type, as dminuoso said |
| 14:46:38 | <plasticman> | I see |
| 14:47:12 | <plasticman> | this is the algorithm I'm using. Maybe a map is needed? |
| 14:47:13 | <plasticman> | to me like you have a list comprehension which returns the result of a call to `process` as each element of the result list. this is go |
| 14:47:25 | <plasticman> | sorry https://www.baeldung.com/cs/array-generate-all-permutations#simple-recursive-algorithm |
| 14:47:36 | <geekosaur> | you may want something like `concatMap` aka `=<<` |
| 14:47:44 | <dminuoso> | plasticman: You likely want to move `process nperm rperm` into right hand side of the list comprehension |
| 14:48:11 | <geekosaur> | or more likely what dminuoso said |
| 14:48:16 | <dminuoso> | [r | e <- eperm, let nperm = cperm ++ [e], let rperm = delete e eperm, r <- process nperm rperm] |
| 14:48:45 | <geekosaur> | the <- being important as it's "for each" (and si related to `concatMap` that I mentioned) |
| 14:48:54 | <dminuoso> | plasticman: also note there is a likely typo in that you apply process to both nperm twice. |
| 14:48:57 | <geekosaur> | *is related |
| 14:49:10 | <dminuoso> | Oh hold on, you didnt. n and r render so similarly |
| 14:49:23 | <dminuoso> | Nevermind that last statement. |
| 14:49:53 | <dminuoso> | raehik: What is funny, is that while I have never learned Prolog, I now understand what `cut` is. :) |
| 14:51:08 | <dminuoso> | And having that tool is really interesting, because together with `try` and `optional`, you have some really good control over backtracking. |
| 14:52:47 | <defanor> | Is there a way to prepare files for binary packages (like Debian ones) with Cabal 3.0, while loading build dependencies in its usual way (including Hackage), setting a datadir properly, and preferably moving `data-files` (as defined in .cabal) there? I used to `cabal configure --prefix=/usr` and `cabal copy --destdir=deb` on older versions, but now even --datadir option for cabal configure/build/install doesn't seem |
| 14:52:47 | <defanor> | to have any effect (the produced executable looks into ~/.cabal/store/ for data files). --installdir works for the binary itself, but not for data files. |
| 14:54:08 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:54:24 | <raehik> | dminuoso: `cut` is adapted from a Prolog tool? I didn't know people wrote parsers in that lang |
| 14:54:56 | <dminuoso> | raehik: No rather, it was named because it does a similar thing in prolog |
| 14:55:13 | <dminuoso> | Instead of thinking `turn failure into error`, think of it as "do not backtrack" |
| 14:55:25 | <dminuoso> | as in "prevent backtracking" |
| 14:55:27 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Excess Flood) |
| 14:56:25 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 14:56:46 | <dminuoso> | Im not entirely sure whether it was named correctly in flatparse, as the way you use ! in prolog is closer to `try` I suppose. |
| 14:57:35 | <raehik> | hm, I see |
| 14:57:39 | <dminuoso> | Its just a bit strange because in prolog you write code differently |
| 14:58:11 | <dminuoso> | They do the same thing at the end, because ! in prolog and `cut` in flatparse both are used to prevent extra solutions |
| 14:58:59 | <dminuoso> | I was having a real bad time initially when porting to flatparse, as all the backtracking didnt work properly until I understood what `cut` really does. |
| 14:59:20 | <dminuoso> | It would be kind of nice to attach contextual information to failed branches too |
| 14:59:59 | <raehik> | I didn't have to think about it, my lib mostly uses `cutting` to pile on extra info to errors with little backtracking :D |
| 15:00:12 | × | mncheck quits (~mncheck@193.224.205.254) (Remote host closed the connection) |
| 15:00:17 | <dminuoso> | Well as soon as you use things like `some` you have to be very careful with backtracking |
| 15:01:30 | × | akegalj quits (~akegalj@213.202.90.118) (Quit: leaving) |
| 15:03:43 | → | vn36_ joins (~vn36@123.63.203.210) |
| 15:03:48 | → | raym joins (~aritra@user/raym) |
| 15:05:58 | <plasticman> | now I'm getting a parse error on "process cperm [] = [cperm]" |
| 15:10:29 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7) |
| 15:14:04 | × | kenran` quits (~user@user/kenran) (Remote host closed the connection) |
| 15:23:31 | → | gaff joins (~gaff@49.207.211.43) |
| 15:23:37 | × | gaff quits (~gaff@49.207.211.43) (Client Quit) |
| 15:25:18 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) |
| 15:25:52 | → | Guest83 joins (~Guest83@12.106.62.12) |
| 15:27:57 | <Guest83> | @free fmap :: (a -> b) -> (F a -> F b) |
| 15:27:57 | <lambdabot> | g . h = k . f => $map_F g . fmap h = fmap k . $map_F f |
| 15:28:37 | × | Guest83 quits (~Guest83@12.106.62.12) (Client Quit) |
| 15:29:39 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Ping timeout: 248 seconds) |
| 15:31:15 | <plasticman> | okay, I just needed to put more spaces |
| 15:31:22 | <geekosaur> | plasticman, can you show your current code (all of it, not just that line: often parse errors are caused by confusion about an earlier line or by indentation errors relative to a previous line) |
| 15:31:24 | <geekosaur> | whoops |
| 15:31:37 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds) |
| 15:31:42 | <geekosaur> | yes, haskell uses indentation and you must be careful with it |
| 15:32:56 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) |
| 15:33:48 | <plasticman> | thank you all for the help |
| 15:36:14 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 15:36:50 | → | vglfr joins (~vglfr@145.224.100.100) |
| 15:37:42 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 15:38:01 | × | MajorBiscuit quits (~MajorBisc@145.94.160.95) (Ping timeout: 260 seconds) |
| 15:38:25 | → | vglfr joins (~vglfr@145.224.100.100) |
| 15:42:27 | × | plasticman quits (~plasticma@pool-165-230-224-156.nat.rutgers.edu) (Quit: Leaving) |
| 15:44:14 | justache | is now known as justHaunted |
| 15:45:51 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:45:54 | × | DavidBinder quits (~DavidBind@134.2.10.18) (Quit: Leaving) |
| 15:47:00 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 15:51:32 | × | vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection) |
| 15:53:11 | × | vn36_ quits (~vn36@123.63.203.210) (Ping timeout: 260 seconds) |
| 15:54:47 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 15:54:47 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 15:54:47 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 15:55:22 | × | CiaoSen quits (~Jura@2003:c9:5707:2300:2a3a:4dff:fe84:dbd5) (Quit: CiaoSen) |
| 15:55:43 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 15:55:47 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 15:56:33 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 15:57:35 | → | Tuplanolla joins (~Tuplanoll@91-159-69-245.elisa-laajakaista.fi) |
| 16:02:30 | → | freeside joins (~mengwong@115.66.48.84) |
| 16:02:47 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 16:02:56 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:03:46 | → | nate1 joins (~nate@98.45.169.16) |
| 16:04:01 | → | vn36__ joins (~vn36@123.63.203.210) |
| 16:06:11 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Remote host closed the connection) |
| 16:07:13 | × | freeside quits (~mengwong@115.66.48.84) (Ping timeout: 268 seconds) |
| 16:08:39 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 16:09:57 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:12:14 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 16:14:14 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 16:14:30 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:6f7e:524f:cc40:2955) (Quit: WeeChat 2.8) |
| 16:14:34 | → | titibandit joins (~titibandi@xdsl-78-34-208-230.nc.de) |
| 16:19:10 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:20:20 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 16:20:32 | × | kuribas quits (~user@silversquare.silversquare.eu) (Remote host closed the connection) |
| 16:20:48 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 264 seconds) |
| 16:21:58 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 16:22:42 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
| 16:24:03 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:26:13 | × | Midjak quits (~Midjak@82.66.147.146) (Ping timeout: 246 seconds) |
| 16:27:48 | → | vglfr joins (~vglfr@145.224.100.100) |
| 16:31:13 | → | econo joins (uid147250@user/econo) |
| 16:33:07 | → | rockystone joins (~rocky@user/rockymarine) |
| 16:36:56 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 16:37:10 | <sclv> | defanor: sadly, currently datadir is ignored in v2-build. i think a possible approach would be to `cabal exec bash` to establish an environment with all dependencies built and in scope, and then to use ./Setup configure build and install within that bash shell. |
| 16:37:54 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 264 seconds) |
| 16:38:16 | <defanor> | sclv: Thanks, I'll try that now. |
| 16:41:48 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
| 16:44:13 | × | littlefinger quits (~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net) (Quit: Client closed) |
| 16:46:43 | × | razetime quits (~quassel@117.193.6.127) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 16:52:41 | <defanor> | It fails to pull dependencies as usual that way, as well as with `cabal exec -- runhaskell '-package Cabal' Setup.hs configure --prefix=/usr`. Though perhaps I'll just work around it then, by setting pkg_datadir environment variable and copying the data files using a Makefile instead: either way it's not going to be particularly neat. |
| 16:53:52 | <sclv> | hrm thats unfortunate |
| 16:53:56 | × | titibandit quits (~titibandi@xdsl-78-34-208-230.nc.de) (Quit: Leaving.) |
| 16:54:29 | <sclv> | note that if you had a working setup with v1- commands, those still exist for the time being. i.e. you can do cabal v1-build etc that operates as before |
| 16:56:19 | × | beteigeuze quits (~Thunderbi@89.187.168.55) (Ping timeout: 246 seconds) |
| 16:58:21 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) |
| 17:04:26 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:08:13 | → | MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) |
| 17:10:55 | → | rockystone joins (~rocky@user/rockymarine) |
| 17:16:01 | × | MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 260 seconds) |
| 17:16:13 | → | Midjak joins (~Midjak@82.66.147.146) |
| 17:16:34 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:21:56 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 17:22:57 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
| 17:24:18 | × | berberman quits (~berberman@user/berberman) (Ping timeout: 268 seconds) |
| 17:25:10 | → | zer0bitz joins (~zer0bitz@2001:2003:f748:2000:c97d:2eea:c4af:e43e) |
| 17:25:22 | <dminuoso> | Well as soon as you use things like `some` you have to be very careful with backtracking |
| 17:25:34 | <dminuoso> | Oops. sorry, wrong terminal was in focus. |
| 17:27:28 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:28:32 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection) |
| 17:30:57 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 17:31:06 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:33:24 | × | vglfr quits (~vglfr@145.224.100.100) (Ping timeout: 264 seconds) |
| 17:33:25 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:35:55 | × | mbuf quits (~Shakthi@49.204.139.143) (Quit: Leaving) |
| 17:36:36 | → | vglfr joins (~vglfr@145.224.100.100) |
| 17:43:51 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:44:27 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 17:48:19 | × | paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 248 seconds) |
| 17:50:12 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 17:54:24 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 17:54:37 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds) |
| 17:55:37 | × | vn36__ quits (~vn36@123.63.203.210) (Remote host closed the connection) |
| 17:55:56 | → | vn36__ joins (~vn36@123.63.203.210) |
| 17:58:48 | → | wonko joins (~wjc@2a0e:1c80:2:0:45:15:19:130) |
| 18:03:45 | → | kenran joins (~user@user/kenran) |
| 18:06:37 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Remote host closed the connection) |
| 18:13:12 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 18:16:36 | × | jackhill quits (~jackhill@kalessin.dragonsnail.net) (Ping timeout: 268 seconds) |
| 18:18:59 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:22:11 | → | ft joins (~ft@p3e9bc845.dip0.t-ipconnect.de) |
| 18:23:02 | → | berberman joins (~berberman@user/berberman) |
| 18:24:51 | → | malte joins (~malte@mal.tc) |
| 18:28:05 | × | malte quits (~malte@mal.tc) (Remote host closed the connection) |
| 18:29:14 | → | malte joins (~malte@mal.tc) |
| 18:30:45 | → | axeman joins (~quassel@2a02:8109:a380:78:c903:2325:2c4a:e6c1) |
| 18:35:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:39:46 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 18:40:30 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 18:43:00 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 18:44:41 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 18:45:42 | × | axeman quits (~quassel@2a02:8109:a380:78:c903:2325:2c4a:e6c1) (Ping timeout: 268 seconds) |
| 18:46:23 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:46:38 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) |
| 18:49:33 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 18:54:36 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 18:54:57 | × | zer0bitz quits (~zer0bitz@2001:2003:f748:2000:c97d:2eea:c4af:e43e) (Read error: Connection reset by peer) |
| 18:55:06 | → | axeman joins (~quassel@2a02:8109:a380:78:12c5:f08a:fe34:cda6) |
| 18:55:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:05:31 | × | axeman quits (~quassel@2a02:8109:a380:78:12c5:f08a:fe34:cda6) (Ping timeout: 272 seconds) |
| 19:05:57 | × | fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving) |
| 19:06:24 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:07:17 | → | rockystone joins (~rocky@user/rockymarine) |
| 19:20:35 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:21:10 | → | paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
| 19:24:24 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds) |
| 19:26:26 | → | pavonia joins (~user@user/siracusa) |
| 19:32:43 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:34:52 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 19:36:31 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 19:37:23 | × | vn36__ quits (~vn36@123.63.203.210) (Ping timeout: 268 seconds) |
| 19:38:06 | → | vn36_ joins (~vn36@123.63.203.210) |
| 19:41:17 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 19:42:50 | → | zeenk joins (~zeenk@2a02:2f04:a311:7000:aa5:d3dd:854f:9922) |
| 19:43:37 | × | vn36_ quits (~vn36@123.63.203.210) (Ping timeout: 260 seconds) |
| 19:43:59 | → | causal joins (~user@50.35.83.177) |
| 19:44:05 | → | littlefinger joins (~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net) |
| 19:46:17 | → | MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) |
| 19:47:13 | × | Everything quits (~Everythin@37.115.210.35) (Quit: leaving) |
| 19:48:12 | × | littlefinger quits (~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net) (Client Quit) |
| 19:48:16 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:48:21 | → | axeman joins (~quassel@2a02:8109:a380:78:974a:2e45:fd2e:f5d0) |
| 19:49:10 | → | rockystone joins (~rocky@user/rockymarine) |
| 19:50:17 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 19:51:29 | → | Lumia joins (~Lumia@user/Lumia) |
| 19:52:42 | → | vn36_ joins (~vn36@123.63.203.210) |
| 19:52:48 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit) |
| 19:53:50 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 19:54:05 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 19:59:00 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Remote host closed the connection) |
| 19:59:25 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 20:00:36 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
| 20:03:18 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:04:19 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Read error: Connection reset by peer) |
| 20:04:33 | → | caryhartline joins (~caryhartl@2600:1700:2d0:8d30:5cd5:afa2:55e9:2fce) |
| 20:05:16 | → | nate1 joins (~nate@98.45.169.16) |
| 20:05:30 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 20:07:00 | → | phma_ joins (phma@2001:5b0:215a:d2a8:983b:e9da:c4b4:2a59) |
| 20:08:02 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Remote host closed the connection) |
| 20:08:17 | → | rockystone joins (~rocky@user/rockymarine) |
| 20:08:25 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 20:09:56 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 20:10:43 | × | phma quits (~phma@host-67-44-208-235.hnremote.net) (Ping timeout: 248 seconds) |
| 20:12:39 | → | Topsi joins (~Topsi@dyndsl-095-033-094-034.ewe-ip-backbone.de) |
| 20:12:52 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 252 seconds) |
| 20:14:13 | → | yvan-sraka joins (~yvan-srak@2a01cb0802a4b90054ce5bb6fad20cec.ipv6.abo.wanadoo.fr) |
| 20:15:10 | × | Lumia quits (~Lumia@user/Lumia) (Ping timeout: 272 seconds) |
| 20:15:31 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 20:15:55 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:20:57 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
| 20:22:24 | × | MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 252 seconds) |
| 20:24:57 | → | rockystone joins (~rocky@user/rockymarine) |
| 20:26:39 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 20:29:04 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 20:31:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:33:50 | → | nate1 joins (~nate@98.45.169.16) |
| 20:35:50 | → | zeenk2 joins (~zeenk@188.25.232.159) |
| 20:37:48 | × | zeenk quits (~zeenk@2a02:2f04:a311:7000:aa5:d3dd:854f:9922) (Ping timeout: 252 seconds) |
| 20:40:35 | → | zeenk joins (~zeenk@5.12.219.147) |
| 20:41:22 | × | zeenk2 quits (~zeenk@188.25.232.159) (Ping timeout: 260 seconds) |
| 20:44:10 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:56:03 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 20:56:29 | → | Lumia joins (~Lumia@user/Lumia) |
| 20:58:51 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 20:58:52 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
| 20:59:34 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 246 seconds) |
| 21:00:06 | × | mmhat quits (~mmh@p200300f1c7337736ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 21:00:34 | × | yvan-sraka quits (~yvan-srak@2a01cb0802a4b90054ce5bb6fad20cec.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 21:02:32 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 21:02:32 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds) |
| 21:02:41 | × | axeman quits (~quassel@2a02:8109:a380:78:974a:2e45:fd2e:f5d0) (Ping timeout: 272 seconds) |
| 21:04:20 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:05:13 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 21:07:12 | → | haskl joins (~haskl@user/haskl) |
| 21:08:21 | <dminuoso> | How do I extend a Word16 into Word32# |
| 21:08:30 | <dminuoso> | *Word16# into Word32# on older GHC verrsions |
| 21:11:31 | <davean> | dminuoso: How old? There are the word16ToWord# / wordToWord16# combos. |
| 21:11:59 | <dminuoso> | Not in base-4.15.0.0 |
| 21:12:02 | → | mmhat joins (~mmh@p200300f1c73377eeee086bfffe095315.dip0.t-ipconnect.de) |
| 21:12:09 | <davean> | thats ghc-prim |
| 21:12:23 | <davean> | If you're working with magic hash, you often need ghc-prim |
| 21:12:34 | <davean> | or primative |
| 21:13:00 | <dminuoso> | Well I want the full battery |
| 21:13:18 | <davean> | Huh? |
| 21:13:36 | <dminuoso> | So I also want Word8# -> Word64# for instance |
| 21:13:52 | <dminuoso> | (Is that safe to just unsafeCoerce#?) |
| 21:13:53 | <davean> | right, so combine them |
| 21:14:03 | × | chomwitt quits (~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 21:14:06 | <davean> | wordToWord64# (word8ToWord# x) |
| 21:14:23 | <dminuoso> | Ohh |
| 21:14:31 | <dminuoso> | Okay I see. |
| 21:18:31 | × | vn36_ quits (~vn36@123.63.203.210) (Ping timeout: 272 seconds) |
| 21:20:32 | → | danza joins (~francesco@151.57.79.164) |
| 21:22:45 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:25:44 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 21:26:59 | → | jackhill joins (~jackhill@kalessin.dragonsnail.net) |
| 21:30:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:30:09 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds) |
| 21:31:20 | → | mikoto-chan joins (~mikoto-ch@85-76-45-203-nat.elisa-mobile.fi) |
| 21:32:07 | × | Lumia quits (~Lumia@user/Lumia) (Ping timeout: 260 seconds) |
| 21:32:40 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 21:34:27 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 21:36:06 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:37:06 | → | moonsheep joins (~moonsheep@user/moonsheep) |
| 21:38:32 | × | zeenk quits (~zeenk@5.12.219.147) (Ping timeout: 260 seconds) |
| 21:40:40 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 21:42:11 | <moonsheep> | is there some convenience function that turns any ByteString into a Storable a? |
| 21:42:25 | <moonsheep> | I could just write one but I'd like to know if it's out there already |
| 21:42:53 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 21:43:55 | × | mixfix41 quits (~sdenynine@user/mixfix41) (Ping timeout: 268 seconds) |
| 21:44:01 | <dminuoso> | moonsheep: You can use unsafeUseAsCString or unsafeUseAsCStringLen |
| 21:44:16 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 21:46:45 | <dminuoso> | moonsheep: Just to avoid confusion, you want a polymorphic `Storable a` out of this, right? |
| 21:47:26 | <dminuoso> | That, is something of type `forall a. Storable a => a`? |
| 21:47:43 | × | mikoto-chan quits (~mikoto-ch@85-76-45-203-nat.elisa-mobile.fi) (Ping timeout: 255 seconds) |
| 21:48:03 | <dminuoso> | davean: Okay, so I guess there's really no good way around ghc-prim then. |
| 21:48:25 | <davean> | dminuoso: GHC prim is what makes magic hash run |
| 21:48:38 | <dminuoso> | Well, GHC.Exts already exposes quite a few utilities |
| 21:48:45 | <dminuoso> | But its missing the crucial wordToWord64# primitive |
| 21:49:20 | <dminuoso> | In base-4.15.0.0 anywayu |
| 21:49:36 | → | mikoto-chan joins (~mikoto-ch@193.185.223.3) |
| 21:50:53 | <davean> | dminuoso: Yah, GHC.Exts is about extensions, not really this sort of thing |
| 21:52:58 | <dminuoso> | davean: Ugh hold on! I cant just pick ghc-prim, its linked to the installed ghc. |
| 21:53:06 | <moonsheep> | dminuoso: yep, I'd like to get a storable of any type |
| 21:53:13 | <dminuoso> | So ghc-prim has wordToWord64# only since 0.9 |
| 21:53:38 | <dminuoso> | moonsheep: You can use unsafeUseAsCStringLen + castPtr. |
| 21:53:42 | <dminuoso> | moonsheep: Will that suffice? |
| 21:53:49 | <moonsheep> | oh I assumed I'd have to use something like peekElemOff |
| 21:53:51 | <moonsheep> | what is castPtr? |
| 21:54:00 | <dminuoso> | castPtr :: Ptr a -> Ptr b |
| 21:54:28 | <dminuoso> | With unsafeUseAsCStringLen you can get a Ptr to the internal buffer, and with castPtr you can just reinterpret cast the byte buffer as anything you want |
| 21:54:45 | <moonsheep> | isn't that... a bit unsafe though? |
| 21:54:52 | <dminuoso> | Not any less safe than what you're asking. |
| 21:54:55 | <moonsheep> | also is it more efficient than using the storable interface? |
| 21:55:02 | <moonsheep> | right fair enough |
| 21:55:34 | <dminuoso> | moonsheep: The generic interface you want is called `Ptr` really. |
| 21:55:50 | <dminuoso> | That is, a `Ptr S` for an arbitrary choice of S is a kind of `forall a. Storable a => a` |
| 21:55:52 | <moonsheep> | hmm right |
| 21:55:53 | <moonsheep> | thanks |
| 21:56:10 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:56:34 | <dminuoso> | moonsheep: Note that you cant safely return the ptr from unsafeUseAsCStringLen, you must memcpy it out. |
| 21:56:47 | <dminuoso> | (or just keep it inside the continuation without returning) |
| 21:57:39 | <moonsheep> | wait does that mean I can't castPtr it? |
| 21:57:43 | <moonsheep> | do I have to memcpy it? |
| 21:58:20 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 21:59:34 | <dminuoso> | moonsheep: No, but Im entirely unsure how safe you will be if you do something like: `ptr <- unsafeUseAsCStringLen (\(ptr, len) -> pure ptr)` |
| 21:59:40 | <dminuoso> | Because this will break referential transparency entirely |
| 22:00:05 | <dminuoso> | (Well in fact any modification to that ptr will break referential transparency, even inside the continuation. |
| 22:00:13 | <moonsheep> | ah well I don't mean to do that |
| 22:00:15 | <dminuoso> | So if you want to modify it, memcpy it first into a fresh buffer |
| 22:00:28 | <dminuoso> | But if you just want to reinterpret and read from it, its all good. |
| 22:00:41 | <dminuoso> | Even if you extract the ptr from the continuation |
| 22:01:33 | <moonsheep> | right |
| 22:02:05 | <moonsheep> | since everything is immutable in haskell, the second I return an polymorphic type from the function it's basically read-only right? |
| 22:02:22 | <dminuoso> | No? |
| 22:02:31 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving) |
| 22:02:38 | <dminuoso> | Im a bit unsure what makes you think there's any relationship between polymorphic types and read-only. |
| 22:03:06 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
| 22:03:18 | <geekosaur> | ByteString assumes it's safe to modify stuff directly because it knows when there's only one reference to it. you're in a position to break that |
| 22:03:22 | <geekosaur> | (iirc) |
| 22:03:42 | <moonsheep> | dminuoso: well it doesn't really matter that it's polymorphic |
| 22:03:49 | <geekosaur> | just casting to something else does not change this |
| 22:03:49 | <moonsheep> | any value in haskell is immutable right? |
| 22:03:55 | <dminuoso> | moonsheep: sort of.. |
| 22:04:34 | <dminuoso> | moonsheep: Thats precisely what Im getting at. unsafeUseAsCStringLen lets you violate that mutability and break referential transparency in strange ways. That's why there's an `unsafe` tagged to its name. |
| 22:04:59 | <dminuoso> | But in the absence of unsafe primitives *values* themselves are immutable |
| 22:05:07 | <moonsheep> | right, but if I don't mutate it within the function, then it's fine, no? |
| 22:05:21 | <moonsheep> | and since I don't plan to mutate it I should be fine, is that correct? |
| 22:05:24 | <dminuoso> | Well, and as long as you dont do any memory access errors. :) |
| 22:05:26 | <dminuoso> | But yeah |
| 22:05:33 | <dminuoso> | So if you do something like: |
| 22:05:35 | <moonsheep> | right, all I wanted to hear :) |
| 22:06:06 | <geekosaur> | doesn't ghc optimize to a mutation when it knows there's only one copy, which this would break? |
| 22:06:17 | <dminuoso> | unsafeUseAsCStringLen (\(ptr, len) -> peek ((castPtr ptr) :: Ptr Double)) |
| 22:06:29 | <moonsheep> | oh thanks |
| 22:06:31 | <dminuoso> | This is in principle fine (as long as you dont do out-of-bound reads for example |
| 22:06:44 | <dminuoso> | geekosaur: Clean does that. |
| 22:07:20 | × | Topsi quits (~Topsi@dyndsl-095-033-094-034.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 22:08:00 | × | mikoto-chan quits (~mikoto-ch@193.185.223.3) (Ping timeout: 252 seconds) |
| 22:08:03 | <dminuoso> | Never heard of GHC doing similar mutation-instead-of-copy |
| 22:08:23 | <geekosaur> | thought that was list fusion |
| 22:08:38 | <geekosaur> | not just not creating a new list but also not creating new list items |
| 22:08:46 | <dminuoso> | Do you mean the build/foldr RULE? |
| 22:08:46 | <geekosaur> | just mutating in place |
| 22:09:02 | <geekosaur> | one's the rule, the other's the runtime iirc |
| 22:09:16 | <dminuoso> | Cool, first time Im hearding of this |
| 22:09:19 | <dminuoso> | *hearing |
| 22:09:32 | <dminuoso> | Sorry, my chair position is slightly off, which causes me to mispress keys constantly |
| 22:09:36 | ← | moonsheep parts (~moonsheep@user/moonsheep) () |
| 22:09:56 | <geekosaur> | since the runtime can tell there's only one reference it can mutate it. otherwise you'd still be creating new values even if you're not adding them to new lists. at least that's my understanding |
| 22:10:25 | <geekosaur> | there are limits to it but it exists, as I understand it |
| 22:10:34 | <dminuoso> | If you find details, let me know |
| 22:10:41 | <dminuoso> | Im very curious |
| 22:10:53 | <geekosaur> | I think Clean has fewer limits because it can do a better job of recognizing when only one reference to a value exists |
| 22:13:31 | <geekosaur> | mm, I'm poking around and it certainly seems to be false in the general case 😞 |
| 22:13:32 | × | caryhartline quits (~caryhartl@2600:1700:2d0:8d30:5cd5:afa2:55e9:2fce) (Quit: caryhartline) |
| 22:14:06 | → | zeenk joins (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 22:16:03 | <geekosaur> | okay, apparently it's not ghc itself but list/stream fusion |
| 22:16:13 | <geekosaur> | so it would be related to build/foldr |
| 22:16:32 | × | michalz quits (~michalz@185.246.207.200) (Remote host closed the connection) |
| 22:18:46 | <dminuoso> | davean: By the way, Im beginning to understand that what Im asking simply does not exist. :( |
| 22:22:27 | <dminuoso> | And there's some really disturbing things in ghc-prim |
| 22:29:35 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 22:31:53 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:34:06 | <davean> | dminuoso: well, the idea of actually sized prims is recent |
| 22:34:52 | <davean> | Curious what disturbes you |
| 22:35:41 | <dminuoso> | Is there no way to stuff a Word64# into a Word#? Or can I just unsafeCoerce# this? |
| 22:36:08 | <EvanR> | squint, what if Word# is too small |
| 22:36:27 | <hpc> | what if Word# is too large, even |
| 22:37:05 | <EvanR> | you don't want it jumbling around when I'm driving |
| 22:37:19 | <hpc> | is there a way to limit something to building on 64-bit only? |
| 22:37:26 | <davean> | dminuoso: In earlier version before there was sizing, you want extendWord16# |
| 22:37:28 | <davean> | etc |
| 22:37:30 | <dminuoso> | EvanR: Would you even have a Word64 type on a 32-bit machine? |
| 22:37:41 | <davean> | (and narrowWord16#) |
| 22:37:44 | <EvanR> | interesting point |
| 22:37:46 | <davean> | but we changed to new stuff |
| 22:37:55 | <dminuoso> | davean: Yeah, but these didnt exist for Word64# |
| 22:37:59 | <davean> | dminuoso: yes, you would have a Word64 type on a 32 bit machine |
| 22:38:20 | <dminuoso> | davean: Thats hard to believe, because all the sized types were just wrappers on native words. |
| 22:38:25 | <dminuoso> | This just got changed in 9.2 |
| 22:38:27 | <EvanR> | er I took that to mean Word64# |
| 22:41:31 | <dminuoso> | davean: either way, there's just no primops for extending or narrowing from/into 64 bit types in base-4.15.0.0 or earlier. |
| 22:41:36 | <dminuoso> | I feel like I must be missing something |
| 22:41:58 | <dminuoso> | Should check what a fromIntegral from Word to Word64 really does |
| 22:45:50 | <dminuoso> | do_word = \ (x_a1z8 :: Word) -> case x_a1z8 of { W# x#_a1za -> GHC.Word.W64# x#_a1za } |
| 22:46:08 | <dminuoso> | That suspicously looks unsafeCoerce#able |
| 22:46:29 | <dminuoso> | What would this do on a 32 bit system though? |
| 22:46:49 | <EvanR> | I ask everyone on the plane if anyone has a 32 bit computer |
| 22:47:57 | <dminuoso> | Also curious, why is there no type annotation for x#_a1za? |
| 22:48:04 | <dminuoso> | Isnt everything explicitly typed in core? |
| 22:48:58 | <EvanR> | would a type sig be redundant because W# is monomorphic constructor |
| 22:49:42 | <dminuoso> | I wonder whether perhaps theres some excemption about primitive types |
| 22:51:47 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/issues/17377 |
| 22:53:47 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 22:57:53 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
| 22:57:55 | × | thegeekinside quits (~thegeekin@189.180.97.156) (Ping timeout: 268 seconds) |
| 22:58:43 | <dminuoso> | Ive been helped in another place. |
| 22:59:32 | <dminuoso> | So on 64 bit systems you can just unsafeCoerce#, and for 32 bit systems there's GHC.IntWord64 which provides an FFI call wordToWord64# |
| 22:59:50 | → | axeman joins (~quassel@2a02:8109:a380:78:5151:14f6:9d87:4a52) |
| 23:03:44 | → | beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
| 23:06:20 | → | jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 23:06:47 | × | jonathanx_ quits (~jonathan@178.174.176.109) (Read error: Connection reset by peer) |
| 23:09:05 | → | rockystone joins (~rocky@user/rockymarine) |
| 23:09:57 | × | vglfr quits (~vglfr@145.224.100.100) (Ping timeout: 252 seconds) |
| 23:13:03 | × | Tuplanolla quits (~Tuplanoll@91-159-69-245.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:13:42 | → | talismanick joins (~talismani@96.71.204.25) |
| 23:14:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:26:20 | × | talismanick quits (~talismani@96.71.204.25) (Remote host closed the connection) |
| 23:26:41 | → | talismanick joins (~talismani@96.71.204.25) |
| 23:30:44 | → | nate1 joins (~nate@98.45.169.16) |
| 23:35:12 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 23:39:37 | <EvanR> | is there a lightweight functional pearl for conjuring a supply of unique names in an algorithm |
| 23:40:50 | <EvanR> | in one paper there's this whole thing with an impure generator going on but really |
| 23:40:54 | × | acidjnk_new quits (~acidjnk@p200300d6e7137a877551a7e8fd85f50e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 23:43:51 | × | mmhat quits (~mmh@p200300f1c73377eeee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7) |
| 23:44:11 | × | axeman quits (~quassel@2a02:8109:a380:78:5151:14f6:9d87:4a52) (Ping timeout: 272 seconds) |
| 23:45:10 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 23:45:39 | × | zeenk quits (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!) |
| 23:51:09 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
| 23:52:23 | <geekosaur> | what else were you expecting? if they need to be unique then you need to keep a seed somewhere |
| 23:53:02 | <dminuoso> | EvanR: A functional pearl? Like `s -> (s, t)`? |
| 23:54:31 | <geekosaur> | well, yes, there is State, but if if that were enough I'd assume EvanR wouldn't be asking |
| 23:54:37 | × | rockystone quits (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
| 23:55:01 | <dminuoso> | Im not entirely sure what they are asking for, then. |
| 23:55:14 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
| 23:57:22 | <jackdk> | I would probably newtype over state in a way that doesn't expose the standard operations and only allows a "next gensym". |
| 23:57:45 | → | rockystone joins (~rocky@user/rockymarine) |
| 23:58:43 | <EvanR> | yes "gensym" is part of the lore on doing this without State monads |
| 23:59:22 | <EvanR> | why would you want to not use State monads? I guess at that time in history no one had heard of a State monad. Today, it's just a pain in the ass to shoe horn into pure code |
| 23:59:46 | <dminuoso> | the idea of a state monad is as old as lambda calculus. |
| 23:59:59 | <dminuoso> | you just didnt call it monad back then. |
All times are in UTC on 2022-10-19.