Logs on 2025-02-03 (liberachat/#haskell)
| 00:02:48 | × | remedan quits (~remedan@62.245.108.153) (Ping timeout: 276 seconds) |
| 00:06:07 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
| 00:06:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:10:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 00:18:20 | → | alfiee joins (~alfiee@user/alfiee) |
| 00:21:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:22:35 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 00:26:26 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 00:28:00 | × | supercode quits (~supercode@user/supercode) (Quit: Client closed) |
| 00:29:34 | × | xff0x quits (~xff0x@2405:6580:b080:900:9526:2be3:6fc8:68b2) (Ping timeout: 260 seconds) |
| 00:37:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:41:57 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 00:49:36 | × | erdem quits (~erdem@user/erdem) (Quit: ZNC 1.9.1 - https://znc.in) |
| 00:52:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:56:03 | → | weary-traveler joins (~user@user/user363627) |
| 00:56:54 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 00:57:19 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:59:48 | → | zero joins (~z@user/zero) |
| 01:00:00 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 01:02:27 | × | sprotte24 quits (~sprotte24@p200300d16f1f590058a60236c8af074f.dip0.t-ipconnect.de) (Quit: Leaving) |
| 01:06:03 | → | alfiee joins (~alfiee@user/alfiee) |
| 01:10:09 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
| 01:10:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:15:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 01:16:52 | × | otto_s quits (~user@p5b0441a3.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:18:39 | → | otto_s joins (~user@p4ff27d2f.dip0.t-ipconnect.de) |
| 01:20:39 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:23:09 | zero | is now known as yin |
| 01:26:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:31:12 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 01:31:39 | × | cheater quits (~Username@user/cheater) (Remote host closed the connection) |
| 01:32:30 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:34:03 | → | califax joins (~califax@user/califx) |
| 01:37:23 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 01:37:40 | → | cheater joins (~Username@user/cheater) |
| 01:39:12 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
| 01:41:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:44:02 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 01:45:50 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 01:53:48 | → | alfiee joins (~alfiee@user/alfiee) |
| 01:55:39 | × | acidjnk_new3 quits (~acidjnk@p200300d6e7283f65c4b195c3583eb276.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:56:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:57:56 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 02:01:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 02:10:04 | × | remmie quits (ianremsen@tilde.team) (Quit: ZNC 1.8.1 - https://znc.in) |
| 02:12:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:16:38 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 02:18:22 | → | remmie joins (ianremsen@tilde.team) |
| 02:23:52 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 02:27:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:34:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 02:40:12 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 02:42:32 | → | alfiee joins (~alfiee@user/alfiee) |
| 02:45:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:46:25 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 02:47:14 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 02:50:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 03:01:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:05:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:16:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:20:38 | → | monochrm joins (trebla@216.138.220.146) |
| 03:20:39 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 260 seconds) |
| 03:20:53 | monochrm | is now known as monochrom |
| 03:21:42 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 03:23:59 | × | misterfish quits (~misterfis@22.1-12-147.kabelnoord.net) (Ping timeout: 260 seconds) |
| 03:24:35 | → | gorignak joins (~gorignak@user/gorignak) |
| 03:30:56 | → | alfiee joins (~alfiee@user/alfiee) |
| 03:31:36 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:35:17 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
| 03:35:21 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 276 seconds) |
| 03:36:00 | → | monochrom joins (trebla@216.138.220.146) |
| 03:36:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 03:42:36 | → | tavare joins (~tavare@user/tavare) |
| 03:46:13 | × | m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 245 seconds) |
| 03:46:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:48:07 | → | ensyde joins (~ensyde@2601:5c6:c200:6dc0::9939) |
| 03:49:12 | → | monochrm joins (trebla@216.138.220.146) |
| 03:50:49 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 260 seconds) |
| 03:50:49 | monochrm | is now known as monochrom |
| 03:51:42 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 03:59:07 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 04:02:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:02:58 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:09:28 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:11:31 | × | tavare quits (~tavare@user/tavare) (Remote host closed the connection) |
| 04:12:09 | → | monochrm joins (trebla@216.138.220.146) |
| 04:13:37 | × | m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 248 seconds) |
| 04:13:38 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 248 seconds) |
| 04:13:38 | monochrm | is now known as monochrom |
| 04:14:01 | → | distopico joins (~cerdolibr@xvm-111-150.dc2.ghst.net) |
| 04:17:17 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 04:19:39 | → | alfiee joins (~alfiee@user/alfiee) |
| 04:20:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:22:50 | × | aforemny quits (~aforemny@2001:9e8:6cc0:e00:915f:b0b2:9520:8911) (Ping timeout: 272 seconds) |
| 04:22:56 | → | aforemny_ joins (~aforemny@i577B1307.versanet.de) |
| 04:24:14 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 04:25:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 04:31:13 | × | manwithluck quits (~manwithlu@194.177.28.164) (Ping timeout: 245 seconds) |
| 04:31:58 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 04:32:10 | → | manwithluck joins (~manwithlu@194.177.28.164) |
| 04:36:09 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:37:51 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 04:40:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 04:41:49 | <sim590> | I just uploaded my first candidate for a Haskell package https://hackage.haskell.org/package/opendht-hs-0.1.0.0/candidate. If anyone has suggestions, I'm all ears. I had, however, a question: why isn't my markdown haskell code block highlighted with syntax highlighting? I took a look at an example hackage pacakage which has a README file and has syntax highlight in his code block: |
| 04:41:51 | <sim590> | https://hackage.haskell.org/package/highlight-1.0.0.1. Am I doing something wrong or is it just not possible to highlight Haskell code? I tried both with ```hs and ```haskell. |
| 04:47:11 | × | ensyde quits (~ensyde@2601:5c6:c200:6dc0::9939) (Quit: WeeChat 4.5.1) |
| 04:51:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:51:36 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 04:52:54 | <int-e> | Hmm it looks like the final page loads `prismjs` but the preview doesn't. https://hackage.haskell.org/package/http-client-tls uses ```haskell |
| 04:53:47 | <int-e> | (that was the first package from my browser history that had syntax highlighted example code) |
| 04:57:40 | → | dysthesis joins (~dysthesis@user/dysthesis) |
| 04:59:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 05:01:52 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 05:05:40 | × | m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 252 seconds) |
| 05:06:33 | × | prasad quits (~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net) (Ping timeout: 246 seconds) |
| 05:07:24 | → | alfiee joins (~alfiee@user/alfiee) |
| 05:08:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:08:52 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 05:11:45 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
| 05:11:46 | × | myxos quits (~myxos@syn-065-028-251-121.res.spectrum.com) (Ping timeout: 248 seconds) |
| 05:12:28 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 05:12:57 | → | myxos joins (~myxos@syn-065-028-251-121.res.spectrum.com) |
| 05:13:22 | × | JimL quits (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 05:14:34 | → | michalz joins (~michalz@185.246.207.193) |
| 05:15:41 | → | m5zs7k joins (aquares@web10.mydevil.net) |
| 05:16:50 | → | JimL joins (~quassel@89.162.16.26) |
| 05:23:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:28:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 05:30:05 | × | alp quits (~alp@2001:861:8ca0:4940:4932:ede2:9c95:5852) (Remote host closed the connection) |
| 05:35:50 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:39:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:45:34 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 05:55:09 | → | alfiee joins (~alfiee@user/alfiee) |
| 05:57:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:59:14 | <sim590> | int-e: oh, so it's only because of the candidate page layout that I don't see the highlight. When I'll publish it, i'll see the highlighting, right ? |
| 05:59:44 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
| 06:01:42 | <sim590> | Looking at the page you sent, that's how I interpret it. That's great. Thanks for the clarification! |
| 06:02:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 06:03:50 | <int-e> | sim590: That's what it looks like to me. |
| 06:05:05 | → | CiaoSen joins (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) |
| 06:06:19 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds) |
| 06:07:48 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 06:07:51 | → | tabaqui1 joins (~root@87.200.129.102) |
| 06:12:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:14:42 | × | ell quits (~ellie@user/ellie) (Quit: Leaving) |
| 06:16:24 | → | ell joins (~ellie@user/ellie) |
| 06:17:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 06:17:32 | → | takuan joins (~takuan@d8D86B601.access.telenet.be) |
| 06:26:17 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Read error: Connection reset by peer) |
| 06:27:49 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:29:09 | → | Square2 joins (~Square4@user/square) |
| 06:32:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 06:33:18 | × | Square quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 06:35:41 | × | euleritian quits (~euleritia@77.23.250.232) (Ping timeout: 244 seconds) |
| 06:36:05 | × | sabathan quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Ping timeout: 248 seconds) |
| 06:36:53 | → | sabathan joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
| 06:39:36 | → | euleritian joins (~euleritia@dynamic-176-001-212-124.176.1.pool.telefonica.de) |
| 06:43:12 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:43:13 | → | alfiee joins (~alfiee@user/alfiee) |
| 06:47:34 | × | sabathan quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Ping timeout: 244 seconds) |
| 06:47:34 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 06:48:09 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 06:50:37 | → | alp joins (~alp@2001:861:8ca0:4940:c78a:20e1:b983:926e) |
| 06:52:29 | → | sabathan joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
| 06:55:56 | × | ft quits (~ft@p3e9bcd97.dip0.t-ipconnect.de) (Quit: leaving) |
| 06:58:24 | → | chele joins (~chele@user/chele) |
| 06:58:34 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:02:53 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 07:09:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:13:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 07:14:17 | → | urdh joins (~urdh@user/urdh) |
| 07:24:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:29:45 | → | misterfish joins (~misterfis@22.1-12-147.kabelnoord.net) |
| 07:30:57 | → | alfiee joins (~alfiee@user/alfiee) |
| 07:30:57 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 07:35:06 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
| 07:36:08 | → | kuribas joins (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) |
| 07:36:11 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 07:38:39 | → | erdem joins (~erdem@user/erdem) |
| 07:41:48 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:42:31 | × | kuribas quits (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3)) |
| 07:42:45 | → | kuribas joins (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) |
| 07:46:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 07:47:37 | × | erdem quits (~erdem@user/erdem) (Quit: ZNC 1.9.1 - https://znc.in) |
| 07:57:11 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:00:03 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 08:01:39 | → | caconym joins (~caconym@user/caconym) |
| 08:02:30 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 08:04:01 | × | CiaoSen quits (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds) |
| 08:04:27 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
| 08:05:04 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:18:41 | → | alfiee joins (~alfiee@user/alfiee) |
| 08:19:47 | <kuribas> | Is there any work on implementing type inference algorithms in prolog or logic languages (minikanren)? |
| 08:20:22 | <kuribas> | It seems to me that inference rules lend themselves quite well towards logic programming, but I don't find a lot about this. |
| 08:20:28 | <kuribas> | Maybe because it is inefficient? |
| 08:23:19 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
| 08:24:24 | × | rachelambda8 quits (~rachelamb@cust-95-80-25-71.csbnet.se) (Ping timeout: 260 seconds) |
| 08:27:23 | × | dysthesis quits (~dysthesis@user/dysthesis) (Remote host closed the connection) |
| 08:27:55 | <kuribas> | Also, prolog doesn't have occurs check. |
| 08:30:03 | <tomsmeding> | simple prolog rules without cut can be directly translated to TeX inference rules with nothing more than a few regexes, but I'm not sure about the other way round |
| 08:31:37 | → | rachelambda8 joins (~rachelamb@cust-95-80-25-71.csbnet.se) |
| 08:32:57 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:34:16 | → | CiaoSen joins (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) |
| 08:35:57 | <kuribas> | tomsmeding: I want to write them as an inductive data family in idris, then use elaborator reflection to translate them automatically. |
| 08:36:12 | <kuribas> | Maybe a simple scheme/clojure macro to make it look nicer. |
| 08:37:51 | <kuribas> | tomsmeding: I am just surprised, because it seems much easier to prove right than a full blown algorithm that includes logic variables and unification. |
| 08:38:11 | <kuribas> | Of course, it doesn't prove the underlying logic system correct, but I don't really care about that. |
| 08:38:12 | <tomsmeding> | if you can indeed express them very naturally in the logic language :) |
| 08:39:03 | <tomsmeding> | if it turns out that the logic language is not quite expressive enough to do what you want and you end up needing to work around that, I'm not sure the result will really be much simpler than a straight implementation in a regular (functional) language |
| 08:39:23 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 08:42:25 | → | drdo6 joins (~drdo@bl9-110-63.dsl.telepac.pt) |
| 08:42:26 | → | merijn joins (~merijn@77.242.116.146) |
| 08:42:48 | <kuribas> | tomsmeding: The type becomes the relation proposition, and the values the dependencies. |
| 08:43:45 | × | drdo quits (~drdo@bl9-110-63.dsl.telepac.pt) (Ping timeout: 252 seconds) |
| 08:43:46 | drdo6 | is now known as drdo |
| 08:44:00 | <kuribas> | tomsmeding: it seems quite straigtforward. |
| 08:44:11 | <kuribas> | Just basic logic relations, I don't see what more I will need. |
| 08:44:12 | <tomsmeding> | you were already worrying about the occurs check above |
| 08:44:41 | <kuribas> | Right :) If I use minikanren or core.logic, then the occurs check is on by default. |
| 08:45:33 | <kuribas> | oh, there is even kanren in rust. |
| 08:45:43 | <tomsmeding> | also it depends a little bit on what type system you're implementing, I think. If you look at a resource-linear type system, you have rules like: {A |- t1 : a -> b B |- t2 : a} / {A, B |- t1 t2 : b} |
| 08:45:53 | <tomsmeding> | indicating the horizontal bar with '/' |
| 08:46:13 | <tomsmeding> | this types function application; the point is that you need to partition the environment over the two subexpressions |
| 08:46:32 | <tomsmeding> | and you're allowed to (implicitly in the rule) reorder the environment arbitrarily before said partitioning |
| 08:47:05 | <tomsmeding> | on the other hand, perhaps this just works perfectly fine in a logic system |
| 08:48:06 | <tomsmeding> | (if you want to see the whole type system: Fig 2 + Fig 3 from https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=24c850390fba27fc6f3241cb34ce7bc6f3765627 ) |
| 08:48:36 | × | euleritian quits (~euleritia@dynamic-176-001-212-124.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:48:43 | <kuribas> | Right, but then the context is part of the relation. |
| 08:48:43 | <kuribas> | Maybe using a "merge" relation to merge contexts. |
| 08:48:43 | × | kuribas quits (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 08:48:54 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 08:48:57 | → | kuribas joins (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) |
| 08:56:24 | × | alp quits (~alp@2001:861:8ca0:4940:c78a:20e1:b983:926e) (Remote host closed the connection) |
| 09:00:33 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:03:04 | × | xstill_ quits (xstill@fimu/xstill) (Ping timeout: 260 seconds) |
| 09:06:25 | → | alfiee joins (~alfiee@user/alfiee) |
| 09:09:11 | → | __monty__ joins (~toonn@user/toonn) |
| 09:10:42 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 09:11:52 | → | fp1 joins (~Thunderbi@2001:708:20:1406::10c5) |
| 09:12:52 | × | xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 09:13:18 | → | xacktm joins (xacktm@user/xacktm) |
| 09:18:13 | → | xstill_ joins (xstill@fimu/xstill) |
| 09:28:53 | × | xstill_ quits (xstill@fimu/xstill) (Ping timeout: 248 seconds) |
| 09:34:08 | → | xstill_ joins (xstill@fimu/xstill) |
| 09:39:01 | × | fp1 quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 248 seconds) |
| 09:40:47 | → | acidjnk_new3 joins (~acidjnk@p200300d6e7283f21dc911a675e4b1045.dip0.t-ipconnect.de) |
| 09:54:30 | → | alfiee joins (~alfiee@user/alfiee) |
| 09:55:42 | × | acidjnk_new3 quits (~acidjnk@p200300d6e7283f21dc911a675e4b1045.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 09:56:07 | → | acidjnk_new3 joins (~acidjnk@p200300d6e7283f21dc911a675e4b1045.dip0.t-ipconnect.de) |
| 09:58:41 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
| 10:01:32 | → | alp joins (~alp@2001:861:8ca0:4940:c78a:20e1:b983:926e) |
| 10:04:07 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
| 10:13:02 | → | sprotte24 joins (~sprotte24@p200300d16f26a80008f1d39836015ac5.dip0.t-ipconnect.de) |
| 10:15:05 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 10:16:22 | → | merijn joins (~merijn@77.242.116.146) |
| 10:28:14 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
| 10:40:49 | × | CiaoSen quits (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds) |
| 10:42:35 | → | alfiee joins (~alfiee@user/alfiee) |
| 10:46:45 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
| 10:47:12 | × | sreaming quits (~screaming@37.48.95.216) (Quit: Ping timeout (120 seconds)) |
| 10:47:27 | → | sreaming joins (~screaming@37.48.95.216) |
| 10:48:02 | → | monochrm joins (trebla@216.138.220.146) |
| 10:48:43 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 10:49:45 | → | kuribas` joins (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) |
| 10:49:53 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 248 seconds) |
| 10:49:53 | monochrm | is now known as monochrom |
| 10:50:24 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 10:56:50 | → | monochrm joins (trebla@216.138.220.146) |
| 10:58:00 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 276 seconds) |
| 11:00:12 | → | monochrom joins (trebla@216.138.220.146) |
| 11:01:42 | × | monochrm quits (trebla@216.138.220.146) (Ping timeout: 252 seconds) |
| 11:03:37 | → | rachelambda89 joins (~rachelamb@cust-95-80-25-71.csbnet.se) |
| 11:04:26 | → | xstill_8 joins (xstill@fimu/xstill) |
| 11:04:32 | × | xstill_ quits (xstill@fimu/xstill) (Quit: Ping timeout (120 seconds)) |
| 11:04:34 | xstill_8 | is now known as xstill_ |
| 11:05:08 | × | agent314 quits (~quassel@146.70.172.177) (Quit: No Ping reply in 180 seconds.) |
| 11:05:19 | × | rachelambda8 quits (~rachelamb@cust-95-80-25-71.csbnet.se) (Read error: Connection reset by peer) |
| 11:05:19 | rachelambda89 | is now known as rachelambda8 |
| 11:06:33 | → | agent314 joins (~quassel@146.70.172.177) |
| 11:19:58 | × | kuribas quits (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3)) |
| 11:21:40 | → | sarna joins (~sarna@d168-237.icpnet.pl) |
| 11:23:51 | → | xff0x joins (~xff0x@2405:6580:b080:900:3608:a9f8:25ac:5469) |
| 11:25:48 | × | mange quits (~user@user/mange) (Remote host closed the connection) |
| 11:29:16 | → | CiaoSen joins (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) |
| 11:29:30 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 11:30:19 | × | fmira quits (~user@user/fmira) (Remote host closed the connection) |
| 11:30:39 | → | alfiee joins (~alfiee@user/alfiee) |
| 11:30:48 | → | fmira joins (~user@user/fmira) |
| 11:34:42 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
| 11:36:51 | → | mreh joins (~matthew@host86-128-2-112.range86-128.btcentralplus.com) |
| 11:40:53 | → | Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi) |
| 11:47:31 | × | CiaoSen quits (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) (Ping timeout: 252 seconds) |
| 11:50:39 | <mreh> | is there a way to turn a Addr# into a Ptr? |
| 11:51:17 | <mreh> | or `UArray i a` into a `Ptr a` |
| 11:55:09 | × | euphores quits (~SASL_euph@user/euphores) (Ping timeout: 260 seconds) |
| 11:57:04 | <int-e> | :t GHC.Exts.Ptr |
| 11:57:04 | <lambdabot> | GHC.Prim.Addr# -> GHC.Ptr.Ptr a |
| 11:57:31 | <int-e> | make sure the array is frozen if you want to do this |
| 11:57:43 | <int-e> | err |
| 11:58:25 | <mreh> | int-e: ah, I missed that, thanks |
| 11:58:29 | <int-e> | pinned is the point |
| 11:59:43 | <int-e> | (So you probably shouldn't do that for an UArray because you have no control over whether the underlying ByteAray# is pinned or not. If it's not pinned, GCs can move it.) |
| 12:00:49 | <int-e> | (And when you're writing Haskell code, GC can happen essentially anywhere.) |
| 12:01:59 | → | euphores joins (~SASL_euph@user/euphores) |
| 12:02:07 | <mreh> | hmm, yeah |
| 12:03:02 | <mreh> | I need to a lot of inplace updates to improve the performance of a TGA parser |
| 12:03:17 | <mreh> | and then spit it up into a Vulkan buffer |
| 12:03:33 | <mreh> | so I figured STUArray was the way to go |
| 12:06:09 | → | SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky) |
| 12:09:00 | → | monochrm joins (trebla@216.138.220.146) |
| 12:10:38 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds) |
| 12:10:38 | monochrm | is now known as monochrom |
| 12:13:20 | → | CiaoSen joins (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) |
| 12:19:03 | <int-e> | mreh: if this is just at the FFI boundary, GHC has an extension to pass ByteArray# variants as pointers, so you don't have to convert to Addr# or Ptr a at all: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/ffi.html#unlifted-ffi-types |
| 12:20:24 | → | alfiee joins (~alfiee@user/alfiee) |
| 12:22:11 | <mreh> | int-e: It's a little above the FFI, I'm using Vulkan bindings someone else wrote. |
| 12:23:04 | <mreh> | ...which give you a `Ptr a` for a chunk of mapped memory for use in buffers |
| 12:23:17 | <mreh> | there might be a lower level API, just checking |
| 12:24:34 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 12:28:13 | <smiesner> | what is Hydra exactly? https://hackage.haskell.org/package/hydra. What do I transform with it? models? meta models? |
| 12:28:37 | <int-e> | Ah. Hrm. I'd think the low-level API is Storable. Maybe Data.Vector.Storable.Mutable is a good higher level abstraction for your purposes? |
| 12:28:44 | <int-e> | mreh: ^ |
| 12:29:53 | <lxsameer> | is there any way to write a polymorphic function like foo :: a -> Text but limit a to only couple of types? |
| 12:30:20 | <mauke> | what, like show? |
| 12:31:24 | <lxsameer> | mauke: I have two type A and B, I want foo to accept either of them as input |
| 12:31:28 | <mreh> | int-e: I guess I'm trying to avoid doing allocations for every pixel |
| 12:31:59 | <mreh> | lxsameer: Multiparameter type class? |
| 12:32:01 | <int-e> | mreh: sure, that's why you want to use ST (or IO) |
| 12:32:12 | <int-e> | mreh: and mutable arrays of vectors |
| 12:32:29 | <lxsameer> | mreh: maybe. thank you |
| 12:32:38 | <mauke> | is that a yes or a no? |
| 12:33:17 | <lxsameer> | mauke: is that for me? |
| 12:34:54 | <mreh> | int-e: I immediately went to unboxed arrays, for some reason, but this is a good idea |
| 12:34:59 | <mreh> | thanks |
| 12:35:26 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out) |
| 12:35:40 | → | rvalue- joins (~rvalue@user/rvalue) |
| 12:36:33 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 248 seconds) |
| 12:37:24 | <mreh> | if ST is deterministic what does Data-Vector-Storable-Mutable.new do with unitialised memory? |
| 12:37:51 | <merijn> | mreh: Crash, presumably :p |
| 12:38:57 | <merijn> | And/or return garbage |
| 12:39:35 | <mreh> | apparently storables have a zero |
| 12:40:19 | <int-e> | mreh: it initializes all bytes to 0, https://hackage.haskell.org/package/vector-0.13.2.0/docs/src/Data.Vector.Storable.Mutable.html#storableZero |
| 12:40:21 | <mreh> | it doesn't matter, I'm going to write to every element, thanks everyone |
| 12:40:32 | <mreh> | int-e: yeah, just trying to grok that now |
| 12:40:34 | <mreh> | thanks again! |
| 12:40:36 | <int-e> | there's unsafeNew that skips that step |
| 12:40:45 | <mreh> | oh, handy |
| 12:40:47 | <int-e> | and it's unsafe precisely because of that |
| 12:44:17 | rvalue- | is now known as rvalue |
| 12:44:34 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 12:46:32 | → | merijn joins (~merijn@77.242.116.146) |
| 13:08:28 | → | alfiee joins (~alfiee@user/alfiee) |
| 13:12:35 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 13:13:29 | × | sprotte24 quits (~sprotte24@p200300d16f26a80008f1d39836015ac5.dip0.t-ipconnect.de) (Quit: Leaving) |
| 13:13:34 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
| 13:24:31 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 13:37:25 | × | Square2 quits (~Square4@user/square) (Ping timeout: 248 seconds) |
| 13:49:34 | × | tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 265 seconds) |
| 13:49:38 | → | tnt2 joins (~Thunderbi@user/tnt1) |
| 13:51:56 | tnt2 | is now known as tnt1 |
| 13:55:42 | → | prasad joins (~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net) |
| 13:56:32 | → | alfiee joins (~alfiee@user/alfiee) |
| 14:01:18 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 276 seconds) |
| 14:05:00 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 264 seconds) |
| 14:05:25 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 14:13:01 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 14:17:47 | → | weary-traveler joins (~user@user/user363627) |
| 14:18:51 | × | CiaoSen quits (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) (Ping timeout: 276 seconds) |
| 14:27:10 | → | pavonia joins (~user@user/siracusa) |
| 14:27:46 | × | eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 252 seconds) |
| 14:28:03 | → | tnt2 joins (~Thunderbi@user/tnt1) |
| 14:28:36 | × | tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 276 seconds) |
| 14:28:36 | tnt2 | is now known as tnt1 |
| 14:36:59 | <dminuoso> | lxsameer: Well yes, constraints are the way you limit polymorphic values to specific types (namely those that you have instances for) |
| 14:38:48 | <dminuoso> | And Show is a typical `turn things into strings` example anyway. You do not need MPTC for this. |
| 14:38:52 | <dminuoso> | Just a plain old typeclass. |
| 14:40:17 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 248 seconds) |
| 14:40:39 | → | jespada joins (~jespada@2800:a4:2315:e400:dc3a:2af1:31c:f0bc) |
| 14:41:56 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 14:44:35 | → | alfiee joins (~alfiee@user/alfiee) |
| 14:48:59 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 14:50:57 | × | sawilagar quits (~sawilagar@user/sawilagar) (Quit: Leaving) |
| 14:57:49 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds) |
| 14:58:23 | <carbolymer> | can I simplify this pattern: https://play.haskell.org/saved/nAhyanfL |
| 14:58:33 | <carbolymer> | I mean, is it possible :D |
| 15:04:06 | × | forell_ quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Quit: ZNC - https://znc.in) |
| 15:05:31 | → | forell joins (~forell@user/forell) |
| 15:07:33 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
| 15:08:10 | → | euleritian joins (~euleritia@dynamic-176-006-146-039.176.6.pool.telefonica.de) |
| 15:16:36 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 15:21:20 | → | merijn joins (~merijn@77.242.116.146) |
| 15:23:23 | <ski> | kuribas : doing generalization can be a problem |
| 15:23:24 | <ski> | tomsmeding : well, you could use Lolli (linear logic programming language), for that resource splitting |
| 15:26:20 | → | eL_Bart0 joins (eL_Bart0@dietunichtguten.org) |
| 15:29:26 | <ski> | mm, but yes, you could either put the context as another parameter of the judgement relation. or push that to the (linear) meta-logic |
| 15:33:00 | → | alfiee joins (~alfiee@user/alfiee) |
| 15:37:21 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
| 15:46:26 | → | fp1 joins (~Thunderbi@2001:708:20:1406::10c5) |
| 15:51:49 | <Athas> | I am getting quite depressed at how annoying it is becoming to statically link GHC with Nixpkgs. It is teethering on the bring of being so complicated that I cannot justify learning how to do it. |
| 15:52:53 | <carbolymer> | tbf it's quite easy with haskell.nix |
| 15:53:22 | <carbolymer> | ah, link ghc |
| 15:53:32 | <carbolymer> | I understood that you're trying to build your program |
| 15:54:00 | <tomsmeding> | Athas: statically link ghc, or statically link your own program with ghc? |
| 15:54:21 | <tomsmeding> | for the latter: https://hasufell.github.io/posts/2024-04-21-static-linking.html (disclaimer: I haven't tried this, but it seems a lot more convenient than being forced to use nix) |
| 15:57:12 | <tomsmeding> | carbolymer: you can make f an inline lambda function :p |
| 15:57:14 | <tomsmeding> | haskell is composable |
| 15:57:31 | <carbolymer> | tomsmeding: with viewpatterns? |
| 15:57:36 | <tomsmeding> | pattern Foo' s i <- (\(Foo s i) -> (s, i + length s) -> (s, i)) |
| 15:57:39 | <tomsmeding> | you're already using viewpatterns |
| 15:57:58 | <tomsmeding> | the next step is just doing what you can always do in haskell: if you have `f = ...` then you can replace uses of `f` with `...` |
| 15:58:02 | <carbolymer> | ah I can chain them |
| 15:58:06 | <tomsmeding> | no this is not a chain |
| 15:58:08 | <carbolymer> | i.e. -> thing -> other thing |
| 15:58:14 | <tomsmeding> | the first arrow is a regular lambda arrow |
| 15:58:17 | <tomsmeding> | the second is a ViewPattern arrow |
| 15:58:18 | <carbolymer> | oh wait |
| 15:58:19 | <carbolymer> | right |
| 15:58:27 | <tomsmeding> | I recommend you put parentheses around the lambda |
| 15:58:33 | <tomsmeding> | but I didn't because it looks funny without |
| 15:59:07 | <tomsmeding> | (and while you _can_ chain ViewPatterns, if you brain allows it, they would chain to the right, because the right-hand side of the ViewPatterns `->` is again a pattern, which could be a ViewPattern if you so desire) |
| 15:59:23 | <Athas> | tomsmeding: the latter, sorry. |
| 15:59:44 | <tomsmeding> | then see maerwald's post that I linked |
| 16:00:07 | <Athas> | That adds yet another piece of infrastructure (docker, alpine). |
| 16:00:26 | <tomsmeding> | you need alpine I guess, but no need for docker, bwrap works fine enough |
| 16:00:43 | <tomsmeding> | but I guess my threshold for bwrap is a lot smaller because I already know how it works from the playground :) |
| 16:00:53 | <Athas> | Then I need to learn how to use alpine, and perhaps I need a library that is not in alpine (or not statically linked), etc. It doesn't look like an easy path. |
| 16:01:05 | <tomsmeding> | what system libraries do you need? |
| 16:01:21 | <tomsmeding> | the haskell stuff would just come from ghcup |
| 16:01:25 | <Athas> | Not system libraries, necessarily - other libraries. gplk is one I needed recently. |
| 16:01:45 | <tomsmeding> | I see |
| 16:01:48 | <dminuoso> | Athas: Try haskell.nix |
| 16:02:15 | <Athas> | Today I did manage to bump Nixpkgs while preserving static compilation, but only by using an older version of elfutils, as the newest version apparently doesn't support static linking. |
| 16:02:20 | <dminuoso> | Athas: It is dead trivial to statically link haskell programs, you dont have to suffer from this incoherent manually managed sort-of stackage resolver clone |
| 16:02:42 | <dminuoso> | and nixpkgs bumps dont regularly interfere with your build plans. |
| 16:03:03 | <carbolymer> | yeah, haskell.nix has pinned nixpkgs |
| 16:03:04 | <Athas> | Nixpkgs bumps never interfere, as I pin with niv. |
| 16:03:22 | <Athas> | Perhaps it is time to investigate haskell.nix again. I remember rejecting it once, but not clearly why. |
| 16:03:30 | × | eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 246 seconds) |
| 16:03:53 | <Athas> | I did like building with Nixpkgs because my project is also *in* Nixpkgs as a derivation, and using it myself increased the odds I would notice breakage. |
| 16:04:12 | × | mreh quits (~matthew@host86-128-2-112.range86-128.btcentralplus.com) (Ping timeout: 246 seconds) |
| 16:04:15 | <dminuoso> | fair. |
| 16:04:33 | → | supercode joins (~supercode@user/supercode) |
| 16:04:42 | <Athas> | But perhaps that advantage is not that great. Depends on whether nixpkgs continues to cause me trouble! |
| 16:04:46 | <dminuoso> | Athas: Were you following nh2's guide? |
| 16:05:14 | <Athas> | dminuoso: no, I found that guide impossible to understand. I wrote my own. |
| 16:05:31 | <Athas> | I am doing this: https://sigkill.dk/blog/2024-05-22-static-linking-on-nix-with-ghc96.html |
| 16:07:29 | <dminuoso> | Athas: Also regarding interference, this is not about niv but rather nixpkgs pinning hackage versions to some arbitrary stuff that mostly works together, but sometimes does not. |
| 16:07:49 | <Athas> | dminuoso: yeah, but I actually care very much about my code working with precisely those versions. |
| 16:07:59 | <dminuoso> | Yeah fair enough. |
| 16:08:00 | <Athas> | (But not so much that I bump nixpkgs all that often.) |
| 16:08:11 | <Athas> | It's a land of contrasts and hypocrisy. |
| 16:08:29 | <dminuoso> | Haskell and nix are not fun together, in my experience. :( |
| 16:08:59 | <tomsmeding> | what is the source of all this madness again? That system linkers are unable to statically link some libraries in, but keep some others as dynamic instead? |
| 16:09:25 | <tomsmeding> | (hence needing to statically link libc if you want to statically link anything, and you can't statically link glibc, hence you need to use alpine with musl or something?) |
| 16:09:43 | <Athas> | tomsmeding: I am linking all-statically. I think it is just that static linking is not fashionable, so it is not a well tested path. That is probably why something broke in elfutils. |
| 16:10:01 | <Athas> | I even link statically with glibc! It works fine if you understand the caveats. |
| 16:10:03 | <carbolymer> | tomsmeding: thanks, that lambda trick works. I can never wrap my brain around mixing viewpatterns and regular haskell syntax |
| 16:10:23 | <dminuoso> | Athas: So you're trying to statically link elfutils into your haskell binary?? |
| 16:10:29 | <dminuoso> | Sorry for the double question mark. |
| 16:10:43 | <Athas> | dminuoso: I have to, don't I? GHC depends on libdw and libdw depends on elfutils. |
| 16:10:49 | <tomsmeding> | Athas: then what's nix necessary for? Getting static versions of a bunch of C libraries you need? |
| 16:10:56 | <Athas> | tomsmeding: yes. |
| 16:11:01 | <dminuoso> | Athas: Hold on, Im confused. |
| 16:11:08 | <dminuoso> | 15:59:23 Athas │ tomsmeding: the latter, sorry. |
| 16:11:19 | <tomsmeding> | heh |
| 16:11:20 | <dminuoso> | But what you just said suggests you want a statically linked GHC binary |
| 16:11:24 | <dminuoso> | Which one is it? |
| 16:11:34 | <Athas> | Tom Sydney mentions that you can compile GHC without DWARF support, and I guess that's what I'll eventually have to figure out how to do. |
| 16:11:45 | <Athas> | I don't care about the linking of GHC. I want to statically link my Haskell program. |
| 16:11:50 | <tomsmeding> | (isn't the GHC-without-DWARF the _default_?) |
| 16:11:57 | <Athas> | Not in Nixpkgs. |
| 16:12:00 | <tomsmeding> | ah. |
| 16:12:16 | <Athas> | Maybe not anywhere? My understanding is that GHC-with-DWARF is the default since 9.6. |
| 16:12:23 | <tomsmeding> | O.o |
| 16:14:40 | <tomsmeding> | doesn't appear in any of the 9.6.* release notes |
| 16:18:15 | × | euleritian quits (~euleritia@dynamic-176-006-146-039.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:18:33 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 16:21:23 | <tomsmeding> | Athas: I think dminuoso's point was that while elfutils is a dependency of GHC, statically linking your program should not need a statically-linked GHC, and hence should not need statically linking elfutils in the first place |
| 16:22:32 | <Athas> | tomsmeding: it is a dependency of the GHC RTS. |
| 16:22:40 | <tomsmeding> | ah |
| 16:22:44 | → | alfiee joins (~alfiee@user/alfiee) |
| 16:23:23 | <Athas> | I assume it's the reason GHC produces better stack traces now, but I don't need that for my release executables anyway. |
| 16:23:45 | <Athas> | The only reason I didn't disable it is because I can't figure out how to override the GHC configuration in Nixpkgs. |
| 16:24:03 | <Athas> | (I did not look very diligently, however.) |
| 16:26:14 | × | agent314 quits (~quassel@146.70.172.177) (Ping timeout: 244 seconds) |
| 16:26:51 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 16:34:32 | × | dolio quits (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in) |
| 16:40:17 | → | dolio joins (~dolio@130.44.140.168) |
| 16:40:29 | → | urdh_ joins (~urdh@user/urdh) |
| 16:41:56 | × | urdh quits (~urdh@user/urdh) (Ping timeout: 272 seconds) |
| 16:41:56 | urdh_ | is now known as urdh |
| 16:42:11 | × | dolio quits (~dolio@130.44.140.168) (Client Quit) |
| 16:43:23 | → | dolio joins (~dolio@130.44.140.168) |
| 16:55:29 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 16:57:12 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 17:00:44 | × | jespada quits (~jespada@2800:a4:2315:e400:dc3a:2af1:31c:f0bc) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 17:01:18 | → | jespada joins (~jespada@2800:a4:2315:e400:dc3a:2af1:31c:f0bc) |
| 17:10:29 | → | alfiee joins (~alfiee@user/alfiee) |
| 17:14:36 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 17:17:31 | × | fp1 quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 252 seconds) |
| 17:25:09 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 17:42:15 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 17:45:55 | × | Katarushisu quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 265 seconds) |
| 17:49:56 | → | forell_ joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) |
| 17:50:15 | × | forell quits (~forell@user/forell) (Ping timeout: 246 seconds) |
| 17:51:18 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 17:56:20 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 17:56:30 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 17:58:33 | → | alfiee joins (~alfiee@user/alfiee) |
| 18:02:03 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 245 seconds) |
| 18:03:00 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 18:03:41 | → | Katarushisu joins (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) |
| 18:03:59 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 18:05:59 | × | Katarushisu quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Client Quit) |
| 18:07:02 | → | Katarushisu joins (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) |
| 18:07:03 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 18:07:29 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 18:09:19 | → | ft joins (~ft@p3e9bcd97.dip0.t-ipconnect.de) |
| 18:10:36 | × | Katarushisu quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Client Quit) |
| 18:11:09 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 18:11:41 | → | rvalue joins (~rvalue@user/rvalue) |
| 18:17:15 | <albet70> | mapK p [] k = k [] |
| 18:17:26 | <albet70> | mapK p (x: xs) k = p x $ \v -> mapK p xs $ \ns -> k (v : ns) |
| 18:17:37 | <albet70> | rec = \ls -> \k -> mapK (\x -> \c -> if x == 0 then k [x] else c (1/x)) ls k |
| 18:17:48 | <albet70> | rec [1,2,3,0,4] id |
| 18:18:11 | <albet70> | this mapK can do eary return? |
| 18:22:53 | × | jespada quits (~jespada@2800:a4:2315:e400:dc3a:2af1:31c:f0bc) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 18:24:36 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:24:54 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
| 18:25:03 | <tomsmeding> | albet70: yes, being able to use non-local control flow, such as jumping out of the middle of a computation, is one of the things you can do with CPS-transformed code |
| 18:25:42 | <c_wraith> | note that the simplest way to think about it is asking what it reduces to in the non-empty case. |
| 18:25:59 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:26:13 | <c_wraith> | it reduces to a call to p, so it can do anything p can do. |
| 18:28:08 | <tomsmeding> | related: https://git.tomsmeding.com/yahb2/tree/src/ExitEarly.hs |
| 18:28:34 | <tomsmeding> | (this is just ContT with a different name) |
| 18:34:22 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:34:53 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:35:00 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 18:36:01 | → | jespada joins (~jespada@2800:a4:2315:e400:dc3a:2af1:31c:f0bc) |
| 18:37:37 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
| 18:38:36 | → | euleritian joins (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) |
| 18:40:13 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 18:40:28 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 18:44:34 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:45:05 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:45:06 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 18:47:58 | → | alfiee joins (~alfiee@user/alfiee) |
| 18:49:24 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 246 seconds) |
| 18:50:19 | <albet70> | I like to learn common method between difference languages, type is wonderful, but value level is more common |
| 18:50:31 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 18:51:42 | <albet70> | use ContT in Haskell is elegant, but sometimes I like to know how to implement the function in other languages by function |
| 18:51:49 | × | Googulator56 quits (~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu) (Quit: Client closed) |
| 18:52:03 | → | Googulator56 joins (~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu) |
| 18:52:05 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
| 18:53:23 | <albet70> | like most languages have lambda expression, is that means I can turn lambda expression in Haskell to lambda expression in other languages |
| 18:54:45 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:55:12 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 18:55:16 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:55:17 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
| 18:56:17 | <mauke> | albet70: that looks like it can do early return, but not lazy evaluation |
| 18:58:05 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 19:04:03 | → | Katarushisu joins (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) |
| 19:04:56 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:05:27 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:10:42 | → | Googulator61 joins (~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu) |
| 19:11:46 | <albet70> | yes |
| 19:13:48 | × | jespada quits (~jespada@2800:a4:2315:e400:dc3a:2af1:31c:f0bc) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 19:14:40 | × | Googulator56 quits (~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu) (Ping timeout: 240 seconds) |
| 19:18:36 | → | remedan joins (~remedan@62.245.108.153) |
| 19:18:50 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:19:21 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:19:31 | × | supercode quits (~supercode@user/supercode) (Quit: Client closed) |
| 19:24:02 | <smiesner> | hi, again i'd like to ask if someone knows tools for model-to-model transformations in haskell. is hydra such a tool? i want to translate from/to different UDP standards |
| 19:25:24 | <albet70> | how to do statement in function without in do notation? like the rec [1,2,3,0,4] id will return [0.0], how let it be [1,2,3,0]? |
| 19:26:09 | <albet70> | since that p in mapK can't keep value |
| 19:26:47 | × | hellwolf quits (~user@274b-85a5-2831-cb8b-0f00-4d40-07d0-2001.sta.estpak.ee) (Quit: rcirc on GNU Emacs 29.4) |
| 19:26:57 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:27:05 | → | hellwolf joins (~user@262a-8508-ab6e-9670-0f00-4d40-07d0-2001.sta.estpak.ee) |
| 19:27:17 | <albet70> | or can it? |
| 19:27:36 | <davean> | albet70: I can not parse what you said |
| 19:29:01 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:29:04 | <hellwolf> | I think by statement, it means like those "statements" in other languages where effectful expression are usually sequentially laid out. |
| 19:29:16 | <hellwolf> | it certainly misses the Haskell context. |
| 19:29:32 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:29:57 | <hellwolf> | albet70: we might need to suggest you to think differently. what are the starting materials you have? |
| 19:30:09 | <davean> | Maybem I'm not sure what they asked was even coherent english though. |
| 19:30:34 | <hellwolf> | right. hmm, only LLM can try, at that point. |
| 19:30:39 | <hellwolf> | *can parse |
| 19:32:05 | × | euleritian quits (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 19:32:15 | <mauke> | I can't connect the first sentence, but the rest makes sense |
| 19:32:23 | → | euleritian joins (~euleritia@ip5f5ad1be.dynamic.kabel-deutschland.de) |
| 19:32:34 | <davean> | mauke: yah that first sentance seems pretty critical though. |
| 19:36:02 | → | alfiee joins (~alfiee@user/alfiee) |
| 19:37:49 | <albet70> | try to keep the previous result befor meet the break item in the list, like rec [1,2,3,0,4] return [1,2,3,0] not just [0], but that p in mapK can not keep previous result |
| 19:39:12 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:39:43 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:40:10 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 19:40:24 | <albet70> | rec = \ls -> \k -> mapK (\x -> \c -> if x == 0 then k ? else c (1/x)) ls k |
| 19:44:04 | → | Square joins (~Square@user/square) |
| 19:45:49 | <hellwolf> | https://paste.tomsmeding.com/E5JKADZq |
| 19:46:49 | <kuribas`> | > foldr (\x k a -> if x == 0 then [0] else x:k a) id [1, 2, 3, 0, 4] [] |
| 19:46:50 | <lambdabot> | [1,2,3,0] |
| 19:47:34 | × | prasad quits (~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net) (Quit: prasad) |
| 19:47:46 | <dminuoso> | Athas: Can you share your nix derivation, perhaps including the builder output on how it fails? |
| 19:47:52 | → | prasad joins (~Thunderbi@2601:243:c001:3f07::89) |
| 19:48:34 | <kuribas`> | albet70: you can turn a right fold into a left fold with early exit. |
| 19:49:23 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:49:54 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:50:39 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 19:51:48 | → | sprotte24 joins (~sprotte24@p200300d16f26a80008f1d39836015ac5.dip0.t-ipconnect.de) |
| 19:55:29 | × | tabaqui1 quits (~root@87.200.129.102) (Ping timeout: 248 seconds) |
| 19:59:34 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:00:00 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 20:00:05 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:01:17 | → | caconym joins (~caconym@user/caconym) |
| 20:03:20 | <Athas> | dminuoso: it doesn't fail anymore. Before it failed with a linker error about libdw.a referencing some undefined symbols . |
| 20:03:40 | × | fmira quits (~user@user/fmira) (Remote host closed the connection) |
| 20:04:11 | → | fmira joins (~user@user/fmira) |
| 20:05:39 | → | ColinRobinson joins (~juan@user/JuanDaugherty) |
| 20:07:00 | ColinRobinson | is now known as JuanDaugherty |
| 20:08:17 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
| 20:09:45 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:10:16 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:10:44 | <dminuoso> | Oh it sporadically stopped? |
| 20:11:06 | → | todi joins (~todi@p57803331.dip0.t-ipconnect.de) |
| 20:11:25 | <dminuoso> | Non-deterministic nix realisations is something I haven't experienced in a while |
| 20:14:07 | → | julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752) |
| 20:16:41 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 20:17:31 | JuanDaugherty | is now known as ColinRobinson |
| 20:17:53 | × | foul_owl quits (~kerry@193.42.0.124) (Ping timeout: 248 seconds) |
| 20:18:15 | <Athas> | dminuoso: no, it stopped because I jammed a hack in there. One moment, I'll remove the hack. |
| 20:19:56 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:20:27 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:20:30 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 20:20:30 | ljdarj1 | is now known as ljdarj |
| 20:24:46 | → | alfiee joins (~alfiee@user/alfiee) |
| 20:29:17 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
| 20:30:07 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:30:37 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:31:43 | → | foul_owl joins (~kerry@174-21-138-88.tukw.qwest.net) |
| 20:33:36 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
| 20:40:18 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:40:32 | × | ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
| 20:40:49 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:43:23 | <Athas> | dminuoso: https://gist.github.com/athas/d862f8842b51a5fc4b3aa0005c487a5b |
| 20:43:41 | <Athas> | Debugging these things is particularly thrilling because I have to wait for a complete rebuild. |
| 20:43:46 | → | ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) |
| 20:43:55 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Quit: leaving) |
| 20:44:09 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 20:44:41 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 20:50:29 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:50:52 | <dminuoso> | Athas: My experience with nixpkgs builds is limited, how useful is `nix develop` there? |
| 20:51:00 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:51:13 | <dminuoso> | Trying to debug these types of errors with just plain `nix build` is.. just feasible. |
| 20:51:19 | <dminuoso> | s/feasible/infeasible/ |
| 20:51:31 | <dminuoso> | (Talking about haskell nixpkgs builds of course) |
| 20:51:31 | <haskellbridge> | <magic_rb> Yeah "nix develop" is your friend here |
| 20:51:45 | <Athas> | "nix develop" is a flakes-only feature, isn't it? |
| 20:51:56 | <haskellbridge> | <magic_rb> No |
| 20:52:05 | <haskellbridge> | <magic_rb> Its a "nix-command" only feature |
| 20:52:22 | <dminuoso> | There is a pre-nix-command variant too, if you fancy that. |
| 20:52:33 | <dminuoso> | Think it was with nix-shell. |
| 20:53:22 | <Athas> | I do use a nix-shell environment too, but that doesn't link statically, so it's not so useful for debugging this. |
| 20:53:48 | <Athas> | (In practice I use a trivially small project to debug the Nix setup.) |
| 20:54:05 | <dminuoso> | Athas: Ideally you would instanstiate the derivation, look at it to figure out the details of the shell command dance of the stages (especially since with callCabal2nix this is all synthesized with layers of indirection) |
| 20:54:21 | <dminuoso> | drop into `nix develop`, and then you can interactively call the tools and debug |
| 20:55:03 | <Athas> | But I am pretty sure I know what is wrong: libdw.a references some functions (eu_search_tree_fini) which are not provided by any of the other elfutils .a files (but are provided by the .so files). |
| 20:55:21 | <Athas> | I already took binutils to this problem. |
| 20:55:35 | <Athas> | I just decided my life is too short to debug it further. |
| 20:55:45 | <dminuoso> | That sounds yuk. |
| 20:55:49 | <Athas> | I know! |
| 20:56:21 | <Athas> | My solution was to copy the package.nix for elfutils from the previous version of Nixpkgs into my setup, and this does work. |
| 20:56:35 | <Athas> | It's quite nice that Nix allows you to do these things in a maintainable manner. |
| 20:56:57 | <dminuoso> | Athas: Either way, do consider `nix develop` in the future, that way you switch from indirect guesswork to just using objdump, or just rapidly trying different flags. |
| 20:57:03 | × | julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection) |
| 20:57:06 | <Athas> | 'nix develop' just complains that it cannot find a flake.nix. |
| 20:57:21 | <dminuoso> | Athas: Hold on, you need to describe the installable. |
| 20:57:25 | <dminuoso> | If you dont, it defaults to a flake |
| 20:58:00 | → | kenran joins (~kenran@user/kenran) |
| 20:59:28 | <dminuoso> | Say: nix develop --expr '(import <nixpkgs> {}).callPackage ./. {}'b |
| 20:59:41 | <dminuoso> | (See `man nix` for further details on installables) |
| 21:00:40 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:00:41 | × | SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving) |
| 21:01:11 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:05:06 | × | kenran quits (~kenran@user/kenran) (Remote host closed the connection) |
| 21:09:12 | × | euleritian quits (~euleritia@ip5f5ad1be.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 21:10:19 | <Athas> | I'll give that a try eventually, but I am pretty sure my problem is in elfutils. |
| 21:10:43 | <Athas> | Nixpkgs even marks elfutils as broken in pkgsStatic, so this is not a great leap. |
| 21:10:51 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:11:22 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:11:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:12:08 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 21:13:11 | gehmehgeh | is now known as gmg |
| 21:13:26 | → | euleritian joins (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) |
| 21:13:49 | → | alfiee joins (~alfiee@user/alfiee) |
| 21:18:04 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 21:18:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 21:18:29 | × | glguy quits (glguy@libera/staff/glguy) (Quit: Quit) |
| 21:18:47 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 21:19:27 | × | kuribas` quits (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 21:21:02 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:21:21 | × | thaumavorio quits (~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:21:33 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:23:06 | <lxsameer> | Athas: why not using pkgs.pkgsStatic?? |
| 21:23:30 | <Athas> | lxsameer: I vaguely remember it didn't work. Does it actually work well with GHC? |
| 21:23:38 | → | thaumavorio joins (~thaumavor@thaumavor.io) |
| 21:23:41 | <Athas> | I set all this up a few years ago and it has been mostly trouble-free. |
| 21:23:42 | <haskellbridge> | <magic_rb> Yes it does, recently ish |
| 21:23:58 | <haskellbridge> | <magic_rb> I used it to compile a raylib game and then ran it on arch |
| 21:24:09 | <haskellbridge> | <magic_rb> (Putting away my phone so i dont get pulled back in) |
| 21:24:25 | <dminuoso> | lxsameer: Long story: https://github.com/NixOS/nixpkgs/issues/43795 |
| 21:25:06 | <lxsameer> | Athas: I did it in the past. honestly it is a bit confusing |
| 21:25:19 | <dminuoso> | I think its mostly done? Unclear. |
| 21:25:48 | <dminuoso> | Just poke Niklas on matrix. |
| 21:25:59 | <Athas> | I think I have indirectly benefited from nh2's work, but I must admit I have had trouble following their user-oriented documentation. |
| 21:26:02 | × | remedan quits (~remedan@62.245.108.153) (Quit: Bye!) |
| 21:26:20 | <Athas> | I think I am just not good enough at Nix to follow, or passionate about Nix to become good enough to follow. |
| 21:26:34 | <dminuoso> | Luckily we gave up on statically linked binaries a long time ago. |
| 21:27:24 | → | remedan joins (~remedan@62.245.108.153) |
| 21:27:59 | <Athas> | I've been pretty happy about distributing statically linked binaries. |
| 21:29:27 | → | glguy_ joins (glguy@libera/staff/glguy) |
| 21:29:40 | <lxsameer> | Athas: if you are not already, join the haskell channel on Nix space |
| 21:29:50 | glguy_ | is now known as glguy |
| 21:29:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:30:00 | <lxsameer> | I'm pretty much interested in statically compiling my stuff |
| 21:30:25 | <Athas> | What is "Nix space"? |
| 21:30:31 | <dminuoso> | Athas: at any rate, for haskell.nix getting a static build amounts to just using `pkgs.pkgsCross.musl64.haskell-nix.project` instead of `pkgs.haskell-nix.project` |
| 21:30:39 | <dminuoso> | And *that* worked for our static builds. |
| 21:30:55 | <Athas> | dminuoso: I will have to try that out one day. |
| 21:31:13 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:31:17 | <dminuoso> | Unsure whether there are tools for getting nixpkgs pins, though. |
| 21:31:40 | <Athas> | I can probably live without that if necessary. That's more nice-to-have than need-to-have. |
| 21:31:44 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:31:56 | <dminuoso> | (I mean the hackage versions of course) |
| 21:32:36 | <dminuoso> | Disclaimer: Be ready to have your own CI or follow the update cadence of IOG. |
| 21:32:51 | <lxsameer> | Athas: Space is like workspace in matrix |
| 21:32:58 | <Athas> | "own CI"? What do you mean? |
| 21:33:21 | → | tnt2 joins (~Thunderbi@user/tnt1) |
| 21:33:50 | × | tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds) |
| 21:33:50 | tnt2 | is now known as tnt1 |
| 21:33:51 | <dminuoso> | Athas: So the way everything works, they naturally have their own GHC closure, which of course requires some 3 or 4 other GHCs to bootstrap (I think its one additional from what pure GHC needs outside of nix) |
| 21:33:58 | <dminuoso> | While IOG provides a cache, they evict it regularly |
| 21:34:11 | <Athas> | Oh, right. Ugh. |
| 21:34:35 | <Athas> | My least favourite thing is having to change something because of what goes on in a computer somewhere else in the world. |
| 21:35:03 | <Athas> | I do use cachix however, so at long as the needed cache isn't too large, maybe I can cope. |
| 21:35:19 | <dminuoso> | Its not large, just a matter of whether you dont mind building a bunch of GHCs every now and then. |
| 21:36:34 | <dminuoso> | Dont get me wrong, the IOG cache is fine *if* you follow their update cadence. That is, you will have the past few months on cache. |
| 21:36:43 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 21:36:58 | <dminuoso> | But it also introduces trust issues, and availability issues like you pointed out. |
| 21:37:03 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 246 seconds) |
| 21:37:22 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 21:37:54 | <dminuoso> | The big thing I like about haskell.nix is that it uses the same build plans that cabal-install does. |
| 21:38:15 | <dminuoso> | So there's no differece between nix and out-of-nix builds in terms of versions. |
| 21:39:31 | <Athas> | That is indeed a thing I miss in Nixpkgs. |
| 21:41:24 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:41:55 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:42:15 | <Athas> | I sort of understand why Nixpkgs' Haskell setup was built the way it is, but I think it might not be the best way to do it. |
| 21:45:35 | <dminuoso> | Athas: Is the thing you are trying to statically link futhark itself? |
| 21:45:41 | <Athas> | dminuoso: yes. |
| 21:46:01 | <Athas> | And not "trying". It works! |
| 21:46:19 | × | ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
| 21:46:53 | <dminuoso> | Fair enough. Ill give it a try with haskell.nix another day, but not now - I must sleep. |
| 21:47:25 | → | Googulator47 joins (~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu) |
| 21:47:29 | <dminuoso> | Judging from the default.nix and futhark.cabal I see, it should be trivial. |
| 21:47:42 | <Athas> | It would be lovely if so. |
| 21:48:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:50:08 | <dminuoso> | Oh well, I got nerdsniped. |
| 21:51:03 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 21:51:10 | × | Googulator61 quits (~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu) (Ping timeout: 240 seconds) |
| 21:51:35 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:52:06 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:52:32 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 21:55:30 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 21:55:49 | × | xff0x quits (~xff0x@2405:6580:b080:900:3608:a9f8:25ac:5469) (Ping timeout: 260 seconds) |
| 21:59:06 | × | michalz quits (~michalz@185.246.207.193) (Remote host closed the connection) |
| 22:00:58 | → | mange joins (~user@user/mange) |
| 22:01:46 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:01:53 | → | alfiee joins (~alfiee@user/alfiee) |
| 22:02:17 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:03:24 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:06:06 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 22:07:51 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 22:11:57 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:12:28 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:15:30 | → | tnt2 joins (~Thunderbi@user/tnt1) |
| 22:16:03 | <haskellbridge> | <thirdofmay18081814goya> is there a recursion scheme that can keep information about tree depth? |
| 22:16:21 | <haskellbridge> | <thirdofmay18081814goya> trying to use recursion depth to manage indentation in a pretty printer |
| 22:16:50 | × | tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 248 seconds) |
| 22:16:50 | tnt2 | is now known as tnt1 |
| 22:17:06 | <haskellbridge> | <thirdofmay18081814goya> alternatively I guess I could just encode the depth in the datatype itself by taking the product with nats |
| 22:18:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:19:01 | <dminuoso> | thirdofmay18081814goya: So in recursion-schemes that would just be cataA |
| 22:19:18 | <dminuoso> | Idea being to do this over a Reader Int effect |
| 22:19:43 | <dminuoso> | (And you can do this with plain cata too) |
| 22:19:49 | <haskellbridge> | <thirdofmay18081814goya> huh never dealt with cata + effects |
| 22:20:17 | <haskellbridge> | <thirdofmay18081814goya> dminuoso: but this would require changing the type first right? |
| 22:20:29 | <haskellbridge> | <thirdofmay18081814goya> the carrier type |
| 22:20:45 | <dminuoso> | What do you mean by carrier type? |
| 22:21:32 | <dminuoso> | Just give the haddock of `cataA` a thorough read, including the note about producing functions in cata. |
| 22:21:38 | <haskellbridge> | <thirdofmay18081814goya> the "a" in the algebra "t a -> a" |
| 22:21:58 | <dminuoso> | Well you need to change something. |
| 22:22:08 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:22:11 | <dminuoso> | You cant just magically conjure state without.. doing something. |
| 22:22:24 | <haskellbridge> | <thirdofmay18081814goya> right |
| 22:22:39 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:23:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 22:23:23 | × | takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection) |
| 22:23:45 | <dminuoso> | Anyway. You can either use Reader or produce functions, and you can do both with plain old cata too. cataA is really just to promote discoverability. |
| 22:24:02 | <dminuoso> | See https://hackage.haskell.org/package/recursion-schemes-5.2.3/docs/Data-Functor-Foldable.html#v:cataA |
| 22:24:15 | → | tnt2 joins (~Thunderbi@user/tnt1) |
| 22:24:37 | <haskellbridge> | <thirdofmay18081814goya> very neat, thanks for the reference! |
| 22:25:00 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:25:25 | <dminuoso> | It is kind of curious how Reader suddenly becomes a State monad in recurscion schemes. |
| 22:25:31 | × | tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds) |
| 22:25:31 | tnt2 | is now known as tnt1 |
| 22:27:28 | × | plitter quits (~plitter@user/plitter) (Ping timeout: 245 seconds) |
| 22:28:20 | <ncf> | does it? that just seems like the standard usage of Reader with local |
| 22:28:28 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 22:29:06 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 22:30:39 | → | plitter joins (~plitter@user/plitter) |
| 22:31:18 | <dminuoso> | Well, it made me ponder about why we have State in the first place. |
| 22:32:19 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:32:33 | <geekosaur> | just because it was in the original MTL paper, I think |
| 22:32:47 | <dminuoso> | It seems almost as if state is just slightly more convenient in that you dont need to indent subsequent expressions into local, and that difference largely disappears in recursion schemes |
| 22:32:50 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:32:52 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 22:32:56 | → | tnt2 joins (~Thunderbi@user/tnt1) |
| 22:33:06 | <tomsmeding> | State allows you to propagate state _upwards_ too |
| 22:33:16 | <dminuoso> | upwards in what sense? |
| 22:33:27 | <tomsmeding> | towards the root of the recursion tree |
| 22:33:53 | <tomsmeding> | (speaking about a normal recursive function over a (possibly virtual) tree data structure here, but the same applies to a cata) |
| 22:34:09 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:34:10 | <tomsmeding> | Reader's `local` modifies the "state" when going downwards |
| 22:34:19 | × | tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds) |
| 22:34:19 | tnt2 | is now known as tnt1 |
| 22:34:46 | <tomsmeding> | if you want to do something with the leaves of a tree dependent on the how many'th leaf that is, you'll have to manually thread through a counter |
| 22:34:48 | <tomsmeding> | or use State |
| 22:35:01 | <dminuoso> | oh right |
| 22:35:10 | <dminuoso> | "backwards" in the sense that backtracking does not reset |
| 22:35:54 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 22:35:55 | ljdarj1 | is now known as ljdarj |
| 22:38:45 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 22:39:07 | <tomsmeding> | does not reset the state, you mean? |
| 22:39:20 | <tomsmeding> | if so, then yes |
| 22:39:50 | <tomsmeding> | a Reader traversal of a tree can be done in parallel; a Stateful traversal cannot |
| 22:39:55 | <tomsmeding> | it really is more powerful |
| 22:41:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:42:30 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:42:54 | <ncf> | reader is a proper submonad of state |
| 22:43:01 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:43:41 | <tomsmeding> | does that mean "you have a subset of the operations at your disposal, and they obey the same equations as they did in State"? |
| 22:43:46 | <tomsmeding> | proper subset |
| 22:44:32 | <ncf> | it means there's an injective monad morphism from Reader s to State s |
| 22:44:51 | <ncf> | namely \(Reader f) -> State (\x -> (f x, x)) |
| 22:45:13 | <tomsmeding> | "monad morphism" meaning "preserves the equations"? (excuse my ignorance) |
| 22:45:54 | <tomsmeding> | and does the "proper" in "proper submonad" mean that said monad morphism is not surjective? |
| 22:45:56 | <ncf> | preserves the operations (pure and join) |
| 22:46:18 | <ncf> | yes (well i just mean it's not invertible) |
| 22:46:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 22:46:32 | <ncf> | https://hackage.haskell.org/package/mmorph-1.2.0/docs/Control-Monad-Morph.html |
| 22:47:07 | <tomsmeding> | oh right, preservation of pure and join is sufficient, then you automatically preserve equations on the monad operations in the domain |
| 22:47:52 | <ncf> | https://leventerkok.github.io/papers/erkok-thesis.pdf says embeddings instead of proper submonads (see §4.6) |
| 22:49:06 | <ncf> | i guess they mean something different; they also require a left inverse |
| 22:49:32 | <ncf> | "state retracts onto reader" i guess |
| 22:50:37 | <ncf> | oh no the definition just says monic, so embedding = submonad |
| 22:51:17 | → | alfiee joins (~alfiee@user/alfiee) |
| 22:51:27 | <ncf> | (well, "m is a submonad of n" = "m embeds into n") |
| 22:52:41 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:52:57 | <ncf> | you can also emulate local using state (just update the state before and restore it after), so i guess there's a bit more structure here |
| 22:53:12 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:55:36 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
| 22:57:12 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:59:08 | → | weary-traveler joins (~user@user/user363627) |
| 23:02:52 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 23:03:23 | → | gorignak joins (~gorignak@user/gorignak) |
| 23:03:41 | × | byte quits (~mu@user/byte) (Quit: Leaving) |
| 23:04:02 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 23:11:00 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 23:13:03 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 23:13:35 | → | gorignak joins (~gorignak@user/gorignak) |
| 23:18:58 | × | euleritian quits (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:19:15 | → | euleritian joins (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) |
| 23:19:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:23:14 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 23:23:45 | → | gorignak joins (~gorignak@user/gorignak) |
| 23:23:50 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 23:33:25 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 23:33:56 | → | gorignak joins (~gorignak@user/gorignak) |
| 23:34:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:34:57 | × | euleritian quits (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:35:14 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 23:36:18 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:37:12 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 23:37:47 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 23:39:13 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 23:39:21 | → | euleritian joins (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) |
| 23:39:43 | × | euleritian quits (~euleritia@dynamic-176-006-140-194.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 23:40:01 | → | euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
| 23:40:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 23:41:01 | → | alfiee joins (~alfiee@user/alfiee) |
| 23:43:36 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 23:44:07 | → | gorignak joins (~gorignak@user/gorignak) |
| 23:45:29 | × | alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
| 23:48:59 | × | euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 23:50:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:53:47 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 23:54:18 | → | gorignak joins (~gorignak@user/gorignak) |
| 23:55:06 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
All times are in UTC on 2025-02-03.