Logs on 2024-06-17 (liberachat/#haskell)
| 00:00:04 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 256 seconds) |
| 00:00:20 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 00:01:45 | × | zzz quits (~yin@user/zero) (Ping timeout: 256 seconds) |
| 00:02:02 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:03:17 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 00:06:27 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 00:08:42 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 00:14:33 | × | joeyadams quits (~joeyadams@2603:6010:5100:2ed:1cec:9f59:c786:1af1) (Quit: Leaving) |
| 00:14:50 | → | dmj` joins (uid72307@id-72307.hampstead.irccloud.com) |
| 00:18:19 | <Axman6> | geekosaur: how so? |
| 00:18:39 | <Axman6> | Just don't use register 18 and you're all good =) |
| 00:29:17 | <geekosaur> | what about that whole thing about not promoting values that required a redesign of ghc's backend? |
| 00:30:12 | <Axman6> | not sure what you mean |
| 00:30:42 | <geekosaur> | ghc had to switch to using exact sizes for types because extending to word size violated Apple's special ABI |
| 00:30:45 | <Axman6> | I spent quite a lot of time spelunking in the aarch64 backend and haven't seen anything macos specific |
| 00:30:56 | <geekosaur> | no, they changed it across the board |
| 00:31:22 | <Axman6> | Oh, I thought that was an intentional thing, because being able to store Word8 in less than a full Word is great |
| 00:31:23 | <geekosaur> | but it was a fairly massive effort because a lot of ghc assumed that things were machien word-sized |
| 00:31:54 | <geekosaur> | it was something they wanted to do at some point but apple's ARM ABI forced it on them |
| 00:32:12 | <Axman6> | Sounds like a good thing to me =) |
| 00:34:08 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 00:35:17 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 00:35:42 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 00:39:39 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
| 00:40:05 | × | k_hachig quits (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) (Ping timeout: 240 seconds) |
| 00:40:35 | → | mIRC-rockcavera joins (~mirc-rc@186.214.132.97) |
| 00:40:43 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 00:40:51 | ← | mIRC-rockcavera parts (~mirc-rc@186.214.132.97) () |
| 00:45:54 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 255 seconds) |
| 00:48:04 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 00:54:29 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 240 seconds) |
| 00:56:03 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
| 00:56:18 | × | flounders quits (~flounders@24.246.176.178) (Ping timeout: 268 seconds) |
| 00:58:43 | × | xdminsy quits (~xdminsy@117.147.70.212) (Read error: Connection reset by peer) |
| 00:58:50 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 01:01:47 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 01:07:59 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
| 01:10:07 | → | flounders joins (~flounders@24.246.176.178) |
| 01:10:13 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 255 seconds) |
| 01:10:51 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 01:11:13 | <monochrom> | Poor GHC devs. But maybe it's a good thing in the long run. |
| 01:13:47 | × | CrunchyFlakes quits (~CrunchyFl@146.52.130.128) (Read error: Connection reset by peer) |
| 01:16:21 | → | CrunchyFlakes joins (~CrunchyFl@146.52.130.128) |
| 01:16:22 | → | xdminsy joins (~xdminsy@117.147.70.212) |
| 01:17:27 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 01:30:28 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds) |
| 01:31:21 | → | philopsos1 joins (~caecilius@user/philopsos) |
| 01:33:33 | → | joeyadams joins (~joeyadams@2603:6010:5100:2ed:8567:b00e:a226:2242) |
| 01:34:43 | × | brett303 quits (~brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 01:35:30 | → | k_hachig joins (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) |
| 01:37:23 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 01:37:48 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 01:38:55 | × | philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 246 seconds) |
| 01:39:02 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 01:41:03 | × | k_hachig quits (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) (Ping timeout: 264 seconds) |
| 01:43:27 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 01:44:11 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 01:49:29 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds) |
| 01:53:19 | <iqubic> | Ugh... Haskell Layout Rules are being a pain. Why doesn't this work? https://gist.github.com/IQubic/f8262777ebc4f9b9afe6b6aec895ea46 |
| 01:54:01 | <iqubic> | That's a snippet of my XMonad config that I'm trying to compile, and I can't seem to do so. |
| 01:55:27 | <Leary> | iqubic: That's not layout, you're just one ) short of an expression. |
| 01:55:43 | × | xff0x quits (~xff0x@2405:6580:b080:900:3ca7:5236:8f09:cdd0) (Quit: xff0x) |
| 01:56:09 | <geekosaur> | I told them that in #xmonad, they don't seem to have noticed yet |
| 01:57:07 | <iqubic> | I have noticed. I posted this in both locations like 20 seconds apart. |
| 01:57:29 | <iqubic> | Hmm... Now I'm running into a different issue. |
| 01:57:48 | <geekosaur> | that's probably the indentation issue I noted? |
| 01:58:17 | <iqubic> | No. It's a different issue. I'm trying to split up my code over two files and it's not working. |
| 01:58:17 | <geekosaur> | compare https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L94-L132 |
| 01:58:47 | <geekosaur> | mm, right, since that's not inside layout it might dtrt |
| 01:59:28 | <geekosaur> | in general indenting a continuation <= the start of an expression is asking for trouble; it's a bad habit because it'll bite you if layout is in effect at that point |
| 02:00:04 | <geekosaur> | can you gist an example of your current problem? |
| 02:01:58 | × | sudden quits (~cat@user/sudden) (Ping timeout: 255 seconds) |
| 02:05:23 | <iqubic> | I'm preparing that now. |
| 02:07:02 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 02:07:40 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 02:11:52 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 02:12:42 | → | euleritian joins (~euleritia@77.22.252.56) |
| 02:15:11 | → | sudden joins (~cat@user/sudden) |
| 02:17:03 | <iqubic> | These files are in a little bit of a weird order, but this should be the info that explains my issue: https://gist.github.com/IQubic/4651c2428459026d01df8677acd8495a |
| 02:19:27 | × | johnw quits (~johnw@69.62.242.138) (Ping timeout: 256 seconds) |
| 02:19:44 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 02:19:45 | <geekosaur> | (1) if you're using cabal, you should have Catppuccin in other-modules (2) case matters: the file must be named Catppuccin.hs |
| 02:20:25 | <iqubic> | Got it. |
| 02:24:35 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 02:31:46 | → | madhavanmi joins (~madhavanm@2409:40f4:101d:c575:8000::) |
| 02:33:51 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 264 seconds) |
| 02:34:12 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 02:34:36 | × | madhavanmi quits (~madhavanm@2409:40f4:101d:c575:8000::) (Client Quit) |
| 02:36:50 | → | xff0x joins (~xff0x@2405:6580:b080:900:3ca7:5236:8f09:cdd0) |
| 02:39:16 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 02:39:45 | <iqubic> | I now have this compiling. Thanks! |
| 02:41:03 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 264 seconds) |
| 02:43:19 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds) |
| 02:46:16 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 02:51:51 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 02:54:14 | × | ethantwardy quits (user@user/ethantwardy) (Quit: WeeChat 4.3.2) |
| 02:56:10 | → | ethantwardy joins (user@user/ethantwardy) |
| 02:59:20 | × | nkatte quits (~nkatte@user/nkatte) (Quit: nkatte) |
| 02:59:36 | <Leary> | Is there good name for fragments of module hierarchy? Like, if I have Foo.Bar.Quux, what do I call Bar? |
| 03:00:15 | × | td_ quits (~td@i53870926.versanet.de) (Ping timeout: 264 seconds) |
| 03:01:38 | → | td_ joins (~td@i53870910.versanet.de) |
| 03:02:24 | <geekosaur> | there isn't one, because in some sense Bar doesn't exist |
| 03:03:40 | <geekosaur> | there is a convention that if you have Foo.Bar.Baz and Foo.Bar.Quux then Baz.hs and Quux.hs are in Foo/Bar, but the two aren't related so Bar kinda isn't really a thing as far as Haskell is concerned |
| 03:05:46 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 03:10:11 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 03:10:26 | → | bilegeek joins (~bilegeek@2600:1008:b016:b974:aae0:2a8c:3137:aa88) |
| 03:10:48 | <Leary> | Well, I'm discussing changes to module hierarchy in a commit message---it would be easier if we had words for these things. I'll just settle for "module namespace". |
| 03:13:52 | <joeyadams> | How about "segments"? |
| 03:14:20 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 03:16:55 | <monochrom> | It would be easier if people accepted using numbers for these things. 1st, 2nd, 3rd. |
| 03:17:15 | <geekosaur> | it's not really a namespace, though, it's just a name qualifier component |
| 03:19:19 | <geekosaur> | the Report just calls them "conids" but that's a lexical concept |
| 03:19:47 | <monochrom> | 1st ID, 2nd ID, 3rd ID :) |
| 03:19:57 | <cheater> | segments of the module namespace |
| 03:24:52 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 03:25:02 | <monochrom> | You can be inspired by Western naming conventions and think of First Name, Middle Name, Last Name. >:) |
| 03:25:56 | <monochrom> | I am just not convinced that it is always a fixed number like 3. Look at the full names of British royalty... |
| 03:29:15 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 03:30:01 | <cheater> | take a look at spanish names |
| 03:40:44 | → | aforemny_ joins (~aforemny@i59F516FA.versanet.de) |
| 03:40:58 | × | aforemny quits (~aforemny@i59F516F9.versanet.de) (Ping timeout: 255 seconds) |
| 03:43:12 | → | brett303 joins (~brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) |
| 03:44:33 | × | JimL quits (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 03:45:28 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 03:45:42 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 03:47:33 | → | JimL joins (~quassel@89.162.16.26) |
| 03:49:11 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
| 03:50:53 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
| 03:57:19 | → | k_hachig joins (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) |
| 04:05:04 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 04:09:25 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds) |
| 04:10:31 | × | Square quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 04:35:39 | × | philopsos quits (~caecilius@user/philopsos) (Quit: Lost terminal) |
| 04:38:21 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 04:43:50 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds) |
| 04:44:51 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 255 seconds) |
| 04:45:34 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 04:47:58 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 04:54:05 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
| 04:54:29 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 04:54:51 | → | euleritian joins (~euleritia@dynamic-176-003-072-224.176.3.pool.telefonica.de) |
| 04:55:39 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 04:58:18 | → | michalz joins (~michalz@185.246.207.215) |
| 04:59:44 | → | euphores joins (~SASL_euph@user/euphores) |
| 05:02:39 | × | euleritian quits (~euleritia@dynamic-176-003-072-224.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 05:04:45 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 05:10:41 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 05:13:29 | <segfaultfizzbuzz> | lol: Haskell is a programming language invented sometime in the 20th century by Scottish logicians as a prank.¹ Fifteen years or so ago, for reasons I can no longer remotely recall, I started learning Haskell. Now, I have finally written a useful program in Haskell, and I am pretty sure I can do it again, if I ever need another computer program. |
| 05:14:10 | → | acidjnk_new joins (~acidjnk@p200300d6e714dc39d0437a9dd700f698.dip0.t-ipconnect.de) |
| 05:14:45 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 05:17:09 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 05:17:17 | → | euleritian joins (~euleritia@dynamic-176-003-072-224.176.3.pool.telefonica.de) |
| 05:19:37 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
| 05:21:03 | × | euleritian quits (~euleritia@dynamic-176-003-072-224.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 05:21:30 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 05:22:22 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 05:25:35 | × | michalz quits (~michalz@185.246.207.215) (Quit: ZNC 1.9.0 - https://znc.in) |
| 05:27:40 | <iqubic> | Is possible to tell cabal that my Haskell source files for my project are in the same directory as the cabal file itself? |
| 05:27:52 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:28:23 | → | michalz joins (~michalz@185.246.207.193) |
| 05:29:46 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 05:30:07 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 05:30:09 | <iqubic> | Like, I want to have foo.cabal, Bar.hs, and Baz.hs all in the same directory. |
| 05:30:18 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 05:31:06 | <sclv> | sure. just remove the src directory directive from the lib stanza iirc |
| 05:31:20 | <sclv> | or maybe set it to ., i forget if that works |
| 05:31:40 | → | euleritian joins (~euleritia@dynamic-176-003-072-224.176.3.pool.telefonica.de) |
| 05:31:58 | → | philopsos joins (~caecilius@user/philopsos) |
| 05:32:31 | <sclv> | old haskell packages all used to be like that. but once we started having libs and exes ant test suites separate and wanting to keep source code cleanly removed from build artifacts the conventions changed |
| 05:33:42 | <iqubic> | setting it to . doesn't seem to be working for me. |
| 05:34:26 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 256 seconds) |
| 05:34:47 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 05:36:42 | <iqubic> | https://dpaste.com/HYGV5FWMS |
| 05:36:48 | <iqubic> | That doesn't seem to be working... |
| 05:37:12 | <iqubic> | Probably something weird with me trying to use cabal and nix. |
| 05:37:37 | <iqubic> | I'm trying to get cabal2nix to work for me, and it's giving me parse errors. |
| 05:38:47 | <joeyadams> | Try hs-source-dirs: ./ |
| 05:39:34 | <iqubic> | https://dpaste.com/69KBH2ZB4 |
| 05:40:41 | <iqubic> | Nope... I think this is a nix issue. |
| 05:46:34 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 05:46:59 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 05:49:13 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 05:49:27 | × | tabemann quits (~tabemann@104-250-251-243.rockyridge.net) (Ping timeout: 264 seconds) |
| 05:50:34 | × | k_hachig quits (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) (Ping timeout: 246 seconds) |
| 05:51:15 | × | foul_owl quits (~kerry@157.97.134.167) (Ping timeout: 264 seconds) |
| 05:53:12 | → | foul_owl joins (~kerry@174-21-146-130.tukw.qwest.net) |
| 05:57:43 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 06:01:11 | × | TactfulCitrus quits (al@gateway/vpn/protonvpn/tactfulcitrus) (Ping timeout: 264 seconds) |
| 06:04:56 | × | joeyadams quits (~joeyadams@2603:6010:5100:2ed:8567:b00e:a226:2242) (Quit: Leaving) |
| 06:08:01 | → | madhavanmi joins (~madhavanm@2409:40f4:1a:21b5:8000::) |
| 06:08:55 | × | madhavanmi quits (~madhavanm@2409:40f4:1a:21b5:8000::) (Remote host closed the connection) |
| 06:36:32 | → | danse-nr3 joins (~danse-nr3@151.37.209.49) |
| 06:37:19 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
| 06:38:43 | → | madhavanmi joins (~madhavanm@2409:40f4:1a:21b5:8000::) |
| 06:41:28 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 06:45:36 | × | bilegeek quits (~bilegeek@2600:1008:b016:b974:aae0:2a8c:3137:aa88) (Quit: Leaving) |
| 06:46:37 | → | rosco joins (~rosco@175.136.155.137) |
| 06:48:25 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
| 06:49:12 | <danse-nr3> | good morning, i received a comment from a colleague that made me think. I wrote some code following intuition but i cannot pinpoint that it works correctly |
| 06:50:00 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:50:00 | <danse-nr3> | i have a function `a -> b -> c -> d` which gets partially applied so that we can just use `c -> d` with `c` varying more often |
| 06:50:31 | <danse-nr3> | internally, the function does some expensive calculation that does not depend on `c` |
| 06:51:01 | <Axman6> | foo a b = let expensive = ... a ... b in \c -> theRest? |
| 06:51:01 | <danse-nr3> | my intuition is that the expensive computation would not be repeated for each varying `c` |
| 06:51:40 | <Axman6> | That may depend on how it's written - what I've written above should avoid any repeated calculateion (assuming c's type doesn't change bettween different calls) |
| 06:51:46 | <danse-nr3> | thanks axman, you get close to my question. Do i need to assign something with `let` or something else for my assumption to be true? |
| 06:51:49 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds) |
| 06:52:26 | <danse-nr3> | i thought non-strict evaluation would be enough |
| 06:53:56 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 06:54:28 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 06:58:23 | <Leary> | danse-nr3: It's up to the whims of the optimiser whether or not to inline your lets, whether or not to float them out, etc. Since it's clever you'll usually see the better outcomes, but if you want to be sure then you need to /make/ sure. The way to get certain sharing is to write let before you take arguments or constraints and NOINLINE the binding. |
| 06:59:13 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:59:52 | × | euleritian quits (~euleritia@dynamic-176-003-072-224.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:59:57 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 07:00:35 | <danse-nr3> | thanks Leary. Do you know about any doc i could read to understand this better? |
| 07:01:12 | → | euleritian joins (~euleritia@dynamic-176-006-194-173.176.6.pool.telefonica.de) |
| 07:01:57 | × | euleritian quits (~euleritia@dynamic-176-006-194-173.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:02:15 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:03:00 | <danse-nr3> | i thoughts thunks will work so that an evaluated value gets reused regardless |
| 07:03:26 | <danse-nr3> | *would work |
| 07:04:35 | → | philopsos1 joins (~caecilius@user/philopsos) |
| 07:04:59 | → | califax joins (~califax@user/califx) |
| 07:07:44 | × | madhavanmi quits (~madhavanm@2409:40f4:1a:21b5:8000::) (Quit: Quit) |
| 07:07:54 | <danse-nr3> | in my case, the expensive operations turn into a non-strict data type that is passed as an argument in the partial application, if that changes anything. So i assume that if a field is needed multiple times it will still get calculated only once? |
| 07:07:55 | <probie> | danse-nr3: If you write it naively, the thunk you're talking about won't exist until your function has all its arguments, so it can't possibly be shared. You need something like Axman6's suggestion to make it work |
| 07:08:48 | <danse-nr3> | thanks probie, having a thunk so that it can be reused, sounds like a simple criteria that can easily be learned |
| 07:08:55 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 07:09:20 | <danse-nr3> | so since as i said there is a passed argument, i guess my thunks already exist |
| 07:09:54 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 07:10:23 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 07:10:56 | → | kuribas joins (~user@ptr-17d51eokk4x6v7fmbmr.18120a2.ip6.access.telenet.be) |
| 07:11:01 | <danse-nr3> | this seems tricky territory anyways. Besides probie's useful criteria, learning resources are welcome |
| 07:11:23 | <probie> | If we have `f a b c = let thing = a + b in thing + c` and `g = f 3 4`, we've made a thunk for `g`, which if reduced to whnf would be `\c -> let thing = 3 + 4 in thing + c`. However, there is no thunk for `thing` yet |
| 07:11:43 | → | califax joins (~califax@user/califx) |
| 07:12:02 | <Leary> | danse-nr3: It's mostly a matter of understanding GHC's evaluation strategy and the optimisations it's free to make. For the former you can read up on STG, I guess, but I don't really have a good source for the latter. There are some good SPJ talks and lexi-lambda videos on GHC optimisations, and the -f flags in the User's Guide are a decent reference. |
| 07:13:23 | <probie> | If we have `f a b = let thing = a + b in \c -> thing + c` and `g = f 3 4`, we've made a thunk for `g`, which if reduced to whnf would be `\c -> thing + c` where `thing` is a thunk containing `3 + 4` |
| 07:13:47 | <danse-nr3> | thanks Leary... arguably there is a collapse of semantics there, or maybe evaluation is not part of denotational semantics |
| 07:14:16 | <danse-nr3> | thanks probie, seems to confirm your criteria is a valid one, and easy to internalize |
| 07:14:36 | <Leary> | This is one area where Haskell's beauty is kinda working against us---purity and referential transparency give rise to endless meaning-preserving transformations that the compiler is free to use in optimisation. |
| 07:15:13 | <danse-nr3> | so i gather referential transparency is part of denotational semantics while evaluation strategy is not? |
| 07:16:10 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
| 07:17:59 | → | euphores joins (~SASL_euph@user/euphores) |
| 07:23:16 | × | xff0x quits (~xff0x@2405:6580:b080:900:3ca7:5236:8f09:cdd0) (Ping timeout: 255 seconds) |
| 07:36:16 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 256 seconds) |
| 07:37:56 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 07:43:47 | × | dcoutts_ quits (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) (Ping timeout: 264 seconds) |
| 07:46:53 | × | rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal) |
| 07:47:37 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 268 seconds) |
| 07:48:53 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 07:53:03 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 07:53:33 | → | euleritian joins (~euleritia@dynamic-176-006-194-173.176.6.pool.telefonica.de) |
| 08:02:01 | → | machinedgod joins (~machinedg@node-1w7jr9yjxg4b9uiwhc1g848x6.ipv6.telus.net) |
| 08:08:31 | → | rosco joins (~rosco@175.136.155.137) |
| 08:19:39 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 08:21:17 | → | dcoutts_ joins (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) |
| 08:22:43 | → | oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) |
| 08:24:57 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 08:26:08 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:26:47 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 08:26:53 | × | dcoutts_ quits (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) (Ping timeout: 272 seconds) |
| 08:27:11 | gehmehgeh | is now known as gmg |
| 08:31:58 | × | euleritian quits (~euleritia@dynamic-176-006-194-173.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:32:16 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:38:46 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:39:22 | → | chele joins (~chele@user/chele) |
| 08:44:37 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 08:46:49 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 08:49:37 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 08:50:53 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 08:52:51 | → | dcoutts_ joins (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) |
| 08:55:40 | → | __monty__ joins (~toonn@user/toonn) |
| 09:04:27 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds) |
| 09:15:02 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:22:27 | × | philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 264 seconds) |
| 09:24:15 | × | ft quits (~ft@p3e9bcb39.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:27:46 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:28:11 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 09:30:51 | × | danse-nr3 quits (~danse-nr3@151.37.209.49) (Ping timeout: 272 seconds) |
| 09:31:01 | → | danse-nr3 joins (~danse-nr3@151.37.148.51) |
| 09:46:41 | × | noumenon quits (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving) |
| 09:54:05 | → | madhavanmi joins (~madhavanm@2409:40f4:10f2:43ac:8000::) |
| 09:58:58 | × | danse-nr3 quits (~danse-nr3@151.37.148.51) (Ping timeout: 268 seconds) |
| 09:59:31 | × | Angelz quits (Angelz@Angelz.oddprotocol.org) (Quit: IRCNow and Forever!) |
| 09:59:59 | × | madhavanmi quits (~madhavanm@2409:40f4:10f2:43ac:8000::) (Remote host closed the connection) |
| 10:00:18 | → | madhavanmi joins (~madhavanm@2409:40f4:10f2:43ac:8000::) |
| 10:02:02 | → | xff0x joins (~xff0x@2405:6580:b080:900:a539:7039:59e2:58af) |
| 10:03:47 | → | Angelz joins (Angelz@angelz.oddprotocol.org) |
| 10:04:25 | × | Angelz quits (Angelz@angelz.oddprotocol.org) (Client Quit) |
| 10:07:00 | × | madhavanmi quits (~madhavanm@2409:40f4:10f2:43ac:8000::) (Ping timeout: 256 seconds) |
| 10:07:52 | → | madhavanmi joins (~madhavanm@2409:40f4:10f0:9887:8000::) |
| 10:18:19 | × | madhavanmi quits (~madhavanm@2409:40f4:10f0:9887:8000::) (Ping timeout: 246 seconds) |
| 10:18:48 | → | madhavanmi joins (~madhavanm@2409:40f4:10f7:bde6:8000::) |
| 10:22:06 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds) |
| 10:33:06 | → | cpressey joins (~weechat@33b62f0c.skybroadband.com) |
| 10:34:17 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 256 seconds) |
| 10:38:41 | × | foul_owl quits (~kerry@174-21-146-130.tukw.qwest.net) (Ping timeout: 256 seconds) |
| 10:52:50 | → | foul_owl joins (~kerry@185.219.141.162) |
| 10:53:01 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 10:53:08 | → | stef204 joins (~stef204@user/stef204) |
| 10:54:46 | → | CiaoSen joins (~Jura@2a05:5800:2b1:4300:e6b9:7aff:fe80:3d03) |
| 10:55:45 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.1.2) |
| 11:03:57 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 11:04:16 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:10:00 | × | rvalue quits (~rvalue@user/rvalue) (Remote host closed the connection) |
| 11:10:32 | → | rvalue joins (~rvalue@user/rvalue) |
| 11:12:50 | × | stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.2.1) |
| 11:13:02 | → | danse-nr3 joins (~danse-nr3@151.37.146.18) |
| 11:14:15 | <cheater> | hello |
| 11:14:45 | <cheater> | i set nmap <Leader>t :Go<Space> but when i'm in normal mode and type , then i just get a bell |
| 11:15:02 | <tomsmeding> | cheater: what's your <leader>? |
| 11:15:08 | <tomsmeding> | it's \ by defaeult |
| 11:15:11 | <cheater> | i haven't set it |
| 11:15:12 | <cheater> | oh hm |
| 11:15:15 | <cheater> | i thought it was , |
| 11:15:19 | <tomsmeding> | that's <LocalLeader> iirc |
| 11:15:27 | <cheater> | ahh thanks |
| 11:16:34 | <cheater> | oh i was going to ask in #vim |
| 11:16:39 | <cheater> | damn you, irc |
| 11:16:55 | <cheater> | tomsmeding: what do you use for hls in vim? |
| 11:17:07 | <tomsmeding> | I use neovim, with its built-in LSP support |
| 11:17:14 | <cheater> | ok |
| 11:17:18 | <cheater> | ty |
| 11:17:21 | <tomsmeding> | I hear that coc is easier to use |
| 11:17:26 | <tomsmeding> | but it works for me and less external deps |
| 11:19:27 | <cheater> | there's some new thing that's not coc and doesn't require nodejs, it's fully in vim9script |
| 11:19:34 | <cheater> | https://github.com/yegappan/lsp |
| 11:19:41 | <cheater> | this guy's some vim core dev apparently |
| 11:19:44 | <cheater> | i haven't tried it yet. |
| 11:36:53 | × | cpressey quits (~weechat@33b62f0c.skybroadband.com) (Ping timeout: 272 seconds) |
| 11:43:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:47:28 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:54:17 | × | dmj` quits (uid72307@id-72307.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:56:24 | → | falafel joins (~falafel@2a0c:5a87:3103:ec01::62b8) |
| 12:00:27 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:08:35 | → | Angelz joins (Angelz@Angelz.oddprotocol.org) |
| 12:13:16 | × | aniketd quits (32aa4844cd@2a03:6000:1812:100::dcb) (Remote host closed the connection) |
| 12:13:16 | × | duncan quits (c6181279e3@user/meow/duncan) (Remote host closed the connection) |
| 12:13:16 | × | ursa-major quits (114efe6c39@2a03:6000:1812:100::11f3) (Remote host closed the connection) |
| 12:13:16 | × | jakzale quits (6291399afa@user/jakzale) (Remote host closed the connection) |
| 12:13:17 | × | henrytill quits (e0180937c3@2a03:6000:1812:100::e8c) (Remote host closed the connection) |
| 12:13:17 | × | fvr quits (ef3e56ca8b@2a03:6000:1812:100::3c4) (Remote host closed the connection) |
| 12:13:17 | × | jleightcap quits (7bc4014b62@user/jleightcap) (Remote host closed the connection) |
| 12:13:17 | × | whereiseveryone quits (206ba86c98@2a03:6000:1812:100::2e4) (Remote host closed the connection) |
| 12:13:17 | × | jmcantrell quits (644f1bed9a@user/jmcantrell) (Remote host closed the connection) |
| 12:13:17 | × | cpli quits (77fc530071@2a03:6000:1812:100::252) (Remote host closed the connection) |
| 12:13:17 | × | sm2n quits (ae95cb1267@user/sm2n) (Remote host closed the connection) |
| 12:13:17 | × | eso quits (a0662dfd5e@2a03:6000:1812:100::1266) (Remote host closed the connection) |
| 12:13:17 | × | evanrelf quits (3addc196af@2a03:6000:1812:100::f0) (Remote host closed the connection) |
| 12:13:17 | × | ggb quits (a62ffbaf4f@2a03:6000:1812:100::3ac) (Remote host closed the connection) |
| 12:13:17 | × | JoelMcCracken quits (5ea8252fbb@2a03:6000:1812:100::10e3) (Remote host closed the connection) |
| 12:13:17 | × | fn_lumi quits (3d621153a5@2a03:6000:1812:100::df7) (Remote host closed the connection) |
| 12:13:17 | × | fluffyballoon quits (45ce440a48@2a03:6000:1812:100::e2) (Remote host closed the connection) |
| 12:13:17 | × | brettgilio quits (a35ba67324@2a03:6000:1812:100::260) (Remote host closed the connection) |
| 12:13:17 | × | probie quits (cc0b34050a@user/probie) (Remote host closed the connection) |
| 12:13:17 | × | jkoshy quits (99b9359beb@user/jkoshy) (Remote host closed the connection) |
| 12:13:17 | × | fgaz_ quits (1ff9197ed6@2a03:6000:1812:100::11ea) (Remote host closed the connection) |
| 12:13:17 | × | chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Remote host closed the connection) |
| 12:13:17 | × | samhh quits (7569f027cf@2a03:6000:1812:100::e4) (Remote host closed the connection) |
| 12:13:17 | × | b0o quits (0e4a0bf4c9@2a03:6000:1812:100::1bf) (Remote host closed the connection) |
| 12:13:17 | × | bsima1 quits (9d7e39c8ad@2a03:6000:1812:100::dd) (Remote host closed the connection) |
| 12:13:17 | × | lane quits (809450f172@2a03:6000:1812:100::1300) (Remote host closed the connection) |
| 12:13:17 | × | kuruczgy quits (55b66dd3ae@2a03:6000:1812:100::127f) (Remote host closed the connection) |
| 12:13:17 | × | akspecs quits (00cc8321af@sourcehut/user/akspecs) (Remote host closed the connection) |
| 12:13:17 | × | titibandit quits (e33ffbab65@user/titibandit) (Remote host closed the connection) |
| 12:13:19 | × | rselim quits (ce261f06ff@user/milesrout) (Remote host closed the connection) |
| 12:13:19 | × | shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Remote host closed the connection) |
| 12:13:19 | × | lukec quits (9dfd4d094e@2a03:6000:1812:100::10e) (Remote host closed the connection) |
| 12:13:19 | × | arcadewise quits (52968ed80d@2a03:6000:1812:100::3df) (Remote host closed the connection) |
| 12:13:19 | × | filwisher quits (2e6936c793@2a03:6000:1812:100::170) (Remote host closed the connection) |
| 12:13:19 | × | alethkit quits (23bd17ddc6@sourcehut/user/alethkit) (Remote host closed the connection) |
| 12:13:19 | × | ymherklotz quits (cb2c9cfbdd@2a03:6000:1812:100::29a) (Remote host closed the connection) |
| 12:13:19 | × | sus quits (1b7af6299f@user/zeromomentum) (Remote host closed the connection) |
| 12:13:19 | × | pmk quits (6afe4476a1@2a03:6000:1812:100::26d) (Write error: Broken pipe) |
| 12:13:19 | × | samhh_ quits (7569f027cf@2a03:6000:1812:100::e4) (Remote host closed the connection) |
| 12:13:19 | × | Ankhers quits (e99e97ef8e@2a03:6000:1812:100::2a2) (Remote host closed the connection) |
| 12:13:19 | × | raghavgururajan quits (ea769b8000@user/raghavgururajan) (Remote host closed the connection) |
| 12:13:49 | → | bsima1 joins (9d7e39c8ad@2a03:6000:1812:100::dd) |
| 12:13:49 | → | filwisher joins (2e6936c793@2a03:6000:1812:100::170) |
| 12:13:50 | → | lukec joins (9dfd4d094e@2a03:6000:1812:100::10e) |
| 12:13:50 | → | ggb joins (a62ffbaf4f@2a03:6000:1812:100::3ac) |
| 12:13:50 | → | lane joins (809450f172@2a03:6000:1812:100::1300) |
| 12:13:50 | → | fgaz_ joins (1ff9197ed6@2a03:6000:1812:100::11ea) |
| 12:13:51 | → | whereiseveryone joins (206ba86c98@2a03:6000:1812:100::2e4) |
| 12:13:51 | → | raghavgururajan joins (ea769b8000@user/raghavgururajan) |
| 12:13:51 | → | pmk joins (6afe4476a1@2a03:6000:1812:100::26d) |
| 12:13:52 | → | sus joins (1b7af6299f@user/zeromomentum) |
| 12:13:52 | → | jmcantrell joins (644f1bed9a@user/jmcantrell) |
| 12:13:52 | → | shreyasminocha joins (51fdc93eda@user/shreyasminocha) |
| 12:13:53 | → | jleightcap joins (7bc4014b62@user/jleightcap) |
| 12:13:54 | → | fn_lumi joins (3d621153a5@2a03:6000:1812:100::df7) |
| 12:13:55 | → | arcadewise joins (52968ed80d@2a03:6000:1812:100::3df) |
| 12:13:55 | → | chaitlatte0 joins (ea29c0bb16@2a03:6000:1812:100::1124) |
| 12:13:57 | × | chaitlatte0 quits (ea29c0bb16@2a03:6000:1812:100::1124) (Changing host) |
| 12:13:57 | → | chaitlatte0 joins (ea29c0bb16@user/chaitlatte0) |
| 12:13:57 | → | jkoshy joins (99b9359beb@user/jkoshy) |
| 12:13:58 | → | probie joins (cc0b34050a@user/probie) |
| 12:13:58 | → | ymherklotz joins (0b33419828@2a03:6000:1812:100::29a) |
| 12:13:58 | → | henrytill joins (e0180937c3@2a03:6000:1812:100::e8c) |
| 12:13:58 | → | evanrelf joins (3addc196af@2a03:6000:1812:100::f0) |
| 12:13:59 | → | aniketd joins (32aa4844cd@2a03:6000:1812:100::dcb) |
| 12:13:59 | → | akspecs joins (00cc8321af@2a03:6000:1812:100::11a) |
| 12:13:59 | → | duncan joins (c6181279e3@user/meow/duncan) |
| 12:13:59 | → | rselim joins (ce261f06ff@user/milesrout) |
| 12:14:00 | → | cpli joins (77fc530071@2a03:6000:1812:100::252) |
| 12:14:00 | → | samhh joins (7569f027cf@2a03:6000:1812:100::e4) |
| 12:14:00 | → | Ankhers joins (e99e97ef8e@2a03:6000:1812:100::2a2) |
| 12:14:00 | × | akspecs quits (00cc8321af@2a03:6000:1812:100::11a) (Changing host) |
| 12:14:00 | → | akspecs joins (00cc8321af@sourcehut/user/akspecs) |
| 12:14:00 | → | jakzale joins (6291399afa@user/jakzale) |
| 12:14:01 | → | b0o joins (0e4a0bf4c9@2a03:6000:1812:100::1bf) |
| 12:14:01 | → | sm2n joins (ae95cb1267@user/sm2n) |
| 12:14:01 | → | kuruczgy joins (55b66dd3ae@2a03:6000:1812:100::127f) |
| 12:14:02 | → | ursa-major joins (114efe6c39@2a03:6000:1812:100::11f3) |
| 12:14:02 | → | brettgilio joins (a35ba67324@2a03:6000:1812:100::260) |
| 12:14:04 | → | titibandit joins (e33ffbab65@user/titibandit) |
| 12:14:04 | → | alethkit joins (23bd17ddc6@sourcehut/user/alethkit) |
| 12:14:04 | → | fluffyballoon joins (45ce440a48@2a03:6000:1812:100::e2) |
| 12:14:04 | → | eso joins (a0662dfd5e@2a03:6000:1812:100::1266) |
| 12:14:04 | → | JoelMcCracken joins (5ea8252fbb@2a03:6000:1812:100::10e3) |
| 12:14:09 | → | fvr joins (ef3e56ca8b@2a03:6000:1812:100::3c4) |
| 12:14:55 | → | samhh_ joins (7569f027cf@2a03:6000:1812:100::e4) |
| 12:15:15 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds) |
| 12:20:49 | × | ian_ quits (~ian@matrix.chaos.earth.li) (Ping timeout: 256 seconds) |
| 12:32:09 | → | cpressey joins (~weechat@33b62f0c.skybroadband.com) |
| 12:38:56 | × | markasoftware quits (~quassel@107.161.26.124) (Quit: No Ping reply in 180 seconds.) |
| 12:40:12 | → | markasoftware joins (~quassel@107.161.26.124) |
| 12:42:47 | → | zzz joins (~yin@user/zero) |
| 12:49:19 | × | cpressey quits (~weechat@33b62f0c.skybroadband.com) (Quit: WeeChat 4.3.0) |
| 12:52:56 | → | Igloo joins (~ian@matrix.chaos.earth.li) |
| 12:54:51 | × | rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal) |
| 12:55:42 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 12:56:07 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 13:01:08 | → | nkatte joins (~nkatte@191.177.174.42) |
| 13:02:10 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 13:02:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:04:17 | × | zzz quits (~yin@user/zero) (Ping timeout: 268 seconds) |
| 13:11:49 | × | dumptruckman quits (~dumptruck@69-164-220-160.ip.linodeusercontent.com) (Quit: ZNC - https://znc.in) |
| 13:14:49 | → | dumptruckman joins (~dumptruck@69-164-210-35.ip.linodeusercontent.com) |
| 13:21:09 | × | causal quits (~eric@50.35.88.207) (Quit: WeeChat 4.3.1) |
| 13:24:27 | × | madhavanmi quits (~madhavanm@2409:40f4:10f7:bde6:8000::) (Quit: Quit) |
| 13:27:34 | × | danse-nr3 quits (~danse-nr3@151.37.146.18) (Read error: Connection reset by peer) |
| 13:28:37 | → | danse-nr3 joins (~danse-nr3@151.35.187.238) |
| 13:30:05 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 13:30:33 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 13:35:41 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 13:35:53 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 13:41:03 | → | k_hachig_ joins (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) |
| 13:45:35 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 13:45:54 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 13:50:37 | → | ystael joins (~ystael@user/ystael) |
| 14:01:58 | × | falafel quits (~falafel@2a0c:5a87:3103:ec01::62b8) (Ping timeout: 255 seconds) |
| 14:07:29 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 14:07:38 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 14:08:02 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 14:15:51 | × | dcoutts_ quits (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) (Ping timeout: 264 seconds) |
| 14:25:08 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 14:25:27 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 14:33:20 | → | madhavanmiui joins (~madhavanm@2409:40f4:2019:782c:8000::) |
| 14:34:17 | × | madhavanmiui quits (~madhavanm@2409:40f4:2019:782c:8000::) (Client Quit) |
| 14:41:54 | × | xdminsy quits (~xdminsy@117.147.70.212) (Read error: Connection reset by peer) |
| 14:53:07 | × | itaipu quits (~itaipu@168.121.98.97) (Ping timeout: 268 seconds) |
| 14:54:10 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 14:54:58 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 14:55:53 | → | rosco joins (~rosco@175.136.155.137) |
| 14:56:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:56:32 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 14:58:13 | × | CiaoSen quits (~Jura@2a05:5800:2b1:4300:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds) |
| 15:06:11 | × | destituion quits (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) (Remote host closed the connection) |
| 15:06:24 | → | destituion joins (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) |
| 15:06:40 | × | destituion quits (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) (Remote host closed the connection) |
| 15:06:57 | → | destituion joins (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) |
| 15:07:42 | × | destituion quits (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) (Remote host closed the connection) |
| 15:08:11 | → | destituion joins (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) |
| 15:08:47 | × | destituion quits (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) (Remote host closed the connection) |
| 15:10:03 | → | destituion joins (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) |
| 15:14:23 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:20:43 | × | danse-nr3 quits (~danse-nr3@151.35.187.238) (Ping timeout: 255 seconds) |
| 15:21:21 | → | rdcdr_ joins (~rdcdr@75-172-82-63.tukw.qwest.net) |
| 15:22:31 | × | rdcdr quits (~rdcdr@user/rdcdr) (Ping timeout: 255 seconds) |
| 15:22:34 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 15:24:07 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 15:24:51 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
| 15:28:06 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 15:28:17 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 15:30:37 | × | destituion quits (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) (Remote host closed the connection) |
| 15:31:25 | → | danse-nr3 joins (~danse-nr3@151.35.187.238) |
| 15:35:58 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 15:35:59 | <monochrom> | danse-nr3: Denotational semantics focuses on whether there is a value and what the value is. It leaves open how (evaluation strategy) to get it, and therefore how much it costs. |
| 15:36:23 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 15:40:23 | <hadronized> | I read about about a language called Ante, and that got me curious to circle back to the state of Haskell and especially linear types; has the community adopted them already? :) |
| 15:41:15 | <monochrom> | (There is a nuiance there. That is true to date. Sometimes some researchers try to include cost in denotational semantics, but it is still preliminary and not very successful. It is possible that the nature of denotational semantics makes it difficult.) |
| 15:41:59 | <monochrom> | GHC has linear types now. |
| 15:42:18 | <monochrom> | I don't follow linear types, I don't know what else. |
| 15:43:26 | <EvanR> | I recently pretended I had linear types in C |
| 15:44:03 | <EvanR> | input structures to each API call would be formally consumed, and I'm required to "use" the result |
| 15:44:16 | <EvanR> | reduced the memory management in the end |
| 15:44:51 | → | Midjak joins (~MarciZ@82.66.147.146) |
| 15:45:18 | <EvanR> | still not as slick as bog standard haskell with gc |
| 15:45:21 | <monochrom> | Is that like C++'s RAII? |
| 15:45:33 | <monochrom> | Or maybe it's more like Rust. |
| 15:45:54 | <EvanR> | rust tracks ownership and allows borrowing of ownership |
| 15:46:14 | <EvanR> | I pretended all my data was immutable and got regenerated by each operation |
| 15:46:33 | <EvanR> | but it secretly was not |
| 15:46:47 | <monochrom> | OK, like compiling Linear Haskell to C. :) |
| 15:47:08 | → | noumenon joins (~noumenon@113.51-175-156.customer.lyse.net) |
| 15:48:11 | <EvanR> | yeah, though does linear haskell "optimize" anything wrt to gc? |
| 15:48:21 | <EvanR> | or is it mainly a type system thing |
| 15:49:10 | <monochrom> | Although I have not been following, I believe it is just a type thing. |
| 15:49:52 | <EvanR> | because I logically consumed the inputs I could reuse the storage for the return value in lieu of actually freeing it |
| 15:50:15 | <EvanR> | though actually freeing was sometimes unavoidable |
| 15:50:57 | <hadronized> | Rust is affine, not linear |
| 15:51:14 | <hadronized> | I think the GC can be hugely optimized with linear typing yeah |
| 15:51:17 | <hadronized> | I was wondering about it |
| 15:51:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:52:31 | <EvanR> | it's possible that GC is more efficient, by some metric, in some situations, than memory management linear or not |
| 15:52:38 | × | danse-nr3 quits (~danse-nr3@151.35.187.238) (Ping timeout: 268 seconds) |
| 15:52:59 | <EvanR> | calling into malloc and free each time has cost |
| 15:53:37 | <EvanR> | but not allocating in the first place is more efficient than both |
| 15:53:54 | <monochrom> | https://gitlab.haskell.org/ghc/ghc/-/wikis/linear-types#does-this-proposal-improve-performance "No." :) |
| 15:54:10 | <EvanR> | success avoided again! |
| 15:55:11 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 15:55:15 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 15:55:27 | <iqubic> | Linear types are cool! |
| 15:56:53 | → | Guest70 joins (~Guest70@2400:1a00:bd11:e2fe:d5e9:fd2c:a983:6dbe) |
| 15:59:42 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 16:00:10 | <monochrom> | Not enough people are working on it, so they can only do one thing at a time. |
| 16:00:23 | <monochrom> | Ugh is that, like, a meta-pun? :) |
| 16:02:08 | <hadronized> | hehe |
| 16:02:23 | <hadronized> | it’s been a very long time I haven’t done Haskell (I even changed my nickname since then) |
| 16:02:23 | <EvanR> | the audience laughter was consumed |
| 16:02:35 | <hadronized> | sometimes I feel like I would love to go back to 100% Haskell, even for spare-time projects |
| 16:03:31 | <monochrom> | Don't feel bad about being less than 100% Haskell. I write shell scripts all the time, too. |
| 16:03:48 | <hadronized> | ah I mean, I’m mostly doing Rust these days |
| 16:04:08 | <hadronized> | and I moved most of my old Haskell projects to Rust |
| 16:04:14 | <EvanR> | a good ability to unlock is to quickly hook up not-haskell code to haskell. C is particularly straightforward |
| 16:04:41 | <hadronized> | the only problem I have with Haskell is that it’s not really suited for low-level code, even though I would love it to |
| 16:04:56 | <EvanR> | that's where a supporting C file comes in xD |
| 16:05:09 | <hadronized> | I’m not sure I follow :) |
| 16:05:27 | <EvanR> | haskell's FFI makes calling into C pretty easy |
| 16:05:34 | <monochrom> | For low-level code, Rust has the right fragment of FP. |
| 16:05:38 | <hadronized> | the funny thing to me is that, for instance in video games, people use low-level languages (C, C++, Rust, etc.) and eventually create GC and memory pool |
| 16:05:43 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 16:05:54 | <hadronized> | monochrom: yeah, hence why I keep using Rust instead of Haskell |
| 16:05:57 | <EvanR> | you can also have the haskell code called from C |
| 16:06:06 | → | beowuff joins (~beowuff@50.125.248.222) |
| 16:06:14 | <hadronized> | lately I thought about parallel computations and realized Rust is probably not that good at doing that |
| 16:06:20 | <hadronized> | (and I’m not talking async IO; just parallel code) |
| 16:06:36 | <hadronized> | not having that backed by the compiler makes it either hard or ugly to do) |
| 16:06:39 | <hadronized> | -) |
| 16:06:45 | <monochrom> | Oh it gets better. People who swear by select()/epoll() eventually create their own OS! |
| 16:06:54 | <hadronized> | :P |
| 16:07:03 | → | TactfulCitrus joins (~al@2a02:8012:87a6:0:fbe0:6116:6e30:e047) |
| 16:07:15 | <EvanR> | you can't write your own OS until you write your own programming language |
| 16:07:22 | <EvanR> | and your own text editor to write it in |
| 16:07:34 | <hadronized> | I thought about the text editor but not the OS |
| 16:07:47 | <hadronized> | but eventually, you should make your own hardware, FP compatible |
| 16:07:50 | × | xal quits (~xal@mx1.xal.systems) () |
| 16:07:51 | <hadronized> | then no more issues with memory etc. |
| 16:07:58 | <hadronized> | then 1enjoy |
| 16:08:15 | <EvanR> | but first you need silicon, but first you need hydrogen, first you need big bang nucleosynthesis |
| 16:08:27 | → | xal joins (~xal@mx1.xal.systems) |
| 16:08:39 | hadronized | smiles |
| 16:09:45 | × | machinedgod quits (~machinedg@node-1w7jr9yjxg4b9uiwhc1g848x6.ipv6.telus.net) (Ping timeout: 255 seconds) |
| 16:09:49 | ← | beowuff parts (~beowuff@50.125.248.222) () |
| 16:09:54 | × | k_hachig_ quits (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) (Ping timeout: 268 seconds) |
| 16:10:19 | <hadronized> | EvanR: the avoid success at all costs is funny but in the end, I don’t like it, because I would like the industry to really adopt Haskell (or a similar language) so that I can do it all the time |
| 16:10:27 | <hadronized> | Rust is nice, but Rust is also annoying for some other things |
| 16:10:43 | <hadronized> | for instance, I do think that some decisions were made in a weird way |
| 16:10:44 | <haskellbridge> | <sm> that slogan.... |
| 16:10:51 | <hadronized> | (the last one on my mind being async/await) |
| 16:11:17 | <hadronized> | I wrote kak-tree-sitter and I had to come up with some async IO; I didn’t use tokio because it doesn’t work very well with non-blocking FIFO |
| 16:11:39 | <hadronized> | so I used mio, and thus discovered the wonderful land of async IO, state machines etc. |
| 16:12:07 | <hadronized> | and thus understand a bit more why we have async/await as a specific implementation of a more general concept (generators / monads) |
| 16:12:20 | <hadronized> | but still, I don’t like how an async function reads; left, right, left, right, left :D |
| 16:12:43 | <hadronized> | async fn foo() -> Result<i32, _> is basically fn foo() -> impl Future<Output = Result<i32, _>> |
| 16:12:45 | <hadronized> | meh… |
| 16:13:00 | <hadronized> | anyway, yeah, I wish Haskell was more successful |
| 16:13:05 | <monochrom> | That slogan should be taken as just a joke. |
| 16:13:08 | × | Guest70 quits (~Guest70@2400:1a00:bd11:e2fe:d5e9:fd2c:a983:6dbe) (Quit: Client closed) |
| 16:13:22 | <haskellbridge> | <sm> we have wasted a lot of time explaining this over the years :) |
| 16:13:35 | <haskellbridge> | <sm> time we had a FAQ |
| 16:13:37 | <monochrom> | OTOH don't hold your breath about industry either. Well, "industry". |
| 16:13:39 | <hadronized> | monochrom: it’s a joke, but it’s also not really a joke |
| 16:13:46 | <hadronized> | monochrom: what do you mean? |
| 16:14:27 | <haskellbridge> | <sm> https://news.ycombinator.com/item?id=12056169 |
| 16:15:04 | <haskellbridge> | <sm> avoid making "success at any cost" the only priority |
| 16:15:08 | <monochrom> | People have called me elitist for this, but I say that the programming industry is not up to par to the level of professionalsim like other professions like engineering, medicine, law, ... |
| 16:15:30 | <hadronized> | monochrom: oh I agree |
| 16:15:43 | <hadronized> | and some people even make fools of themselves regarding that |
| 16:15:50 | <haskellbridge> | <sm> * don't fall into the trap of prioritising "success" above all else |
| 16:15:54 | <hadronized> | people calling themselves engineers while they lack most of the method / tooling, etc. |
| 16:16:06 | <monochrom> | Here is one small glimpse. Other professions are like "does it actually work? do you have data? is it cost effective?" Programmers are like "is it intuitive?". |
| 16:16:12 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 16:16:21 | <hadronized> | a couple years ago, I was hired for a company in a team where I did Haskell 100% of the time, and it was probably the best codebase I worked in |
| 16:16:28 | <haskellbridge> | <sm> * "mass success" above all else. ["don't sell out", I guess] |
| 16:16:32 | <hadronized> | I have never found anything close to it (and the company closed the project) |
| 16:16:56 | <hadronized> | monochrom: yeah, and in the scientific field, intuition is really a bad thing to play around I think |
| 16:17:10 | <hadronized> | I hate some slogans going like if it works, don’t touch it |
| 16:17:18 | <hadronized> | it just shows how bad most of us are at engineering |
| 16:18:08 | <EvanR> | hadronized, don't wait for industry, get a haskell job |
| 16:18:17 | <EvanR> | or create one |
| 16:18:28 | <EvanR> | be the industry |
| 16:19:00 | <hadronized> | I tried Zig and had a discussion with the author, and pointed out issues with the design of the language (basically, it’s super easy — intuitive — to return a reference to a stack frame that was just deallocated) |
| 16:19:01 | → | dmj` joins (uid72307@id-72307.hampstead.irccloud.com) |
| 16:19:14 | <hadronized> | and the author just replied that fixing that would make the language too complex |
| 16:19:17 | <EvanR> | zig is :( |
| 16:19:19 | <hadronized> | and I then stopped learning it |
| 16:19:33 | <EvanR> | it addresses things that are not problems and creates its own problems |
| 16:19:39 | <hadronized> | it sounds weird that languages created nowadays ignore the problems of languages made in the 80s |
| 16:19:44 | <hadronized> | EvanR: exactly |
| 16:20:04 | <hadronized> | it addresses Rust’s unsafety by making it a bit safer, while completely removing all the safe parts of Rust |
| 16:20:06 | <hadronized> | which is… just weird |
| 16:20:14 | <haskellbridge> | <sm> chris done had a good cautionary post on rust here: https://chrisdone.com/posts/rust |
| 16:20:34 | <hadronized> | EvanR | hadronized, don't wait for industry, get a haskell job |
| 16:20:41 | <hadronized> | I sometimes think about it — since I had one in the past |
| 16:20:51 | <monochrom> | Luca Cardelli told Bertrand Meyer about the nuisance of covariant, contravariant, invariant. Meyer did nothing. |
| 16:20:55 | <hadronized> | the problem is that it’s a pretty niche industry, and I don’t want to enclose myself in a position that would close more doors to me |
| 16:21:08 | <hadronized> | who’s Luca? |
| 16:21:11 | → | k_hachig_ joins (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) |
| 16:21:13 | <monochrom> | (Thank God the Scala people took it seriously.) |
| 16:22:01 | <monochrom> | He's about the only person who actually makes OO rigorous. http://lucacardelli.name/Topics/TheoryOfObjects/ObjectSubject.html |
| 16:22:02 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:22:23 | <monochrom> | Probably also the first one to raise the covariant etc issues. |
| 16:22:30 | <EvanR> | is a circle a subclass of trisquirclehedron or the other way around? |
| 16:22:31 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 272 seconds) |
| 16:22:38 | <dolio> | That 'clarification' is post-hoc, though. There is meaning in the other reading, too. |
| 16:22:53 | <dolio> | There are many things that cannot be fixed about Haskell because it is too widely used at this point. |
| 16:23:33 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:25:05 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 16:26:16 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 16:26:25 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 16:26:34 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 16:26:46 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:27:04 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:30:52 | × | noumenon quits (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving) |
| 16:30:52 | <hadronized> | also, what is the state around Haskell support for RAII? |
| 16:30:57 | <hadronized> | is it still resourcet? :) |
| 16:33:57 | <EvanR> | bracket pattern? |
| 16:34:26 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds) |
| 16:35:01 | <EvanR> | acquire resource, thing to do with resource, release resource, thing to do in case of error |
| 16:35:56 | <EvanR> | scratch the last one |
| 16:35:57 | <EvanR> | https://wiki.haskell.org/Bracket_pattern |
| 16:38:26 | <hadronized> | ah yeah bracket, I remember that one too |
| 16:38:28 | <hadronized> | thanks |
| 16:38:55 | <dolio> | What is meant by RAII? |
| 16:39:08 | <hadronized> | basically, Drop |
| 16:39:10 | <dolio> | If you open a socket in GHC, it gets closed when it's garbage collected, I think. |
| 16:39:34 | <dolio> | So is that RAII? |
| 16:39:48 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 16:40:01 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 16:41:47 | → | falafel joins (~falafel@2a0c:5a87:3103:ec01::62b8) |
| 16:42:10 | <dmj`> | hadronized: if you're using pointers in C, you can wrap them in a ForeignPtr. This will let you install a finalizer when the object is ready to be GC'd. Beware finalizers are only run in GHC during GC, so your GC settings might affect finalization. |
| 16:42:41 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:48:17 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:48:52 | → | euleritian joins (~euleritia@77.22.252.56) |
| 16:48:57 | <EvanR> | if RAII unintuitively includes *deallocating or releasing resources* at the closing bracket of the block, that's bracket. Finalizer probably happens much later. Even then, I wonder why this is filed under RAII xD hence dolio's question |
| 16:49:26 | <dolio> | I never understand what people mean when they talk about RAII. |
| 16:51:59 | <EvanR> | "resource aquisition tied to object lifetime" ok that covers both situations I mentioned. Now if only someone made that the acronym |
| 16:58:09 | × | falafel quits (~falafel@2a0c:5a87:3103:ec01::62b8) (Remote host closed the connection) |
| 16:58:35 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
| 17:01:44 | → | dcoutts_ joins (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) |
| 17:04:55 | <mauke> | RAII only makes sense in a language with prompt cleanup |
| 17:05:19 | <monochrom> | RAII is a poorly chosen name because of that. It should say more about release and exiting a lexical scope. |
| 17:05:22 | <mauke> | it has to be deterministic |
| 17:05:32 | <dolio> | Is it about the lexical scoping? |
| 17:05:40 | <mauke> | it's about C++ |
| 17:06:03 | <monochrom> | But anyway in Haskell we use bracket. Advanced people use some of those region/session libraries. Very advanced people just switch to another language that has session types. :) |
| 17:06:06 | <dolio> | Or do people also mean that the resource gets cleaned up whenever you free it? |
| 17:06:09 | <mauke> | you can't customize lexical scopes, but you can do the next best thing: declare a local variable of a custom type, which can do custom things in its destructor |
| 17:07:25 | <mauke> | I think the lexical thing came first, and then people used it for dynamic things, too |
| 17:07:54 | <mauke> | originally it was just about managing resources safely in the presence of arbitrary exceptions, I'm pretty sure |
| 17:07:56 | <monochrom> | RAII says: Don't "p = new Foo()", have "x = Foo()" instead. Because upon lexical scope exit (especially upon exception), no one is ensuring "delete p", but the language itself ensures calling x.~Foo(). |
| 17:08:20 | <dolio> | Okay. |
| 17:08:25 | <dolio> | So the name is garbage. |
| 17:08:30 | <geekosaur> | yes |
| 17:08:39 | <mauke> | it makes sense as a C++ design pattern |
| 17:08:42 | <monochrom> | Yes that's what I was trying to calling out when talking to C++ fans. |
| 17:08:45 | <geekosaur> | and highly specific to how C++ works without saying so |
| 17:08:46 | <mauke> | like the "rule of 3" or whatever |
| 17:09:00 | <dolio> | From Planescape? |
| 17:09:03 | <monochrom> | Of course, Stockholm Syndrome implies that they must rationalize the wrong name. |
| 17:09:18 | <mauke> | which I think became the rule of 5 and then the rule of 0? |
| 17:09:37 | <geekosaur> | (another side effect is people try to apply it to languages which don't have C++'s semantics) |
| 17:09:41 | × | dcoutts_ quits (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) (Ping timeout: 240 seconds) |
| 17:09:48 | <mauke> | hey, it works pretty well in perl |
| 17:10:22 | <mauke> | but in perl you're not limited to statically defined classes, so you can just have a single custom type that wraps a lambda |
| 17:11:20 | <mauke> | { my $dummy = end { do_arbitrary_cleanup_here(); }; ... } |
| 17:11:33 | <mauke> | where 'end' is a "smart constructor" |
| 17:12:28 | <monochrom> | Likewise, I say that the name of "bus factor" is bad, too. It's literally an insider joke. |
| 17:12:48 | <monochrom> | And do anyone of you want to guess what "test pollution" means? |
| 17:12:48 | <dolio> | Yeah. |
| 17:13:01 | <mauke> | (full implementation available at https://metacpan.org/dist/End/source/lib/End.pm ) |
| 17:13:23 | <monochrom> | Programmers are not the paragon of making meaningful names actually descriptive. |
| 17:15:55 | → | itaipu joins (~itaipu@168.121.99.8) |
| 17:16:22 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 17:17:10 | <mauke> | is anyone familiar enough with Koka to tell if it supports RAII-like things? |
| 17:17:47 | <monochrom> | IIRC yes. |
| 17:17:53 | → | heropass joins (~dfs@syn-072-183-132-110.res.spectrum.com) |
| 17:19:46 | <monochrom> | Because I think of "return operation" as where you can put your finalizer. But maybe again the RAII model doesn't fit Koka. |
| 17:20:59 | <monochrom> | Err no, don't use return operation. Koka has initinally and finally. Use that. https://koka-lang.github.io/koka/doc/book.html#sec-resource |
| 17:22:58 | <monochrom> | I am really tempted to ditch Haskell and switch to Koka. :) |
| 17:23:06 | <Rembane> | monochrom: Do it! And tell us all about it! |
| 17:23:15 | <monochrom> | But upon "eager evaluation" I decided to stay with Haskell. >:) |
| 17:23:53 | <monochrom> | But if you want a real effect system, Koka or Eff or any of the algebraic effect language is your future. |
| 17:27:14 | × | rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal) |
| 17:34:17 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 17:35:41 | → | dcoutts_ joins (~duncan@oxfd-27-b2-v4wan-164228-cust163.vm42.cable.virginm.net) |
| 17:48:02 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:48:28 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 17:48:59 | <hadronized> | monochrom: first time I hear about koka |
| 17:49:03 | <hadronized> | that sounds interesting |
| 17:52:19 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 260 seconds) |
| 17:52:56 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 17:55:01 | → | euphores joins (~SASL_euph@user/euphores) |
| 17:55:53 | → | d34df00d joins (~d34df00d@2600:1702:4f1b:7c10::43) |
| 17:57:29 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 252 seconds) |
| 17:58:02 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 18:00:16 | → | zzz joins (~yin@user/zero) |
| 18:05:25 | → | dyniec joins (~dyniec@dybiec.info) |
| 18:06:19 | × | euphores quits (~SASL_euph@user/euphores) (Ping timeout: 255 seconds) |
| 18:07:08 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:07:32 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 18:08:30 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:10:26 | → | euphores joins (~SASL_euph@user/euphores) |
| 18:24:07 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 246 seconds) |
| 18:25:25 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 18:29:52 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 18:30:11 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 268 seconds) |
| 18:31:20 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 18:43:45 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 272 seconds) |
| 18:44:13 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 18:49:51 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 18:50:23 | × | k_hachig_ quits (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) (Ping timeout: 264 seconds) |
| 18:52:31 | × | heropass quits (~dfs@syn-072-183-132-110.res.spectrum.com) (Quit: leaving) |
| 18:54:29 | × | SteelBlueSilk quits (~SteelBlue@user/SteelBlueSilk) (Ping timeout: 240 seconds) |
| 18:55:02 | → | k_hachig_ joins (~k_hachig@65.94.221.127) |
| 19:08:25 | × | dmj` quits (uid72307@id-72307.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:08:49 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 256 seconds) |
| 19:11:04 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 264 seconds) |
| 19:17:15 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 19:18:45 | → | johnw joins (~johnw@69.62.242.138) |
| 19:21:31 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds) |
| 19:23:51 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 19:25:07 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 19:32:03 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
| 19:37:45 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 19:40:24 | → | ft joins (~ft@p3e9bcb39.dip0.t-ipconnect.de) |
| 19:41:37 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 19:46:27 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 264 seconds) |
| 19:48:12 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 19:49:07 | × | k_hachig_ quits (~k_hachig@65.94.221.127) (Ping timeout: 268 seconds) |
| 19:49:24 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 19:49:52 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 19:51:32 | → | zmt00 joins (~zmt00@user/zmt00) |
| 19:52:25 | × | CrunchyFlakes quits (~CrunchyFl@146.52.130.128) (Read error: Connection reset by peer) |
| 19:52:49 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 268 seconds) |
| 19:53:26 | × | zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 268 seconds) |
| 19:53:53 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 19:54:55 | → | CrunchyFlakes joins (~CrunchyFl@146.52.130.128) |
| 19:58:27 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 264 seconds) |
| 19:59:07 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 20:05:01 | × | oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Quit: oo_miguel) |
| 20:06:13 | → | k_hachig_ joins (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) |
| 20:06:43 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 272 seconds) |
| 20:08:59 | → | zmt01 joins (~zmt00@user/zmt00) |
| 20:11:01 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 20:11:19 | → | euleritian joins (~euleritia@2a02:810a:b00:1568:3120:7790:3e06:2887) |
| 20:12:15 | × | zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 264 seconds) |
| 20:12:37 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 20:13:39 | × | k_hachig_ quits (~k_hachig@bras-base-mtrlpq42zf4-grc-08-65-94-221-127.dsl.bell.ca) (Ping timeout: 255 seconds) |
| 20:21:42 | → | k_hachig_ joins (~k_hachig@65.94.221.127) |
| 20:21:48 | → | andrei_n joins (~andrei_n@user/andrei-n:62396) |
| 20:23:11 | × | euleritian quits (~euleritia@2a02:810a:b00:1568:3120:7790:3e06:2887) (Ping timeout: 272 seconds) |
| 20:23:26 | → | euleritian joins (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) |
| 20:25:04 | × | andrei_n quits (~andrei_n@user/andrei-n:62396) (Client Quit) |
| 20:32:51 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
| 20:32:57 | × | michalz quits (~michalz@185.246.207.193) (Quit: ZNC 1.9.0 - https://znc.in) |
| 20:34:09 | → | solaire joins (~solaire@dhcp-141-239-120-20.hawaiiantel.net) |
| 20:35:22 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
| 20:38:59 | × | solaire quits (~solaire@dhcp-141-239-120-20.hawaiiantel.net) (Ping timeout: 264 seconds) |
| 20:40:21 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 20:41:19 | → | destituion joins (~destituio@2a02:2121:306:89fe:ede:e4a:e882:ff5) |
| 21:06:49 | × | srk quits (~sorki@user/srk) (Ping timeout: 268 seconds) |
| 21:28:57 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:33:01 | → | tabemann joins (~tabemann@50.202.131.11) |
| 21:41:30 | → | pavonia joins (~user@user/siracusa) |
| 21:44:00 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 21:50:54 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds) |
| 21:52:20 | × | euleritian quits (~euleritia@dynamic-176-003-067-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 21:52:39 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 21:56:18 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 21:59:24 | → | gmg joins (~user@user/gehmehgeh) |
| 22:01:10 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:03:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:04:48 | × | kuribas quits (~user@ptr-17d51eokk4x6v7fmbmr.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 22:05:15 | × | solaire quits (~solaire@syn-024-165-026-201.res.spectrum.com) (Ping timeout: 255 seconds) |
| 22:05:30 | → | solaire joins (~solaire@syn-024-165-026-201.res.spectrum.com) |
| 22:07:04 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 22:11:50 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:14:46 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 246 seconds) |
| 22:18:27 | × | acidjnk_new quits (~acidjnk@p200300d6e714dc39d0437a9dd700f698.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 22:20:33 | × | tomku quits (~tomku@syn-141-126-184-057.res.spectrum.com) (Ping timeout: 255 seconds) |
| 22:23:29 | × | henry40408 quits (~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds)) |
| 22:23:53 | → | henry40408 joins (~henry4040@175.182.111.183) |
| 22:27:58 | × | johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
| 22:29:13 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:30:35 | → | johnw joins (~johnw@69.62.242.138) |
| 22:33:04 | → | tomku joins (~tomku@syn-141-126-184-057.res.spectrum.com) |
| 22:41:43 | × | zzz quits (~yin@user/zero) (Ping timeout: 255 seconds) |
| 22:47:34 | → | raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
| 22:51:45 | × | ocra8 quits (~ocra8@user/ocra8) (Quit: WeeChat 4.3.2) |
| 22:55:43 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds) |
| 23:01:50 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 23:02:47 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 23:04:03 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 23:05:34 | → | joeyadams joins (~joeyadams@2603:6010:5100:2ed:381d:57ce:f49c:8828) |
| 23:08:18 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds) |
| 23:21:31 | → | pwug joins (~pwug@user/pwug) |
| 23:21:33 | × | CrunchyFlakes quits (~CrunchyFl@146.52.130.128) (Read error: Connection reset by peer) |
| 23:22:02 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:24:11 | → | CrunchyFlakes joins (~CrunchyFl@146.52.130.128) |
| 23:25:46 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:32:51 | → | segfaultfizzbuzz joins (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
| 23:34:22 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
| 23:44:24 | → | xdminsy joins (~xdminsy@117.147.70.231) |
| 23:44:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 23:46:38 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 23:52:11 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
| 23:53:04 | → | causal joins (~eric@50.35.88.207) |
| 23:53:42 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:55:43 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:58:07 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:58:27 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
| 23:59:07 | × | segfaultfizzbuzz quits (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
All times are in UTC on 2024-06-17.