2025-05-02 00:01:28 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 00:04:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-02 00:05:34 +0200 | sprotte24 | (~sprotte24@p200300d16f04420079bd62a2defad9dd.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-05-02 00:14:45 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 00:15:04 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 00:15:30 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
2025-05-02 00:19:08 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
2025-05-02 00:19:32 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 00:19:54 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-02 00:22:43 +0200 | euleritian | (~euleritia@77.23.248.47) (Read error: Connection reset by peer) |
2025-05-02 00:23:33 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 00:26:24 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
2025-05-02 00:26:37 +0200 | manwithluck | (~manwithlu@2a09:bac5:5081:2dc::49:f6) (Remote host closed the connection) |
2025-05-02 00:30:34 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 00:30:50 +0200 | manwithluck | (~manwithlu@2a09:bac5:5081:2dc::49:f6) manwithluck |
2025-05-02 00:37:31 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-05-02 00:47:24 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2025-05-02 00:47:48 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 00:47:48 +0200 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2025-05-02 00:48:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 00:49:50 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2025-05-02 00:50:41 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 00:53:30 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 01:01:34 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-02 01:04:22 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 01:08:52 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f767dcf0a605c28f3a7.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2025-05-02 01:09:16 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 01:12:33 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:1c47:7f78:37e8:e2a1) |
2025-05-02 01:14:55 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
2025-05-02 01:16:27 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-05-02 01:20:11 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 01:25:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 01:29:08 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-05-02 01:35:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 01:38:36 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 252 seconds) |
2025-05-02 01:41:22 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-05-02 01:41:35 +0200 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2025-05-02 01:42:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 01:45:53 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 01:47:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-05-02 01:47:26 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-02 01:49:37 +0200 | sajenim | (~sajenim@user/sajenim) sajenim |
2025-05-02 01:50:13 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
2025-05-02 01:50:13 +0200 | ljdarj1 | ljdarj |
2025-05-02 01:56:51 +0200 | tabaqui | (~tabaqui@167.71.80.236) (Ping timeout: 252 seconds) |
2025-05-02 01:57:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 01:58:43 +0200 | sajenim | (~sajenim@user/sajenim) (Quit: WeeChat 4.4.3) |
2025-05-02 01:59:30 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-05-02 02:00:56 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 02:02:45 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-02 02:03:10 +0200 | nitrix | (~nitrix@user/meow/nitrix) (Ping timeout: 252 seconds) |
2025-05-02 02:05:12 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) LainIwakura |
2025-05-02 02:07:11 +0200 | nitrix | (~nitrix@user/meow/nitrix) nitrix |
2025-05-02 02:13:30 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 02:17:37 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-05-02 02:18:09 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-02 02:18:54 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 260 seconds) |
2025-05-02 02:19:18 +0200 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2025-05-02 02:20:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 02:22:57 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-05-02 02:31:34 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 02:36:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-05-02 02:38:12 +0200 | otto_s | (~user@p4ff271c5.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2025-05-02 02:39:29 +0200 | otto_s | (~user@p4ff270d6.dip0.t-ipconnect.de) |
2025-05-02 02:47:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 02:51:55 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-05-02 02:52:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-05-02 02:53:36 +0200 | <sim590> | How much time after you pushed a new package version to hackage does it take usually for cabal update to pick the new version? |
2025-05-02 02:55:38 +0200 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2025-05-02 02:56:33 +0200 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
2025-05-02 02:57:29 +0200 | <sim590> | nvm. it was pretty quick. I guess it might have been my version rule that wasn't right. |
2025-05-02 02:59:11 +0200 | <geekosaur> | all I can say is that it takes several minutes |
2025-05-02 02:59:25 +0200 | <geekosaur> | I thought I had a discussion in my backscroll but I'm not finding it now |
2025-05-02 02:59:43 +0200 | <sim590> | So, I just made a package release with `cabal sdist`, but it didn't include the `cabal.project` file. Which ignores my previous fix. What cabal field should I use to include that file? |
2025-05-02 03:00:23 +0200 | <sim590> | extra-source-files? |
2025-05-02 03:02:03 +0200 | <geekosaur> | /home/allbery/.config/hexchat/logs/irccloud bnc/#hackage.log-Apr 09 03:12:12 <sclv> probably a brief delay, no more than five minutes |
2025-05-02 03:02:43 +0200 | <geekosaur> | cabal.project isn't normally uploaded at all, since hackage doesn't understand projects, only packages |
2025-05-02 03:03:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 03:03:08 +0200 | <geekosaur> | projects are a development thing, not a deployment thing |
2025-05-02 03:03:10 +0200 | <sim590> | But, my package needs to build on other people's computer. And for that it needs the fix for GCC 15. |
2025-05-02 03:04:06 +0200 | <sim590> | I need to have `c2hs-options: -C -std=gnu18` shipped with my package. |
2025-05-02 03:04:37 +0200 | <geekosaur> | then you need to find a way to get that into the cabal file, because a project file, even if you manage to include one, won't be used when building as a transitive dependency |
2025-05-02 03:05:58 +0200 | a_fantom | (~fantom@33be818f.skybroadband.com) |
2025-05-02 03:06:18 +0200 | fantom | (~fantom@2.219.56.221) (Ping timeout: 244 seconds) |
2025-05-02 03:08:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-02 03:09:32 +0200 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 252 seconds) |
2025-05-02 03:11:55 +0200 | <sim590> | hmmmm. I tried many things with the cabal file but it didn't work. :/ Are you 100% sure cabal.project won't be used when compiling as transitive dependency? If the file is there, why would it work differently when it's build as a transitive dependency? |
2025-05-02 03:12:02 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:1c47:7f78:37e8:e2a1) (Ping timeout: 265 seconds) |
2025-05-02 03:13:12 +0200 | <geekosaur> | 100% sure |
2025-05-02 03:13:33 +0200 | <geekosaur> | what's supposed to happen if it's already using `cabal.project`? |
2025-05-02 03:13:53 +0200 | <sim590> | I don't understand the question. |
2025-05-02 03:14:27 +0200 | <geekosaur> | someone's using your package as a dependency in a development tree with a `cabal.project`. what happens? |
2025-05-02 03:15:09 +0200 | <geekosaur> | fwiw I just asked about `c2hs-options` not working in the cabal dev channel; it seems very wrong that it works in a project file but not the cabal file |
2025-05-02 03:15:39 +0200 | <sim590> | OK, thanks for the initiative. |
2025-05-02 03:15:47 +0200 | <geekosaur> | (unfortunately most of the dev team is asleep at this time of their night) |
2025-05-02 03:16:12 +0200 | <sim590> | So for your question, I guess it both files could be nested. The user's file and the dependency's file? |
2025-05-02 03:17:30 +0200 | <geekosaur> | but you need to include a `packages:` entry, which would override the main one and result it the package being installed in its own project's `dist-newstyle` where it won't be found by the main project |
2025-05-02 03:18:26 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) |
2025-05-02 03:18:56 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 03:21:28 +0200 | typedfern_ | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) (Ping timeout: 276 seconds) |
2025-05-02 03:23:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-05-02 03:24:09 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) (Remote host closed the connection) |
2025-05-02 03:25:20 +0200 | <sim590> | Hmmmm. OK. I don't really know why, but I guess I need prerequisites to undestand it. I don't really know how the build system does its thing, so I don't see the logic here, but OK. So I guess, my only chance now, is to have a fix from the cabal team so that c2hs-options be added to a cabal release. |
2025-05-02 03:25:47 +0200 | <geekosaur> | I told you, it's a development thing. You're trying to use it for something else |
2025-05-02 03:26:28 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) typedfern |
2025-05-02 03:34:42 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 03:35:17 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-05-02 03:37:47 +0200 | cyphase | (~cyphase@user/cyphase) cyphase |
2025-05-02 03:40:19 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-05-02 03:40:33 +0200 | <sim590> | I don't know if I'm at the right spot, but I see hsc2hs-options seems to be be part of the list of recognized fields here: https://github.com/haskell/cabal/blob/7e0f040d1147770b57e76b2e51123f01e83ce263/Cabal-syntax/src/Di… |
2025-05-02 03:40:40 +0200 | <sim590> | But c2hs is not there. |
2025-05-02 03:43:34 +0200 | <sim590> | It might be an easy PR for me to make. I could basically mimic pretty much everything that's done for hsc2hs-options, but do it for c2hs-options. |
2025-05-02 03:46:12 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
2025-05-02 03:46:45 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 03:47:47 +0200 | sajenim | (~sajenim@user/sajenim) sajenim |
2025-05-02 03:49:04 +0200 | <geekosaur> | 👍 |
2025-05-02 03:50:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 03:50:38 +0200 | volsand | (~volsand@2804:1b1:1080:da6:192e:6849:5950:90dd) (Quit: volsand) |
2025-05-02 03:51:49 +0200 | <sim590> | Thanks again for the support |
2025-05-02 03:52:17 +0200 | <geekosaur> | what's puzzling me is, if it's not supported there, it shouldn't work in `cabal.project` either |
2025-05-02 03:57:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 03:57:52 +0200 | <sim590> | hmmmm. So, there are references in the code about `c2hs-options`, but they're not in the FieldGrammar module under the PackageDescription dir. I think that explains the difference. |
2025-05-02 03:58:42 +0200 | stef204 | (~stef204@user/stef204) stef204 |
2025-05-02 03:58:52 +0200 | <sim590> | So, actually, the only references I saw seems to be in test files. And they are related to the $HOME/.cabal/config file interpreter I think. |
2025-05-02 03:58:57 +0200 | <geekosaur> | it explains the parsing, but not why it works at all |
2025-05-02 03:59:41 +0200 | <sim590> | Yeah I agree. |
2025-05-02 03:59:43 +0200 | <geekosaur> | did someone put it in the LBI but not then add a field for parsing? |
2025-05-02 04:00:28 +0200 | <geekosaur> | makes me wonder how many other fields might be missing |
2025-05-02 04:01:47 +0200 | <geekosaur> | (sorry, that might not be clear: LocalBuildInfo. the central data structures are abbreviated all over the codebase) |
2025-05-02 04:02:18 +0200 | <geekosaur> | er, LocalBuildInformation |
2025-05-02 04:06:13 +0200 | <sim590> | So, in the whole codebase, the string c2hs-optins only appears in test files. |
2025-05-02 04:06:55 +0200 | <sim590> | Or could it be that c2hs actually reads the `cabal.project` file and parses the options himself? That would not have been cool, but it's just a thought. |
2025-05-02 04:07:21 +0200 | typedfern_ | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) typedfern |
2025-05-02 04:07:37 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) (Ping timeout: 276 seconds) |
2025-05-02 04:08:16 +0200 | <geekosaur> | highly unlikely. most probable to me is that it's simply ignored when parsing a cabal file, but it's in LocalBuildInformation so when the cabal.project parser sees it it can add it there |
2025-05-02 04:08:32 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 04:10:57 +0200 | <geekosaur> | and I will not be surprised to find that various others (probably in the same class: build-tool-depends) are also missing |
2025-05-02 04:10:59 +0200 | <int-e> | AFAICS for config-like files (that includes cabal.project.local?) the field names are computed here: https://github.com/haskell/cabal/blob/master/cabal-install/src/Distribution/Client/ProjectConfig/L… |
2025-05-02 04:12:09 +0200 | werneta | (~werneta@syn-071-083-160-242.res.spectrum.com) werneta |
2025-05-02 04:13:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-02 04:14:00 +0200 | <int-e> | which should eventually trace back to https://github.com/haskell/cabal/blob/master/Cabal/src/Distribution/Simple/Program/Builtin.hs#L67 and since the most obvious thing works when you add a new program there... it's easy to miss that the .cabal file syntax is completely separate |
2025-05-02 04:14:07 +0200 | <sim590> | So may be the `cabal.project` file is agnostic about the program name and it just passes arguments to whatever you tell it to? But inside, `*.cabal`, it's not. |
2025-05-02 04:15:24 +0200 | <geekosaur> | it has to be in the programDb. but cabal files are more specific, yes |
2025-05-02 04:15:25 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds) |
2025-05-02 04:15:49 +0200 | <sim590> | Yeah, that's what I just realized. I couldn't properly phrase it. Thanks. :P |
2025-05-02 04:15:50 +0200 | <geekosaur> | I mentioned earlier that the project file parser is a bit half-assed; here, that's working in your favor 🙂 |
2025-05-02 04:17:04 +0200 | td_ | (~td@i53870904.versanet.de) (Ping timeout: 245 seconds) |
2025-05-02 04:17:38 +0200 | <geekosaur> | (it does still have to be in the progDb or it wouldn't have anywhere to store the option) |
2025-05-02 04:19:12 +0200 | td_ | (~td@i53870923.versanet.de) td_ |
2025-05-02 04:19:16 +0200 | <int-e> | (and progDb is populated from the builtinPrograms list) |
2025-05-02 04:24:19 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 04:25:19 +0200 | stef204 | (~stef204@user/stef204) (Quit: WeeChat 4.2.1) |
2025-05-02 04:29:06 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 04:31:06 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) todi |
2025-05-02 04:35:45 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2025-05-02 04:35:52 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) lambdabot |
2025-05-02 04:35:52 +0200 | ChanServ | +v lambdabot |
2025-05-02 04:39:40 +0200 | todi1 | (~todi@183.96.168.66) |
2025-05-02 04:40:07 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 04:40:28 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-05-02 04:44:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 04:49:09 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 04:52:34 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2025-05-02 04:52:52 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 04:55:54 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 04:56:14 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
2025-05-02 05:00:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-02 05:01:03 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2025-05-02 05:01:14 +0200 | stef204 | (~stef204@user/stef204) stef204 |
2025-05-02 05:02:04 +0200 | stef204 | (~stef204@user/stef204) (Client Quit) |
2025-05-02 05:02:19 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 05:06:39 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Quit: Client closed) |
2025-05-02 05:06:56 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) |
2025-05-02 05:20:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 05:26:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-02 05:36:34 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 05:43:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-05-02 05:48:48 +0200 | nacation | (~m-3l4s76@user/nacation) (Remote host closed the connection) |
2025-05-02 05:49:29 +0200 | nacation | (~m-3l4s76@user/nacation) nacation |
2025-05-02 05:54:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 05:58:07 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
2025-05-02 05:59:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 06:07:48 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-02 06:10:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 06:10:44 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 06:11:13 +0200 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2025-05-02 06:14:00 +0200 | gorignak | (~gorignak@user/gorignak) gorignak |
2025-05-02 06:15:26 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 06:22:05 +0200 | michalz | (~michalz@185.246.207.203) |
2025-05-02 06:26:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 06:31:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 06:39:59 +0200 | takuan | (~takuan@d8D86B601.access.telenet.be) |
2025-05-02 06:41:58 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 06:47:14 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-02 06:52:33 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
2025-05-02 06:56:22 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 06:57:45 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 06:58:46 +0200 | dontdieych2 | (~quassel@user/dontdieych2) dontdieych2 |
2025-05-02 07:00:28 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-05-02 07:02:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 07:03:10 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2025-05-02 07:05:44 +0200 | euleritian | (~euleritia@dynamic-176-006-131-036.176.6.pool.telefonica.de) |
2025-05-02 07:06:00 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 07:08:22 +0200 | euleritian | (~euleritia@dynamic-176-006-131-036.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 07:08:42 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 07:10:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 07:11:27 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2025-05-02 07:12:10 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 07:12:16 +0200 | __jmcantrell__ | (~weechat@user/jmcantrell) (Quit: WeeChat 4.6.2) |
2025-05-02 07:15:38 +0200 | Square3 | (~Square@user/square) (Ping timeout: 265 seconds) |
2025-05-02 07:16:05 +0200 | dontdieych2 | (~quassel@user/dontdieych2) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2025-05-02 07:21:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 07:25:42 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) (Ping timeout: 240 seconds) |
2025-05-02 07:26:18 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2025-05-02 07:28:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 07:30:08 +0200 | euleritian | (~euleritia@dynamic-176-006-131-036.176.6.pool.telefonica.de) |
2025-05-02 07:34:48 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-05-02 07:39:01 +0200 | noctux | (~noctux@user/noctux) (Ping timeout: 248 seconds) |
2025-05-02 07:39:15 +0200 | noctux | (~noctux@user/noctux) noctux |
2025-05-02 07:39:50 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 07:40:07 +0200 | Natch | (~natch@c-92-34-7-158.bbcust.telenor.se) (Ping timeout: 252 seconds) |
2025-05-02 07:41:13 +0200 | m1dnight | (~m1dnight@d8D861908.access.telenet.be) (Ping timeout: 252 seconds) |
2025-05-02 07:42:19 +0200 | disconnect3d | (~disconnec@user/disconnect3d) (Ping timeout: 252 seconds) |
2025-05-02 07:42:27 +0200 | disconnect3d | (~disconnec@user/disconnect3d) disconnect3d |
2025-05-02 07:43:09 +0200 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 272 seconds) |
2025-05-02 07:43:11 +0200 | Natch | (~natch@c-92-34-7-158.bbcust.telenor.se) |
2025-05-02 07:43:32 +0200 | mrmr | (~mrmr@user/mrmr) mrmr |
2025-05-02 07:44:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-02 07:47:52 +0200 | haritz | (~hrtz@user/haritz) (Remote host closed the connection) |
2025-05-02 07:55:38 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 08:00:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-05-02 08:07:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 08:08:49 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) LainIwakura |
2025-05-02 08:11:39 +0200 | todi1 | (~todi@183.96.168.66) (Ping timeout: 272 seconds) |
2025-05-02 08:12:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-02 08:12:14 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) todi |
2025-05-02 08:22:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 08:22:54 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) (Ping timeout: 240 seconds) |
2025-05-02 08:24:21 +0200 | iteratee_ | (~kyle@199.119.84.78) (Ping timeout: 268 seconds) |
2025-05-02 08:26:24 +0200 | iteratee | (~kyle@199.119.84.78) |
2025-05-02 08:28:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-05-02 08:29:33 +0200 | biberu | (~biberu@user/biberu) biberu |
2025-05-02 08:30:46 +0200 | iteratee | (~kyle@199.119.84.78) (Ping timeout: 244 seconds) |
2025-05-02 08:34:55 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-05-02 08:38:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 08:38:48 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) LainIwakura |
2025-05-02 08:43:56 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-05-02 08:44:05 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) (Quit: Client closed) |
2025-05-02 08:46:27 +0200 | iteratee | (~kyle@199.119.84.78) iteratee |
2025-05-02 08:49:49 +0200 | michalz_ | (~michalz@185.246.207.197) |
2025-05-02 08:50:50 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 08:51:16 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2025-05-02 08:51:18 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9799b2fc54a11dfedb.dip0.t-ipconnect.de) |
2025-05-02 08:51:38 +0200 | michalz | (~michalz@185.246.207.203) (Ping timeout: 252 seconds) |
2025-05-02 08:53:08 +0200 | Katarushisu2 | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu |
2025-05-02 08:54:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 08:54:56 +0200 | adamCS | (~adamCS@70.19.85.77) (Ping timeout: 252 seconds) |
2025-05-02 08:54:56 +0200 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 252 seconds) |
2025-05-02 08:54:56 +0200 | Katarushisu2 | Katarushisu |
2025-05-02 08:55:44 +0200 | euleritian | (~euleritia@dynamic-176-006-131-036.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 08:56:03 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 08:58:03 +0200 | adamCS | (~adamCS@70.19.85.77) adamCS |
2025-05-02 08:58:12 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-05-02 08:59:15 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-02 09:00:02 +0200 | caconym7 | (~caconym@user/caconym) (Quit: bye) |
2025-05-02 09:00:34 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-05-02 09:00:44 +0200 | caconym7 | (~caconym@user/caconym) caconym |
2025-05-02 09:05:03 +0200 | fp | (~Thunderbi@2001:708:20:1406::10c5) fp |
2025-05-02 09:05:09 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-02 09:06:06 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-05-02 09:06:29 +0200 | nacation | (~m-3l4s76@user/nacation) (Read error: Connection reset by peer) |
2025-05-02 09:08:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 09:08:14 +0200 | nacation | (~m-3l4s76@user/nacation) nacation |
2025-05-02 09:14:00 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Quit: Client closed) |
2025-05-02 09:14:14 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) |
2025-05-02 09:14:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 09:18:51 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) |
2025-05-02 09:20:27 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 268 seconds) |
2025-05-02 09:20:50 +0200 | nadja | (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 260 seconds) |
2025-05-02 09:20:50 +0200 | hsw | (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) (Ping timeout: 260 seconds) |
2025-05-02 09:20:56 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 09:21:55 +0200 | hsw | (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) hsw |
2025-05-02 09:23:45 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2025-05-02 09:24:57 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-05-02 09:26:06 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 09:26:42 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) (Ping timeout: 248 seconds) |
2025-05-02 09:27:50 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2025-05-02 09:30:23 +0200 | nadja | (~dequbed@banana-new.kilobyte22.de) dequbed |
2025-05-02 09:30:55 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-02 09:34:53 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-05-02 09:41:50 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 09:46:43 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-02 09:52:35 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-02 09:53:36 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 272 seconds) |
2025-05-02 09:54:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 09:58:37 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) (Ping timeout: 276 seconds) |
2025-05-02 09:59:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-02 10:09:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 10:13:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-02 10:14:30 +0200 | xff0x | (~xff0x@2405:6580:b080:900:70da:5e:441c:b741) |
2025-05-02 10:15:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-02 10:16:10 +0200 | nacation | (~m-3l4s76@user/nacation) (Ping timeout: 276 seconds) |
2025-05-02 10:17:42 +0200 | pabs3 | (~pabs3@user/pabs3) (Read error: Connection reset by peer) |
2025-05-02 10:18:36 +0200 | pabs3 | (~pabs3@user/pabs3) pabs3 |
2025-05-02 10:18:48 +0200 | nacation | (~m-3l4s76@user/nacation) nacation |
2025-05-02 10:19:52 +0200 | nacation | (~m-3l4s76@user/nacation) (Remote host closed the connection) |
2025-05-02 10:22:54 +0200 | nacation | (~m-3l4s76@user/nacation) nacation |
2025-05-02 10:27:20 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-05-02 10:29:58 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-02 10:35:21 +0200 | chele | (~chele@user/chele) chele |
2025-05-02 10:36:51 +0200 | fp | (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 252 seconds) |
2025-05-02 10:41:59 +0200 | xff0x | (~xff0x@2405:6580:b080:900:70da:5e:441c:b741) (Ping timeout: 252 seconds) |
2025-05-02 10:43:44 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp |
2025-05-02 10:44:31 +0200 | m1dnight | (~m1dnight@d8D861908.access.telenet.be) m1dnight |
2025-05-02 10:45:33 +0200 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
2025-05-02 10:48:42 +0200 | poscat | (~poscat@user/poscat) poscat |
2025-05-02 10:49:37 +0200 | xff0x | (~xff0x@2405:6580:b080:900:70da:5e:441c:b741) |
2025-05-02 10:53:15 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2025-05-02 10:56:33 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-02 10:57:55 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-05-02 10:58:36 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-05-02 11:00:19 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2025-05-02 11:02:35 +0200 | m1dnight_ | (~m1dnight@d8D861908.access.telenet.be) m1dnight |
2025-05-02 11:03:19 +0200 | m1dnight | (~m1dnight@d8D861908.access.telenet.be) (Ping timeout: 260 seconds) |
2025-05-02 11:03:46 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-02 11:08:54 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2025-05-02 11:09:14 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) |
2025-05-02 11:09:35 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 11:10:11 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 11:16:05 +0200 | nacation | (~m-3l4s76@user/nacation) (Remote host closed the connection) |
2025-05-02 11:19:02 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2025-05-02 11:20:08 +0200 | nacation | (~m-3l4s76@user/nacation) nacation |
2025-05-02 11:21:46 +0200 | dhil | (~dhil@openvpn-125-1069.inf.ed.ac.uk) dhil |
2025-05-02 11:21:48 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) |
2025-05-02 11:25:20 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-05-02 11:25:37 +0200 | nadja | (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 244 seconds) |
2025-05-02 11:25:53 +0200 | JuanDaugherty | ColinRobinson |
2025-05-02 11:27:33 +0200 | nadja | (~dequbed@banana-new.kilobyte22.de) dequbed |
2025-05-02 11:28:58 +0200 | xff0x | (~xff0x@2405:6580:b080:900:70da:5e:441c:b741) (Ping timeout: 276 seconds) |
2025-05-02 11:29:24 +0200 | xff0x | (~xff0x@2405:6580:b080:900:eadd:b346:77f9:cfbc) |
2025-05-02 11:33:15 +0200 | nadja | (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 265 seconds) |
2025-05-02 11:36:19 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) |
2025-05-02 11:37:02 +0200 | nadja | (~dequbed@banana-new.kilobyte22.de) dequbed |
2025-05-02 11:46:45 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2025-05-02 11:46:57 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 11:47:25 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) |
2025-05-02 11:48:01 +0200 | xff0x | (~xff0x@2405:6580:b080:900:eadd:b346:77f9:cfbc) (Quit: xff0x) |
2025-05-02 11:50:32 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-02 11:51:15 +0200 | xff0x | (~xff0x@2405:6580:b080:900:7099:7f52:1441:1e43) |
2025-05-02 11:51:36 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 11:51:54 +0200 | euleritian | (~euleritia@77.23.248.47) |
2025-05-02 11:51:58 +0200 | hellwolf | just realized that I need Cont, after getting cute and trying to come up some clever jigsaw mechanism. |
2025-05-02 11:52:43 +0200 | <hellwolf> | Cont is both easy and hard to understand at the same time. I remember geek o saur said something about that too |
2025-05-02 11:55:02 +0200 | <merijn> | @quote didn't.you.write |
2025-05-02 11:55:02 +0200 | <lambdabot> | dobblego says: <dobblego> Cale, didn't you write one? :) <Cale> dobblego: two actually, and a half. |
2025-05-02 11:55:05 +0200 | <merijn> | aww |
2025-05-02 11:55:07 +0200 | <merijn> | wrong quote |
2025-05-02 11:55:13 +0200 | <merijn> | @quote stares.at |
2025-05-02 11:55:14 +0200 | <lambdabot> | autrijus says: * autrijus stares at type Eval x = forall r. ContT r (ReaderT x IO) (ReaderT x IO x) and feels very lost <shapr> Didn't you write that code? <autrijus> yeah. and it works <autrijus> I |
2025-05-02 11:55:14 +0200 | <lambdabot> | just don't know what it means. |
2025-05-02 11:55:18 +0200 | <merijn> | That one :) |
2025-05-02 11:55:55 +0200 | hellwolf | feeling every day I am just discovering new programs; I have not created much new things. |
2025-05-02 11:58:32 +0200 | <hellwolf> | @quote cute |
2025-05-02 11:58:32 +0200 | <lambdabot> | Jafet says: In Soviet Russia, State executes you |
2025-05-02 11:59:27 +0200 | <hellwolf> | @quote SovietT |
2025-05-02 11:59:27 +0200 | <lambdabot> | No quotes match. And you call yourself a Rocket Scientist! |
2025-05-02 11:59:51 +0200 | euleritian | (~euleritia@77.23.248.47) (Read error: Connection reset by peer) |
2025-05-02 11:59:59 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) |
2025-05-02 12:00:08 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2025-05-02 12:00:21 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 12:00:36 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2025-05-02 12:00:38 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 12:00:56 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-05-02 12:03:15 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) |
2025-05-02 12:09:08 +0200 | <haskellbridge> | <hellwolf> Thanks haskellbridge, leaking my location. |
2025-05-02 12:09:08 +0200 | <haskellbridge> | <hellwolf> again |
2025-05-02 12:09:19 +0200 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 244 seconds) |
2025-05-02 12:14:44 +0200 | zmt00 | (~zmt00@user/zmt00) zmt00 |
2025-05-02 12:14:59 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 12:15:03 +0200 | zmt00 | (~zmt00@user/zmt00) (Remote host closed the connection) |
2025-05-02 12:15:28 +0200 | zmt00 | (~zmt00@user/zmt00) zmt00 |
2025-05-02 12:15:52 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
2025-05-02 12:16:33 +0200 | malte | (~malte@mal.tc) (Ping timeout: 244 seconds) |
2025-05-02 12:29:33 +0200 | malte | (~malte@mal.tc) malte |
2025-05-02 12:32:22 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Ping timeout: 252 seconds) |
2025-05-02 12:35:06 +0200 | alecs | (~alecs@61.pool85-58-154.dynamic.orange.es) alecs |
2025-05-02 12:36:46 +0200 | poscat0x04 | (~poscat@user/poscat) poscat |
2025-05-02 12:37:13 +0200 | poscat | (~poscat@user/poscat) (Ping timeout: 244 seconds) |
2025-05-02 12:37:51 +0200 | ColinRobinson | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-05-02 12:39:10 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9799b2fc54a11dfedb.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2025-05-02 12:39:34 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9778386121231aa5f9.dip0.t-ipconnect.de) |
2025-05-02 12:44:42 +0200 | connrs | (~connrs@conners.plus.com) (Read error: Connection reset by peer) |
2025-05-02 12:45:11 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2025-05-02 12:45:52 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 12:49:03 +0200 | connrs | (~connrs@user/connrs) connrs |
2025-05-02 12:51:05 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
2025-05-02 12:51:23 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-02 12:52:42 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-02 12:53:16 +0200 | zmt01 | (~zmt00@user/zmt00) zmt00 |
2025-05-02 12:54:07 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 276 seconds) |
2025-05-02 12:55:39 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 12:56:19 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-02 12:59:23 +0200 | zmt00 | (~zmt00@user/zmt00) zmt00 |
2025-05-02 13:00:18 +0200 | swamp_ | (~zmt00@user/zmt00) zmt00 |
2025-05-02 13:01:35 +0200 | alecs | (~alecs@61.pool85-58-154.dynamic.orange.es) (Quit: Client closed) |
2025-05-02 13:01:42 +0200 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 272 seconds) |
2025-05-02 13:01:59 +0200 | haritz | (~hrtz@2a01:4b00:bc2e:7000::2) |
2025-05-02 13:01:59 +0200 | haritz | (~hrtz@2a01:4b00:bc2e:7000::2) (Changing host) |
2025-05-02 13:01:59 +0200 | haritz | (~hrtz@user/haritz) haritz |
2025-05-02 13:02:07 +0200 | zmt01 | (~zmt00@user/zmt00) zmt00 |
2025-05-02 13:02:19 +0200 | jespada | (~jespada@r179-25-202-180.dialup.adsl.anteldata.net.uy) jespada |
2025-05-02 13:03:32 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 252 seconds) |
2025-05-02 13:04:38 +0200 | swamp_ | (~zmt00@user/zmt00) (Ping timeout: 252 seconds) |
2025-05-02 13:06:52 +0200 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |
2025-05-02 13:09:02 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Quit: Client closed) |
2025-05-02 13:09:20 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) |
2025-05-02 13:17:03 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 13:31:28 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
2025-05-02 13:31:45 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-02 13:51:04 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-02 13:59:33 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-02 14:02:59 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2025-05-02 14:02:59 +0200 | ljdarj1 | ljdarj |
2025-05-02 14:15:11 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9778386121231aa5f9.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2025-05-02 14:18:42 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
2025-05-02 14:20:39 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 14:21:22 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9778386121231aa5f9.dip0.t-ipconnect.de) |
2025-05-02 14:24:46 +0200 | la1n23 | (~la1n@176.59.57.19) (Read error: Connection reset by peer) |
2025-05-02 14:28:17 +0200 | la1n | (~la1n@176.59.162.120) |
2025-05-02 14:28:40 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-05-02 14:32:09 +0200 | volsand | (~volsand@2804:1b1:1080:da6:b270:c4db:8a27:6d61) |
2025-05-02 14:33:10 +0200 | jespada | (~jespada@r179-25-202-180.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-05-02 14:35:05 +0200 | jespada | (~jespada@r179-25-202-180.dialup.adsl.anteldata.net.uy) jespada |
2025-05-02 14:44:22 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2025-05-02 14:45:31 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) |
2025-05-02 14:48:19 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Quit: fp) |
2025-05-02 14:48:23 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) (Remote host closed the connection) |
2025-05-02 14:49:13 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) |
2025-05-02 14:49:49 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-05-02 14:50:04 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Client Quit) |
2025-05-02 14:51:46 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-05-02 14:56:24 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Remote host closed the connection) |
2025-05-02 14:57:21 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-05-02 15:02:49 +0200 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 276 seconds) |
2025-05-02 15:05:25 +0200 | dhil | (~dhil@openvpn-125-1069.inf.ed.ac.uk) (Ping timeout: 276 seconds) |
2025-05-02 15:09:18 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2025-05-02 15:09:31 +0200 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) gabriel_sevecek |
2025-05-02 15:16:16 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-05-02 15:17:32 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Quit: Client closed) |
2025-05-02 15:17:46 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 276 seconds) |
2025-05-02 15:17:49 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) |
2025-05-02 15:18:11 +0200 | dhil | (~dhil@5.151.29.138) dhil |
2025-05-02 15:32:25 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Quit: fp) |
2025-05-02 15:41:13 +0200 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2025-05-02 15:41:35 +0200 | gorignak | (~gorignak@user/gorignak) gorignak |
2025-05-02 15:44:23 +0200 | la1n | (~la1n@176.59.162.120) (Read error: Connection reset by peer) |
2025-05-02 15:44:34 +0200 | la1n | (~la1n@176.59.162.120) |
2025-05-02 15:46:15 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9778386121231aa5f9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-05-02 15:49:45 +0200 | Square3 | (~Square@user/square) Square |
2025-05-02 15:50:41 +0200 | michalz_ | (~michalz@185.246.207.197) (Remote host closed the connection) |
2025-05-02 15:51:33 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9778386121231aa5f9.dip0.t-ipconnect.de) |
2025-05-02 15:54:41 +0200 | xdej | (~xdej@quatramaran.salle-s.org) (Remote host closed the connection) |
2025-05-02 15:58:35 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2025-05-02 15:59:08 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2025-05-02 16:03:45 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) |
2025-05-02 16:07:44 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Quit: Client closed) |
2025-05-02 16:08:03 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) |
2025-05-02 16:13:02 +0200 | xdej | (~xdej@quatramaran.salle-s.org) xdej |
2025-05-02 16:18:36 +0200 | dhil | (~dhil@5.151.29.138) (Ping timeout: 252 seconds) |
2025-05-02 16:31:03 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-05-02 16:31:52 +0200 | michalz | (~michalz@185.246.207.200) |
2025-05-02 16:40:53 +0200 | euleritian | (~euleritia@dynamic-176-006-138-168.176.6.pool.telefonica.de) (Ping timeout: 248 seconds) |
2025-05-02 16:40:55 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-05-02 16:42:24 +0200 | mrmr8 | (~mrmr@user/mrmr) mrmr |
2025-05-02 16:43:09 +0200 | michalz | (~michalz@185.246.207.200) (Remote host closed the connection) |
2025-05-02 16:43:50 +0200 | euleritian | (~euleritia@dynamic-176-006-129-211.176.6.pool.telefonica.de) |
2025-05-02 16:43:51 +0200 | mrmr | (~mrmr@user/mrmr) (Ping timeout: 268 seconds) |
2025-05-02 16:43:51 +0200 | mrmr8 | mrmr |
2025-05-02 16:57:06 +0200 | euleritian | (~euleritia@dynamic-176-006-129-211.176.6.pool.telefonica.de) (Ping timeout: 252 seconds) |
2025-05-02 16:57:21 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-02 16:58:47 +0200 | euleritian | (~euleritia@dynamic-176-000-197-165.176.0.pool.telefonica.de) |
2025-05-02 17:01:52 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2025-05-02 17:16:11 +0200 | crns | (~crns@user/crns) crns |
2025-05-02 17:18:27 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2025-05-02 17:23:32 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-05-02 17:28:35 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 17:41:50 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-05-02 17:44:55 +0200 | crns | (~crns@user/crns) (Read error: Connection reset by peer) |
2025-05-02 17:45:06 +0200 | crns | (~crns@user/crns) crns |
2025-05-02 17:51:03 +0200 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 244 seconds) |
2025-05-02 17:53:49 +0200 | m5zs7k | (aquares@web10.mydevil.net) m5zs7k |
2025-05-02 17:55:27 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-02 17:57:01 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-05-02 17:57:01 +0200 | ljdarj1 | ljdarj |
2025-05-02 17:58:19 +0200 | typedfern_ | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) (Ping timeout: 276 seconds) |
2025-05-02 17:58:36 +0200 | JuanDaugherty | ColinRobinaon |
2025-05-02 17:59:55 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) |
2025-05-02 18:00:00 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f9778386121231aa5f9.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2025-05-02 18:01:24 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 18:01:53 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) |
2025-05-02 18:10:29 +0200 | alt-crns | (~crns@185.238.219.102) |
2025-05-02 18:10:29 +0200 | crns | (~crns@user/crns) (Read error: Connection reset by peer) |
2025-05-02 18:20:37 +0200 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2025-05-02 18:24:31 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Quit: leaving) |
2025-05-02 18:26:45 +0200 | tolgo | (~Thunderbi@199.115.144.130) |
2025-05-02 18:31:17 +0200 | lol_ | (~lol@2603:3016:1e01:b960:3123:2ba5:494b:dfbe) (Read error: Connection reset by peer) |
2025-05-02 18:37:08 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2025-05-02 18:52:19 +0200 | swamp_ | (~zmt00@user/zmt00) zmt00 |
2025-05-02 18:52:38 +0200 | Sgeo_ | (~Sgeo@user/sgeo) Sgeo |
2025-05-02 18:53:52 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-05-02 18:55:32 +0200 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 252 seconds) |
2025-05-02 18:55:32 +0200 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 252 seconds) |
2025-05-02 18:57:43 +0200 | euleritian | (~euleritia@dynamic-176-000-197-165.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 18:58:02 +0200 | euleritian | (~euleritia@77.23.248.47) |
2025-05-02 18:59:29 +0200 | sajenim | (~sajenim@user/sajenim) (Ping timeout: 248 seconds) |
2025-05-02 18:59:30 +0200 | alt-crns | (~crns@185.238.219.102) (Read error: Connection reset by peer) |
2025-05-02 18:59:45 +0200 | crns | (~crns@user/crns) crns |
2025-05-02 19:04:10 +0200 | alt-crns | (~crns@dynamic-176-000-052-024.176.0.pool.telefonica.de) |
2025-05-02 19:06:54 +0200 | crns | (~crns@user/crns) (Ping timeout: 252 seconds) |
2025-05-02 19:07:29 +0200 | euleritian | (~euleritia@77.23.248.47) (Ping timeout: 260 seconds) |
2025-05-02 19:08:13 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 19:09:55 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2025-05-02 19:11:08 +0200 | __jmcantrell__ | (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
2025-05-02 19:11:12 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds) |
2025-05-02 19:16:10 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2025-05-02 19:18:35 +0200 | ColinRobinaon | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-05-02 19:18:50 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-05-02 19:22:40 +0200 | tolgo | (~Thunderbi@199.115.144.130) (Ping timeout: 252 seconds) |
2025-05-02 19:24:40 +0200 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
2025-05-02 19:28:01 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2025-05-02 19:28:12 +0200 | euleritian | (~euleritia@dynamic-176-000-197-165.176.0.pool.telefonica.de) |
2025-05-02 19:30:56 +0200 | <haskellbridge> | <sm> tcard do you have https://web.cs.dal.ca/~nzeh/Teaching/3137/haskell/ in your books list ? I don't think so |
2025-05-02 19:32:54 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-02 19:35:11 +0200 | tolgo | (~Thunderbi@199.115.144.130) |
2025-05-02 19:36:33 +0200 | pavonia | (~user@user/siracusa) siracusa |
2025-05-02 19:37:19 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-05-02 19:39:33 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) todi |
2025-05-02 19:44:59 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2025-05-02 19:44:59 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) |
2025-05-02 19:45:02 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2025-05-02 19:47:49 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) hackager |
2025-05-02 19:47:49 +0200 | ChanServ | +v haskellbridge |
2025-05-02 19:49:04 +0200 | euleritian | (~euleritia@dynamic-176-000-197-165.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 19:49:22 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-05-02 19:51:37 +0200 | alt-crns | (~crns@dynamic-176-000-052-024.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-02 19:52:00 +0200 | crns | (~crns@user/crns) crns |
2025-05-02 19:55:08 +0200 | <yin> | ok, time to learn parser combinators |
2025-05-02 19:55:09 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f97b8ab1cde68040873.dip0.t-ipconnect.de) acidjnk |
2025-05-02 19:57:34 +0200 | <yin> | should i start with parsec, megaparsec, attoparsec... ? |
2025-05-02 19:59:40 +0200 | <haskellbridge> | <hellwolf> Text.ParserCombinators.Read |
2025-05-02 19:59:40 +0200 | <haskellbridge> | from base to ease in? |
2025-05-02 19:59:54 +0200 | <haskellbridge> | <hellwolf> *ReadP |
2025-05-02 20:00:14 +0200 | nurupo | (~nurupo.ga@user/nurupo) (Quit: nurupo.ga) |
2025-05-02 20:00:31 +0200 | nurupo | (~nurupo.ga@user/nurupo) nurupo |
2025-05-02 20:01:20 +0200 | <monochrom> | Depending on what "learn" means, there is also: start with writing your own. |
2025-05-02 20:01:58 +0200 | <yin> | monochrom: i understand the theory pretty well. what i mean by learn is "learn how to use the libraries" |
2025-05-02 20:01:58 +0200 | <haskellbridge> | <Liamzee> why is it that programming languages don't const their objects? |
2025-05-02 20:02:19 +0200 | <haskellbridge> | <Liamzee> learn flatparse-applicative ;) |
2025-05-02 20:02:25 +0200 | <haskellbridge> | <Liamzee> erm, flatparse |
2025-05-02 20:02:44 +0200 | <monochrom> | Then start with what you will finally use. :) |
2025-05-02 20:02:47 +0200 | <haskellbridge> | <Liamzee> i'm confusing it with optparse-applicative |
2025-05-02 20:02:50 +0200 | <haskellbridge> | <Liamzee> https://hackage.haskell.org/package/flatparse-0.5.2.1 |
2025-05-02 20:03:02 +0200 | <yin> | what's the most performant library and what are its main downsides? |
2025-05-02 20:03:08 +0200 | <haskellbridge> | <Liamzee> https://gist.github.com/chrisdone/8551675bb99a0d66cf075fdcb1e6b757 |
2025-05-02 20:03:26 +0200 | <yin> | monochrom: that's the problem. i don't know what the options are |
2025-05-02 20:03:53 +0200 | <yin> | that's what i'm trying to learn |
2025-05-02 20:04:15 +0200 | <monochrom> | But if you don't have a choice yet and don't mind following popularity, megaparsec is more popular generally, attoparsec is more popular for those who want speed, and parsec or ReadP is more popular among the minority of us who just want what comes with GHC. |
2025-05-02 20:04:28 +0200 | <haskellbridge> | <Liamzee> I don't think flatparse backtracks? Not sure about it. |
2025-05-02 20:04:28 +0200 | <yin> | Liamzee: ty |
2025-05-02 20:04:48 +0200 | <haskellbridge> | <Liamzee> oh, it backtracks |
2025-05-02 20:04:52 +0200 | <haskellbridge> | <Liamzee> but it's bytestring specialized |
2025-05-02 20:05:11 +0200 | <yin> | that's not a bad thing :) |
2025-05-02 20:05:16 +0200 | <haskellbridge> | <Liamzee> someone ghosted me once for saying attoparsec can be treated as a default when they responded megaparsec is text parser, attoparsec is a bytestring parser |
2025-05-02 20:05:51 +0200 | <haskellbridge> | <Liamzee> also, you can read about the downsides in the readme |
2025-05-02 20:05:55 +0200 | <haskellbridge> | <Liamzee> but faster than nom!!111 |
2025-05-02 20:06:23 +0200 | <monochrom> | Most don't backtrack unless you tell it to. ReadP does BFS altogether so it "doesn't" backtrack but it sidetracks. |
2025-05-02 20:07:03 +0200 | <monochrom> | So for example even in parsec if you don't say "try" it doesn't backtrack. |
2025-05-02 20:07:34 +0200 | <haskellbridge> | <Liamzee> i'm just curious, though, why don't you have non-mutable objects by default? |
2025-05-02 20:07:43 +0200 | <haskellbridge> | <Liamzee> even Haskell's records are (spiritually) mutable |
2025-05-02 20:08:17 +0200 | <monochrom> | And if you say "try" but it is some "try p" where p just consumes O(1) characters, you effectively stay within LL(k). |
2025-05-02 20:08:30 +0200 | <haskellbridge> | <Liamzee> i mean, i feel like screw this, even though it's not a solution, but ConstRef |
2025-05-02 20:08:47 +0200 | <haskellbridge> | <Liamzee> IORef except read-only, no exposed constructors, interface only allows you to set an object |
2025-05-02 20:09:28 +0200 | <haskellbridge> | <Liamzee> maybe this? https://hackage.haskell.org/package/const |
2025-05-02 20:09:34 +0200 | <EvanR> | supposedly you can change the token type in megaparsec so it's not just text |
2025-05-02 20:09:35 +0200 | <monochrom> | I have immutable objects by default. |
2025-05-02 20:10:02 +0200 | <EvanR> | why stop there, make the database immutable by default |
2025-05-02 20:10:14 +0200 | <EvanR> | pass whole databases around |
2025-05-02 20:10:42 +0200 | <monochrom> | Even when I have two concurrent threads accessing the same BST, I have an immutable BST, the sharing is done by an IORef and atomicModifyIORef. |
2025-05-02 20:11:08 +0200 | <dminuoso> | 18:04:52 +haskellbridge │ <Liamzee> but it's bytestring specialized |
2025-05-02 20:11:14 +0200 | <monochrom> | Completely sidesteps all the desire for lock-free data structures. Who needs those? |
2025-05-02 20:11:31 +0200 | <haskellbridge> | <Liamzee> EvanR: Transaction a in the hasql ecosystem is a thing |
2025-05-02 20:11:34 +0200 | <dminuoso> | Note that being "bytestring specialized" is not as restrictive as it might sound. |
2025-05-02 20:11:51 +0200 | <dminuoso> | flatparse comes with unicode combinators, so you can consume say UTF8 encoded strings easily too |
2025-05-02 20:11:56 +0200 | <EvanR> | transaction != immutable database |
2025-05-02 20:13:15 +0200 | <haskellbridge> | <Liamzee> you can model a database as a transaction |
2025-05-02 20:13:23 +0200 | <haskellbridge> | <Morj> Huh, never heard about flatparse, looks cool with the speed. I already try to write non-backtracking attoparsec, so should be a good replacement |
2025-05-02 20:13:26 +0200 | <dminuoso> | Personally I would recommend flatparse over megaparsec or attoparsec both because it has nom-style error/failure disambiguation, and internally it is simple and has very customizable errors this way |
2025-05-02 20:13:41 +0200 | <dminuoso> | The one thing it cant do out of th ebox easily is streaming, however. |
2025-05-02 20:14:12 +0200 | <haskellbridge> | <Morj> Ah mince |
2025-05-02 20:14:38 +0200 | <dminuoso> | Also whats really nice about flatparse is that you can interleave it with IO or ST |
2025-05-02 20:14:54 +0200 | <dminuoso> | attoparsec cant, and with megaparsec its very painful. |
2025-05-02 20:15:29 +0200 | <EvanR> | nom-style? |
2025-05-02 20:16:23 +0200 | <dminuoso> | EvanR: unrecoverable failure and recoverable errors. |
2025-05-02 20:16:34 +0200 | <dminuoso> | (And some machinery to convert between one and another) |
2025-05-02 20:17:10 +0200 | <dminuoso> | The idea is that failure represent exceptions, and `error` represents some "backtrack" path in the parser tree. |
2025-05-02 20:17:32 +0200 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2025-05-02 20:18:14 +0200 | <dminuoso> | So one of the most common primitives you end up using is |
2025-05-02 20:18:20 +0200 | <dminuoso> | cutting :: ParserT st e a -> e -> (e -> e -> e) -> ParserT st e a |
2025-05-02 20:19:26 +0200 | <EvanR> | -ing form of a verb means anything in particular here? |
2025-05-02 20:19:32 +0200 | <dminuoso> | Which essentially does "run the parser, propagate failure as an error e, or merge errors" |
2025-05-02 20:20:03 +0200 | <dminuoso> | There is also |
2025-05-02 20:20:07 +0200 | <dminuoso> | cut :: ParserT st e a -> e -> ParserT st e a |
2025-05-02 20:20:23 +0200 | <dminuoso> | And you can think of `cut` as similar to say prolog |
2025-05-02 20:20:27 +0200 | <EvanR> | but what is "nom" |
2025-05-02 20:20:34 +0200 | <dminuoso> | nom is a rust library for parsing |
2025-05-02 20:20:37 +0200 | <EvanR> | oh |
2025-05-02 20:21:44 +0200 | <dminuoso> | The really cool thing here is that error merge function in cutting. |
2025-05-02 20:21:53 +0200 | <dminuoso> | Which allows you to build up context when errors occur. |
2025-05-02 20:22:39 +0200 | <dminuoso> | For very rich error reporting, explaining the context (say to report surrounding text, or what it is you were trying to parse, or why you were trying to parse it in the first place) |
2025-05-02 20:22:57 +0200 | <dminuoso> | You can literally build up error context level by level this way. |
2025-05-02 20:23:13 +0200 | todi | (~todi@183.96.168.66) todi |
2025-05-02 20:23:18 +0200 | <dminuoso> | In any way you want by just supplying your own function `e -> e -> e` |
2025-05-02 20:23:49 +0200 | <EvanR> | bag of errors |
2025-05-02 20:25:13 +0200 | <monochrom> | That is very neat. |
2025-05-02 20:27:47 +0200 | dsrt^ | (ceuasyyyl@c-71-199-187-173.hsd1.ga.comcast.net) |
2025-05-02 20:28:27 +0200 | alethkit | Putin |
2025-05-02 20:28:40 +0200 | Putin | alethkit |
2025-05-02 20:30:19 +0200 | <haskellbridge> | <Liamzee> here's a problem i have, basically, let's say, i want to pass configs to a library |
2025-05-02 20:30:58 +0200 | <EvanR> | reflection |
2025-05-02 20:31:02 +0200 | <haskellbridge> | <Liamzee> i mean tbh i could do it via TH |
2025-05-02 20:31:03 +0200 | EvanR | hides |
2025-05-02 20:31:45 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-02 20:31:58 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
2025-05-02 20:32:08 +0200 | <haskellbridge> | <Liamzee> reflection? |
2025-05-02 20:32:11 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2025-05-02 20:32:30 +0200 | <EvanR> | I guess that trick has become forgotten lore |
2025-05-02 20:32:39 +0200 | <haskellbridge> | <Liamzee> the user wants to plug in two things, database settings, including a login, possibly from a config file |
2025-05-02 20:33:30 +0200 | <haskellbridge> | <Liamzee> i mean since the mutability is intended as one-time, and it's IO anyways, it's not like I can't tell people to IORef it |
2025-05-02 20:33:51 +0200 | <haskellbridge> | <Liamzee> but that's smelly |
2025-05-02 20:34:17 +0200 | <EvanR> | taking literally what you're saying, the requirement of passing in settings and a login to a thing, that is literally just a function |
2025-05-02 20:34:22 +0200 | <haskellbridge> | <Liamzee> i feel like ocaml functors might solve this problem |
2025-05-02 20:34:23 +0200 | <haskellbridge> | <sm> what's wrong with passing arguments ? |
2025-05-02 20:34:33 +0200 | <EvanR> | pass it as a normal argument |
2025-05-02 20:34:36 +0200 | <haskellbridge> | <Liamzee> verbose and error prone, no? |
2025-05-02 20:34:39 +0200 | <EvanR> | so there's gotta be some unspoken complication |
2025-05-02 20:35:05 +0200 | <haskellbridge> | <sm> I would say it's the simplest and least error prone, and you can reduce verbosity by bundling args into larger values |
2025-05-02 20:35:39 +0200 | <EvanR> | perhaps the implicitness is that your library returns some kind of state that needs to be returned to it to do anything else |
2025-05-02 20:35:52 +0200 | <EvanR> | and passing any other state would be broken |
2025-05-02 20:36:07 +0200 | <haskellbridge> | <sm> it's not always the most convenient, but when it's inconvenient it's forcing you to clarify your program's data flows |
2025-05-02 20:36:20 +0200 | <EvanR> | so I don't think the problem description was very good |
2025-05-02 20:37:09 +0200 | <haskellbridge> | <Liamzee> i'm just trying to do that bad idea, hasql login backend as a library |
2025-05-02 20:37:40 +0200 | <haskellbridge> | <Liamzee> right now, i need database settings, as well as settings for what tablenames you want and potentially field names |
2025-05-02 20:37:49 +0200 | <haskellbridge> | <Liamzee> then you feed it passwords, hashes, usernames, emails, etc |
2025-05-02 20:37:56 +0200 | <haskellbridge> | <Liamzee> you see why i want to pack a config instead? |
2025-05-02 20:38:04 +0200 | <EvanR> | so pass in a config |
2025-05-02 20:38:10 +0200 | <haskellbridge> | <Liamzee> fully expanded, it's like 16 arguments |
2025-05-02 20:38:12 +0200 | <EvanR> | no reason to do that via IO refs |
2025-05-02 20:38:18 +0200 | <haskellbridge> | <Liamzee> the config is mutable so i feel like it's ick |
2025-05-02 20:38:25 +0200 | <EvanR> | why is the config mutable |
2025-05-02 20:38:33 +0200 | <haskellbridge> | <Liamzee> spiritually mutable |
2025-05-02 20:38:37 +0200 | <EvanR> | that makes no sense |
2025-05-02 20:38:44 +0200 | <haskellbridge> | <Liamzee> if you expose the constructors to the config record, you can mutate it |
2025-05-02 20:38:52 +0200 | <haskellbridge> | <Liamzee> well, change it |
2025-05-02 20:39:05 +0200 | <hellwolf> | :quote spiritually mutable - Liamzu |
2025-05-02 20:39:07 +0200 | <haskellbridge> | <Liamzee> that is giving me an anxiety attack |
2025-05-02 20:39:09 +0200 | <EvanR> | why are you passing the config in more than 1 time |
2025-05-02 20:39:37 +0200 | <haskellbridge> | <Liamzee> to avoid creating a global constant? |
2025-05-02 20:39:38 +0200 | <haskellbridge> | <sm> do the simplest thing that could possibly work, and iterate. I don't think you'll need anything fancy in the end |
2025-05-02 20:39:52 +0200 | <EvanR> | you're making no sense |
2025-05-02 20:39:55 +0200 | <haskellbridge> | <Liamzee> yeah, okay, i should finish the hardcoded table settings version |
2025-05-02 20:40:03 +0200 | <hellwolf> | @quote spiritually mutable - Liamzu |
2025-05-02 20:40:03 +0200 | <lambdabot> | No quotes for this person. It can only be attributed to human error. |
2025-05-02 20:40:06 +0200 | <haskellbridge> | <Liamzee> then figure out what to do with mutable configs |
2025-05-02 20:40:33 +0200 | <EvanR> | "global constants" "mutable configs" "IOrefs" but not talking about the actual problem to be solved |
2025-05-02 20:40:49 +0200 | <EvanR> | while without any information we just say "function argument" |
2025-05-02 20:40:58 +0200 | <EvanR> | and it gets rejected mysteriously |
2025-05-02 20:41:46 +0200 | <haskellbridge> | <Liamzee> it's already done with function arguments, the version that was going to be mutable until i realized hasql doesn't come with sanitizers |
2025-05-02 20:41:57 +0200 | <haskellbridge> | <Liamzee> was going to take in records containing the config |
2025-05-02 20:42:16 +0200 | <monochrom> | If you call it "config" not "state", I don't see why someone wants it mutable, or why someone wants it mutable frequently enough that an immutable record is unacceptable. |
2025-05-02 20:42:17 +0200 | <EvanR> | what is "it" that is already done |
2025-05-02 20:42:18 +0200 | <haskellbridge> | <Liamzee> the problem is that it feels ugly to input the config and settings each time |
2025-05-02 20:42:29 +0200 | <haskellbridge> | <Liamzee> so the answer is readerT? |
2025-05-02 20:42:42 +0200 | <EvanR> | to what question |
2025-05-02 20:43:08 +0200 | <haskellbridge> | <sm> my answer is 👉 https://wiki.c2.com/?DoTheSimplestThingThatCouldPossiblyWork 👈 |
2025-05-02 20:43:13 +0200 | <haskellbridge> | <Liamzee> to not wanting to pass in an ugly config every time the function is called, or making a top-level partial application of the function |
2025-05-02 20:43:29 +0200 | <EvanR> | that's an opinion about an answer to the unknown question |
2025-05-02 20:43:40 +0200 | <monochrom> | Why is config ugly? Unless your app is ugly in the first place. |
2025-05-02 20:43:43 +0200 | <EvanR> | you might as well give your feelings about 42 |
2025-05-02 20:44:02 +0200 | <hellwolf> | there is always a GHC extensions for you: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/implicit_parameters.html |
2025-05-02 20:44:02 +0200 | <monochrom> | Oh 42 is totally ugly. :) |
2025-05-02 20:44:11 +0200 | <monochrom> | 43 is a beautiful prime. |
2025-05-02 20:44:13 +0200 | <haskellbridge> | <Liamzee> monochrom the pessimist |
2025-05-02 20:44:16 +0200 | <haskellbridge> | <Liamzee> oh |
2025-05-02 20:44:17 +0200 | <hellwolf> | I am not a "fan" of it, because I don't understand why its needed. |
2025-05-02 20:44:32 +0200 | <hellwolf> | but I knew of it and people using it for a yet another kind of effect system. |
2025-05-02 20:44:36 +0200 | <EvanR> | reflection and implicit parameters and ReaderT and ... and ... are all forms of "pass in an argument" |
2025-05-02 20:44:40 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2025-05-02 20:44:46 +0200 | <hellwolf> | yea, transformers |
2025-05-02 20:44:53 +0200 | <hellwolf> | maybe you need a ConfigT |
2025-05-02 20:44:56 +0200 | <hellwolf> | that'd make you happy? |
2025-05-02 20:45:01 +0200 | <haskellbridge> | <Liamzee> fyi, the level of library simplicity i want is to be able to use a single 🍅 emoji to call the database accessor functions |
2025-05-02 20:45:08 +0200 | <EvanR> | Config -> IO () |
2025-05-02 20:45:10 +0200 | <haskellbridge> | <sm> if you want to go straight to https://academy.fpblock.com/blog/2017/06/readert-design-pattern you can |
2025-05-02 20:45:14 +0200 | <monochrom> | So far I have only needed implicit param for HasCallStack. That one looks like a good use case. But yeah I haven't seen another good use case. |
2025-05-02 20:45:45 +0200 | <hellwolf> | oh, you can use implicit param for HasCallStack? |
2025-05-02 20:45:59 +0200 | <EvanR> | so you want to somehow avoid passing in the database connection everywhere |
2025-05-02 20:46:12 +0200 | <hellwolf> | CC @sm who recently mentioned some pay related to HasCallStack |
2025-05-02 20:46:20 +0200 | <monochrom> | I mean that HasCallStack is implemented as an implicit param. |
2025-05-02 20:46:23 +0200 | <haskellbridge> | <Liamzee> he's already here |
2025-05-02 20:46:36 +0200 | <hellwolf> | is he spiritually here? |
2025-05-02 20:46:50 +0200 | haskellbridge | sm contemplates |
2025-05-02 20:47:22 +0200 | <hellwolf> | "05-02 21:46 [haskellbridge sm contemplates]" <-- if someone is named "is" that'd be a funny IRC message. |
2025-05-02 20:47:30 +0200 | <haskellbridge> | <Liamzee> you know what |
2025-05-02 20:47:34 +0200 | <haskellbridge> | <Liamzee> IVar |
2025-05-02 20:47:40 +0200 | <monochrom> | type HasCallStack = ?callStack :: CallStack |
2025-05-02 20:47:52 +0200 | <haskellbridge> | <Liamzee> initialize the functions by calling a function calling an ivar |
2025-05-02 20:47:57 +0200 | <haskellbridge> | <Liamzee> writing to an ivar |
2025-05-02 20:48:05 +0200 | <haskellbridge> | <Liamzee> that loads the config |
2025-05-02 20:48:08 +0200 | <EvanR> | IVar is good when you have a value that is not yet known and your evaluation can wait |
2025-05-02 20:48:11 +0200 | <haskellbridge> | <Liamzee> the ivar is global scoped in the library |
2025-05-02 20:48:20 +0200 | <EvanR> | ... |
2025-05-02 20:48:24 +0200 | <monochrom> | i.e., if you write "foo :: HasCallStack => ()" it becomes "foo :: ?callStack :: CallStack => Int" so the stack is an implicit param. |
2025-05-02 20:48:40 +0200 | <EvanR> | global variables are bad mkay |
2025-05-02 20:48:49 +0200 | bilegeek | (~bilegeek@2600:1008:b01d:f38b:e9d6:efbc:7794:17cd) bilegeek |
2025-05-02 20:48:51 +0200 | <haskellbridge> | <Liamzee> hummm, crap, this is unsafePerformIO shenanigans |
2025-05-02 20:49:03 +0200 | <haskellbridge> | <sm> implicit params hurt my brain. They feel like arguments by another name |
2025-05-02 20:49:10 +0200 | <EvanR> | they are |
2025-05-02 20:49:11 +0200 | <monochrom> | Yeah IVar does not relieve you from unsafePerformIO. |
2025-05-02 20:49:28 +0200 | <monochrom> | Only parameter passing can relieve you from unsafePerformIO. |
2025-05-02 20:49:47 +0200 | <haskellbridge> | <Liamzee> only unsafePerformIO can relieve me from parameter passing? |
2025-05-02 20:49:56 +0200 | <haskellbridge> | <Liamzee> although tbh I feel like doing it because it's transgressive and i'm an edgelord |
2025-05-02 20:49:56 +0200 | <monochrom> | That is also true. |
2025-05-02 20:50:02 +0200 | <EvanR> | your library actions need to know which connection to use |
2025-05-02 20:50:04 +0200 | <hellwolf> | you need to go to a ayahuasca session and puke all your imperative toxic out. |
2025-05-02 20:50:11 +0200 | <haskellbridge> | <loonycyborg> unsafePerformIO is ok if you can prove that it always actually returns the same thing |
2025-05-02 20:50:34 +0200 | <EvanR> | which it doesn't in the case of global refs |
2025-05-02 20:50:43 +0200 | <EvanR> | which is why it's tricky |
2025-05-02 20:50:59 +0200 | <haskellbridge> | <Liamzee> {-# NOINLINE liamIsGoingToHell #-} |
2025-05-02 20:51:15 +0200 | <EvanR> | I feel like you're trolling the channel now |
2025-05-02 20:51:41 +0200 | <hellwolf> | it's friday |
2025-05-02 20:52:12 +0200 | <haskellbridge> | <loonycyborg> I think it would be acceptable to access global constants, but not variables. |
2025-05-02 20:52:16 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-05-02 20:52:16 +0200 | <EvanR> | a more object oriented way to do this is when you connect to the database, it returns to you a record of database accessing routines which close over the connection |
2025-05-02 20:52:23 +0200 | <monochrom> | It's basic information theory. If a procedure knows which filename to open, there are only one of 3 reasons: It knows from the source code, it knows from an argument, it knows from I/O, it knows from the black market. |
2025-05-02 20:52:25 +0200 | <haskellbridge> | <sm> wait, isn't HasCallStack a type constraint, not an implicit parameter, monochrom ? https://www.stackage.org/haddock/lts-20.20/base-4.16.4.0/GHC-Exception.html#t:CallStack |
2025-05-02 20:52:40 +0200 | <monochrom> | I can't count. s/3/4/ |
2025-05-02 20:52:57 +0200 | <haskellbridge> | <sm> loonycyborg I use it for accessing low level command line flags like --color and --debug |
2025-05-02 20:53:13 +0200 | <monochrom> | Do you accept: A type constraint that describes an implicit param? |
2025-05-02 20:53:42 +0200 | <EvanR> | that's also where reflection comes up stuff like the global config you don't want to pass around (this is different from "a database connection I got later") |
2025-05-02 20:54:02 +0200 | <haskellbridge> | <sm> ah: "The intrepid user may notice that HasCallStack is just an alias for an implicit parameter ?callStack :: CallStack. This is an implementation detail and should not be considered part of the CallStack API, we may decide to change the implementation in the future." |
2025-05-02 20:54:06 +0200 | <monochrom> | All implicit params are specified by constraints, i.e., at the same place as class constraints. foo :: (?x :: X, Num a) => a |
2025-05-02 20:54:32 +0200 | <haskellbridge> | <loonycyborg> implicit params aren't too popular afaik |
2025-05-02 20:55:14 +0200 | <haskellbridge> | <Liamzee> the interface I want is just createUser username password email, okay? |
2025-05-02 20:55:38 +0200 | <EvanR> | and how does it know what database in the world to do that on |
2025-05-02 20:55:41 +0200 | <haskellbridge> | <Liamzee> so how do I guarantee this on the library side |
2025-05-02 20:55:56 +0200 | <haskellbridge> | <Liamzee> the iVar unsafePerformIO solution works |
2025-05-02 20:56:18 +0200 | <EvanR> | to access another database you need to close the program and reopen? |
2025-05-02 20:56:48 +0200 | <haskellbridge> | <Liamzee> or you use a different set of variables |
2025-05-02 20:56:49 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-05-02 20:56:51 +0200 | <haskellbridge> | <Liamzee> erm, functions |
2025-05-02 20:56:58 +0200 | <haskellbridge> | <Liamzee> you can wrap normal parameter-based functions |
2025-05-02 20:57:11 +0200 | <haskellbridge> | <Liamzee> and have a convenience set based around an unsafeperformIO-ed ivar somewhere |
2025-05-02 20:57:12 +0200 | <EvanR> | there's only ever 1 IVar because you made it global |
2025-05-02 20:57:29 +0200 | <haskellbridge> | <Liamzee> and the convenience set calls the normal parameter based functions |
2025-05-02 20:57:30 +0200 | <haskellbridge> | <loonycyborg> yes that's the inherent problem of global variables, that you can't easily generalize it to multiple of the same object |
2025-05-02 20:57:50 +0200 | <haskellbridge> | <Liamzee> using readIVar to get the data once the IVAR has been set by the user |
2025-05-02 20:57:51 +0200 | <haskellbridge> | <Liamzee> ugh |
2025-05-02 20:58:03 +0200 | <monochrom> | I am fine with unsafePerfomIO (newIORef foo) tbh. Look, stdin :: Handle is already an example. It can be legitimate. |
2025-05-02 20:58:04 +0200 | <EvanR> | having tried to "take a shortcut" and use globals in haskell for things, ime it always turns out terrible |
2025-05-02 20:58:05 +0200 | <haskellbridge> | <Liamzee> maybe i'll just do it normally with parameter passing, and leave the ivar nutjobbery as a secondary lib |
2025-05-02 20:58:16 +0200 | tolgo | (~Thunderbi@199.115.144.130) (Ping timeout: 265 seconds) |
2025-05-02 20:58:17 +0200 | <EvanR> | it always makes things works, (ime) |
2025-05-02 20:58:22 +0200 | <haskellbridge> | <loonycyborg> it's kinda nice that haskell is so hostile to global variables, so it actually forces you to be more general than you could get away with in C |
2025-05-02 20:58:24 +0200 | <haskellbridge> | <Liamzee> Geta.Login.IVarNutJobbery |
2025-05-02 20:58:26 +0200 | <haskellbridge> | <Liamzee> the name sells itself |
2025-05-02 21:00:04 +0200 | caconym7 | (~caconym@user/caconym) (Quit: bye) |