Logs on 2025-02-25 (liberachat/#haskell)
| 00:02:39 | → | olivial joins (~benjaminl@user/benjaminl) |
| 00:03:10 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 00:04:25 | × | olivial_ quits (~benjaminl@c-76-144-12-233.hsd1.or.comcast.net) (Ping timeout: 268 seconds) |
| 00:06:34 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:07:05 | × | eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 244 seconds) |
| 00:08:28 | × | olivial quits (~benjaminl@user/benjaminl) (Ping timeout: 265 seconds) |
| 00:11:26 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 00:14:54 | → | olivial joins (~benjaminl@user/benjaminl) |
| 00:19:35 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 00:22:22 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:23:07 | → | alfiee joins (~alfiee@user/alfiee) |
| 00:27:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 00:27:29 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
| 00:38:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:38:41 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
| 00:43:40 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 00:49:09 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 00:51:42 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 00:53:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:56:27 | × | xff0x quits (~xff0x@2405:6580:b080:900:6dac:d85c:a56f:65f8) (Ping timeout: 276 seconds) |
| 00:57:27 | × | acidjnk quits (~acidjnk@p200300d6e7283f506dba6a8fb70c33a2.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 00:59:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 00:59:34 | × | m5zs7k quits (aquares@web10.mydevil.net) (Quit: m5zs7k) |
| 01:03:29 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 01:08:32 | → | alfiee joins (~alfiee@user/alfiee) |
| 01:09:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:09:58 | × | zlqrvx quits (~zlqrvx@user/zlqrvx) (Quit: %quit%) |
| 01:11:03 | → | zlqrvx joins (~zlqrvx@user/zlqrvx) |
| 01:12:50 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 01:14:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 01:16:48 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:17:36 | × | sprotte24 quits (~sprotte24@p200300d16f3063004006d4006bd9f81a.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 01:21:38 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 01:32:05 | × | Square2 quits (~Square4@user/square) (Ping timeout: 265 seconds) |
| 01:32:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:35:55 | × | alp quits (~alp@2001:861:8ca0:4940:4960:283e:5e01:3e7b) (Ping timeout: 252 seconds) |
| 01:38:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 01:39:15 | → | Square joins (~Square4@user/square) |
| 01:43:32 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:43:55 | → | califax joins (~califax@user/califx) |
| 01:43:55 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 01:46:43 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 01:47:10 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 01:47:21 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 01:48:22 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 01:48:48 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 01:49:11 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 01:49:17 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:49:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:54:26 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 01:54:56 | → | alfiee joins (~alfiee@user/alfiee) |
| 01:59:23 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 02:05:22 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:06:52 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 02:10:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 02:21:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:25:26 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 02:36:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:40:20 | → | alfiee joins (~alfiee@user/alfiee) |
| 02:43:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 02:44:30 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 02:50:09 | × | petrichor quits (~znc-user@user/petrichor) (Read error: Connection reset by peer) |
| 02:51:56 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 02:52:16 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 02:52:59 | → | petrichor joins (~znc-user@user/petrichor) |
| 02:54:30 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 02:54:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:54:37 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 268 seconds) |
| 02:59:32 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 03:01:58 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 03:04:30 | → | tavare joins (~tavare@user/tavare) |
| 03:07:01 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds) |
| 03:07:36 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 03:11:08 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 03:18:38 | × | tavare quits (~tavare@user/tavare) (Remote host closed the connection) |
| 03:24:27 | → | dmoerner joins (~dmoerner@fedora/dmoerner) |
| 03:26:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:26:44 | → | alfiee joins (~alfiee@user/alfiee) |
| 03:26:56 | → | weary-traveler joins (~user@user/user363627) |
| 03:27:48 | × | zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
| 03:29:37 | → | zungi joins (~tory@user/andrewchawk) |
| 03:30:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:31:04 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 03:41:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:46:09 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:47:19 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out) |
| 03:57:20 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:02:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 04:08:42 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 04:08:56 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 04:09:02 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 04:09:27 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 04:12:48 | → | alfiee joins (~alfiee@user/alfiee) |
| 04:13:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:17:03 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds) |
| 04:20:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 04:21:53 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 04:27:11 | × | petrichor quits (~znc-user@user/petrichor) (Read error: Connection reset by peer) |
| 04:28:58 | → | petrichor joins (~znc-user@user/petrichor) |
| 04:29:25 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:31:11 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:35:58 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 04:39:15 | → | aforemny joins (~aforemny@i59F4C45F.versanet.de) |
| 04:39:35 | × | aforemny_ quits (~aforemny@2001:9e8:6cc6:4c00:6a7:4bec:d8bb:d20c) (Ping timeout: 244 seconds) |
| 04:43:42 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
| 04:46:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:49:39 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 04:49:53 | × | Square quits (~Square4@user/square) (Ping timeout: 248 seconds) |
| 04:51:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 04:57:54 | <ski> | "exponentiation involves instantiating one numeral to `r -> r`" -- did this, for implication goals, in a logic programming prototype, having unbounded number of continuation levels (and then `IO' or `ST s' at the bottom, for update-in-place of logic variables) |
| 04:58:33 | → | alfiee joins (~alfiee@user/alfiee) |
| 05:01:51 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:02:53 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds) |
| 05:03:49 | → | j1n37 joins (~j1n37@user/j1n37) |
| 05:04:12 | × | j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 05:06:38 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 05:17:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:22:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 05:33:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:35:13 | → | polyphem joins (~polyphem@p4fc2ccda.dip0.t-ipconnect.de) |
| 05:38:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 05:40:30 | × | j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 05:41:00 | → | misterfish joins (~misterfis@84.53.85.146) |
| 05:42:13 | × | sudden quits (~cat@user/sudden) (Ping timeout: 248 seconds) |
| 05:43:48 | × | polyphem quits (~polyphem@p4fc2ccda.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 05:44:11 | → | j1n37 joins (~j1n37@user/j1n37) |
| 05:44:58 | → | alfiee joins (~alfiee@user/alfiee) |
| 05:45:09 | → | k0zy joins (~user@user/k0zy) |
| 05:47:17 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 05:47:49 | → | rvalue joins (~rvalue@user/rvalue) |
| 05:49:08 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds) |
| 05:49:14 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:54:18 | → | sudden joins (~cat@user/sudden) |
| 05:55:48 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 05:56:36 | → | fp1 joins (~Thunderbi@wireless-86-50-141-43.open.aalto.fi) |
| 05:57:40 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 05:58:33 | → | califax joins (~califax@user/califx) |
| 05:59:55 | → | alp joins (~alp@2001:861:8ca0:4940:1509:d62f:8652:bd61) |
| 06:00:42 | × | fp1 quits (~Thunderbi@wireless-86-50-141-43.open.aalto.fi) (Ping timeout: 244 seconds) |
| 06:01:16 | × | talismanick quits (~user@2601:644:937c:ed10::ae5) (Read error: Connection reset by peer) |
| 06:03:11 | → | michalz joins (~michalz@185.246.207.203) |
| 06:03:58 | → | ensyde joins (~ensyde@2601:5c6:c200:6dc0::a1d8) |
| 06:07:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:10:08 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 06:12:04 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 06:15:37 | × | echoreply quits (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8) |
| 06:16:31 | → | echoreply joins (~echoreply@45.32.163.16) |
| 06:17:30 | → | takuan joins (~takuan@d8D86B601.access.telenet.be) |
| 06:19:00 | × | k0zy quits (~user@user/k0zy) (Ping timeout: 252 seconds) |
| 06:23:06 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:25:56 | × | hughjfchen quits (~hughjfche@vmi2417424.contaboserver.net) (Quit: WeeChat 4.4.3) |
| 06:26:20 | × | simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 252 seconds) |
| 06:27:59 | × | alp quits (~alp@2001:861:8ca0:4940:1509:d62f:8652:bd61) (Ping timeout: 260 seconds) |
| 06:28:00 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 06:28:08 | → | hughjfchen joins (~hughjfche@vmi2417424.contaboserver.net) |
| 06:30:41 | → | simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
| 06:31:03 | → | alfiee joins (~alfiee@user/alfiee) |
| 06:35:48 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
| 06:38:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:44:01 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 06:44:02 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 06:46:14 | × | p3n quits (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.9.1 - https://znc.in) |
| 06:54:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:57:32 | → | p3n joins (~p3n@217.198.124.246) |
| 06:59:42 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 07:02:55 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:03:05 | × | tccq quits (~user@user/tccq) (Remote host closed the connection) |
| 07:04:00 | → | rvalue- joins (~rvalue@user/rvalue) |
| 07:04:50 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
| 07:07:28 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 07:09:56 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds) |
| 07:10:12 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 07:11:34 | Lord_of_Life_ | is now known as Lord_of_Life |
| 07:12:25 | → | CiaoSen joins (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) |
| 07:12:42 | rvalue- | is now known as rvalue |
| 07:15:42 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 272 seconds) |
| 07:16:48 | → | alfiee joins (~alfiee@user/alfiee) |
| 07:18:22 | × | j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 07:18:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:20:35 | → | tromp joins (~textual@2a02:a210:cba:8500:6ddc:c1a9:bc13:1391) |
| 07:21:29 | → | j1n37 joins (~j1n37@user/j1n37) |
| 07:21:38 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
| 07:23:32 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 07:25:22 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 07:34:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:36:45 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 07:41:08 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 07:43:54 | → | talismanick joins (~user@2601:644:937c:ed10::ae5) |
| 07:47:44 | × | kaskal quits (~kaskal@2a02:8388:15bf:c200:6260:f3eb:9ba8:d6f8) (Quit: ZNC - https://znc.in) |
| 07:48:07 | → | kaskal joins (~kaskal@2a02:8388:15bf:c200:69b8:13b6:b9c5:a489) |
| 07:57:46 | × | tromp quits (~textual@2a02:a210:cba:8500:6ddc:c1a9:bc13:1391) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:00:01 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 08:00:42 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:01:02 | → | caconym joins (~caconym@user/caconym) |
| 08:02:12 | → | alfiee joins (~alfiee@user/alfiee) |
| 08:06:25 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 08:12:21 | → | eL_Bart0 joins (eL_Bart0@dietunichtguten.org) |
| 08:18:42 | → | alp joins (~alp@2001:861:8ca0:4940:9bfe:6d72:595b:d191) |
| 08:24:13 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 08:24:57 | → | merijn joins (~merijn@77.242.116.146) |
| 08:27:56 | → | bitterx joins (~bitterx@APN-122-12-44-gprs.simobil.net) |
| 08:28:06 | × | bitterx quits (~bitterx@APN-122-12-44-gprs.simobil.net) (Changing host) |
| 08:28:06 | → | bitterx joins (~bitterx@user/bitterx) |
| 08:29:28 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 08:29:46 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:30:57 | × | glguy quits (glguy@libera/staff/glguy) (Read error: Connection reset by peer) |
| 08:41:22 | → | misterfish joins (~misterfis@h239071.upc-h.chello.nl) |
| 08:43:32 | → | zzz joins (~z@user/zero) |
| 08:43:56 | → | tromp joins (~textual@2a02:a210:cba:8500:6ddc:c1a9:bc13:1391) |
| 08:45:18 | × | yin quits (~z@user/zero) (Read error: Connection reset by peer) |
| 08:45:18 | zzz | is now known as yin |
| 08:47:01 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
| 08:47:37 | → | alfiee joins (~alfiee@user/alfiee) |
| 08:49:08 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 08:49:22 | <tomsmeding> | Athas: suppose I had a library inspired by Kmett's 'ad' library, but with first-class support for arrays somehow, instead of just scalars. (The goal being to significantly reduce the overhead of all those dual-number heap nodes.) What would you expect its interface to be? |
| 08:52:36 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
| 08:57:12 | × | zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
| 08:57:50 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 08:58:41 | → | zungi joins (~tory@user/andrewchawk) |
| 08:58:45 | → | tabaqui1 joins (~root@87.200.129.102) |
| 09:00:01 | → | acidjnk joins (~acidjnk@p200300d6e7283f38a15cd1ba33b15ba0.dip0.t-ipconnect.de) |
| 09:00:44 | <Athas> | tomsmeding: good question. I'm not terribly imaginatine when it comes to Haskell types, I must admit. I would probably like a type family 'Array sh t', where 'sh' is an Accelerate-like shape (this is not so important for 'ad'), and 't' is heavily constrained to either a some primal number type or dual/adjoint numbers. |
| 09:01:07 | → | chele joins (~chele@user/chele) |
| 09:01:22 | <Athas> | Then the array type has a vocabulary of first order bulk operations (where I expect good performance for derivatives), and also some second order operations (like map) that should at least work. |
| 09:02:09 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 09:03:21 | → | why joins (~why@n218250229238.netvigator.com) |
| 09:05:28 | <tomsmeding> | Athas: Thanks! Second order operations are fundamentally more difficult to make work with the 'ad'-style algorithm than first-order bulk operations, though |
| 09:05:47 | <Athas> | Yes, I know, which is why I wouldn't expect them to work well, and I could sympathise with not having them at all. |
| 09:05:57 | <tomsmeding> | as in, making them work but slow is easy (fromList . map f . toList), but making them fast is rather difficult |
| 09:06:21 | <tomsmeding> | (though perhaps allocating fewer list nodes is doable) |
| 09:06:57 | <Athas> | I would be OK with the API limiting primal values to types that can be unboxed (and also imposing some strictness requirements). |
| 09:07:16 | <Athas> | Making the tape more efficient (by storing it in an unboxed and bump-allocated vector) would make a big difference to performance, I think. |
| 09:07:19 | <tomsmeding> | Athas: some other component of the interface that is surprisingly tricky: 'ad' uses Traversable as the universal input structure, but if you have heterogeneously typed inputs, that doesn't really work any more |
| 09:07:30 | <Athas> | The tape-based AD libraries in C++ are not slow at all. |
| 09:07:50 | <Athas> | Heterogeneously typed active inputs are rare. |
| 09:08:09 | <Athas> | For example, they occur in none of the ADBench benchmarks. |
| 09:08:15 | <tomsmeding> | Athas: I tried, but the fact that the forward pass becomes a write to a vector with potential reallocation logic, instead of just allocating an object in the haskell nursery, increases the overhead quite a bit |
| 09:08:29 | <tomsmeding> | Athas: mind that having arrays of different ranks in the input is already "heterogeneously typed" |
| 09:08:46 | <tomsmeding> | as is "arrays and scalars" |
| 09:09:14 | <Athas> | Oh, I was considering only the types of the underlying scalars. |
| 09:09:34 | <tomsmeding> | I was thinking of that Traversable constraint; that requires all the "input values" to really be exactly the same Haskell type |
| 09:09:55 | <Athas> | Well, so there's another restriction I'm OK with: the input may be assumed to be isomorphic to a monomorphic sequence of scalars. Many AD libraries make that assumption. The Haskell type system is easily strong enough to make that nice to work with. |
| 09:10:23 | <tomsmeding> | what do you mean with a monomorphic sequence of scalars? [Vector a]? |
| 09:10:40 | <Athas> | Not the list, just 'Vector a'. |
| 09:10:50 | <tomsmeding> | do other AD libraries really do that? |
| 09:10:57 | <tomsmeding> | that feels a bit much, to me |
| 09:10:58 | <Athas> | But I don't understand - if you require that the input is some 'f t' where 'f' is Traversable, isn't that essentially going to be a sequence of 't's with some shape on top? |
| 09:11:05 | <tomsmeding> | exactly |
| 09:11:18 | <tomsmeding> | which works for scalars, but if you have array support, then it's suddenly inadequate |
| 09:11:22 | <Athas> | It's common in C++ AD libraries yes, although they sometimes put some polish on top to make it seem like that's not how it works. |
| 09:11:28 | <tomsmeding> | interesting |
| 09:11:35 | <Athas> | You just pretend the arrays are concatenated. It's easy. |
| 09:12:01 | <tomsmeding> | well f (Vector Double) would be rather easy to support, for a Traversable f |
| 09:12:20 | <Athas> | These libraries ultimately expect the input to be a sequence of scalars. In Haskell, you could do fancier things (like arrays of functions!), but I'm not sure that is so useful. |
| 09:12:43 | <Athas> | I'd much prefer a Haskell AD library that can efficiently handle boring classic numerical problems, even if fancy weird things, like functional vector fields, cannot be handled. |
| 09:12:52 | × | AlexZenon quits (~alzenon@178.34.162.44) (Ping timeout: 272 seconds) |
| 09:13:01 | <tomsmeding> | I'm not thinking about functional vector fields :p |
| 09:13:43 | <Athas> | When you're talking about the Jacobian matrix, you're already in a sense flattening all of the scalars to form each axis. |
| 09:14:57 | <tomsmeding> | full disclosure: I've been hacking on something like this; the API currently looks like this: gradient' from here ( https://git.tomsmeding.com/ad-dual/tree/src/Numeric/ADDual/Array/Internal.hs ), where 'VDual s Double' implements the classes from here ( https://git.tomsmeding.com/ad-dual/tree/src/Numeric/ADDual/VectorOps.hs ) |
| 09:15:04 | <tomsmeding> | arrays are single-dimensional only |
| 09:15:12 | <tomsmeding> | but that's rather non-fundamental |
| 09:15:40 | <Athas> | Yes, that can be fixed at a higher level. |
| 09:15:48 | <tomsmeding> | also that |
| 09:17:02 | <Athas> | This looks compelling. Using 'f (VS.Vector a)' instead of just 'a' is make it easier to have some efficient representation without imposing constraints on 'f'? |
| 09:17:25 | <tomsmeding> | it just means that you can pass in a single vector if you want, but also a list of vectors. |
| 09:17:38 | <tomsmeding> | Or a boxed vector of vectors! |
| 09:17:49 | <Athas> | Yes, I think it's fine for all of my uses, but honestly just 'VS.Vector a' would work as well. |
| 09:18:18 | <tomsmeding> | it doesn't even assume that 'a' is Double, so you should be able to instantiate 'a' with a standard forward-mode dual number |
| 09:18:43 | → | AlexZenon joins (~alzenon@178.34.162.44) |
| 09:18:52 | <Athas> | This looks compelling, but why unsafePerformIO directly? Can this not be expressed with ST? |
| 09:19:01 | <Athas> | Are dual numbers Storable? |
| 09:19:09 | <Athas> | I guess they could be. |
| 09:19:14 | <tomsmeding> | surely they could be |
| 09:19:31 | <Athas> | But this cannot possibly do reverse-then-forward, right? |
| 09:19:49 | <tomsmeding> | how would that look in 'ad'? |
| 09:19:57 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 09:20:17 | <tomsmeding> | and I think you may be right that IO is overkill here! |
| 09:20:27 | <Athas> | jvp (\ ... vjp ...), but with the weird 'ad' names instead. |
| 09:20:40 | <Athas> | It Just Works in 'ad'. |
| 09:20:49 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 09:21:00 | <tomsmeding> | wouldn't that be Reverse s (Forward Double) in 'ad'? |
| 09:21:08 | → | califax joins (~califax@user/califx) |
| 09:21:13 | <tomsmeding> | i.e. doing reverse mode, but secretly the scalars are dual numbers? |
| 09:21:55 | <Athas> | Operationally yes. I don't know what the type of that looks like. I was referring to the surface syntax. |
| 09:22:19 | <Athas> | It's 'diffF' on a function that uses 'grad'. |
| 09:22:30 | × | off^ quits (~off@108.192.66.114) (Ping timeout: 268 seconds) |
| 09:22:36 | tomsmeding | opens the 'ad' docs |
| 09:22:50 | <tomsmeding> | the fact that that package's name is so short is really inconvenient. :P |
| 09:22:59 | × | dsrt^ quits (~dsrt@108.192.66.114) (Ping timeout: 260 seconds) |
| 09:24:27 | <tomsmeding> | I'm not familiar enough with the 'ad' API to figure out what that 'AD' type is suppose to do |
| 09:24:29 | <tomsmeding> | *supposed |
| 09:24:47 | <tomsmeding> | nothing, it seems, semantically? |
| 09:25:48 | <tomsmeding> | Athas: I think if you 'diffF' on a function that uses 'grad', you instantiate the 'a' in the type of 'grad' with 'AD s (Forward a)'; does that sound right? |
| 09:26:24 | <Athas> | Yes, so that ought to work. That is good. |
| 09:26:40 | <tomsmeding> | if so, then exactly the same thing should work here |
| 09:26:40 | × | why quits (~why@n218250229238.netvigator.com) (Quit: Client closed) |
| 09:27:08 | × | ThePenguin quits (~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection) |
| 09:28:23 | <tomsmeding> | Athas: I might be able to switch to ST, but because the individual scalar operations are effectful (they mutate the tape), there's going to be some unsafePerformIO-like thing there anyway |
| 09:28:41 | <tomsmeding> | and there isn't even unsafePerformST! |
| 09:28:51 | <tomsmeding> | I guess that's called "runST . unsafeCoerce" |
| 09:29:07 | → | ThePenguin joins (~ThePengui@cust-95-80-24-166.csbnet.se) |
| 09:29:37 | <tomsmeding> | 'ad' also has unsafePerformIO in the same positions |
| 09:31:54 | <Athas> | How close is this to working? |
| 09:32:04 | <tomsmeding> | I benchmarked this on a simple 2-hidden-layer neural network with relu activation and softmax at the end; when input and hidden layers are all width N, then when N goes from 100 to 2000, the speedup over 'ad' goes from 26x to ~550x |
| 09:32:22 | ski | . o O ( "Data Parallel Haskell" (GHC 6.10 - 8.4) |
| 09:32:22 | ski | <https://downloads.haskell.org/ghc/8.4-latest/docs/html/users_guide/parallel.html#data-parallel-haskell>,<https://wiki.haskell.org/GHC/Data_Parallel_Haskell,<https://www.cs.cmu.edu/~scandal/cacm/cacm2.html>,<https://web.archive.org/web/20040806031752/http://cgi.cse.unsw.edu.au/~chak/papers/papers.html#ndp-haskell>,<https://en.wikipedia.org/wiki/NESL>,<https://en.wikipedia.org/wiki/Data_parallelism> ) |
| 09:32:38 | <tomsmeding> | Athas: I used fneural_A for my library and fneural for 'ad' https://git.tomsmeding.com/ad-dual/tree/examples/Numeric/ADDual/Examples.hs |
| 09:32:59 | <Athas> | tomsmeding: very promising! |
| 09:33:09 | <tomsmeding> | perhaps I should've been fair and used fneural_A for both, but honestly, fneural should be faster because it uses V.map sometimes |
| 09:33:22 | → | alfiee joins (~alfiee@user/alfiee) |
| 09:33:45 | <tomsmeding> | the inspiration for this was your question of "is there anything better than 'ad'" and me thinking "we can't possibly have just this as the answer" |
| 09:33:55 | <tomsmeding> | :) |
| 09:34:35 | <tomsmeding> | It's fun to see the original performance around 300ms, and then seeing the array version be 700us. :p |
| 09:35:00 | <Athas> | Here is how well tape based AD can do in C++: https://sigkill.dk/junk/gmm-diff.pdf - 'adept', 'adol-c', and 'cppad' use taping, while everything else is some kind of source transformation. |
| 09:35:31 | <Athas> | So 4x to 5x slower than Enzyme (which is a compiler transformation) is dosable in C++. And these tools don't actually know what a "matrix" is; they're completely scalar-oriented. |
| 09:36:20 | <tomsmeding> | we have the disadvantage that being scalar-oriented means spraying your the heap with huge amounts of garbage, and also creating long, deep chains that the GC has to traverse |
| 09:36:45 | <tomsmeding> | but with arrays, even just first-order ones, both of those problems should be reduced to negligibility |
| 09:36:48 | <Athas> | Indeed. |
| 09:37:17 | <Athas> | And in the limit, with high level array operations, some things can perhaps be differentiated more effectively, using knowledge about what is actually going on. |
| 09:37:19 | <tomsmeding> | I find it interesting in your graph that 'tensorflow' is just like "I have about 0.6 seconds overhead, otherwise I have the same graph as you guys" |
| 09:37:43 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 09:37:50 | <Athas> | The TF code is crap, I have an issue for it. It is something I took from ADBench but there is no way this is as fast as it should be. |
| 09:38:00 | <tomsmeding> | perhaps, but scalar-level AD is in some sense the limit of cleverness in that respect -- it automatically detects and exploits _all_ sparsity! |
| 09:38:13 | <tomsmeding> | heh okay |
| 09:38:47 | <tomsmeding> | also pytorch is like "I'm faster than all you guys but you just need to give me data" |
| 09:38:56 | <Athas> | ski: what about DPH? |
| 09:39:36 | <Athas> | The PyTorch code in ADBench was also crap, but a colleague of mine was so disgusted that he rewrote it, when we needed it for a paper a few years back. |
| 09:39:54 | <tomsmeding> | anyway this is very much a side-track to what I should actually be working on these weeks. But I wanted to get some ideas from you anyway :) |
| 09:39:58 | <tomsmeding> | hah |
| 09:40:11 | <Athas> | No no, I think this is definitely what you should be workign on. Keep up! Don't get distracted! |
| 09:40:19 | <tomsmeding> | it's funny how people put those graphs in papers, but then the underlying implementations are actually kind of crap :P |
| 09:40:41 | <tomsmeding> | well, first I have to revise a journal paper which is due in 2 weeks or so. :P |
| 09:41:25 | <tomsmeding> | it's also in a way unsatisfying. Writing this ad-dual thing is mostly like "this is easy stuff, the interesting research is in tackling harder problems like actually differentiating higher-order code first-class, or as a source-code transformation, or stuff like that" |
| 09:41:37 | <tomsmeding> | "this is trivial application of the stuff we already know" |
| 09:41:51 | <tomsmeding> | but then it ends up, in this particular niche of haskell AD libraries, improving the state of the art by >500x. |
| 09:42:36 | <tomsmeding> | This is at most a workshop talk! |
| 09:43:03 | <tomsmeding> | Real-world impact is not particularly correlated with publication-worthiness |
| 09:45:18 | <ski> | Athas : wondering whether there'd be any hope of integrating it with something like the above |
| 09:45:24 | <tomsmeding> | Athas: do you get those nice plots out of gradbench? |
| 09:45:59 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:46:27 | <tomsmeding> | ski: are you thinking of just the parallelism part, or also the distributed computing part of DPH? (IIRC they had distributed execution over multiple machines as a core design goal) |
| 09:46:42 | <tomsmeding> | in any case, the fact that it doesn't really exist any more makes this a hard proposition :) |
| 09:53:54 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:55:43 | <[exa]> | ski: I was trying to find some such connection before and it doesn't really seem easily. IMO we'd need some very interesting encoding of the array indexes and updates that can be differentiated directly and then reconstructed. Most differentiation formulations I've seen basically deny that. |
| 09:58:38 | → | divya- joins (divya@140.238.251.170) |
| 09:59:53 | divya- | is now known as divya |
| 10:00:20 | <ski> | mainly the parallelism, i suppose, tomsmeding |
| 10:01:10 | <ski> | [exa] : differentiated as in AD, or say as in differential lambda calculus ? |
| 10:02:51 | <[exa]> | ski: as in AD in this case |
| 10:06:07 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 10:06:33 | <Athas> | tomsmeding: yes, those plots are from gradbench (but not fully automated yet). |
| 10:07:48 | <Athas> | ski: the things that didn't work in DPH are dead (mostly the vectorisation transform), but a lot of the other ideas are well and alive, or its successors are. DPH begat Repa, which inspired massiv, which to my knowledge is still good and living. |
| 10:07:54 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 10:08:23 | <ski> | mm, i see |
| 10:08:52 | <Athas> | Accelerate itself is also a DPH spinoff. |
| 10:09:13 | <ski> | Obsidian ? |
| 10:09:58 | <Athas> | No, that came out of a different line of research. |
| 10:10:09 | <ski> | mhm |
| 10:10:10 | <ski> | ([exa] : you mentioning updates (and reconstruction) made me wonder) |
| 10:12:33 | <tomsmeding> | ski: I'm doing my PhD in the group that's currently doing research on Accelerate, so in that sense I'm in the right place :p |
| 10:13:41 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds) |
| 10:14:00 | <ski> | nice :b |
| 10:14:08 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 10:18:26 | × | misterfish quits (~misterfis@h239071.upc-h.chello.nl) (Ping timeout: 252 seconds) |
| 10:19:47 | → | alfiee joins (~alfiee@user/alfiee) |
| 10:21:11 | <[exa]> | ski: the differential lambda calculus is btw not directly related to the datatype differentiation (as with zippers), right? |
| 10:21:49 | <[exa]> | ski: anyway the main thing I took home from the AD currently is that the array indices need some completely different approach before this works automatically in all cases |
| 10:22:24 | [exa] | goes aFfInE TeNsOrS |
| 10:23:32 | <ski> | @type System.IO.Unsafe.unsafePerformIO . Control.Monad.ST.Unsafe.unsafeSTToIO -- "I guess that's called \"runST . unsafeCoerce\"" |
| 10:23:33 | <lambdabot> | ST s c -> c |
| 10:23:35 | <ski> | @type Control.Monad.Primitive.unsafeInlineST |
| 10:23:36 | <lambdabot> | ST s a -> a |
| 10:23:55 | <ski> | [exa] : not afaik |
| 10:24:11 | <Hecate> | morning |
| 10:24:17 | <ski> | moining |
| 10:24:26 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
| 10:25:41 | <tomsmeding> | ski: right, but at that point I'm not sure one can really say "yes, I'm using ST and not IO" :p |
| 10:26:03 | tomsmeding | has a meeting |
| 10:26:20 | × | acidjnk quits (~acidjnk@p200300d6e7283f38a15cd1ba33b15ba0.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 10:26:36 | <[exa]> | ski: interesting construction tho. thanks. :D |
| 10:27:24 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 10:28:15 | × | tromp quits (~textual@2a02:a210:cba:8500:6ddc:c1a9:bc13:1391) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:28:36 | <ski> | hm ? |
| 10:29:26 | <ski> | (the unsafe stuff ?) |
| 10:29:42 | → | misterfish joins (~misterfis@31-161-39-137.biz.kpn.net) |
| 10:31:29 | → | gmg joins (~user@user/gehmehgeh) |
| 10:33:34 | → | __monty__ joins (~toonn@user/toonn) |
| 10:36:51 | → | tromp joins (~textual@2a02:a210:cba:8500:6ddc:c1a9:bc13:1391) |
| 10:41:46 | × | olivial quits (~benjaminl@user/benjaminl) (Ping timeout: 244 seconds) |
| 10:41:50 | → | olivial_ joins (~benjaminl@2601:1c0:847f:9c70:223:24ff:fe66:4370) |
| 10:43:23 | × | Googulator quits (~Googulato@2a01:36d:106:c81:ad7c:ac56:196b:c9a2) (Quit: Client closed) |
| 10:43:39 | → | Googulator joins (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) |
| 10:49:12 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 10:53:33 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds) |
| 11:04:54 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:06:11 | → | alfiee joins (~alfiee@user/alfiee) |
| 11:10:29 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 11:11:19 | × | Googulator quits (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) (Quit: Client closed) |
| 11:11:44 | → | xff0x joins (~xff0x@2405:6580:b080:900:3152:bac6:3fc:3eb6) |
| 11:12:06 | → | Googulator joins (~Googulato@2a01:36d:106:c81:ad7c:ac56:196b:c9a2) |
| 11:12:30 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 11:17:56 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 244 seconds) |
| 11:18:10 | → | acidjnk joins (~acidjnk@p200300d6e7283f38a15cd1ba33b15ba0.dip0.t-ipconnect.de) |
| 11:22:45 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 268 seconds) |
| 11:25:09 | × | eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 252 seconds) |
| 11:28:53 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 11:36:30 | → | merijn joins (~merijn@77.242.116.146) |
| 11:36:38 | × | CiaoSen quits (~Jura@2a02:8071:64e1:7180:4e50:ddff:fe9b:8922) (Ping timeout: 245 seconds) |
| 11:40:35 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 11:43:29 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 11:49:34 | → | sprotte24 joins (~sprotte24@p200300d16f33ea00f98eb0699631b9b8.dip0.t-ipconnect.de) |
| 11:49:59 | → | merijn joins (~merijn@77.242.116.146) |
| 11:51:55 | → | alfiee joins (~alfiee@user/alfiee) |
| 11:53:15 | × | sprotte24 quits (~sprotte24@p200300d16f33ea00f98eb0699631b9b8.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 11:53:19 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 11:56:10 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
| 12:00:05 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 12:03:52 | → | caconym joins (~caconym@user/caconym) |
| 12:05:09 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 12:05:24 | → | califax joins (~califax@user/califx) |
| 12:09:59 | × | aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (Ping timeout: 260 seconds) |
| 12:10:58 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 12:11:22 | × | foul_owl quits (~kerry@94.156.149.93) (Ping timeout: 252 seconds) |
| 12:12:21 | × | ft quits (~ft@p4fc2a610.dip0.t-ipconnect.de) (Quit: leaving) |
| 12:12:59 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 12:13:10 | → | aristid joins (sid1599@id-1599.uxbridge.irccloud.com) |
| 12:15:45 | × | acidjnk quits (~acidjnk@p200300d6e7283f38a15cd1ba33b15ba0.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 12:16:42 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 12:25:38 | → | foul_owl joins (~kerry@94.156.149.92) |
| 12:26:31 | × | bitterx quits (~bitterx@user/bitterx) (Quit: bitterx) |
| 12:26:46 | → | dsrt^ joins (~dsrt@108.192.66.114) |
| 12:26:47 | → | off^ joins (~off@108.192.66.114) |
| 12:26:51 | → | merijn joins (~merijn@77.242.116.146) |
| 12:37:18 | → | alfiee joins (~alfiee@user/alfiee) |
| 12:37:30 | → | jespada joins (~jespada@2800:a4:2292:6100:79b2:449e:bbb0:bfcf) |
| 12:42:04 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 12:50:19 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 13:01:35 | → | comerijn joins (~merijn@77.242.116.146) |
| 13:04:13 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 13:04:54 | × | slack1256 quits (~slack1256@2803:c600:5111:952f:8534:d540:7202:b800) (Remote host closed the connection) |
| 13:05:50 | × | mange quits (~user@user/mange) (Quit: Zzz...) |
| 13:23:22 | → | alfiee joins (~alfiee@user/alfiee) |
| 13:27:37 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
| 13:27:46 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds) |
| 13:33:41 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
| 13:33:49 | → | Miroboru joins (~myrvoll@178-164-114.82.3p.ntebredband.no) |
| 13:37:54 | × | lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 13:38:13 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 13:38:49 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 13:38:53 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 13:38:56 | → | merijn joins (~merijn@77.242.116.146) |
| 13:40:53 | → | acidjnk joins (~acidjnk@p200300d6e7283f3811296adff26f61ec.dip0.t-ipconnect.de) |
| 13:42:48 | × | zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
| 13:43:14 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 13:45:54 | × | misterfish quits (~misterfis@31-161-39-137.biz.kpn.net) (Ping timeout: 248 seconds) |
| 13:53:36 | → | zungi joins (~tory@user/andrewchawk) |
| 13:55:49 | → | weary-traveler joins (~user@user/user363627) |
| 14:03:35 | × | lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 14:04:04 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 14:05:51 | × | ensyde quits (~ensyde@2601:5c6:c200:6dc0::a1d8) (Ping timeout: 244 seconds) |
| 14:08:46 | → | alfiee joins (~alfiee@user/alfiee) |
| 14:10:30 | → | j1n37- joins (~j1n37@user/j1n37) |
| 14:10:30 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 14:11:43 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 268 seconds) |
| 14:12:26 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 14:12:54 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 14:13:06 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 14:13:15 | → | euleritian joins (~euleritia@dynamic-176-006-131-080.176.6.pool.telefonica.de) |
| 14:17:52 | → | Digitteknohippie joins (~user@user/digit) |
| 14:18:58 | × | Digit quits (~user@user/digit) (Ping timeout: 252 seconds) |
| 14:24:19 | → | ft joins (~ft@p3e9bc68d.dip0.t-ipconnect.de) |
| 14:27:39 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 14:30:36 | × | Googulator quits (~Googulato@2a01:36d:106:c81:ad7c:ac56:196b:c9a2) (Quit: Client closed) |
| 14:31:01 | → | Googulator joins (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) |
| 14:34:33 | → | merijn joins (~merijn@77.242.116.146) |
| 14:36:05 | × | alp quits (~alp@2001:861:8ca0:4940:9bfe:6d72:595b:d191) (Ping timeout: 248 seconds) |
| 14:44:44 | × | weary-traveler quits (~user@user/user363627) (Read error: Connection reset by peer) |
| 14:44:59 | → | weary-traveler joins (~user@user/user363627) |
| 14:45:39 | × | Googulator quits (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) (Quit: Client closed) |
| 14:45:56 | → | Googulator joins (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) |
| 14:46:45 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 14:47:10 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 14:52:53 | → | weary-traveler joins (~user@user/user363627) |
| 14:54:30 | → | alfiee joins (~alfiee@user/alfiee) |
| 14:59:15 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
| 15:01:33 | → | glguy joins (glguy@libera/staff/glguy) |
| 15:04:18 | → | Square joins (~Square4@user/square) |
| 15:05:28 | × | jespada quits (~jespada@2800:a4:2292:6100:79b2:449e:bbb0:bfcf) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 15:07:19 | → | jespada joins (~jespada@2800:a4:2292:6100:79b2:449e:bbb0:bfcf) |
| 15:23:27 | Digitteknohippie | is now known as Digit |
| 15:38:59 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 15:40:30 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit) |
| 15:40:34 | → | alfiee joins (~alfiee@user/alfiee) |
| 15:44:45 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 15:52:52 | → | sprotte24 joins (~sprotte24@p200300d16f33ea00547a79769710f53f.dip0.t-ipconnect.de) |
| 15:56:09 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.1) |
| 15:57:05 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 16:13:28 | × | jespada quits (~jespada@2800:a4:2292:6100:79b2:449e:bbb0:bfcf) (Ping timeout: 244 seconds) |
| 16:15:54 | → | jespada joins (~jespada@r167-61-134-196.dialup.adsl.anteldata.net.uy) |
| 16:17:45 | × | acidjnk quits (~acidjnk@p200300d6e7283f3811296adff26f61ec.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 16:26:17 | → | alfiee joins (~alfiee@user/alfiee) |
| 16:30:42 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 16:31:07 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 16:33:21 | → | alp joins (~alp@2001:861:8ca0:4940:d9b2:488b:3c7b:5f95) |
| 16:34:23 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:42:25 | → | misterfish joins (~misterfis@84.53.85.146) |
| 16:53:57 | <Square> | Local functions is such a great thing for readability. But you cannot access them from outside even for tests right? |
| 16:54:23 | <Rembane> | Square: Bingo! |
| 16:55:14 | → | tanky joins (~tanky@user/tanky) |
| 16:56:13 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 245 seconds) |
| 16:56:44 | × | euleritian quits (~euleritia@dynamic-176-006-131-080.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:57:36 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 16:57:59 | → | misterfish joins (~misterfis@84.53.85.146) |
| 16:58:24 | × | zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
| 17:01:10 | → | ashemark joins (~nav@49.205.34.144) |
| 17:02:14 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 17:02:20 | → | zungi joins (~tory@user/andrewchawk) |
| 17:02:35 | × | ashemark quits (~nav@49.205.34.144) (Client Quit) |
| 17:03:00 | → | euleritian joins (~euleritia@dynamic-176-006-131-080.176.6.pool.telefonica.de) |
| 17:03:50 | → | acidjnk joins (~acidjnk@p200300d6e7283f3811296adff26f61ec.dip0.t-ipconnect.de) |
| 17:07:24 | × | zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
| 17:09:06 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
| 17:09:07 | → | zungi joins (~tory@user/andrewchawk) |
| 17:12:02 | → | alfiee joins (~alfiee@user/alfiee) |
| 17:13:32 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 17:13:58 | todi1 | is now known as todi |
| 17:16:31 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
| 17:19:48 | × | euleritian quits (~euleritia@dynamic-176-006-131-080.176.6.pool.telefonica.de) (Ping timeout: 268 seconds) |
| 17:20:21 | → | euleritian joins (~euleritia@dynamic-176-000-139-246.176.0.pool.telefonica.de) |
| 17:23:02 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds) |
| 17:27:08 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 17:31:23 | → | euphores joins (~SASL_euph@user/euphores) |
| 17:33:33 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 17:34:05 | → | Digitteknohippie joins (~user@user/digit) |
| 17:34:34 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 17:34:43 | × | euleritian quits (~euleritia@dynamic-176-000-139-246.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
| 17:35:00 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 17:35:30 | × | Digit quits (~user@user/digit) (Ping timeout: 276 seconds) |
| 17:39:19 | <tomsmeding> | Square: you may want to have a look at https://hackage.haskell.org/package/doctest |
| 17:39:33 | <tomsmeding> | (haven't used it myself, but I've seen other people use it) |
| 17:40:00 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds) |
| 17:41:49 | <tomsmeding> | though from a quick look at the readme it looks rather involved to set up |
| 17:44:22 | → | acidjnk_new joins (~acidjnk@p200300d6e7283f3800c9913f6d25b0a5.dip0.t-ipconnect.de) |
| 17:44:28 | × | acidjnk quits (~acidjnk@p200300d6e7283f3811296adff26f61ec.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 17:50:27 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds) |
| 17:58:25 | → | alfiee joins (~alfiee@user/alfiee) |
| 17:59:54 | × | jle` quits (~jle`@2603:8001:3b00:11:dd38:7882:e75c:4a19) (Ping timeout: 244 seconds) |
| 18:02:37 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 18:04:32 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 18:05:36 | × | zungi quits (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
| 18:07:15 | × | Googulator quits (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) (Quit: Client closed) |
| 18:07:37 | → | Googulator joins (~Googulato@2a01-036d-0106-0c81-ad7c-ac56-196b-c9a2.pool6.digikabel.hu) |
| 18:10:01 | → | tccq joins (~user@user/tccq) |
| 18:11:34 | <carbolymer> | anyone knowledgeable in dbus library here? https://stackoverflow.com/questions/79467506/how-to-set-dbus-interface-property-in-haskell |
| 18:13:04 | → | zungi joins (~tory@user/andrewchawk) |
| 18:14:30 | → | ensyde joins (~ensyde@2601:5c6:c200:6dc0::a1d8) |
| 18:18:44 | × | sim590 quits (~simon@209-15-185-101.resi.cgocable.ca) (Quit: WeeChat 4.5.1) |
| 18:19:26 | × | ensyde quits (~ensyde@2601:5c6:c200:6dc0::a1d8) (Ping timeout: 272 seconds) |
| 18:21:19 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 18:21:42 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 18:22:13 | → | rvalue joins (~rvalue@user/rvalue) |
| 18:31:39 | → | misterfish joins (~misterfis@84.53.85.146) |
| 18:32:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:32:34 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 18:38:45 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 18:44:08 | → | alfiee joins (~alfiee@user/alfiee) |
| 18:44:47 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 18:45:31 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 268 seconds) |
| 18:48:28 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
| 18:50:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:53:20 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 18:55:06 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 18:59:07 | Digitteknohippie | is now known as Digit |
| 19:05:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:05:59 | × | j1n37- quits (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 19:09:46 | → | j1n37 joins (~j1n37@user/j1n37) |
| 19:12:47 | JuanDaugherty | is now known as ColinRobinson |
| 19:13:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 19:15:14 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
| 19:21:12 | × | acidjnk_new quits (~acidjnk@p200300d6e7283f3800c9913f6d25b0a5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 19:22:49 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 19:22:57 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds) |
| 19:23:55 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:25:07 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 19:28:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 19:29:54 | × | Flow quits (~none@gentoo/developer/flow) (Ping timeout: 276 seconds) |
| 19:30:33 | → | alfiee joins (~alfiee@user/alfiee) |
| 19:34:36 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
| 19:34:58 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
| 19:39:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:43:30 | → | Flow joins (~none@gentoo/developer/flow) |
| 19:43:33 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 19:44:21 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
| 19:45:18 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 19:46:24 | → | alx741 joins (~alx741@186.33.188.229) |
| 19:49:30 | × | alx741 quits (~alx741@186.33.188.229) (Client Quit) |
| 19:51:42 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 19:53:24 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 19:54:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:57:27 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 19:57:41 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds) |
| 19:57:41 | × | ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
| 19:59:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 19:59:22 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 20:00:00 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 20:00:41 | → | caconym joins (~caconym@user/caconym) |
| 20:02:14 | → | pavonia joins (~user@user/siracusa) |
| 20:04:51 | × | jespada quits (~jespada@r167-61-134-196.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 20:09:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:10:47 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
| 20:10:59 | → | cheater_ joins (~Username@user/cheater) |
| 20:12:05 | × | cheater quits (~Username@user/cheater) (Ping timeout: 248 seconds) |
| 20:12:14 | cheater_ | is now known as cheater |
| 20:15:57 | → | alfiee joins (~alfiee@user/alfiee) |
| 20:16:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 20:20:08 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 20:21:24 | → | acidjnk_new joins (~acidjnk@p200300d6e7283f3800c9913f6d25b0a5.dip0.t-ipconnect.de) |
| 20:27:48 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:28:40 | → | Sgeo_ joins (~Sgeo@user/sgeo) |
| 20:29:03 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 20:31:52 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 252 seconds) |
| 20:32:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 20:43:11 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:45:49 | × | jcarpenter2 quits (~lol@96.78.87.197) (Read error: Connection reset by peer) |
| 20:45:54 | → | lol_ joins (~lol@2603:3016:1e01:b960:5cab:e8ae:c3b1:72bf) |
| 20:48:02 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 20:50:42 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 20:50:53 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 20:51:03 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit) |
| 20:57:15 | × | michalz quits (~michalz@185.246.207.203) (Remote host closed the connection) |
| 20:58:57 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:02:20 | → | alfiee joins (~alfiee@user/alfiee) |
| 21:03:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 21:03:35 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 21:04:06 | → | misterfish joins (~misterfis@84.53.85.146) |
| 21:04:44 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 272 seconds) |
| 21:06:12 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 21:06:25 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
| 21:10:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:14:10 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
| 21:14:41 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 244 seconds) |
| 21:15:30 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 21:16:37 | → | misterfish joins (~misterfis@84.53.85.146) |
| 21:16:38 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 21:16:58 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit) |
| 21:19:32 | × | tromp quits (~textual@2a02:a210:cba:8500:6ddc:c1a9:bc13:1391) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:22:25 | × | tabaqui1 quits (~root@87.200.129.102) (Ping timeout: 248 seconds) |
| 21:22:46 | <dminuoso> | What's with this behavior of cross posting simultaneously in different platforms? |
| 21:23:11 | <dminuoso> | It seems as if this is some attempt at soliciting the fastest possible response, it feels rude. |
| 21:24:13 | <geekosaur> | I don't see a problem with it tbh |
| 21:24:17 | × | dsrt^ quits (~dsrt@108.192.66.114) (Ping timeout: 252 seconds) |
| 21:24:43 | <geekosaur> | less "soliciting the fastest possible response" and more "dealing with a balkanized userbase" |
| 21:24:57 | → | dsrt^ joins (~dsrt@108.192.66.114) |
| 21:25:20 | → | tromp joins (~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b) |
| 21:25:51 | <geekosaur> | SO, Reddit, Discourse, IRC, Matrix, Discord… |
| 21:26:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:26:23 | <geekosaur> | (and I think there are multiple Discord servers with Haskell rooms) |
| 21:28:29 | <monochrom> | My counter-measure, when I bother to, is to provide conflicting answers across the platforms. >:) |
| 21:30:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 21:31:33 | × | zungi quits (~tory@user/andrewchawk) (Remote host closed the connection) |
| 21:32:18 | <haskellbridge> | <sm> I agree with both sides.. sometimes cc’ing is necessary/effective but it can be overdone |
| 21:32:20 | <monochrom> | And when I don't bother to, I rest assured that conflicting answers from multiple platforms will happen naturally anyway! |
| 21:32:34 | → | zungi joins (~tory@user/andrewchawk) |
| 21:33:05 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 21:33:24 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit) |
| 21:33:29 | <haskellbridge> | <sm> For a non-urgent support request I’ll usually at least wait a little before trying another channel |
| 21:34:52 | <haskellbridge> | <sm> Then again irc and forums are so distinct there’s no real harm |
| 21:35:01 | <geekosaur> | yes, but I also differentiate between lower-latency/lower-retention (even with history, how far back are you willing to scroll?) venues and higher-overhead/ … that |
| 21:35:23 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 21:41:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:43:13 | × | tromp quits (~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:44:37 | → | tromp joins (~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b) |
| 21:45:56 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 21:48:45 | → | alfiee joins (~alfiee@user/alfiee) |
| 21:52:53 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 21:55:33 | → | weary-traveler joins (~user@user/user363627) |
| 21:56:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:00:38 | → | tabaqui1 joins (~root@87.200.129.102) |
| 22:03:28 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 22:03:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 22:07:42 | × | tromp quits (~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:09:44 | → | tromp joins (~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b) |
| 22:14:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:15:54 | × | tabaqui1 quits (~root@87.200.129.102) (Ping timeout: 260 seconds) |
| 22:16:32 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 22:16:59 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:19:40 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 22:21:06 | × | tromp quits (~textual@2a02:a210:cba:8500:b949:287e:6bbd:873b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:30:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:33:24 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 272 seconds) |
| 22:35:04 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 22:36:08 | → | alfiee joins (~alfiee@user/alfiee) |
| 22:40:34 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 22:46:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:50:57 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 22:52:37 | → | j1n37- joins (~j1n37@user/j1n37) |
| 22:53:46 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 22:56:19 | × | foul_owl quits (~kerry@94.156.149.92) (Ping timeout: 260 seconds) |
| 22:58:49 | <hololeap> | I'm trying to parse a string with parsec that looks like "this:that,black:white" into [(String,String)] |
| 22:59:12 | <hololeap> | I started with: sepBy anyChar (char ',') |
| 22:59:32 | <hololeap> | and I'm not sure how to then split the substrings on (char ':') |
| 23:00:53 | <tomsmeding> | hololeap: sepBy ((,) <$> manyTill (char ':') <*> manyTill (lookAhead (oneOf ":," <|> eof))) (char ',') ? |
| 23:01:24 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:01:26 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 23:02:18 | <hololeap> | hm, you would think with Parsec being a monad, it could be done with: sepBy anyChar (char ',') >>= mapM (...) |
| 23:02:28 | <tomsmeding> | anyChar parses _one_ character |
| 23:02:55 | <hololeap> | right, s/anyChar/(many anyChar)/ |
| 23:03:04 | <tomsmeding> | also, while you can process the result of parsing later using (>>=), parsec always parses _from_ the input string |
| 23:03:13 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
| 23:03:13 | ljdarj1 | is now known as ljdarj |
| 23:03:56 | <tomsmeding> | you can't "re-inject" some arbitrary string into the source to be parsed |
| 23:04:22 | <hololeap> | I see |
| 23:05:03 | <tomsmeding> | of course you technically can just start a new parser for that string, and you can also `setInput`, but typically both are a bad idea |
| 23:05:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 23:06:24 | <tomsmeding> | hololeap: also, that "sepBy (many anyChar) (char ',')" wouldn't even work: the `many anyChar` would consume the entire input from here, and because it consumed input, it would count as "succeeded" which means it doesn't backtrack |
| 23:07:16 | <tomsmeding> | % import Text.Parsec |
| 23:07:16 | <yahb2> | <no output> |
| 23:07:24 | <tomsmeding> | % parse (sepBy (many anyChar) (char ',')) "<stdin>" "abc,def,ghi" |
| 23:07:24 | <yahb2> | Right ["abc,def,ghi"] |
| 23:07:41 | <tomsmeding> | hm, let's see if I can whiteboard code |
| 23:07:56 | <tomsmeding> | % parse (sepBy ((,) <$> manyTill (char ':') <*> manyTill (lookAhead (oneOf ":," <|> eof))) (char ',')) "<stdin>" "this:that,black:white" |
| 23:07:56 | <yahb2> | <interactive>:287:23: error: [GHC-83865] ; • Couldn't match expected type: ParsecT ; String () GHC.Internal.Data.Functor.Identity.Identity a1 ; ... |
| 23:08:07 | <tomsmeding> | evidently not! |
| 23:08:23 | <tomsmeding> | % parse (sepBy ((,) <$> manyTill anyChar (char ':') <*> manyTill anyChar (lookAhead (oneOf ":," <|> eof))) (char ',')) "<stdin>" "this:that,black:white" |
| 23:08:23 | <yahb2> | <interactive>:289:99: error: [GHC-83865] ; • Couldn't match type ‘()’ with ‘Char’ ; Expected: ParsecT ; String () GHC.Internal.Data.Functor.Identity.Identity Char ; ... |
| 23:08:26 | <monochrom> | Yikes, abuse of lookAhead again. |
| 23:08:50 | <monochrom> | many (satisfy (/= ',')) pretty please |
| 23:08:59 | <tomsmeding> | I guess |
| 23:09:49 | <monochrom> | What you should really lament, if you like, is that parsec is not regex, so whereas in regex you just have to say ".*,.*", you simply can't do that in parsec. |
| 23:10:09 | <tomsmeding> | % parse (sepBy ((,) <$> (many (satisfy (/= ':')) <* char ':') <*> many (satisfy (`notElem` ":,"))) (char ',')) "<stdin>" "this:that,black:white" |
| 23:10:09 | <yahb2> | Right [("this","that"),("black","white")] |
| 23:10:20 | <tomsmeding> | hololeap: there |
| 23:10:29 | → | foul_owl joins (~kerry@174-21-138-88.tukw.qwest.net) |
| 23:10:32 | <hololeap> | cool, thanks :) |
| 23:10:43 | <tomsmeding> | monochrom: thanks, it's been too long since I parsec'd, this is also nicer to write |
| 23:10:44 | <monochrom> | BTW the "convenience" of regex allowing that is avenged by the fact that such high non-determinism causes exp-time or exp-space. |
| 23:10:57 | <hololeap> | although I wonder if it would be more readable to just do this with span from Data.List |
| 23:11:37 | <tomsmeding> | if you write out that <$> <*> sequence as a do-block, it gets much more readable |
| 23:11:39 | <monochrom> | Oh, the split package has tools for that too. |
| 23:12:12 | <monochrom> | You can write your own recursion over span. But the split package does that for you. |
| 23:12:40 | <tomsmeding> | hololeap: https://paste.tomsmeding.com/QHaiHEVF |
| 23:12:43 | <monochrom> | Although, I confess that I want 0 dependencies so I wrote my own recursion :) |
| 23:12:53 | <tomsmeding> | but yes, a splitting function is perhaps nicer here |
| 23:16:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:20:18 | × | rvalue quits (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in) |
| 23:21:03 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 23:23:46 | → | alfiee joins (~alfiee@user/alfiee) |
| 23:28:14 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 23:32:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:36:46 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:37:49 | → | rvalue joins (~rvalue@user/rvalue) |
| 23:38:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 23:50:12 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:51:13 | → | src joins (~src@user/src) |
| 23:55:05 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 23:58:51 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:59:26 | <EvanR> | is parsec more or less powerful than regex |
| 23:59:41 | <EvanR> | does it hinge on whether unlimited lookahead is regex |
All times are in UTC on 2025-02-25.