2023-02-24 00:04:26 +0100 | alecs | (~alecs@31.188.176.146) (Quit: WeeChat 3.8) |
2023-02-24 00:08:19 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: the updatening) |
2023-02-24 00:09:15 +0100 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-02-24 00:11:24 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-24 00:11:27 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
2023-02-24 00:12:10 +0100 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds)) |
2023-02-24 00:12:28 +0100 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2023-02-24 00:21:03 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 248 seconds) |
2023-02-24 00:23:59 +0100 | alphabeta | (~kilolympu@213.144.144.24) |
2023-02-24 00:24:30 +0100 | alphabeta | (~kilolympu@213.144.144.24) (Client Quit) |
2023-02-24 00:25:15 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) |
2023-02-24 00:26:47 +0100 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2023-02-24 00:27:39 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2023-02-24 00:29:02 +0100 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2023-02-24 00:29:21 +0100 | jinsun | (~jinsun@user/jinsun) |
2023-02-24 00:29:47 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) (Ping timeout: 248 seconds) |
2023-02-24 00:31:29 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 265 seconds) |
2023-02-24 00:33:03 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 00:33:53 +0100 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2023-02-24 00:35:00 +0100 | ub | (~Thunderbi@p548c8a3b.dip0.t-ipconnect.de) |
2023-02-24 00:35:55 +0100 | ubert | (~Thunderbi@p200300ecdf1f1efb237106c089344746.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2023-02-24 00:35:55 +0100 | ub | ubert |
2023-02-24 00:36:42 +0100 | <ph88> | is it possible / how can this be used with generic deriving via ? https://hackage.haskell.org/package/hasbolt-extras-0.0.2.0/docs/Database-Bolt-Extras-Generic.html |
2023-02-24 00:40:58 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-02-24 00:42:16 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:b5c5:f2b7:be92:9467) |
2023-02-24 00:45:42 +0100 | jinsun | Guest4113 |
2023-02-24 00:45:42 +0100 | jinsun__ | (~jinsun@user/jinsun) |
2023-02-24 00:45:42 +0100 | Guest4113 | (~jinsun@user/jinsun) (Killed (molybdenum.libera.chat (Nickname regained by services))) |
2023-02-24 00:45:42 +0100 | jinsun__ | jinsun |
2023-02-24 00:46:40 +0100 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2023-02-24 00:47:07 +0100 | jinsun | (~jinsun@user/jinsun) |
2023-02-24 00:48:59 +0100 | Feuermagier_ | (~Feuermagi@user/feuermagier) |
2023-02-24 00:49:54 +0100 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2023-02-24 00:50:12 +0100 | jinsun | (~jinsun@user/jinsun) |
2023-02-24 00:51:14 +0100 | Feuermagier_ | (~Feuermagi@user/feuermagier) (Client Quit) |
2023-02-24 00:51:22 +0100 | k8yun | (~k8yun@user/k8yun) |
2023-02-24 00:51:31 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 246 seconds) |
2023-02-24 00:51:48 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-02-24 00:52:02 +0100 | <jackdk> | probably `deriving IsValue via BoltGeneric` |
2023-02-24 00:52:20 +0100 | k8yun | (~k8yun@user/k8yun) (Max SendQ exceeded) |
2023-02-24 00:52:49 +0100 | k8yun | (~k8yun@user/k8yun) |
2023-02-24 00:56:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-02-24 00:56:16 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 252 seconds) |
2023-02-24 00:56:29 +0100 | k8yun | (~k8yun@user/k8yun) (Max SendQ exceeded) |
2023-02-24 00:57:27 +0100 | k8yun | (~k8yun@user/k8yun) |
2023-02-24 00:58:24 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 01:00:47 +0100 | k8yun | (~k8yun@user/k8yun) (Max SendQ exceeded) |
2023-02-24 01:01:54 +0100 | k8yun | (~k8yun@user/k8yun) |
2023-02-24 01:04:33 +0100 | demsh | (~demsh@algiz.demsh.org) |
2023-02-24 01:04:52 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-02-24 01:11:10 +0100 | k8yun | (~k8yun@user/k8yun) (Ping timeout: 260 seconds) |
2023-02-24 01:11:58 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-02-24 01:13:32 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-02-24 01:13:46 +0100 | mauke_ | (~mauke@user/mauke) |
2023-02-24 01:14:40 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2023-02-24 01:15:30 +0100 | mauke | (~mauke@user/mauke) (Ping timeout: 268 seconds) |
2023-02-24 01:15:31 +0100 | mauke_ | mauke |
2023-02-24 01:15:40 +0100 | zeenk | (~zeenk@2a02:2f04:a214:1e00::7fe) (Quit: Konversation terminated!) |
2023-02-24 01:19:11 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-02-24 01:19:11 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-02-24 01:19:11 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-02-24 01:24:57 +0100 | cheater_ | (~Username@user/cheater) |
2023-02-24 01:26:01 +0100 | <ph88> | jackdk, thx i'll give it a try |
2023-02-24 01:28:05 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-02-24 01:28:12 +0100 | cheater_ | cheater |
2023-02-24 01:43:22 +0100 | jinsun__ | (~jinsun@user/jinsun) |
2023-02-24 01:43:22 +0100 | jinsun | Guest2922 |
2023-02-24 01:43:22 +0100 | Guest2922 | (~jinsun@user/jinsun) (Killed (cadmium.libera.chat (Nickname regained by services))) |
2023-02-24 01:43:22 +0100 | jinsun__ | jinsun |
2023-02-24 01:47:55 +0100 | <Inst> | hey, anyone want to check out some f-ed up behavior of cabal and ghci? |
2023-02-24 01:48:14 +0100 | <Inst> | https://media.discordapp.net/attachments/505370075402862594/1078475060282654811/image.png |
2023-02-24 01:48:25 +0100 | <Inst> | https://media.discordapp.net/attachments/505370075402862594/1078478254823985212/image.png |
2023-02-24 01:48:29 +0100 | morrow | (~morrow@2a10:8012:9:53cf:148d:bd9f:e0ca:3908) |
2023-02-24 01:48:32 +0100 | <Inst> | https://media.discordapp.net/attachments/505370075402862594/1078478179024515182/image.png |
2023-02-24 01:48:50 +0100 | <Inst> | so i'm gettnig cabal isntalling stuff into global package database |
2023-02-24 01:48:52 +0100 | <Inst> | as hidden |
2023-02-24 01:48:56 +0100 | <Inst> | I think it's something to do with VSC |
2023-02-24 01:49:31 +0100 | <sclv> | ghci is loading the package environment as it says |
2023-02-24 01:49:36 +0100 | <Inst> | Win10, VSC, GHCup, 9.4.4, Cabal 3.8.1.0 (i think? or is 3.9.1.0 a thing? |
2023-02-24 01:49:47 +0100 | <sclv> | so servant-server is apparently not in the package environment |
2023-02-24 01:49:49 +0100 | <Inst> | I LOVE this behavior |
2023-02-24 01:49:55 +0100 | <Inst> | but I'm told this shouldn't work |
2023-02-24 01:49:59 +0100 | <sclv> | which is not surprising, because you didn't `install --lib` or v1-install` |
2023-02-24 01:49:59 +0100 | <Inst> | and got chewed out for it |
2023-02-24 01:50:08 +0100 | <sclv> | right. i told you want to do |
2023-02-24 01:50:11 +0100 | <sclv> | i didn't chew you out |
2023-02-24 01:50:17 +0100 | <sclv> | either use v1-install |
2023-02-24 01:50:20 +0100 | <sclv> | or install --lib |
2023-02-24 01:50:56 +0100 | <Inst> | no, but I like the fact that all I have to do to unhide these libs is :set -package <lib-name> |
2023-02-24 01:51:11 +0100 | <sclv> | then v1-install |
2023-02-24 01:51:15 +0100 | <sclv> | instead of install |
2023-02-24 01:51:17 +0100 | <sclv> | that's literally it |
2023-02-24 01:51:22 +0100 | <Inst> | hmmm |
2023-02-24 01:51:22 +0100 | <sclv> | then you get the old behavior |
2023-02-24 01:51:29 +0100 | <Inst> | i'm not complaining about this behavior |
2023-02-24 01:51:51 +0100 | <sclv> | ok |
2023-02-24 01:51:53 +0100 | <Inst> | the way I was told is that any time I want to mess around with Haskell / GHCI / GHC, I have to use a cabal file, cabal repl -b, etc |
2023-02-24 01:52:03 +0100 | <Inst> | this somehow allows me to just resort to -package flags, which is more ergonomic |
2023-02-24 01:52:44 +0100 | <Inst> | but apparently this behavior is a bug |
2023-02-24 01:52:58 +0100 | <sclv> | not really just an unexpected interaction |
2023-02-24 01:53:06 +0100 | <sclv> | if you like it, that's fine |
2023-02-24 01:53:13 +0100 | <Inst> | between VSC Haskell extension, and Cabal? |
2023-02-24 01:53:23 +0100 | <sclv> | no, between package env files and -package flags |
2023-02-24 01:54:12 +0100 | <sclv> | basically you seem to just be observing that -package flags set in cabal can override the package set configured by the environment file |
2023-02-24 01:54:48 +0100 | <sclv> | and that works until you end up with multiple copies of the package in the global store afaik, but can be nice for the simple cases |
2023-02-24 01:55:26 +0100 | <Inst> | ah, so i'm still getting "this is why you should never use --lib" |
2023-02-24 01:55:40 +0100 | <sclv> | no |
2023-02-24 01:55:45 +0100 | <sclv> | i don't think you should never use -lib |
2023-02-24 01:56:02 +0100 | <Inst> | the "standard" behavior without VSC causing weird behavior |
2023-02-24 01:56:11 +0100 | <sclv> | i know for a fact cabal install --lib isn't great with env files in 3.8 because i know about bugs that were fixed that improves it in 3.10 |
2023-02-24 01:56:19 +0100 | <sclv> | idk what you mean by "VSC" |
2023-02-24 01:56:22 +0100 | <Inst> | is that the cabal installs never even drop stuff into the global package database |
2023-02-24 01:56:25 +0100 | <Inst> | Visual Studio Code |
2023-02-24 01:56:32 +0100 | <sclv> | vsc should be unrealted to any of this |
2023-02-24 01:56:51 +0100 | <sclv> | cabal install v2 will never put stuff in the global database, just the store. |
2023-02-24 01:56:55 +0100 | <sclv> | cabal install v1 will |
2023-02-24 01:57:03 +0100 | <Inst> | if I completely remove VSC and nuke GHCup, I guess i get cabal install v2 by base |
2023-02-24 01:57:10 +0100 | <Inst> | now I seem to be getting some kind of cabal install v1 |
2023-02-24 01:57:16 +0100 | <sclv> | no you're posting v2 behavior |
2023-02-24 01:57:17 +0100 | <sclv> | not v1 |
2023-02-24 01:57:28 +0100 | <Inst> | well, sorry for confusion and irritation |
2023-02-24 01:58:36 +0100 | <yushyin> | i sometimes use install --lib but only if I explicitly use a different package env for it |
2023-02-24 01:58:45 +0100 | acidjnk | (~acidjnk@p200300d6e715c4484472a5e19ee2f2c7.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2023-02-24 01:59:24 +0100 | <yushyin> | and i do not see a problem with that, works fine. |
2023-02-24 02:03:57 +0100 | azure_vermilion | (~azure_ver@82-132-232-3.dab.02.net) (Ping timeout: 255 seconds) |
2023-02-24 02:04:08 +0100 | azure_vermilion | (~azure_ver@82-132-235-45.dab.02.net) |
2023-02-24 02:06:54 +0100 | qhong_ | qhong |
2023-02-24 02:11:23 +0100 | king_gs | (~Thunderbi@187.201.41.239) |
2023-02-24 02:12:37 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-02-24 02:14:35 +0100 | hololeap | (~quassel@user/hololeap) (Quit: Bye) |
2023-02-24 02:16:26 +0100 | k8yun | (~k8yun@user/k8yun) |
2023-02-24 02:16:44 +0100 | hololeap | (~quassel@user/hololeap) |
2023-02-24 02:18:44 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-02-24 02:24:17 +0100 | brettgilio | (~brettgili@x-irc.gq) |
2023-02-24 02:33:35 +0100 | morrow | (~morrow@2a10:8012:9:53cf:148d:bd9f:e0ca:3908) (Remote host closed the connection) |
2023-02-24 02:33:55 +0100 | morrow | (~morrow@2a10:8012:9:53cf:148d:bd9f:e0ca:3908) |
2023-02-24 02:44:59 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-02-24 02:53:16 +0100 | thongpv | (~thongpv87@113.178.133.250) |
2023-02-24 02:55:19 +0100 | thongpv87 | (~thongpv87@2402:9d80:3c4:d47b:1f8a:2a86:2c59:87d2) |
2023-02-24 02:57:50 +0100 | thongpv | (~thongpv87@113.178.133.250) (Ping timeout: 255 seconds) |
2023-02-24 03:02:20 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:b5c5:f2b7:be92:9467) (Ping timeout: 255 seconds) |
2023-02-24 03:07:59 +0100 | Guest5395 | (~talismani@campus-015-155.ucdavis.edu) |
2023-02-24 03:09:25 +0100 | JimL | (~quassel@89-162-26-217.fiber.signal.no) (Ping timeout: 246 seconds) |
2023-02-24 03:12:52 +0100 | matthews | (~matthews@gentoo/developer/matthew) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2023-02-24 03:13:06 +0100 | matthews | (~matthews@gentoo/developer/matthew) |
2023-02-24 03:13:53 +0100 | phaazon | (~phaazon@2001:41d0:a:fe76::1) (Ping timeout: 246 seconds) |
2023-02-24 03:13:53 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Read error: Connection reset by peer) |
2023-02-24 03:14:10 +0100 | phaazon | (~phaazon@2001:41d0:a:fe76::1) |
2023-02-24 03:17:18 +0100 | Square | (~Square4@user/square) (Ping timeout: 255 seconds) |
2023-02-24 03:17:28 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
2023-02-24 03:18:38 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2023-02-24 03:20:45 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-02-24 03:21:09 +0100 | king_gs | (~Thunderbi@187.201.41.239) |
2023-02-24 03:21:55 +0100 | k8yun | (~k8yun@user/k8yun) (Ping timeout: 268 seconds) |
2023-02-24 03:22:33 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) |
2023-02-24 03:23:09 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2023-02-24 03:23:35 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2023-02-24 03:25:33 +0100 | mcglk | (~mcglk@131.191.19.145) (Quit: (zzz)) |
2023-02-24 03:26:29 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-24 03:29:27 +0100 | mcglk | (~mcglk@131.191.19.145) |
2023-02-24 03:29:53 +0100 | cheater_ | (~Username@user/cheater) |
2023-02-24 03:31:34 +0100 | varoo | (~varoo@104.28.254.171) |
2023-02-24 03:32:09 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2023-02-24 03:32:19 +0100 | cheater_ | cheater |
2023-02-24 03:37:46 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-02-24 03:41:10 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Read error: Connection reset by peer) |
2023-02-24 03:41:15 +0100 | king_gs1 | (~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) |
2023-02-24 03:43:32 +0100 | king_gs1 | king_gs |
2023-02-24 03:46:15 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2023-02-24 03:54:15 +0100 | varoo | (~varoo@104.28.254.171) (Quit: Probably got disconnect dure to unstable internet) |
2023-02-24 03:55:14 +0100 | mcglk | (~mcglk@131.191.19.145) (Quit: (zzz)) |
2023-02-24 03:56:22 +0100 | mcglk | (~mcglk@131.191.19.145) |
2023-02-24 03:58:57 +0100 | k8yun | (~k8yun@user/k8yun) |
2023-02-24 04:00:31 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Ping timeout: 252 seconds) |
2023-02-24 04:01:50 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2023-02-24 04:02:50 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
2023-02-24 04:04:16 +0100 | bilegeek | (~bilegeek@2600:1008:b096:6a80:34b5:57e8:9b41:910b) |
2023-02-24 04:05:20 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
2023-02-24 04:05:26 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds) |
2023-02-24 04:07:17 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-02-24 04:07:46 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-24 04:07:50 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-02-24 04:08:36 +0100 | Guest5395 | (~talismani@campus-015-155.ucdavis.edu) (Ping timeout: 255 seconds) |
2023-02-24 04:11:59 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
2023-02-24 04:18:18 +0100 | morrow | (~morrow@2a10:8012:9:53cf:148d:bd9f:e0ca:3908) (Ping timeout: 260 seconds) |
2023-02-24 04:23:13 +0100 | thongpv87 | (~thongpv87@2402:9d80:3c4:d47b:1f8a:2a86:2c59:87d2) (Ping timeout: 252 seconds) |
2023-02-24 04:23:16 +0100 | opticblast | (~Thunderbi@172.58.82.191) (Quit: opticblast) |
2023-02-24 04:23:24 +0100 | thongpv | (~thongpv87@14.246.244.57) |
2023-02-24 04:23:49 +0100 | k8yun | (~k8yun@user/k8yun) (Quit: Leaving) |
2023-02-24 04:24:02 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-02-24 04:27:28 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds) |
2023-02-24 04:27:29 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds) |
2023-02-24 04:28:43 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-02-24 04:31:36 +0100 | gastus_ | (~gastus@185.6.123.134) |
2023-02-24 04:32:15 +0100 | morrow | (~morrow@bzq-110-168-31-106.red.bezeqint.net) |
2023-02-24 04:34:02 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-02-24 04:34:45 +0100 | gastus | (~gastus@185.6.123.233) (Ping timeout: 260 seconds) |
2023-02-24 04:38:05 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2023-02-24 04:38:07 +0100 | Katarushisu1 | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2023-02-24 04:39:39 +0100 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 255 seconds) |
2023-02-24 04:39:40 +0100 | Katarushisu1 | Katarushisu |
2023-02-24 04:39:52 +0100 | abhixec | (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) |
2023-02-24 04:41:28 +0100 | thongpv | (~thongpv87@14.246.244.57) (Ping timeout: 268 seconds) |
2023-02-24 04:43:35 +0100 | td_ | (~td@i53870911.versanet.de) (Ping timeout: 255 seconds) |
2023-02-24 04:44:43 +0100 | hnOsmium0001 | (uid453710@user/hnOsmium0001) (Quit: Connection closed for inactivity) |
2023-02-24 04:44:50 +0100 | razetime | (~Thunderbi@117.193.1.83) |
2023-02-24 04:45:27 +0100 | td_ | (~td@i5387092A.versanet.de) |
2023-02-24 04:48:03 +0100 | morrow | (~morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 260 seconds) |
2023-02-24 04:50:55 +0100 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
2023-02-24 04:51:30 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-02-24 04:51:30 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-02-24 04:51:30 +0100 | finn_elija | FinnElija |
2023-02-24 04:56:20 +0100 | razetime | (~Thunderbi@117.193.1.83) (Ping timeout: 260 seconds) |
2023-02-24 04:57:18 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-02-24 04:58:52 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-24 04:59:16 +0100 | thongpv | (~thongpv87@14.246.244.57) |
2023-02-24 04:59:26 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2023-02-24 05:03:58 +0100 | thongpv87 | (~thongpv87@14.246.244.57) |
2023-02-24 05:04:17 +0100 | thongpv | (~thongpv87@14.246.244.57) (Ping timeout: 268 seconds) |
2023-02-24 05:07:06 +0100 | mima | (~mmh@ppp-212-114-180-143.dynamic.mnet-online.de) (Ping timeout: 255 seconds) |
2023-02-24 05:16:35 +0100 | [_] | [itchyjunk] |
2023-02-24 05:25:05 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2023-02-24 05:27:21 +0100 | analoq | (~yashi@user/dies) (Ping timeout: 255 seconds) |
2023-02-24 05:27:28 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-02-24 05:28:12 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-02-24 05:30:43 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-02-24 05:31:08 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-02-24 05:31:52 +0100 | polyphem_ | (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Ping timeout: 246 seconds) |
2023-02-24 05:36:24 +0100 | thongpv87 | (~thongpv87@14.246.244.57) (Remote host closed the connection) |
2023-02-24 05:37:30 +0100 | thongpv | (~thongpv87@14.246.244.57) |
2023-02-24 05:38:16 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) |
2023-02-24 05:40:05 +0100 | razetime | (~Thunderbi@117.193.1.83) |
2023-02-24 05:40:05 +0100 | johnw | (~johnw@2600:1700:cf00:db0:bd35:2807:e193:42ca) (Quit: ZNC - http://znc.in) |
2023-02-24 05:40:05 +0100 | jwiegley | (~jwiegley@2600:1700:cf00:db0:bd35:2807:e193:42ca) (Quit: ZNC - http://znc.in) |
2023-02-24 05:40:49 +0100 | polyphem | (~polyphem@2a02:810d:840:8754:4d31:9178:35f:6608) (Ping timeout: 265 seconds) |
2023-02-24 05:45:48 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
2023-02-24 05:46:41 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2023-02-24 05:57:50 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-02-24 05:58:20 +0100 | jwiegley | (~jwiegley@2600:1700:cf00:db0:68d8:903c:fcfa:7317) |
2023-02-24 05:59:04 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Client Quit) |
2023-02-24 06:02:08 +0100 | bilegeek | (~bilegeek@2600:1008:b096:6a80:34b5:57e8:9b41:910b) (Quit: Leaving) |
2023-02-24 06:03:04 +0100 | mbuf | (~Shakthi@49.204.138.125) |
2023-02-24 06:05:09 +0100 | cheater | (~Username@user/cheater) (Remote host closed the connection) |
2023-02-24 06:10:12 +0100 | razetime1 | (~Thunderbi@117.193.5.253) |
2023-02-24 06:11:25 +0100 | razetime | (~Thunderbi@117.193.1.83) (Ping timeout: 246 seconds) |
2023-02-24 06:11:25 +0100 | razetime1 | razetime |
2023-02-24 06:13:59 +0100 | analoq | (~yashi@user/dies) |
2023-02-24 06:29:18 +0100 | king_gs | (~Thunderbi@187.201.41.239) |
2023-02-24 06:34:55 +0100 | <sm> | confusion seems inevitable here |
2023-02-24 06:40:38 +0100 | trev | (~trev@user/trev) |
2023-02-24 06:42:20 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-02-24 06:44:01 +0100 | thongpv | (~thongpv87@14.246.244.57) (Remote host closed the connection) |
2023-02-24 06:45:30 +0100 | hnOsmium0001 | (uid453710@user/hnOsmium0001) |
2023-02-24 06:45:46 +0100 | <sclv> | "confusion seems inevitable here" -- put it on my gravestone |
2023-02-24 06:49:05 +0100 | razetime1 | (~Thunderbi@117.254.34.231) |
2023-02-24 06:49:06 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Read error: Connection reset by peer) |
2023-02-24 06:50:03 +0100 | razetime | (~Thunderbi@117.193.5.253) (Ping timeout: 248 seconds) |
2023-02-24 06:50:03 +0100 | razetime1 | razetime |
2023-02-24 06:50:05 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) |
2023-02-24 06:51:36 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection) |
2023-02-24 06:51:55 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2023-02-24 06:53:13 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:196a:f18e:3137:5d3) |
2023-02-24 06:53:17 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds) |
2023-02-24 06:53:29 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-24 06:53:47 +0100 | <sm> | hehe |
2023-02-24 06:54:20 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-02-24 06:55:42 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Quit: king_gs) |
2023-02-24 07:06:54 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-02-24 07:07:15 +0100 | analoq | (~yashi@user/dies) (Ping timeout: 255 seconds) |
2023-02-24 07:08:45 +0100 | avpx_ | (~nick@ec2-54-214-223-1.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
2023-02-24 07:08:51 +0100 | analoq | (~yashi@user/dies) |
2023-02-24 07:10:41 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-02-24 07:13:23 +0100 | king_gs | (~Thunderbi@187.201.41.239) |
2023-02-24 07:18:46 +0100 | sefidel | (~sefidel@user/sefidel) (Remote host closed the connection) |
2023-02-24 07:21:39 +0100 | sefidel | (~sefidel@user/sefidel) |
2023-02-24 07:23:05 +0100 | <anatta> | sclv: As the great poet King Crimson once said: confusion will be my epitaph |
2023-02-24 07:26:13 +0100 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 252 seconds) |
2023-02-24 07:28:01 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-24 07:33:21 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 07:33:46 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-02-24 07:34:16 +0100 | jwiegley | (~jwiegley@2600:1700:cf00:db0:18e0:c0e7:a06a:ed2f) |
2023-02-24 07:45:02 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-02-24 07:46:06 +0100 | akegalj | (~akegalj@93-138-29-205.adsl.net.t-com.hr) |
2023-02-24 07:57:02 +0100 | Vajb | (~Vajb@2001:999:230:f561:4ee8:ad7f:13ff:9959) (Read error: Connection reset by peer) |
2023-02-24 07:57:10 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
2023-02-24 07:57:52 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Quit: king_gs) |
2023-02-24 08:00:58 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
2023-02-24 08:01:24 +0100 | mei | (~mei@user/mei) |
2023-02-24 08:01:35 +0100 | Vajb | (~Vajb@2001:999:230:f561:4ee8:ad7f:13ff:9959) |
2023-02-24 08:02:46 +0100 | michalz | (~michalz@185.246.207.221) |
2023-02-24 08:04:45 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:196a:f18e:3137:5d3) (Ping timeout: 255 seconds) |
2023-02-24 08:05:32 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2023-02-24 08:07:05 +0100 | son0p | (~ff@181.136.122.143) (Ping timeout: 260 seconds) |
2023-02-24 08:08:16 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-24 08:09:27 +0100 | freeside | (~mengwong@122.11.212.82) |
2023-02-24 08:12:50 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-02-24 08:17:58 +0100 | inversed | (~inversed@bcdcac82.skybroadband.com) (Read error: No route to host) |
2023-02-24 08:18:43 +0100 | CiaoSen | (~Jura@2003:c9:5704:6000:2a3a:4dff:fe84:dbd5) |
2023-02-24 08:26:04 +0100 | inversed | (~inversed@bcdcac82.skybroadband.com) |
2023-02-24 08:27:46 +0100 | mixphix | (~cigsender@74.124.58.162) (Ping timeout: 252 seconds) |
2023-02-24 08:27:53 +0100 | mixphix | (~cigsender@74.124.58.162) |
2023-02-24 08:28:01 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2023-02-24 08:29:54 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-24 08:34:25 +0100 | azure_vermilion | (~azure_ver@82-132-235-45.dab.02.net) (Ping timeout: 252 seconds) |
2023-02-24 08:34:35 +0100 | azure_vermilion | (~azure_ver@82-132-235-20.dab.02.net) |
2023-02-24 08:37:29 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) (Remote host closed the connection) |
2023-02-24 08:49:31 +0100 | vpan | (~0@212.117.1.172) |
2023-02-24 08:50:50 +0100 | freeside | (~mengwong@122.11.212.82) (Ping timeout: 260 seconds) |
2023-02-24 08:52:30 +0100 | mauke | (~mauke@user/mauke) (Quit: leaving) |
2023-02-24 08:55:13 +0100 | tdammers | (~tdammers@77.109.72.175.res.static.edpnet.net) (Ping timeout: 246 seconds) |
2023-02-24 08:56:59 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 248 seconds) |
2023-02-24 09:00:30 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 09:00:59 +0100 | thegeekinside | (~thegeekin@189.180.66.126) (Ping timeout: 255 seconds) |
2023-02-24 09:01:29 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-02-24 09:04:46 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2023-02-24 09:06:11 +0100 | akegalj | (~akegalj@93-138-29-205.adsl.net.t-com.hr) (Ping timeout: 264 seconds) |
2023-02-24 09:07:51 +0100 | razetime | (~Thunderbi@117.254.34.231) (Ping timeout: 255 seconds) |
2023-02-24 09:08:28 +0100 | tdammers | (~tdammers@77.109.72.152.res.static.edpnet.net) |
2023-02-24 09:12:15 +0100 | chele | (~chele@user/chele) |
2023-02-24 09:15:05 +0100 | Vajb | (~Vajb@2001:999:230:f561:4ee8:ad7f:13ff:9959) (Read error: Connection reset by peer) |
2023-02-24 09:15:16 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
2023-02-24 09:17:28 +0100 | cfricke | (~cfricke@user/cfricke) |
2023-02-24 09:23:38 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
2023-02-24 09:23:45 +0100 | Vajb | (~Vajb@2001:999:230:f561:4ee8:ad7f:13ff:9959) |
2023-02-24 09:25:07 +0100 | mima | (~mmh@212.114.180.173) |
2023-02-24 09:27:21 +0100 | ft | (~ft@p3e9bc443.dip0.t-ipconnect.de) (Quit: leaving) |
2023-02-24 09:29:25 +0100 | kuribas | (~user@ptr-17d51epnas6cljeq5e9.18120a2.ip6.access.telenet.be) |
2023-02-24 09:30:49 +0100 | razetime | (~Thunderbi@117.254.34.231) |
2023-02-24 09:31:57 +0100 | takuan | (~takuan@178.116.218.225) |
2023-02-24 09:37:59 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) |
2023-02-24 09:42:45 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) (Ping timeout: 260 seconds) |
2023-02-24 09:45:03 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) |
2023-02-24 09:46:20 +0100 | acidjnk | (~acidjnk@p200300d6e715c440d10b57a0a1d8ddd3.dip0.t-ipconnect.de) |
2023-02-24 09:49:11 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds) |
2023-02-24 09:52:15 +0100 | Cheery_ | Cheery |
2023-02-24 09:56:16 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-02-24 09:56:34 +0100 | merijn | (~merijn@195.114.232.94) |
2023-02-24 10:01:44 +0100 | comerijn | (~merijn@185.143.104.11) |
2023-02-24 10:01:45 +0100 | merijn | (~merijn@195.114.232.94) (Ping timeout: 255 seconds) |
2023-02-24 10:05:48 +0100 | mauke | (~mauke@user/mauke) |
2023-02-24 10:10:02 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2023-02-24 10:11:44 +0100 | califax | (~califax@user/califx) (Ping timeout: 255 seconds) |
2023-02-24 10:15:36 +0100 | califax | (~califax@user/califx) |
2023-02-24 10:15:38 +0100 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2023-02-24 10:15:47 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds) |
2023-02-24 10:16:07 +0100 | gehmehgeh | gmg |
2023-02-24 10:17:52 +0100 | mei | (~mei@user/mei) (Quit: mei) |
2023-02-24 10:18:58 +0100 | son0p | (~ff@181.136.122.143) |
2023-02-24 10:20:15 +0100 | razetime1 | (~Thunderbi@117.193.5.234) |
2023-02-24 10:21:05 +0100 | razetime | (~Thunderbi@117.254.34.231) (Ping timeout: 252 seconds) |
2023-02-24 10:21:05 +0100 | razetime1 | razetime |
2023-02-24 10:24:00 +0100 | razetime1 | (~Thunderbi@117.193.5.37) |
2023-02-24 10:25:23 +0100 | kuribas | (~user@ptr-17d51epnas6cljeq5e9.18120a2.ip6.access.telenet.be) (Ping timeout: 264 seconds) |
2023-02-24 10:25:55 +0100 | razetime | (~Thunderbi@117.193.5.234) (Ping timeout: 256 seconds) |
2023-02-24 10:25:55 +0100 | razetime1 | razetime |
2023-02-24 10:27:58 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Ping timeout: 246 seconds) |
2023-02-24 10:29:08 +0100 | razetime1 | (~Thunderbi@117.254.34.52) |
2023-02-24 10:30:27 +0100 | razetime | (~Thunderbi@117.193.5.37) (Ping timeout: 256 seconds) |
2023-02-24 10:30:27 +0100 | razetime1 | razetime |
2023-02-24 10:30:30 +0100 | kuribas | (~user@ptr-17d51epnas6cljeq5e9.18120a2.ip6.access.telenet.be) |
2023-02-24 10:34:01 +0100 | razetime1 | (~Thunderbi@117.193.0.221) |
2023-02-24 10:34:59 +0100 | razetime | (~Thunderbi@117.254.34.52) (Ping timeout: 256 seconds) |
2023-02-24 10:34:59 +0100 | razetime1 | razetime |
2023-02-24 10:37:35 +0100 | coot | (~coot@213.134.171.3) |
2023-02-24 10:38:23 +0100 | varoo | (~varoo@117.203.246.41) |
2023-02-24 10:38:28 +0100 | razetime1 | (~Thunderbi@117.254.35.225) |
2023-02-24 10:39:31 +0100 | razetime | (~Thunderbi@117.193.0.221) (Ping timeout: 256 seconds) |
2023-02-24 10:41:29 +0100 | razetime | (~Thunderbi@117.193.2.194) |
2023-02-24 10:42:38 +0100 | razetime1 | (~Thunderbi@117.254.35.225) (Ping timeout: 246 seconds) |
2023-02-24 10:50:05 +0100 | sympt5 | (~sympt@user/sympt) |
2023-02-24 10:50:15 +0100 | zeenk | (~zeenk@2a02:2f04:a214:1e00::7fe) |
2023-02-24 10:51:25 +0100 | sympt | (~sympt@user/sympt) (Ping timeout: 246 seconds) |
2023-02-24 10:51:25 +0100 | sympt5 | sympt |
2023-02-24 10:57:44 +0100 | mei | (~mei@user/mei) |
2023-02-24 11:00:15 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-02-24 11:03:35 +0100 | kenran | (~user@user/kenran) |
2023-02-24 11:05:25 +0100 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
2023-02-24 11:06:15 +0100 | vandita | (~vandit@fibhost-67-47-57.fibernet.hu) |
2023-02-24 11:06:59 +0100 | comerijn | (~merijn@185.143.104.11) (Ping timeout: 255 seconds) |
2023-02-24 11:07:23 +0100 | merijn | (~merijn@195.114.232.94) |
2023-02-24 11:07:38 +0100 | teo | (~teo@user/teo) |
2023-02-24 11:12:16 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-02-24 11:13:52 +0100 | inversed | (~inversed@bcdcac82.skybroadband.com) (Ping timeout: 248 seconds) |
2023-02-24 11:18:09 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-02-24 11:21:20 +0100 | ph88 | (~ph88@91.66.101.83) (Ping timeout: 248 seconds) |
2023-02-24 11:22:08 +0100 | acidjnk | (~acidjnk@p200300d6e715c440d10b57a0a1d8ddd3.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-02-24 11:22:23 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2023-02-24 11:24:44 +0100 | gmg | (~user@user/gehmehgeh) |
2023-02-24 11:24:54 +0100 | akegalj | (~akegalj@93-138-29-205.adsl.net.t-com.hr) |
2023-02-24 11:25:19 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 11:30:19 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 268 seconds) |
2023-02-24 11:35:46 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-02-24 11:46:15 +0100 | mei | (~mei@user/mei) (Ping timeout: 255 seconds) |
2023-02-24 11:47:29 +0100 | MajorBiscuit | (~MajorBisc@145.94.156.212) |
2023-02-24 11:48:07 +0100 | mei | (~mei@user/mei) |
2023-02-24 11:49:59 +0100 | alecs | (~alecs@31.188.156.192) |
2023-02-24 11:54:31 +0100 | <Inst> | does anyone know anything about streamly's benchmarks? |
2023-02-24 11:54:36 +0100 | <Inst> | This has got to be a concurrency scam, no? |
2023-02-24 11:54:41 +0100 | <Inst> | https://streamly.composewell.com/streamly-0.8.2/Introduction.html#modular-word-counting |
2023-02-24 11:54:48 +0100 | <Inst> | it looks like they're outperforming C single-threaded |
2023-02-24 11:56:16 +0100 | ubert1 | (~Thunderbi@2a02:8109:abc0:6434:98f0:cff3:bf01:6714) |
2023-02-24 11:56:32 +0100 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-02-24 11:56:35 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 264 seconds) |
2023-02-24 11:57:16 +0100 | <kaol> | https://www.linkedin.com/jobs/view/3498430755 We're still looking for a Haskell developer. We got one but we had a second vacancy. |
2023-02-24 11:57:34 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
2023-02-24 11:58:52 +0100 | mei | (~mei@user/mei) |
2023-02-24 12:00:03 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-02-24 12:02:08 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2023-02-24 12:05:20 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 12:08:04 +0100 | vandita | (~vandit@fibhost-67-47-57.fibernet.hu) (Ping timeout: 246 seconds) |
2023-02-24 12:09:39 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 12:09:49 +0100 | vandita | (~vandit@178-164-207-222.pool.digikabel.hu) |
2023-02-24 12:14:36 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds) |
2023-02-24 12:15:51 +0100 | gurkenglas | (~gurkengla@dynamic-046-114-178-046.46.114.pool.telefonica.de) |
2023-02-24 12:16:17 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2023-02-24 12:18:37 +0100 | tcard_ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2023-02-24 12:20:37 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-02-24 12:22:44 +0100 | akegalj | (~akegalj@93-138-29-205.adsl.net.t-com.hr) (Ping timeout: 268 seconds) |
2023-02-24 12:23:55 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 12:25:12 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 12:29:06 +0100 | inversed | (~inversed@bcdcac82.skybroadband.com) |
2023-02-24 12:31:09 +0100 | <eldritchcookie[m> | i believe it, GHC performs a massive amount of optimizations so if the C is naive or simple haskell would probably outpeform it |
2023-02-24 12:31:25 +0100 | <eldritchcookie[m> | try compiling the c program with O3 |
2023-02-24 12:31:43 +0100 | <dminuoso_> | -O3 rarely improves performance, in plenty cases it gets slower even |
2023-02-24 12:32:09 +0100 | <dminuoso_> | For GCC anyway |
2023-02-24 12:34:52 +0100 | acidjnk | (~acidjnk@2003:d6:e715:c440:d10b:57a0:a1d8:ddd3) |
2023-02-24 12:35:09 +0100 | <mauke> | C code: https://github.com/composewell/streamly-examples/blob/master/examples/WordCount.c#L82 |
2023-02-24 12:35:14 +0100 | <mauke> | doesn't look obviously inefficient |
2023-02-24 12:35:31 +0100 | <eldritchcookie[m> | like it reads every line and then does the computation that is IO, if the haskell reads all the file in memory it probably is the reason |
2023-02-24 12:35:49 +0100 | <mauke> | you could avoid the separate bookkeeping for p/len, but that's it, pretty much |
2023-02-24 12:36:13 +0100 | <eldritchcookie[m> | check for larger files |
2023-02-24 12:37:28 +0100 | <eldritchcookie[m> | and compare memory usage |
2023-02-24 12:38:53 +0100 | <int-e> | it would be interesting to know the underlying buffer sizes. |
2023-02-24 12:40:09 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-02-24 12:40:41 +0100 | <eldritchcookie[m> | i want to upload a small library to hackage, what are the steps and things i need to accomplish that? |
2023-02-24 12:40:41 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2023-02-24 12:42:25 +0100 | gmg | (~user@user/gehmehgeh) |
2023-02-24 12:43:24 +0100 | gensyst | (gensyst@user/gensyst) |
2023-02-24 12:45:11 +0100 | acidjnk | (~acidjnk@2003:d6:e715:c440:d10b:57a0:a1d8:ddd3) (Ping timeout: 252 seconds) |
2023-02-24 12:45:13 +0100 | <gensyst> | Hi, GHCJS requires Nix pain. Will the new JS backend in GHC also require Nix pain? If not, why not? |
2023-02-24 12:45:13 +0100 | <gensyst> | https://engineering.iog.io/2023-01-24-javascript-browser-tutorial |
2023-02-24 12:45:30 +0100 | <dminuoso_> | gensyst: it wont because its built into ghc. |
2023-02-24 12:45:50 +0100 | <dminuoso_> | The gory details how the backend is wired in, is all handled by the shake build system |
2023-02-24 12:45:55 +0100 | <gensyst> | dminuoso_, the Nix pain was because of pain having to do with managing multiple ghc versions etc.? |
2023-02-24 12:49:12 +0100 | <gensyst> | Also any idea approx ETA for it will be baked into GHC release (available with ghcup)? |
2023-02-24 12:49:26 +0100 | <dminuoso_> | It already is baked in |
2023-02-24 12:49:37 +0100 | <gensyst> | since which version? |
2023-02-24 12:49:38 +0100 | <gensyst> | nice |
2023-02-24 12:49:47 +0100 | <dminuoso_> | https://www.haskell.org/ghc/blog/20230130-ghc-9.6.1-alpha2-released.html |
2023-02-24 12:50:18 +0100 | <dminuoso_> | But do note, this is a very early preview and not considered stable or production ready yet. |
2023-02-24 12:50:24 +0100 | <maerwald> | ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml |
2023-02-24 12:50:29 +0100 | <dminuoso_> | (not the release, but the js backend utself) |
2023-02-24 12:50:49 +0100 | <gensyst> | sweet |
2023-02-24 12:55:37 +0100 | mechap_ | (~mechap@user/mechap) |
2023-02-24 12:55:40 +0100 | tdammers | (~tdammers@77.109.72.152.res.static.edpnet.net) (Ping timeout: 246 seconds) |
2023-02-24 12:57:16 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 268 seconds) |
2023-02-24 12:57:32 +0100 | mechap_ | mechap |
2023-02-24 12:58:12 +0100 | <gensyst> | dminuoso_, maerwald are you guys seeing GHC 9.6.1 alpha in "ghcup list"? |
2023-02-24 12:58:32 +0100 | acidjnk | (~acidjnk@p200300d6e715c440d10b57a0a1d8ddd3.dip0.t-ipconnect.de) |
2023-02-24 12:58:36 +0100 | <dminuoso_> | 12:50:24 maerwald | ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml |
2023-02-24 12:58:43 +0100 | <dminuoso_> | In case you missed it |
2023-02-24 12:58:54 +0100 | <gensyst> | After doing that, the latest I find is |
2023-02-24 12:58:57 +0100 | <gensyst> | ghc 9.6.0.20230210 prerelease,base-4.18.0.0 |
2023-02-24 12:59:13 +0100 | <gensyst> | date sort of matches, so I guess that might be it? |
2023-02-24 12:59:33 +0100 | <gensyst> | although it's 9.6.0 instead of 9.6.1 |
2023-02-24 13:00:06 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 13:00:15 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 13:00:57 +0100 | CiaoSen | (~Jura@2003:c9:5704:6000:2a3a:4dff:fe84:dbd5) (Ping timeout: 252 seconds) |
2023-02-24 13:06:22 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2023-02-24 13:08:49 +0100 | tdammers | (~tdammers@77.109.72.77.res.static.edpnet.net) |
2023-02-24 13:09:57 +0100 | <maerwald> | gensyst: yeah, it's pesky |
2023-02-24 13:16:00 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-02-24 13:17:15 +0100 | <gensyst> | Why are sometimes older versions shown "recommended" by ghcup? |
2023-02-24 13:17:20 +0100 | <gensyst> | Even if there is a newer stable |
2023-02-24 13:17:28 +0100 | <maerwald> | gensyst: because new is broken |
2023-02-24 13:17:35 +0100 | <Athas> | Perhaps the newest versions of GHC are sometimes incompatible with important libraries. |
2023-02-24 13:17:36 +0100 | <maerwald> | common rule of thumb with ghc |
2023-02-24 13:18:06 +0100 | <maerwald> | jokes aside... yes, new is often broken, because it's, well, new |
2023-02-24 13:18:17 +0100 | <gensyst> | ok thanks |
2023-02-24 13:18:24 +0100 | <maerwald> | I'm being funny today |
2023-02-24 13:18:29 +0100 | <maerwald> | you can leave a tip |
2023-02-24 13:19:26 +0100 | <eldritchcookie[m> | say is there a easy way to autogenerate haskell modules if i want just to import module A and for each value/function in A make a function with the same name that just calls the one on A with al arguments and then applies a specific function |
2023-02-24 13:19:35 +0100 | <eldritchcookie[m> | ? |
2023-02-24 13:19:36 +0100 | <Athas> | gensyst: you can just pick the newest version. Worst case it'll be incompatible with your favourite JSON library that abuses Template Haskell a bit too much. |
2023-02-24 13:21:07 +0100 | <gensyst> | maerwald, paste lightning invoice, will send a few sats |
2023-02-24 13:21:13 +0100 | <eldritchcookie[m> | basically given... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/e6867269f0bd7f9327d184caf5c0cfda1bcb…>) |
2023-02-24 13:21:58 +0100 | <Athas> | eldritchcookie[m: the tricky part is determining how many arguments are needed. You'll need to hook into information provided by GHC itself. |
2023-02-24 13:22:28 +0100 | <Athas> | I know that GHC produces .hie files with this information, but I have no knowledge about how to use them. |
2023-02-24 13:22:53 +0100 | <mauke> | optimistically generate the first function and compile the module. if ghc complains, add more arguments. repeat until done |
2023-02-24 13:23:27 +0100 | Batzy | (~quassel@user/batzy) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 13:24:54 +0100 | Batzy | (~quassel@user/batzy) |
2023-02-24 13:28:17 +0100 | <Athas> | I think that is how my students write code. |
2023-02-24 13:28:44 +0100 | merijn | (~merijn@195.114.232.94) (Ping timeout: 255 seconds) |
2023-02-24 13:28:55 +0100 | <mauke> | it's called type-directed code generation or something |
2023-02-24 13:29:20 +0100 | tdammers | (~tdammers@77.109.72.77.res.static.edpnet.net) (Ping timeout: 268 seconds) |
2023-02-24 13:29:46 +0100 | <eldritchcookie[m> | yeah that could work, does anyone know how to query ghc for 1 all value level entities exported 2 their types? |
2023-02-24 13:31:29 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-02-24 13:31:53 +0100 | <Athas> | mauke: error-directed code generation. |
2023-02-24 13:32:28 +0100 | <gensyst> | maerwald, hmm even if I set "ghcup set ghc 9.6.0.20230210", there is no ghc-js on my path |
2023-02-24 13:32:39 +0100 | <maerwald> | gensyst: ahaha |
2023-02-24 13:32:52 +0100 | <gensyst> | oh hmmm |
2023-02-24 13:32:55 +0100 | <gensyst> | https://engineering.iog.io/2023-01-24-javascript-browser-tutorial |
2023-02-24 13:32:59 +0100 | <maerwald> | ghcjs is a cross-compiler |
2023-02-24 13:33:00 +0100 | <gensyst> | that's an alias they set... |
2023-02-24 13:33:01 +0100 | <maerwald> | good luck |
2023-02-24 13:33:07 +0100 | ph88 | (~ph88@ip5b426553.dynamic.kabel-deutschland.de) |
2023-02-24 13:34:22 +0100 | <Athas> | GHC 9.6 is out? |
2023-02-24 13:35:25 +0100 | <maerwald> | Athas: is it? |
2023-02-24 13:36:50 +0100 | <Athas> | Or does ghcup just supply prereleases? |
2023-02-24 13:37:09 +0100 | <maerwald> | Athas: https://www.haskell.org/ghcup/guide/#pre-release-channels |
2023-02-24 13:37:12 +0100 | <int-e> | I can't reproduce the streamly numbers. The closest I have is their WordCount.hs code being 6x slower than the C code. That's with ghc-8.10.7. Did anybody have more luck? |
2023-02-24 13:37:50 +0100 | <int-e> | (I did use the fusion plugin; it had a small but measurable effect on performance.) |
2023-02-24 13:38:47 +0100 | <int-e> | My files were smaller, only 50MB. |
2023-02-24 13:40:03 +0100 | <gensyst> | thanks mates! |
2023-02-24 13:40:05 +0100 | gensyst | (gensyst@user/gensyst) (Quit: Leaving) |
2023-02-24 13:41:41 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) |
2023-02-24 13:43:01 +0100 | <int-e> | Inst: note that the numbers are for a somewhat manually fused version of the word-counting code, using a custom type for the state: https://github.com/composewell/streamly-examples/blob/master/examples/WordCount.hs#L30 |
2023-02-24 13:43:40 +0100 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-02-24 13:44:16 +0100 | mei | (~mei@user/mei) |
2023-02-24 13:44:58 +0100 | <int-e> | But yeah, I failed to reproduce even taking that into account. I wish they'd include versions. (ghc, streamly{,-core}, and the fusion plugin; also C compiler version and flags) and the platform. |
2023-02-24 13:45:01 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-24 13:46:02 +0100 | merijn | (~merijn@sp-eduroam-221-127.wireless.uva.nl) |
2023-02-24 13:46:35 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:311d:9400:2604:4e0f) (Ping timeout: 260 seconds) |
2023-02-24 13:47:27 +0100 | <int-e> | Oh, speaking of versions, I used the git heads of streamly and the examples. Maybe they regressed. |
2023-02-24 13:49:03 +0100 | tlaxkit | (~hexchat@170.253.34.149) |
2023-02-24 13:51:50 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 13:56:30 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 260 seconds) |
2023-02-24 13:58:14 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
2023-02-24 14:01:54 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 14:06:01 +0100 | ph88 | (~ph88@ip5b426553.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
2023-02-24 14:06:17 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 246 seconds) |
2023-02-24 14:08:15 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 14:11:31 +0100 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-02-24 14:12:30 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 14:22:45 +0100 | merijn | (~merijn@sp-eduroam-221-127.wireless.uva.nl) (Ping timeout: 260 seconds) |
2023-02-24 14:28:35 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 14:30:54 +0100 | mei | (~mei@user/mei) |
2023-02-24 14:31:06 +0100 | merijn | (~merijn@195.114.232.94) |
2023-02-24 14:31:50 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-02-24 14:33:01 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 252 seconds) |
2023-02-24 14:36:46 +0100 | mncheckm | (~mncheck@193.224.205.254) (Remote host closed the connection) |
2023-02-24 14:39:37 +0100 | Sciencentistguy9 | (~sciencent@hacksoc/ordinary-member) |
2023-02-24 14:42:05 +0100 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds) |
2023-02-24 14:42:06 +0100 | Sciencentistguy9 | Sciencentistguy |
2023-02-24 14:59:45 +0100 | MajorBiscuit | (~MajorBisc@145.94.156.212) (Ping timeout: 255 seconds) |
2023-02-24 15:03:48 +0100 | azure_vermilion | (~azure_ver@82-132-235-20.dab.02.net) (Ping timeout: 255 seconds) |
2023-02-24 15:04:47 +0100 | azure_vermilion | (~azure_ver@82-132-235-76.dab.02.net) |
2023-02-24 15:05:25 +0100 | Midjak | (~Midjak@82.66.147.146) |
2023-02-24 15:07:48 +0100 | gurkenglas | (~gurkengla@dynamic-046-114-178-046.46.114.pool.telefonica.de) (Ping timeout: 252 seconds) |
2023-02-24 15:09:50 +0100 | gurkenglas | (~gurkengla@dynamic-046-114-178-046.46.114.pool.telefonica.de) |
2023-02-24 15:10:44 +0100 | vandita | (~vandit@178-164-207-222.pool.digikabel.hu) (Ping timeout: 252 seconds) |
2023-02-24 15:12:27 +0100 | vandita | (~vandit@84-236-21-41.pool.digikabel.hu) |
2023-02-24 15:12:38 +0100 | razetime | (~Thunderbi@117.193.2.194) (Remote host closed the connection) |
2023-02-24 15:14:22 +0100 | thegeekinside | (~thegeekin@189.180.66.126) |
2023-02-24 15:23:39 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-02-24 15:25:23 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2023-02-24 15:28:23 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2023-02-24 15:28:37 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 15:30:31 +0100 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-02-24 15:33:32 +0100 | vpan | (~0@212.117.1.172) (Quit: Leaving.) |
2023-02-24 15:34:23 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 264 seconds) |
2023-02-24 15:35:41 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::ca75) |
2023-02-24 15:42:16 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds) |
2023-02-24 15:42:37 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 246 seconds) |
2023-02-24 15:45:59 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 15:47:14 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) |
2023-02-24 15:53:47 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2023-02-24 15:54:16 +0100 | <jean-paul[m]> | On Linux, openFile: resource busy (file is locked) - my application only uses readFile and writeFile. Who is locking my files? |
2023-02-24 15:55:09 +0100 | <[exa]> | jean-paul[m]: `strace` might be necessary to find what's actually happening |
2023-02-24 15:55:52 +0100 | <geekosaur> | you, probably: (1) `readFile` and `writeFile` use `openFile` underneath; (2) the Report IIRC specifies some weird locking behavior that can require a gc to unlock then |
2023-02-24 15:55:54 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.8) |
2023-02-24 15:55:54 +0100 | <geekosaur> | *them |
2023-02-24 15:56:55 +0100 | <geekosaur> | so if you `writeFile` and then `readFile` the same file shortly after you can get that error |
2023-02-24 15:57:42 +0100 | <jean-paul[m]> | :/ |
2023-02-24 15:59:01 +0100 | <geekosaur> | @index performGC |
2023-02-24 15:59:01 +0100 | <lambdabot> | System.Mem |
2023-02-24 15:59:26 +0100 | <geekosaur> | see if that helps |
2023-02-24 16:01:58 +0100 | <jean-paul[m]> | performGC doesn't seem to make a difference |
2023-02-24 16:02:52 +0100 | <geekosaur> | 😞 |
2023-02-24 16:03:49 +0100 | <merijn> | Oh |
2023-02-24 16:03:53 +0100 | <merijn> | I think I know :p |
2023-02-24 16:04:07 +0100 | <merijn> | You're using the Prelude String based readFile? |
2023-02-24 16:04:46 +0100 | <geekosaur> | oh, lazy I/O? sigh |
2023-02-24 16:04:46 +0100 | jean-paul[m] | holds his breath |
2023-02-24 16:04:57 +0100 | <jean-paul[m]> | ya |
2023-02-24 16:05:01 +0100 | <merijn> | That one uses getContents, so lazy IO yeah |
2023-02-24 16:05:12 +0100 | sma | (~sma@2001:ce0:2207:801:877e:de38:1dc1:930f) |
2023-02-24 16:05:13 +0100 | <merijn> | So the file doesn't get closed until you force the entire contents |
2023-02-24 16:05:21 +0100 | <jean-paul[m]> | So the writeFile is only half-done by the time the readFile starts |
2023-02-24 16:05:22 +0100 | nattiestnate | (~nate@202.138.250.17) |
2023-02-24 16:05:32 +0100 | <merijn> | And anyway, String is a terrible datatype for reading text files |
2023-02-24 16:05:54 +0100 | <merijn> | Can I interest you in some nice strict Text based IO, courtesy of Data.Text.IO.readFile? ;) |
2023-02-24 16:06:14 +0100 | <merijn> | (well, assuming your files are small enough to read into memory entirely, of course) |
2023-02-24 16:06:49 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::ca75) (Quit: Where is it) |
2023-02-24 16:06:56 +0100 | <jean-paul[m]> | Yea sure I can switch to that. Good to learn about now. This app is a mere toy right now. The string being written and read is the literal constant "Hello, world!". |
2023-02-24 16:07:21 +0100 | <merijn> | jean-paul[m]: In general for non-trivial amounts of textual data you want Text anyway |
2023-02-24 16:07:22 +0100 | cstml1 | (~cstml@cpc151611-shef16-2-0-cust313.17-1.cable.virginm.net) |
2023-02-24 16:07:48 +0100 | <merijn> | String = linked list of characters, Text = dense blobs of unicode |
2023-02-24 16:07:52 +0100 | cstml1 | (~cstml@cpc151611-shef16-2-0-cust313.17-1.cable.virginm.net) (Quit: WeeChat 3.7.1) |
2023-02-24 16:07:56 +0100 | teo | (~teo@user/teo) (Remote host closed the connection) |
2023-02-24 16:08:06 +0100 | <merijn> | Which in practical terms means String may take as much as 32x the space for a given piece of text |
2023-02-24 16:08:07 +0100 | <jean-paul[m]> | yep, that much I know at least :) I didn't think very hard when typing these readFile and writeFile calls since the I/O wasn't actually the point, the point was demonstrating I had achieved write access to the filesystem on android :) |
2023-02-24 16:08:45 +0100 | cstml | (~cstml@user/cstml) |
2023-02-24 16:08:50 +0100 | <merijn> | jean-paul[m]: You could also use deepseq to force the result of readFile and see if that fixes things (it should if lazy IO is the problem) |
2023-02-24 16:09:06 +0100 | <jean-paul[m]> | That is a pretty impressive expansion factor, didn't realize that |
2023-02-24 16:09:11 +0100 | <jean-paul[m]> | Indeed Text readFile/writeFile seems to have completely resolved it |
2023-02-24 16:09:25 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 252 seconds) |
2023-02-24 16:09:53 +0100 | <jean-paul[m]> | Though! The code was Prelude readFile/writeFile for a few days before this problem came up. It only appeared when I did some minor refactoring. So I guess my 5 second test of Text readFile/writeFile isn't necessarily entirely conclusive. |
2023-02-24 16:10:49 +0100 | <jean-paul[m]> | The app calls each of readFile and writeFile exactly one time, and it calls writeFile first. Does forcing Prelude readFile still seem like it would fix anything? |
2023-02-24 16:11:24 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 16:11:33 +0100 | <merijn> | jean-paul[m]: Char is a machine word, and the (:) constructor has 2 boxed fields (so that's 2 machine words as pointers), then the character itself is also boxed, so that's another machine word pointer, and individual characters are also machine words, so that's 4x8 bytes (assuming 64bit, obv) vs Text which is (depending on version) utf-16 or utf-8 encoded dense blobs. So that's 1-2 per character (well, |
2023-02-24 16:11:35 +0100 | <geekosaur> | that was what I was expecting, and in particular expecting to be resolved by `performGC` since `writeFile` should force its argument |
2023-02-24 16:11:39 +0100 | <merijn> | for most, obviously CJK might be a bit more) and if lazy Text maybe a pointer every few KB |
2023-02-24 16:12:28 +0100 | <geekosaur> | \that said, lazy I/O is kinda infamous for this kind of problem |
2023-02-24 16:12:57 +0100 | <geekosaur> | it's always looking for a way to bite your *ss |
2023-02-24 16:13:47 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 16:14:21 +0100 | <jean-paul[m]> | If I'm using it right, deepseq didn't fix it |
2023-02-24 16:14:46 +0100 | <jean-paul[m]> | https://gist.github.com/exarkun/76ae15b90c3aec2c3a61e1412c1eaf7e |
2023-02-24 16:17:24 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 16:19:03 +0100 | <merijn> | jean-paul[m]: Not really a solution to, but practically speaking I would probably avoid writeFile/readFile in general and instead use withFile anyway |
2023-02-24 16:19:27 +0100 | <merijn> | the implicit GC dependence of readFile/writeFile is kinda yikes |
2023-02-24 16:22:04 +0100 | <jean-paul[m]> | Data.Text.IO.readFile - > Beware that this function (similarly to readFile) is locale-dependent. :/ |
2023-02-24 16:22:20 +0100 | <jean-paul[m]> | I keep forgetting that |
2023-02-24 16:22:21 +0100 | <merijn> | jean-paul[m]: I'm not sure that should be a beware |
2023-02-24 16:22:53 +0100 | zeenk | (~zeenk@2a02:2f04:a214:1e00::7fe) (Quit: Konversation terminated!) |
2023-02-24 16:22:57 +0100 | <merijn> | jean-paul[m]: It just means "this will (attempt to) decode files using the decode specified by your locale" |
2023-02-24 16:23:12 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) |
2023-02-24 16:23:16 +0100 | <jean-paul[m]> | in my religion locale is a nonsense signal for the encoding of a file's contents |
2023-02-24 16:23:17 +0100 | <merijn> | i.e. utf-8 if your locale is set to utf-8 (as it probably should be) |
2023-02-24 16:24:29 +0100 | <merijn> | jean-paul[m]: If you want to explicitly control which encoding to use because you're in a setting with files of different encodings then there is also a readFile/writeFile in bytestring which properly gives you bytes that you can then explicitly decode into Text using the encoding of your choice |
2023-02-24 16:24:35 +0100 | <jean-paul[m]> | The only reason your locale should be set to utf-8 is that whenever you have some text encoded as bytes and you don't know any better, you should use utf-8 to decode it. So you should just do that and ignore the locale :) |
2023-02-24 16:25:12 +0100 | <jean-paul[m]> | but yea, I can do ByteString IO if I need to |
2023-02-24 16:26:16 +0100 | <jean-paul[m]> | unclear whether in practice I will be doing anything other than reading/write json or something similar in this app, so ... 🤷 |
2023-02-24 16:26:18 +0100 | <Ashkan> | Noob here, not sure if this is the right channel to post my question. Here it is: |
2023-02-24 16:26:18 +0100 | <Ashkan> | I’m trying to connect to an http server and consume an streamed response. Problem is `httpSource` expects `MonadResource` in the output conduit and I’m in `IO` so I figured I would get out a `ResourceT IO` : |
2023-02-24 16:26:19 +0100 | <Ashkan> | ``` |
2023-02-24 16:26:19 +0100 | <Ashkan> | main :: IO () |
2023-02-24 16:26:20 +0100 | <Ashkan> | main = do |
2023-02-24 16:26:20 +0100 | <Ashkan> | let c :: ConduitT () (Either String ServerEvent) (ResourceT IO) () |
2023-02-24 16:26:21 +0100 | <Ashkan> | c = httpSource "http://localhost:3000/sse" $ toSrc . responseBody |
2023-02-24 16:26:21 +0100 | <Ashkan> | return () |
2023-02-24 16:26:22 +0100 | <Ashkan> | where |
2023-02-24 16:26:22 +0100 | <Ashkan> | ``` |
2023-02-24 16:26:23 +0100 | <Ashkan> | Now I’m stuck with a c that is a conduit of `ResourceT IO` and about the only thing I can on it is to `runResourceT` which I don’t want. What I want is to get the same type but with `IO` : |
2023-02-24 16:26:23 +0100 | <Ashkan> | ``` |
2023-02-24 16:26:24 +0100 | <Ashkan> | ConduitT () (Either String ServerEvent) IO () |
2023-02-24 16:26:24 +0100 | <Ashkan> | ``` |
2023-02-24 16:26:25 +0100 | <Ashkan> | I thought this must be easy but apparently not ! best I could find was the https://hackage.haskell.org/package/conduit-1.3.4.3/docs/Data-Conduit-Lift.html which as far as I can see is not relevant to my case (I could be wrong though). |
2023-02-24 16:26:25 +0100 | <Ashkan> | Thanks |
2023-02-24 16:26:37 +0100 | <merijn> | Ashkan: Please don't paste more than 2 lines of code into the channel |
2023-02-24 16:27:12 +0100 | <Ashkan> | Wow that looks very ugly:D how do I post code here ? |
2023-02-24 16:27:13 +0100 | <merijn> | Ashkan: You cannot do what you are asking |
2023-02-24 16:27:35 +0100 | <merijn> | It would pretty much violate the entire point of ResourceT :) |
2023-02-24 16:27:45 +0100 | <merijn> | Ashkan: You can use https://paste.tomsmeding.com/ |
2023-02-24 16:28:59 +0100 | <merijn> | Ashkan: The thing to do would be built the entire Conduit as "ConduitT a b (ResourceT IO) x", then use runConduit to get "ResourceT IO x" and then run that via runResourceT |
2023-02-24 16:29:23 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 16:30:18 +0100 | <Ashkan> | I can't edit my ugly message to fix it:D |
2023-02-24 16:30:58 +0100 | <Ashkan> | merijn Thanks for the link and the explanation. Yeah I was figuring out myself that perhaps this is not the right thing to do but I don't understand why |
2023-02-24 16:32:28 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 16:32:53 +0100 | phma | (~phma@host-67-44-208-35.hnremote.net) (Read error: Connection reset by peer) |
2023-02-24 16:33:00 +0100 | <merijn> | Ashkan: ResourceT "scopes" the lifetime of a resource (i.e. guaranteed to be freed at the end even in case of an exception) |
2023-02-24 16:33:04 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-02-24 16:34:03 +0100 | <Ashkan> | merijn the resource here being the http connection and all the book keeping involved I assume, right ? |
2023-02-24 16:34:06 +0100 | <merijn> | Converting "ConduitT a b (ResourceT IO) x" into "ConduitT a b IO x" effectively "gets rid" of this scoping, so the lifetime is limited to one part of a ConduitT segment. But since ConduitT uses a kinda coroutine kinda that leaks the resource |
2023-02-24 16:34:23 +0100 | <merijn> | Ashkan: Yeah |
2023-02-24 16:34:33 +0100 | phma | (phma@2001:5b0:2143:86d8:f396:a44:9b48:fdf2) |
2023-02-24 16:36:53 +0100 | <Ashkan> | merijn Okay I'm seeing the light here, I guess. So this is one of those cases that once you got yourself into a certain monad , you are stuck with it (for good reason) and I have a resource open for while the conduit is still running so no leaving `ResourceT IO` (y) makes sense |
2023-02-24 16:37:09 +0100 | <merijn> | yeah |
2023-02-24 16:39:26 +0100 | polyphem_ | (~rod@2a02:810d:840:8754:d765:82aa:7bfb:6c2) |
2023-02-24 16:39:29 +0100 | <Ashkan> | Okay. So by the same logic, *everything* downstream is also bound to that resource. I mean from a higher level, essentially I have my whole application inside `ResourceT IO` *because* my whole application is nothing but downstream transformations to the conduit I get by opening a resource |
2023-02-24 16:39:38 +0100 | <Ashkan> | Beautiful. I'm all tears:D |
2023-02-24 16:40:42 +0100 | <merijn> | Presumably the goal is to "have 1 request, process it in streaming fashion, then cleanup when done", which logically should fall within the scope of a single ResourceT, yes |
2023-02-24 16:40:56 +0100 | <merijn> | Whether that is "the whole application" depends on the code ;) |
2023-02-24 16:41:06 +0100 | <merijn> | But you should probably have 1 per http request, yes |
2023-02-24 16:41:15 +0100 | CiaoSen | (~Jura@p200300c9570460002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2023-02-24 16:42:11 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-02-24 16:42:30 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) (Quit: Client closed) |
2023-02-24 16:44:44 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) |
2023-02-24 16:45:52 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 16:47:11 +0100 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 255 seconds) |
2023-02-24 16:47:51 +0100 | <Ashkan> | Well yeah, not the whole application but we have an understanding here. Thank you very much for your help. |
2023-02-24 16:47:52 +0100 | <Ashkan> | On a different note, is this the right place to ask this kind of questions ? I mean general haskell questions. Couldn't find a channel specifically for conduit. |
2023-02-24 16:47:52 +0100 | <Ashkan> | Also, is there like a better chat client I can use when I come here ? I have a feeling I'm gonna spend a lot of time here:) |
2023-02-24 16:47:53 +0100 | <Ashkan> | Again, thank you for your advice |
2023-02-24 16:48:20 +0100 | <geekosaur> | conduit questions are fine here |
2023-02-24 16:48:55 +0100 | <merijn> | In general anything haskell related is fine here |
2023-02-24 16:49:42 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-24 16:50:03 +0100 | <Ashkan> | Alright then :) just making sure I'm in the right place |
2023-02-24 16:51:18 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-02-24 16:51:35 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-02-24 16:52:04 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 16:55:31 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit) |
2023-02-24 16:56:56 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2023-02-24 16:57:01 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 16:59:09 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2023-02-24 16:59:17 +0100 | ddellacosta | (~ddellacos@146.70.166.100) (Quit: WeeChat 3.8) |
2023-02-24 17:00:07 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 17:02:07 +0100 | ddellacosta | (~ddellacos@146.70.166.100) |
2023-02-24 17:04:51 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 17:04:57 +0100 | coot | (~coot@213.134.171.3) (Quit: coot) |
2023-02-24 17:05:18 +0100 | varoo | (~varoo@117.203.246.41) (Ping timeout: 255 seconds) |
2023-02-24 17:08:38 +0100 | varoo | (~varoo@117.203.246.41) |
2023-02-24 17:10:17 +0100 | varoo | (~varoo@117.203.246.41) (Remote host closed the connection) |
2023-02-24 17:12:25 +0100 | sma | (~sma@2001:ce0:2207:801:877e:de38:1dc1:930f) (Quit: Konversation terminated!) |
2023-02-24 17:14:29 +0100 | K4su | (~quassel@v2202212189510211193.supersrv.de) |
2023-02-24 17:17:14 +0100 | ft | (~ft@p3e9bc443.dip0.t-ipconnect.de) |
2023-02-24 17:19:15 +0100 | merijn | (~merijn@195.114.232.94) (Ping timeout: 255 seconds) |
2023-02-24 17:20:08 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2023-02-24 17:23:00 +0100 | gmg | (~user@user/gehmehgeh) |
2023-02-24 17:25:41 +0100 | Pickchea | (~private@user/pickchea) |
2023-02-24 17:29:37 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) (Quit: Client closed) |
2023-02-24 17:30:35 +0100 | vandita | (~vandit@84-236-21-41.pool.digikabel.hu) (Ping timeout: 260 seconds) |
2023-02-24 17:32:22 +0100 | vandita | (~vandit@92-249-193-140.pool.digikabel.hu) |
2023-02-24 17:35:41 +0100 | zer0bitz_ | (~zer0bitz@2001:2003:f443:d600:d5ec:7b37:9a2a:efdd) () |
2023-02-24 17:36:59 +0100 | Lycurgus | (~juan@user/Lycurgus) |
2023-02-24 17:38:35 +0100 | CiaoSen | (~Jura@p200300c9570460002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2023-02-24 17:40:10 +0100 | <gqplox[m]> | hello |
2023-02-24 17:40:58 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 17:45:23 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 246 seconds) |
2023-02-24 17:45:37 +0100 | <gurkenglas> | How powerful are free theorems? One can use them to constrain "((String -> String) -> Int) -> Int" to its subtype "((forall a. a -> a) -> Int) -> Int" that requires that the ((String -> String) -> Int) only be queried with parametrically polymorphic inputs, for example. What I would like to do is constrain a type "X a" such that it is fixed by all (forall b. X b -> X b). Can I do that, perhaps only if |
2023-02-24 17:45:43 +0100 | <gurkenglas> | X has a particular shape? |
2023-02-24 17:46:18 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) |
2023-02-24 17:47:05 +0100 | <gurkenglas> | (constrain the type "X a" to those inhabitants which are fixed by all (forall b. X b -> X b), that is) |
2023-02-24 17:48:30 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds) |
2023-02-24 17:49:14 +0100 | zer0bitz | (~zer0bitz@2001:2003:f443:d600:d5ec:7b37:9a2a:efdd) |
2023-02-24 17:49:56 +0100 | ubert1 | (~Thunderbi@2a02:8109:abc0:6434:98f0:cff3:bf01:6714) (Quit: ubert1) |
2023-02-24 17:52:34 +0100 | <gurkenglas> | One cool way to state the subtype "XX a" of "X a" I'm looking for: it is that subtype for which "(forall b. X b -> X b) -> XX a -> XX a" has precisely one inhabitant. |
2023-02-24 17:52:58 +0100 | shapr | (~user@144.163.19.233) |
2023-02-24 17:54:16 +0100 | slack1256 | (~slack1256@186.11.53.84) |
2023-02-24 17:54:33 +0100 | <gqplox[m]> | i am struggling to write a recursive function |
2023-02-24 17:54:44 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) |
2023-02-24 17:54:54 +0100 | <gurkenglas> | State its purpose. |
2023-02-24 17:56:54 +0100 | <Ashkan> | Which one is closer to idiomatic haskell https://paste.tomsmeding.com/ZUasbAAs#file-1 |
2023-02-24 17:56:58 +0100 | analoq | (~yashi@user/dies) (Ping timeout: 268 seconds) |
2023-02-24 17:57:28 +0100 | <Ashkan> | Bummer, doesn't show a preview:D |
2023-02-24 17:58:13 +0100 | alphabeta | (~kilolympu@213.144.144.24) |
2023-02-24 17:58:22 +0100 | mbuf | (~Shakthi@49.204.138.125) (Quit: Leaving) |
2023-02-24 17:58:25 +0100 | <gqplox[m]> | i want to zip a [[a]] with an index |
2023-02-24 17:58:33 +0100 | analoq | (~yashi@user/dies) |
2023-02-24 17:58:33 +0100 | <gqplox[m]> | and i don't want to use concat and that kind of stuff |
2023-02-24 17:58:49 +0100 | <gqplox[m]> | http://sprunge.us/8Ozeom |
2023-02-24 17:58:49 +0100 | kilolympus | (~kilolympu@213.144.144.24) (Ping timeout: 268 seconds) |
2023-02-24 17:59:03 +0100 | <gqplox[m]> | that is an outline of the wrong code |
2023-02-24 17:59:31 +0100 | <gqplox[m]> | basically how do I know what n was on the last time g was called, i'm not sure how to do it |
2023-02-24 17:59:52 +0100 | <gqplox[m]> | i could have g return a tuple of the array so far and n so far but i think there is a better way |
2023-02-24 18:00:25 +0100 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
2023-02-24 18:01:22 +0100 | <gurkenglas> | gqplox[m]: why do you not want to use concat and that kind of stuff? |
2023-02-24 18:01:58 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 18:02:18 +0100 | <mauke> | Ashkan: I don't know, but I would strongly prefer option #2 |
2023-02-24 18:02:54 +0100 | <gqplox[m]> | well the way i wrote it before i had already defined some chunk function and the used concat and zip, and put it back into the chunks |
2023-02-24 18:03:02 +0100 | <gqplox[m]> | but i was thinking surely i can do it this way too |
2023-02-24 18:03:05 +0100 | analoq | (~yashi@user/dies) (Ping timeout: 252 seconds) |
2023-02-24 18:03:33 +0100 | <gqplox[m]> | but idk how, so im just curious how to |
2023-02-24 18:03:45 +0100 | <Ashkan> | gurkenglas I have to parse the elements of the steam at two points, first from a `ByteString` to a `ServerEvent` which can fail so the parser returns an `Either` but I don't want to pass the `Left` downstream. Same logic happens again when converting a `ServerEvent` to `AppEvent` since not all server events are understood by the app |
2023-02-24 18:04:28 +0100 | alphabeta | (~kilolympu@213.144.144.24) (Quit: See you later! :)) |
2023-02-24 18:04:52 +0100 | kilolympus | (~kilolympu@213.144.144.24) |
2023-02-24 18:05:38 +0100 | <Ashkan> | gurkenglas You were talking to gqplox[m], not me:D I'm not used to IRC, sorry |
2023-02-24 18:05:58 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) (Quit: Client closed) |
2023-02-24 18:06:07 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 248 seconds) |
2023-02-24 18:06:12 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) |
2023-02-24 18:06:13 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-02-24 18:06:26 +0100 | <mauke> | gqplox[m]: you could hide the tuple by using State |
2023-02-24 18:06:50 +0100 | <Ashkan> | mauke yeah its easier to understand |
2023-02-24 18:07:35 +0100 | <Ashkan> | But the point-free style is so cool. Half the appeal of Haskell to a noob like myself:D |
2023-02-24 18:08:03 +0100 | <mauke> | some things it makes easier to read, others it turns into an unreadable mess |
2023-02-24 18:08:16 +0100 | <mauke> | choose wisely :-) |
2023-02-24 18:08:25 +0100 | <gqplox[m]> | yes, i was thinking of that too mauke, but i was also wondering if there is a "trick" to do this kind of thing when using recursion |
2023-02-24 18:08:58 +0100 | <Ashkan> | mauke actually this also works `httpSource "http://localhost:3000/sse" $ (.| concatMapC toServerEvent .| concatMapC toAppEvent) . responseBody |
2023-02-24 18:08:58 +0100 | <Ashkan> | ` (notice on pair of parans are gone) |
2023-02-24 18:09:00 +0100 | analoq | (~yashi@user/dies) |
2023-02-24 18:09:52 +0100 | <ncf> | gurkenglas: do you have an example of a type X where XX is interesting? |
2023-02-24 18:10:00 +0100 | <Ashkan> | https://paste.tomsmeding.com/MDy6femX |
2023-02-24 18:10:56 +0100 | <ncf> | (also, ((forall a. a → a) → Int) → Int is not a subtype of ((String → String) → Int) → Int. it's the other way around) |
2023-02-24 18:12:52 +0100 | <monochrom> | Power of free theorems: (forall a. a->a) simplifies to (). (() -> Int) -> Int) simplifies to Int->Int. |
2023-02-24 18:13:03 +0100 | <ddellacosta> | is there any way to newtype-wrap a string type such that I can enforce uniqueness constraints on it? I suppose that would require dependent types if I wanted that at runtime, or I'd need to use type-level strings or otherwise ensure my strings are defined at compile-time (so wouldn't need a newtype anyways)? |
2023-02-24 18:13:17 +0100 | <mauke> | > let getn = do n <- get; put $! n + 1; pure n in evalState ((mapM . mapM) (\x -> (x,) <$> getn) ["abc", "two"]) 0 |
2023-02-24 18:13:19 +0100 | <lambdabot> | [[('a',0),('b',1),('c',2)],[('t',3),('w',4),('o',5)]] |
2023-02-24 18:13:31 +0100 | <mauke> | I'm sure this could be lensed up somehow |
2023-02-24 18:13:50 +0100 | <int-e> | :t let f :: (((forall a. a -> a) -> Int) -> Int) -> (((String -> String) -> Int) -> Int); f g = g in f |
2023-02-24 18:13:51 +0100 | <lambdabot> | (((forall a. a -> a) -> Int) -> Int) -> ((String -> String) -> Int) -> Int |
2023-02-24 18:14:09 +0100 | <int-e> | ncf: are you sure? the forall is in a contravariant position. |
2023-02-24 18:14:11 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) (Quit: Client closed) |
2023-02-24 18:14:13 +0100 | <ncf> | oh, i got confused by what subtype means |
2023-02-24 18:14:19 +0100 | analoq | (~yashi@user/dies) (Ping timeout: 248 seconds) |
2023-02-24 18:14:25 +0100 | <ncf> | the forall one is more general, so it is a subtype; my bad |
2023-02-24 18:15:43 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) (Quit: Client closed) |
2023-02-24 18:16:52 +0100 | <int-e> | Wait, I'm wrong too, it's covariant. |
2023-02-24 18:17:04 +0100 | <ncf> | it's contravariant twice, hence covariant |
2023-02-24 18:17:19 +0100 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 248 seconds) |
2023-02-24 18:17:32 +0100 | <ncf> | but forall *itself* is a contravariant thing, so in the end the subtyping relation is flipped |
2023-02-24 18:17:48 +0100 | <int-e> | "more general" translates to "more contrained", right. |
2023-02-24 18:18:08 +0100 | <monochrom> | A broader use of the power of free theorems: Rank-n types (e.g., System F) let you encode ADTs by e.g. [Int] encoded as (forall r. (Int -> r -> r) -> r -> r). Free theorems prove that the latter has no junk (no larger than the former). Generally you can do this to all ADTs. |
2023-02-24 18:18:15 +0100 | phma | (phma@2001:5b0:2143:86d8:f396:a44:9b48:fdf2) (Remote host closed the connection) |
2023-02-24 18:18:43 +0100 | phma | (~phma@2001:5b0:2143:86d8:f396:a44:9b48:fdf2) |
2023-02-24 18:19:21 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 18:19:24 +0100 | <ncf> | if it were exists instead of forall, then the exists one would be a supertype, i.e. less constrained, but i think i would still call it "more general"? |
2023-02-24 18:19:37 +0100 | <ncf> | maybe generality applies to substitutions but not really to types |
2023-02-24 18:19:58 +0100 | <gurkenglas> | > ["as","dsa"] ^@.. itraversed.itraversed -- gqplox[m] :) |
2023-02-24 18:20:00 +0100 | <lambdabot> | [(0,'a'),(1,'s'),(0,'d'),(1,'s'),(2,'a')] |
2023-02-24 18:20:04 +0100 | <gurkenglas> | whoops |
2023-02-24 18:20:05 +0100 | <ncf> | (a → a subsumes String → String, the subtyping direction depends on how you quantify over a) |
2023-02-24 18:20:35 +0100 | <kuribas> | End you can encode existitial types with forall, without the need to create a datatype. |
2023-02-24 18:20:40 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 18:20:41 +0100 | <monochrom> | Another large class of uses is the Yoneda lemma, e.g., (forall r. (Int -> r) -> [r]) simplifies to [Int]. This works for all functors in place of []. |
2023-02-24 18:21:15 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2023-02-24 18:22:25 +0100 | <monochrom> | I wouldn't be surprised if people were simple minded and simply defined "more general" to just mean "I see more quantifiers". |
2023-02-24 18:22:56 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-02-24 18:23:07 +0100 | __monty__ | (~toonn@user/toonn) |
2023-02-24 18:23:08 +0100 | <monochrom> | As opposed to the proper way of actually counting which side has more examples. |
2023-02-24 18:25:10 +0100 | <monochrom> | More generally (pun heh) I wouldn't be surprised if people had all the flaws of AIs we all love to make fun of. |
2023-02-24 18:26:50 +0100 | <ncf> | surely common language would say that forall a. a → a is more general than String → String, although the latter has more examples |
2023-02-24 18:27:10 +0100 | <geekosaur> | absolutely we do |
2023-02-24 18:27:20 +0100 | <ncf> | in this case the generality is in what you can apply that function to (i.e. it's a contravariant notion) |
2023-02-24 18:27:21 +0100 | <monochrom> | Sure. Exactly what GPT does too. |
2023-02-24 18:27:35 +0100 | <geekosaur> | they're just weirder because as you get better trained the flaws become more weirdshit |
2023-02-24 18:28:08 +0100 | <ncf> | but i would also be comfortable saying that exists a. a is more general than String, this time because it has more inhabitants |
2023-02-24 18:28:26 +0100 | <ncf> | in other words i don't think generality of types is a well-defined notion |
2023-02-24 18:28:30 +0100 | f-a | (~f-a@151.44.34.226) |
2023-02-24 18:28:50 +0100 | <monochrom> | We can start fixing that. |
2023-02-24 18:28:57 +0100 | <monochrom> | Or we can stay as bystanders. |
2023-02-24 18:29:08 +0100 | <ncf> | what for? we have subtyping already |
2023-02-24 18:29:12 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Read error: Connection reset by peer) |
2023-02-24 18:29:25 +0100 | <gurkenglas> | having given up on trying to fix my indexed traversal and caught up on chat since my question: (forall a.a->a) is a subtype of String->String, yes? |
2023-02-24 18:29:26 +0100 | king_gs | (~Thunderbi@187.201.41.239) |
2023-02-24 18:29:28 +0100 | <monochrom> | A much better wording for comparing (forall a. a->a) with (String->String) is "more polymorphic". |
2023-02-24 18:29:40 +0100 | <ncf> | gurkenglas: yes |
2023-02-24 18:29:57 +0100 | <gurkenglas> | so if i put two (->Int)s on each side, I still have the same subtype relationship |
2023-02-24 18:30:03 +0100 | <ncf> | yes yes i was wrong |
2023-02-24 18:30:12 +0100 | <monochrom> | Sure, I can go with "subtype of". |
2023-02-24 18:30:20 +0100 | <f-a> | I am reding https://www.microsoft.com/en-us/research/uploads/prod/2016/11/trees-that-grow.pdf “This paper is typeset from a literate Haskell source file using lhs2TeX [Hinze and Löh, 2015], and the code runs on GHC 8.0” ← Is there any way to recover/reconstruct/download that .lhs file? Copying stuff from a pdf is a pain |
2023-02-24 18:30:49 +0100 | <monochrom> | But the word "more general" needs fixing too. As in, we need to get more people to adopt the definition of counting examples. |
2023-02-24 18:31:25 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) |
2023-02-24 18:32:51 +0100 | <gurkenglas> | ncf: I do! The associativity and unitality properties of composition in a category happen to be equivalent to composition being fixed by all natural redefinitions. |
2023-02-24 18:32:53 +0100 | <monochrom> | Plus in Java (<T> T f(T)) does have more examples than (String f(String)), for Java allows you instanceof. |
2023-02-24 18:33:56 +0100 | <ncf> | gurkenglas: what's a natural redefinition? |
2023-02-24 18:33:56 +0100 | <gurkenglas> | monochrom: given a property, how might I tell whether it can be expressed using free theorems? |
2023-02-24 18:34:04 +0100 | <gurkenglas> | ncf: the XX thing |
2023-02-24 18:34:35 +0100 | <gurkenglas> | (that is, "forall b. X b -> X b") |
2023-02-24 18:34:45 +0100 | <ncf> | endonatural transformations? |
2023-02-24 18:35:08 +0100 | <ncf> | why do you mean by composition being fixed by that? |
2023-02-24 18:35:10 +0100 | vandita | (~vandit@92-249-193-140.pool.digikabel.hu) (Ping timeout: 246 seconds) |
2023-02-24 18:36:17 +0100 | <gurkenglas> | ncf, put more simply: every notion of composition that you could construct from the composition of a category is that same notion. |
2023-02-24 18:36:42 +0100 | <ncf> | i don't want simpler i want more precise :D |
2023-02-24 18:37:06 +0100 | vandita | (~vandit@87-97-13-33.pool.digikabel.hu) |
2023-02-24 18:39:15 +0100 | polyphem_ | (~rod@2a02:810d:840:8754:d765:82aa:7bfb:6c2) (Ping timeout: 255 seconds) |
2023-02-24 18:39:56 +0100 | polyphem_ | (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) |
2023-02-24 18:40:43 +0100 | <gurkenglas> | ncf: a category c :: Dict (Category C) is lawful iff for every f :: forall graph. Dict (Category graph) -> Dict (Category graph), f c = c |
2023-02-24 18:40:50 +0100 | <ncf> | for X = [], the only element of [a] that is fixed by endonatural transformations is the empty list. i wonder if this generalises to XX a = forall b. X b |
2023-02-24 18:41:52 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-02-24 18:42:28 +0100 | <ncf> | gurkenglas: what's Dict? |
2023-02-24 18:43:03 +0100 | <ncf> | i'm guessing it's a dictionary containing the identity and composition operations |
2023-02-24 18:43:22 +0100 | kuribas | (~user@ptr-17d51epnas6cljeq5e9.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2023-02-24 18:43:24 +0100 | <gurkenglas> | Yeah. Dict has kind Constraing -> * and maps every class to a type whose inhabitants are instances. |
2023-02-24 18:44:12 +0100 | jarkad | jarkad__ |
2023-02-24 18:44:43 +0100 | jarkad__ | jarkad |
2023-02-24 18:44:50 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) |
2023-02-24 18:44:57 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) |
2023-02-24 18:45:06 +0100 | <gurkenglas> | so now that you have an example, i'd like my clever application of free theorems to encode this :3 |
2023-02-24 18:45:28 +0100 | <gurkenglas> | s/my/some/ |
2023-02-24 18:45:39 +0100 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 255 seconds) |
2023-02-24 18:45:46 +0100 | <mauke> | f-a: your best bet may be emailing the author(s) and asking for a copy |
2023-02-24 18:46:27 +0100 | <gurkenglas> | f-a: make GPT clean it up |
2023-02-24 18:47:05 +0100 | f-a | (~f-a@151.44.34.226) (Read error: Connection reset by peer) |
2023-02-24 18:47:12 +0100 | econo | (uid147250@user/econo) |
2023-02-24 18:47:39 +0100 | jarkad | jarkad__ |
2023-02-24 18:47:44 +0100 | jarkad__ | jarkad |
2023-02-24 18:47:56 +0100 | jarkad | jarkad__ |
2023-02-24 18:47:58 +0100 | jarkad__ | jarkad |
2023-02-24 18:48:18 +0100 | <gurkenglas> | ("maps every class to a type whose inhabitants are instances" <- with the class applied to enough parameters to produce a constraint, of course.) |
2023-02-24 18:48:46 +0100 | <ncf> | so, you're trying to come up with a type whose inhabitation means that c is lawful? |
2023-02-24 18:49:22 +0100 | <ncf> | i doubt you can do that |
2023-02-24 18:49:23 +0100 | <gurkenglas> | ncf: not quite: i'm trying to come up with a type whose inhabitants are lawful. |
2023-02-24 18:49:46 +0100 | <ncf> | hmm |
2023-02-24 18:50:11 +0100 | <gurkenglas> | X a = Dict (Category a) are all instances of Category a, even unlawful ones; XX a would be the lawful instances. |
2023-02-24 18:50:34 +0100 | <gurkenglas> | Big if possible, right? |
2023-02-24 18:50:50 +0100 | f-a | (~f-a@151.44.70.210) |
2023-02-24 18:51:52 +0100 | <ncf> | actually, i see how your condition implies unitality but not associativity |
2023-02-24 18:53:19 +0100 | <gurkenglas> | I'll talk you through the proof if you solve my problem :D |
2023-02-24 18:54:56 +0100 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2023-02-24 18:55:21 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) |
2023-02-24 18:55:21 +0100 | <gurkenglas> | (though possibly the theorem only holds for a particular, equivalent definition of Category) |
2023-02-24 18:56:47 +0100 | f-a | (~f-a@151.44.70.210) (Ping timeout: 248 seconds) |
2023-02-24 18:56:54 +0100 | shapr | (~user@144.163.19.233) (Ping timeout: 255 seconds) |
2023-02-24 18:57:31 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-02-24 18:58:36 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) (Remote host closed the connection) |
2023-02-24 18:58:38 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Ping timeout: 268 seconds) |
2023-02-24 18:58:52 +0100 | <gurkenglas> | yeah it does, fascinatingly evil |
2023-02-24 18:59:09 +0100 | Ashkan | (~Ashkan@a119011.upc-a.chello.nl) (Client Quit) |
2023-02-24 18:59:44 +0100 | npm_i_kurbus60 | (~npm_i_kur@user/kurbus) |
2023-02-24 19:00:07 +0100 | npm_i_kurbus60 | kurbus |
2023-02-24 19:00:23 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) (Quit: Client closed) |
2023-02-24 19:01:01 +0100 | cheater | (~Username@user/cheater) |
2023-02-24 19:01:17 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 255 seconds) |
2023-02-24 19:01:54 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) |
2023-02-24 19:02:33 +0100 | <ncf> | i wonder if you could encode lawfulness by saying that a category is an algebra for the free category monad |
2023-02-24 19:02:34 +0100 | f-a | (~f-a@151.44.47.79) |
2023-02-24 19:02:55 +0100 | mechap | (~mechap@user/mechap) (Quit: WeeChat 3.8) |
2023-02-24 19:03:09 +0100 | <ncf> | maybe you can construct free categories as a GADT |
2023-02-24 19:03:14 +0100 | <gurkenglas> | precisely, that's the equivalent definition i mean. Of course it would be cheating to reuse the "associative, unital" that "algebra over a monad" gives you here |
2023-02-24 19:03:36 +0100 | <gurkenglas> | so do "algebra over an endofunctor" which is the same but without "associative, unital" |
2023-02-24 19:03:47 +0100 | Katarushisu | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2023-02-24 19:03:54 +0100 | <ncf> | that's not the same associativity and unitality |
2023-02-24 19:04:00 +0100 | <gurkenglas> | and yet. |
2023-02-24 19:04:16 +0100 | <ncf> | the laws of the free category monad have nothing to do with the category laws obeyed by the free category itself |
2023-02-24 19:04:31 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 19:04:35 +0100 | <ncf> | just like the "free group monad" obeys monoid-sounding laws but no inverse |
2023-02-24 19:04:42 +0100 | <gurkenglas> | using them is cheating because you can also do the same construction for "vector space is a linear combinations algebra" or "monoid is a list algebra" |
2023-02-24 19:05:12 +0100 | <ncf> | why is that cheating? not following |
2023-02-24 19:05:43 +0100 | <ncf> | well it's not like haskell would let you express monad-algebra laws as opposed to functor-algebra |
2023-02-24 19:05:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 19:06:26 +0100 | <gurkenglas> | we could look at it as, i'm hoping to characterize categories here as "that thing for which 'fixed by natural redefinitions' is equivalent to the algebra's 'assoc&unital'" |
2023-02-24 19:09:10 +0100 | kurbus | (~npm_i_kur@user/kurbus) (Quit: Client closed) |
2023-02-24 19:09:30 +0100 | <gurkenglas> | if category theory, infamous for being able to talk about itself, falls out of "a category is a thing that talks about itself a lot" and "the definition of category is the definition that you can put in terms of talking about itself", refer to my previous statement about size conditional upon veracity |
2023-02-24 19:10:19 +0100 | talismanick | (~talismani@45-23-184-231.lightspeed.frokca.sbcglobal.net) |
2023-02-24 19:11:55 +0100 | <ncf> | i guess |
2023-02-24 19:12:43 +0100 | shapr | (~user@144.163.19.233) |
2023-02-24 19:14:54 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 255 seconds) |
2023-02-24 19:15:18 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) |
2023-02-24 19:15:35 +0100 | jwiegley | (~jwiegley@2600:1700:cf00:db0:18e0:c0e7:a06a:ed2f) (Ping timeout: 260 seconds) |
2023-02-24 19:16:50 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2023-02-24 19:17:21 +0100 | jwiegley | (~jwiegley@2600:1700:cf00:db0:105e:68f2:b311:fef4) |
2023-02-24 19:20:34 +0100 | <gurkenglas> | right, so, how do I define FixedByRedef X, which has the universal property that "(forall b. X b -> X b) -> FixedByRedef X a -> FixedByRedef X a" is unique? |
2023-02-24 19:22:23 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-02-24 19:23:28 +0100 | stackdroid18 | (14094@de1.hashbang.sh) |
2023-02-24 19:26:13 +0100 | <gurkenglas> | (plus the ambient structure of FixedByRedef X a being a subtype of X a) |
2023-02-24 19:26:35 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) |
2023-02-24 19:28:34 +0100 | nattiestnate | (~nate@202.138.250.17) (Quit: WeeChat 3.8) |
2023-02-24 19:29:46 +0100 | <ncf> | well, the empty subtype works for one |
2023-02-24 19:29:54 +0100 | <ncf> | i think that's not quite a universal property |
2023-02-24 19:30:29 +0100 | <ncf> | i think my suggestion forall b. X b also works but also doesn't fit the actual universal property you want |
2023-02-24 19:30:50 +0100 | <gurkenglas> | misunderstanding: universal here means that not only is this unique, but also any other subtype for which this is unique is also a subtype of the universal one (in a unique manner but that's free for subtypes) |
2023-02-24 19:31:04 +0100 | <ncf> | right |
2023-02-24 19:31:12 +0100 | <ncf> | so the largest subtype, basically |
2023-02-24 19:31:16 +0100 | <gurkenglas> | yes |
2023-02-24 19:31:32 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2023-02-24 19:31:41 +0100 | ncf | . o O ( adjoint functor theorem for posets ) |
2023-02-24 19:32:20 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 19:34:21 +0100 | gmg | (~user@user/gehmehgeh) |
2023-02-24 19:34:55 +0100 | shapr` | (~user@144.163.19.233) |
2023-02-24 19:35:22 +0100 | <gurkenglas> | hmmmmmmmmm. "LawfulDict (Category a) -> Dict (Category a)" is *also* unique. |
2023-02-24 19:36:52 +0100 | shapr | (~user@144.163.19.233) (Ping timeout: 268 seconds) |
2023-02-24 19:37:05 +0100 | <gurkenglas> | so i think LawfulDict (Category a) is just the limit of the diagram containing all the values of "forall a. Dict (Category a) -> Dict (Category a)"? |
2023-02-24 19:38:41 +0100 | <gurkenglas> | (different way to say the insight from my last 2 lines: we don't need to say "every redefinition of composition is this composition again", only "all redefinitions agree", since id happens to be one of them) |
2023-02-24 19:38:46 +0100 | talismanick | (~talismani@45-23-184-231.lightspeed.frokca.sbcglobal.net) (Ping timeout: 252 seconds) |
2023-02-24 19:41:25 +0100 | <gurkenglas> | ncf: explain the connection in your last line? |
2023-02-24 19:45:53 +0100 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
2023-02-24 19:46:56 +0100 | <gurkenglas> | it feels like if RankNTypes can help my encode my subtype, it will be because it can encode: "The subtype of A a such that we can turn it into precisely one B a". |
2023-02-24 19:47:12 +0100 | <gurkenglas> | (It's fine if it can only do that under particular conditions.) |
2023-02-24 19:47:26 +0100 | shapr` | shapr |
2023-02-24 19:50:16 +0100 | <gurkenglas> | You might say, "Why don't you just use B a directly?". The reason is that there may be B a that we can't build from any A a, so using B a forgets that we came from some A a. |
2023-02-24 19:52:26 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 19:52:31 +0100 | <gurkenglas> | ncf: you don't have to make the connection to "adjoint functor theorem for posets" precise, i might guess at that if you can say what part of this made you think of what part of that |
2023-02-24 19:52:50 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-24 19:56:39 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 19:57:03 +0100 | <gurkenglas> | https://qchu.wordpress.com/2010/10/22/the-adjoint-functor-theorem-for-posets/ <- "what really matters about the infimum and supremum is that they have universal properties" <- hah! i discovered that myself 33 days ago! (while refactoring the by-contradiction out of a proof) |
2023-02-24 19:57:12 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-02-24 19:57:41 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-02-24 20:04:00 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) (Quit: Client closed) |
2023-02-24 20:04:46 +0100 | <gastus_> | Does GHC allow reading types in template haskell ? like row = [ build query code ] and then infer if row.id is used that id should be included in the SELECT part of the query ? |
2023-02-24 20:05:40 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
2023-02-24 20:05:52 +0100 | ph88 | (~ph88@91.66.101.83) |
2023-02-24 20:07:13 +0100 | <dminuoso_> | gastus_: Not really |
2023-02-24 20:07:47 +0100 | bilegeek | (~bilegeek@2600:1008:b008:ac8:4aba:4b96:274e:f868) |
2023-02-24 20:08:19 +0100 | <dminuoso_> | gastus_: There's a bunch of ways this is done in libraries |
2023-02-24 20:08:30 +0100 | <ncf> | gurkenglas: yeah nothing precise, just that "the largest foo" can often be obtained via the AFT as "the join of all foos", see https://amelia.how/posts/the-adjoint-functor-theorem-in-everyday-life.html |
2023-02-24 20:08:50 +0100 | <ncf> | probably doesn't help at all |
2023-02-24 20:09:22 +0100 | <dminuoso_> | a) you just infer it from the call site, e.g `do rs <- query "SELECT id, name, FROM table"; for_ rs $ \(r :: Int, name :: Text) -> ...` - this is what the -simple libraries effectively do |
2023-02-24 20:09:39 +0100 | <dminuoso_> | b) you can somehow have ambient knowledge of the schema in TH |
2023-02-24 20:10:02 +0100 | <dminuoso_> | c) or you explicitly somehow provide some parser (which is what hasql does, but postgresql-simple has some rudimentary support for it to) |
2023-02-24 20:12:07 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2023-02-24 20:12:18 +0100 | <gastus_> | dminuoso_: So tehre is no way yet to infer with the bidirectional typing system of GHC yet? |
2023-02-24 20:13:17 +0100 | <dminuoso_> | gastus_: if you want that kind of behavior, you have to do it at runtime. |
2023-02-24 20:13:41 +0100 | <gastus_> | But then I cannot typecheck at build time. Ok. Just something I dream about. |
2023-02-24 20:13:52 +0100 | <gastus_> | Would have been too lucky if GHC was able to do that by today already. |
2023-02-24 20:14:32 +0100 | <dminuoso_> | well you even ask for things that are impossible with TH |
2023-02-24 20:14:50 +0100 | <dminuoso_> | or well, not impossbile I guess. |
2023-02-24 20:15:15 +0100 | <dminuoso_> | You could go all the way in TH, load up ghc api, load Cabal, and analyze the entirety of your program |
2023-02-24 20:15:35 +0100 | <dminuoso_> | but you would have some chicken-egg problems with the TH splices. |
2023-02-24 20:15:43 +0100 | mcglk | (~mcglk@131.191.19.145) (Ping timeout: 248 seconds) |
2023-02-24 20:18:04 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-02-24 20:19:11 +0100 | mcglk | (~mcglk@131.191.19.145) |
2023-02-24 20:19:30 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-02-24 20:27:59 +0100 | f-a | (~f-a@151.44.47.79) (Ping timeout: 248 seconds) |
2023-02-24 20:29:06 +0100 | f-a | (~f-a@151.34.85.212) |
2023-02-24 20:33:30 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2023-02-24 20:37:07 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Client Quit) |
2023-02-24 20:43:59 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-02-24 20:55:12 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) |
2023-02-24 20:57:02 +0100 | k8yun | (~k8yun@user/k8yun) |
2023-02-24 20:57:58 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2023-02-24 21:01:44 +0100 | OscarZ | (~oscarz@95.175.104.72) |
2023-02-24 21:02:12 +0100 | <jonathanx> | How do I quickstart a new haskell project? At work, I have a nix-shell setup with al the quirks worked out. Now I wanted to try out making a lib in my spare time. I tried kowainik's summoner to generate a project template. It as ok, but out of date (had to set a newer stack resolver manually). I got some errors related to not having an explicit hie.yaml, which made HLS break. And now I struggle to add packages (wanted to try |
2023-02-24 21:02:12 +0100 | <jonathanx> | out cabal, maybe a bad idea? It doesn't seem to add the packages I specify in the .cabal file) |
2023-02-24 21:02:58 +0100 | <jonathanx> | It basically feels a bit tedious to set up a new project, ideally I'd like to have a template that is pre-configured with the right nix-shell etc, so it's pretty much plug n play |
2023-02-24 21:02:59 +0100 | <[exa]> | jonathanx: try cabal, it is a good idea |
2023-02-24 21:03:43 +0100 | <geekosaur> | modern HLS usually doesn't need an hie.yaml, I'm somewhat curious as to why yours does |
2023-02-24 21:03:49 +0100 | <geekosaur> | at least with cabal |
2023-02-24 21:03:55 +0100 | <c_wraith> | I just run cabal init and go. |
2023-02-24 21:04:01 +0100 | <[exa]> | +1 ^ |
2023-02-24 21:06:37 +0100 | <shapr> | jonathanx: I use: nix flake init -t 'github:JonathanLorimer/templates#haskell' |
2023-02-24 21:10:39 +0100 | <jonathanx> | thanks for you suggestions. I will explore cabal init as well as the nix flake version. If anyone else have a preferred route, hmu |
2023-02-24 21:12:27 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-02-24 21:15:10 +0100 | <ncf> | gurkenglas: would your claim imply a similar statement like "lawful Monoid instances are the ones that are fixed by every forall m. Dict (Monoid m) → Dict (Monoid m)" ? because that's false |
2023-02-24 21:15:40 +0100 | <ncf> | or are you claiming that Category is the only class that satisfies this? |
2023-02-24 21:17:08 +0100 | <ph88> | when i have a list of Either .. is there a function that gives me a back an Either with left value the first left found or right value the result list ? |
2023-02-24 21:18:07 +0100 | <ncf> | :t sequence @(Either a) |
2023-02-24 21:18:08 +0100 | <lambdabot> | error: |
2023-02-24 21:18:08 +0100 | <lambdabot> | Pattern syntax in expression context: sequence@(Either a) |
2023-02-24 21:18:08 +0100 | <lambdabot> | Did you mean to enable TypeApplications? |
2023-02-24 21:18:35 +0100 | <geekosaur> | lambdabot doesn't do TypeApplications; use yahb2 |
2023-02-24 21:18:44 +0100 | <c_wraith> | > sequence [Right 1, Right 2] |
2023-02-24 21:18:44 +0100 | <geekosaur> | % :t @(Either e) |
2023-02-24 21:18:44 +0100 | <yahb2> | <interactive>:1:1: error: parse error on input ‘@’ |
2023-02-24 21:18:45 +0100 | <lambdabot> | Right [1,2] |
2023-02-24 21:18:54 +0100 | <c_wraith> | > sequence [Right 1, Left (), Right 2] |
2023-02-24 21:18:55 +0100 | <geekosaur> | % :t sequence @(Either e) |
2023-02-24 21:18:55 +0100 | <yahb2> | <interactive>:1:19: error: Not in scope: type variable ‘e’ |
2023-02-24 21:18:55 +0100 | <lambdabot> | Left () |
2023-02-24 21:19:00 +0100 | <geekosaur> | % :t sequence @(Either _) |
2023-02-24 21:19:00 +0100 | <yahb2> | sequence @(Either _) :: Monad m => Either w (m a) -> m (Either w a) |
2023-02-24 21:19:26 +0100 | tlaxkit | (~hexchat@170.253.34.149) (Quit: Saliendo...) |
2023-02-24 21:19:31 +0100 | <ncf> | funny, hoogle can't find [Either a b] -> Either a [b] |
2023-02-24 21:19:38 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection) |
2023-02-24 21:19:45 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 21:19:53 +0100 | <ncf> | guess it doesn't do higher order unification |
2023-02-24 21:19:58 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2023-02-24 21:22:35 +0100 | <ph88> | thank you guys |
2023-02-24 21:25:46 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-02-24 21:26:18 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 21:27:13 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 256 seconds) |
2023-02-24 21:27:59 +0100 | kilolympus | (~kilolympu@213.144.144.24) (Quit: See you later! :)) |
2023-02-24 21:30:17 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 21:34:16 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) |
2023-02-24 21:34:25 +0100 | azure_vermilion | (~azure_ver@82-132-235-76.dab.02.net) (Ping timeout: 260 seconds) |
2023-02-24 21:34:55 +0100 | azure_vermilion | (~azure_ver@82.132.235.123) |
2023-02-24 21:35:09 +0100 | <ph88> | what if i have a (Map k a) and i map to (Map k (Either b c)) will sequence work too ? |
2023-02-24 21:36:27 +0100 | cstml | (~cstml@user/cstml) (Ping timeout: 248 seconds) |
2023-02-24 21:36:44 +0100 | <ph88> | hmm i guess so because it's of instance Traversable |
2023-02-24 21:36:58 +0100 | <mauke> | > sequence (M.fromList [("a", Right 1), ("b", Right 2), ("c", Right 3)]) |
2023-02-24 21:37:00 +0100 | <lambdabot> | Right (fromList [("a",1),("b",2),("c",3)]) |
2023-02-24 21:37:08 +0100 | <mauke> | > sequence (M.fromList [("a", Right 1), ("b", Left ()), ("c", Right 3)]) |
2023-02-24 21:37:10 +0100 | <lambdabot> | Left () |
2023-02-24 21:37:12 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-02-24 21:38:30 +0100 | npm_i_kurbus | (~npm_i_kur@user/kurbus) (Quit: Client closed) |
2023-02-24 21:43:11 +0100 | czy | (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
2023-02-24 21:47:46 +0100 | trev | (~trev@user/trev) (Remote host closed the connection) |
2023-02-24 21:48:18 +0100 | <gurkenglas> | ncf: Monoid indeed doesn't satisfy this, and yes I'm claiming that this (almost) nails Category down. |
2023-02-24 21:53:18 +0100 | <ncf> | i'm still interested in your proof then. afaict category-redefinitions are basically determined by inserting trees of id, and i don't see how this lets you poke at associativity of non-id morphisms |
2023-02-24 21:53:24 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-24 21:58:20 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2023-02-24 22:00:04 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) (Remote host closed the connection) |
2023-02-24 22:00:29 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-02-24 22:03:41 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 22:06:27 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Remote host closed the connection) |
2023-02-24 22:06:49 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) |
2023-02-24 22:10:55 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 248 seconds) |
2023-02-24 22:10:56 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-02-24 22:11:05 +0100 | stackdroid18 | (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!) |
2023-02-24 22:13:48 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 22:17:23 +0100 | pavonia | (~user@user/siracusa) |
2023-02-24 22:17:55 +0100 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 22:17:55 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2023-02-24 22:19:24 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 22:26:03 +0100 | bliminse | (~bliminse@user/bliminse) (Quit: leaving) |
2023-02-24 22:28:31 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) |
2023-02-24 22:29:52 +0100 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2023-02-24 22:30:45 +0100 | mechap | (~mechap@user/mechap) (Ping timeout: 252 seconds) |
2023-02-24 22:32:49 +0100 | mechap | (~mechap@user/mechap) |
2023-02-24 22:35:17 +0100 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 22:37:05 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 22:41:37 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit) |
2023-02-24 22:42:34 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) |
2023-02-24 22:43:00 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 22:45:43 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) (Remote host closed the connection) |
2023-02-24 22:46:24 +0100 | slack1256 | (~slack1256@186.11.53.84) (Ping timeout: 255 seconds) |
2023-02-24 22:48:51 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) |
2023-02-24 22:50:50 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2023-02-24 22:52:17 +0100 | k8yun | (~k8yun@user/k8yun) (Quit: Leaving) |
2023-02-24 22:52:42 +0100 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 255 seconds) |
2023-02-24 22:53:08 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) (Ping timeout: 255 seconds) |
2023-02-24 23:01:41 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) (Remote host closed the connection) |
2023-02-24 23:04:50 +0100 | son0p | (~ff@181.136.122.143) (Ping timeout: 252 seconds) |
2023-02-24 23:04:51 +0100 | thegeekinside | (~thegeekin@189.180.66.126) (Ping timeout: 255 seconds) |
2023-02-24 23:10:25 +0100 | takuan | (~takuan@178.116.218.225) (Remote host closed the connection) |
2023-02-24 23:18:41 +0100 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |
2023-02-24 23:20:20 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) |
2023-02-24 23:30:22 +0100 | <gurkenglas> | ncf: Dict (Category a) is forall s t. Path a s t -> a s t |
2023-02-24 23:31:14 +0100 | <gurkenglas> | ncf: given a path of length 3, you can choose to apply it twice to paths of length two, and those have to agree |
2023-02-24 23:32:00 +0100 | dcoutts_ | (~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 248 seconds) |
2023-02-24 23:32:20 +0100 | <gurkenglas> | s/those/the two ways to apply it twice to paths of length two/ |
2023-02-24 23:35:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-02-24 23:36:54 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-02-24 23:37:22 +0100 | freeside | (~mengwong@103.6.151.67) |
2023-02-24 23:37:55 +0100 | alecs | (~alecs@31.188.156.192) (Quit: WeeChat 3.8) |
2023-02-24 23:41:45 +0100 | freeside | (~mengwong@103.6.151.67) (Ping timeout: 255 seconds) |
2023-02-24 23:45:24 +0100 | man_max | (~man_max@94-43-231-47.dsl.utg.ge) |
2023-02-24 23:45:26 +0100 | <man_max> | I need to download a paper from springer proceeding. Do you have an access to download from springer? |
2023-02-24 23:46:24 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:90d2:49e4:6637:422e) (Remote host closed the connection) |
2023-02-24 23:48:50 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 255 seconds) |
2023-02-24 23:50:10 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-02-24 23:50:42 +0100 | man_max | (~man_max@94-43-231-47.dsl.utg.ge) (Quit: Client closed) |
2023-02-24 23:56:08 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:4560:973b:da2e:e11d) |
2023-02-24 23:56:09 +0100 | n8chan | (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
2023-02-24 23:57:33 +0100 | rhart | (~rhart@user/rhart) |
2023-02-24 23:58:42 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |