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) |
2025-05-02 21:00:26 +0200 | <monochrom> | Oh yeah the C/Unix world had to suffer a transition in the DNS library from "settings are in a global var" to "oh sh*t not thread-safe, every function has to be changed to take one more argument". |
2025-05-02 21:00:43 +0200 | caconym7 | (~caconym@user/caconym) caconym |
2025-05-02 21:00:53 +0200 | <hellwolf> | I am wondering with ghc-wasm, how you expose nowadays anything to javascript runtime from haskell wasm runtime; I had to use some global ref and unsafePerformanceIO |
2025-05-02 21:01:09 +0200 | <hellwolf> | maybe now it has its own mechanism. (I was only doing experiment, so not serious dabbling with it) |
2025-05-02 21:01:37 +0200 | <monochrom> | Likewise for the PRNG library, and a few others. |
2025-05-02 21:01:47 +0200 | <hellwolf> | Global is a implicit parameter to those languages |
2025-05-02 21:01:55 +0200 | <hellwolf> | Global.xxx |
2025-05-02 21:02:00 +0200 | <monochrom> | And oh errno was a lot of fun, too. |
2025-05-02 21:02:05 +0200 | <hellwolf> | like, in javascript, it's called "window" |
2025-05-02 21:02:26 +0200 | <haskellbridge> | <Liamzee> thanks monochrom for not blowing up at me for wanting to try heretic haskell |
2025-05-02 21:02:53 +0200 | <EvanR> | in electrician speak, "you need to get shocked at least once" |
2025-05-02 21:03:13 +0200 | <hellwolf> | I thought it was at most once |
2025-05-02 21:03:26 +0200 | <haskellbridge> | <Liamzee> that said, it does make me wonder if it's possible to use the type system to ensure that the codebase uses the loader for the ivar exactly once in an executed codepath |
2025-05-02 21:03:28 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-02 21:03:34 +0200 | <monochrom> | It had to transition from "simply `extern int errno;`" to "it is now an elaborate macro that accesses a thread-local store, so please please please #include <errno.h> and not write your own `extern int errno;` because it no longer works" |
2025-05-02 21:03:51 +0200 | <EvanR> | use the IVar exactly once? |
2025-05-02 21:04:25 +0200 | <haskellbridge> | <loonycyborg> like with linear haskell? :P |
2025-05-02 21:04:33 +0200 | <monochrom> | Oh exactly once? That's linear type then! |
2025-05-02 21:04:36 +0200 | <haskellbridge> | <Liamzee> use the loader |
2025-05-02 21:04:46 +0200 | <EvanR> | (it can be treated like a normal value, why would you care if someone looks at it more than once) |
2025-05-02 21:04:46 +0200 | <haskellbridge> | <Liamzee> no, but that means you can only use it in linear types, no? |
2025-05-02 21:05:08 +0200 | <haskellbridge> | <Liamzee> making it idiot proof |
2025-05-02 21:05:09 +0200 | <haskellbridge> | <loonycyborg> in haskel there's no linear types |
2025-05-02 21:05:12 +0200 | <monochrom> | But linear type requires an argument so you are back to not making it global. |
2025-05-02 21:05:15 +0200 | <haskellbridge> | <loonycyborg> only linear arrows |
2025-05-02 21:05:29 +0200 | <haskellbridge> | <Liamzee> sorry, thanks for the help |
2025-05-02 21:09:19 +0200 | <haskellbridge> | <loonycyborg> can you combine linear haskell with implicit params? |
2025-05-02 21:09:19 +0200 | <haskellbridge> | <Liamzee> the underlying logic, evanr, is that everyone told me that it's a bad idea to try to create backend libraries automating common backend tasks, and tomsmeding said it's an idea that seems good to people who've written 1-2 crud programs but seems silly to people who've written 10, so the target would be people who've written 1-2 crud programs, hence the desire both for simplicity and idiot-proofing |
2025-05-02 21:10:48 +0200 | <EvanR> | why is web programming assuming everybody is an idiot |
2025-05-02 21:11:13 +0200 | <tomsmeding> | the fact that it does, does enable many idiots to write programs that are useful to them |
2025-05-02 21:11:20 +0200 | <tomsmeding> | whether they are also useful to others is perhaps questionable |
2025-05-02 21:11:21 +0200 | <monochrom> | I know why driver exams assume that everybody is an idiot. |
2025-05-02 21:11:23 +0200 | <tomsmeding> | them being idiots |
2025-05-02 21:11:41 +0200 | <haskellbridge> | <sm> Liamzee I like simple beginner friendly idiot friendly libs, even if they're only for learning. Why not write down the api, that will clarify things |
2025-05-02 21:11:47 +0200 | <EvanR> | a license to write web apps does sound sensible |
2025-05-02 21:12:04 +0200 | <monochrom> | Hey I also know why car insurance companies assume that even those who passed driver exams are still idiots. >:) |
2025-05-02 21:12:17 +0200 | <haskellbridge> | <loonycyborg> driving is serious thing, you can actually die if you mess up |
2025-05-02 21:12:20 +0200 | <EvanR> | do not give anyone web app insurance ideas |
2025-05-02 21:12:35 +0200 | <haskellbridge> | <loonycyborg> programmning is somewhat more forgiving |
2025-05-02 21:12:58 +0200 | <haskellbridge> | <sm> most programming |
2025-05-02 21:13:01 +0200 | <EvanR> | if you mess up programming you get bot nets and stolen identity |
2025-05-02 21:13:01 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
2025-05-02 21:13:05 +0200 | <monochrom> | Oh I'm sure insurances companies have actually thought about web dev and concluded "nah we'll lose money". |
2025-05-02 21:13:08 +0200 | <EvanR> | without being alerted |
2025-05-02 21:13:23 +0200 | <monochrom> | or rather s/we'll/we'd/ # I hate English |
2025-05-02 21:13:25 +0200 | <tomsmeding> | lol, monochrom |
2025-05-02 21:13:32 +0200 | <int-e> | EvanR: dead patients, crashing airplanes |
2025-05-02 21:14:05 +0200 | <tomsmeding> | there's a difference, though, between "programming" and "using code written by others in a product where correct functioning is vital" |
2025-05-02 21:14:32 +0200 | bilegeek | (~bilegeek@2600:1008:b01d:f38b:e9d6:efbc:7794:17cd) (Remote host closed the connection) |
2025-05-02 21:14:35 +0200 | <tomsmeding> | I would not be surprised if being a software engineer on a team for constructing an airplane needs certain certifications. And personally I'd not trust the certifications very much either. |
2025-05-02 21:14:52 +0200 | <haskellbridge> | <Liamzee> loonycyborg: knight capital |
2025-05-02 21:14:52 +0200 | <tomsmeding> | I don't think it's a good idea to require certification before being allowed to touch a compiler |
2025-05-02 21:15:37 +0200 | <hellwolf> | inspector crusoe asking for a proper license. |
2025-05-02 21:15:42 +0200 | <tomsmeding> | unless your goal is to ensure job security for those who already know programming, that is -- because by doing so, you'll lose 80% of the people interested in programming. :) |
2025-05-02 21:16:03 +0200 | <haskellbridge> | <Liamzee> https://en.wikipedia.org/wiki/Knight_Capital_Group |
2025-05-02 21:16:27 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Client Quit) |
2025-05-02 21:16:52 +0200 | <EvanR> | you're right, might as well put the plane's avionics in a browser and save some money on developers, but in this case I think web dev should stop assuming idiots |
2025-05-02 21:16:57 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
2025-05-02 21:17:15 +0200 | <tomsmeding> | EvanR: who said "put the plane's avionics in a browser"? |
2025-05-02 21:17:32 +0200 | <int-e> | . o O ( electron app ) |
2025-05-02 21:17:43 +0200 | <haskellbridge> | <Liamzee> IIRC the F-35 was supposed to have cut costs by moving from Ada, the defense industry standard semi-safe programming language, to commercial languages like C++ |
2025-05-02 21:18:09 +0200 | <int-e> | EvanR: surely not all web development assumes that |
2025-05-02 21:18:17 +0200 | <tomsmeding> | int-e: part of "knowing what you're doing", to me, is knowing what benefits and downsides certain tools bring. Electron brings benefits in certain domains, but not in this one. :p |
2025-05-02 21:18:27 +0200 | <tomsmeding> | (I know you do too) |
2025-05-02 21:18:35 +0200 | <EvanR> | I hope not. And don't call me shirley |
2025-05-02 21:18:44 +0200 | <int-e> | but if, when writing, you want to capture the biggest imaginable audience, then you have to go for the idiots |
2025-05-02 21:19:18 +0200 | <int-e> | and then consider making it audiovisual instead of text |
2025-05-02 21:19:31 +0200 | <tomsmeding> | also, what are we arguing about here, exactly? :p |
2025-05-02 21:19:37 +0200 | <tomsmeding> | what's the problem with some people writing for idiots? |
2025-05-02 21:19:43 +0200 | <int-e> | I'm not sure. |
2025-05-02 21:19:45 +0200 | <tomsmeding> | just don't read their text! |
2025-05-02 21:19:59 +0200 | <tomsmeding> | (assuming you're not an idiot, that is) |
2025-05-02 21:20:00 +0200 | otto_s | (~user@p4ff270d6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-05-02 21:20:04 +0200 | <haskellbridge> | <Liamzee> int-e: I've considered making an emoji interface |
2025-05-02 21:20:09 +0200 | <int-e> | I /think/ it's that it's hard to find documentation that isn't either a pure reference or targeted at idiots |
2025-05-02 21:20:17 +0200 | <int-e> | but maybe I'm misinterpreting the context |
2025-05-02 21:20:21 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 248 seconds) |
2025-05-02 21:20:21 +0200 | <tomsmeding> | right |
2025-05-02 21:20:40 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 21:20:56 +0200 | <tomsmeding> | I think mdn is usually fair, though it's certainly very referency sometimes |
2025-05-02 21:23:31 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 21:26:31 +0200 | <monochrom> | The context is how to design a library API that is both safe for inexperienced people and convenient. Current the tension between them is, for example, a hidden global var under the hood is more convenient because fewer arguments to set up and pass, but then you can't use linear haskell to ensure certain uniqueness. |
2025-05-02 21:27:58 +0200 | <tomsmeding> | thank you monochrom for allowing us to be lazy and not read scrollback |
2025-05-02 21:28:07 +0200 | <dminuoso> | 19:14:35 tomsmeding │ I would not be surprised if being a software engineer on a team for constructing an airplane needs certain certifications. And personally I'd not trust the certifications very much either. |
2025-05-02 21:28:11 +0200 | <dminuoso> | I can talk from experience here: |
2025-05-02 21:28:15 +0200 | <dminuoso> | You dont. |
2025-05-02 21:28:19 +0200 | <monochrom> | <-- Generatvie AI >:) |
2025-05-02 21:28:47 +0200 | <tomsmeding> | dminuoso: as in, you don't need certifications? |
2025-05-02 21:28:53 +0200 | <dminuoso> | Correct. |
2025-05-02 21:29:05 +0200 | <tomsmeding> | persumably the company has some internal standards for abilities of their software engineers, though |
2025-05-02 21:29:13 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-02 21:29:16 +0200 | <monochrom> | Oh derp I wrote in my course policy "don't use generative AI". I should have said "don't use generative AI except me". >:) |
2025-05-02 21:29:22 +0200 | <dminuoso> | tomsmeding: Yes, just like any other companies. |
2025-05-02 21:29:36 +0200 | <dminuoso> | Some have better standards, others have the front of the ship fall off. |
2025-05-02 21:29:41 +0200 | <tomsmeding> | then all comes down to what those standards are. :) |
2025-05-02 21:30:21 +0200 | <tomsmeding> | on the one hand, it's worrying that no such certifications are required; on the other hand, I'm not sure the certifications would really have much signal anyway |
2025-05-02 21:30:24 +0200 | rvalue- | (~rvalue@user/rvalue) rvalue |
2025-05-02 21:30:25 +0200 | <dminuoso> | That said, the actual products undergo very strict ceritification tests (whether those are physical or software products) |
2025-05-02 21:30:37 +0200 | <tomsmeding> | right |
2025-05-02 21:30:51 +0200 | <haskellbridge> | <Liamzee> i'm curious, though, why isn't there more literature on how to design library APIs in Haskell? |
2025-05-02 21:30:59 +0200 | <monochrom> | I'm under the impression that ISO 9001 is all you need and all the buzz. >:) |
2025-05-02 21:31:13 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 268 seconds) |
2025-05-02 21:31:25 +0200 | <tomsmeding> | Liamzee: is there literature on how to design library APIs in other languages? |
2025-05-02 21:31:33 +0200 | <monochrom> | People are too busy writing software to write books? |
2025-05-02 21:31:54 +0200 | <monochrom> | Either that or not enough money to make from writing books. |
2025-05-02 21:31:57 +0200 | <haskellbridge> | <Liamzee> JS |
2025-05-02 21:31:59 +0200 | <haskellbridge> | <Liamzee> https://staltz.com/api-design-tips-for-libraries |
2025-05-02 21:33:00 +0200 | <monochrom> | You know how Ian Stewart make enough money to buy a luxurious house in a luxurious neighbourhood by just writing a calculus textbook that's inflicted on everybody? |
2025-05-02 21:33:01 +0200 | <tomsmeding> | just skimming the headings (sorry), that sounds generalisable |
2025-05-02 21:33:16 +0200 | <monochrom> | One can't say that for Haskell book authors. Not remotely close. |
2025-05-02 21:33:22 +0200 | <haskellbridge> | <Liamzee> James Stewart, I think |
2025-05-02 21:33:31 +0200 | <monochrom> | Oops yeah. |
2025-05-02 21:33:45 +0200 | <dminuoso> | tomsmeding: That said, I was able to do work that ended on aircraft without having any type of credentials. |
2025-05-02 21:33:54 +0200 | <monochrom> | BTW it's neighbourhood with "u" because it's Toronto Canada. >:) |
2025-05-02 21:34:00 +0200 | <tomsmeding> | dminuoso: cool! :) |
2025-05-02 21:34:06 +0200 | <dminuoso> | And given the average quality of some universities that hand out compsci degrees Im not sure that means anything. |
2025-05-02 21:34:23 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-02 21:35:24 +0200 | <dminuoso> | Meaning, holding a M.Sc does not by itself carry any meaning whether you are useful or not. |
2025-05-02 21:35:35 +0200 | <tomsmeding> | agreed |
2025-05-02 21:36:07 +0200 | <tomsmeding> | I think standardised certifications for the abilities of _people_ are either very expensive or low-signal |
2025-05-02 21:36:46 +0200 | <dminuoso> | Well, I think for starters we lack the necessary feedback loops to create incentives for training people the right way. |
2025-05-02 21:36:46 +0200 | <geekosaur> | or both 😈 |
2025-05-02 21:37:00 +0200 | <haskellbridge> | <sm> dminuoso which part of the aircraft was it for ? |
2025-05-02 21:37:09 +0200 | <dminuoso> | If my code causes aircraft to fall out of the sky, I will not be liable in any way. |
2025-05-02 21:37:32 +0200 | <tomsmeding> | is that because someone else in the company would be, instead? |
2025-05-02 21:37:41 +0200 | <dminuoso> | But if I do some gross mistakes when designing a bridge, some legislations allow for criminal charges. |
2025-05-02 21:37:58 +0200 | <dminuoso> | Nobody has ever gone to prison for faulty software, irrespective of how many people died. |
2025-05-02 21:38:20 +0200 | <dminuoso> | You can always blame it on the software and mitigate the PR disaster, it is amazing. |
2025-05-02 21:38:20 +0200 | tromp | (~textual@2001:1c00:3487:1b00:31c9:5f27:18bf:4d4e) |
2025-05-02 21:38:32 +0200 | <dminuoso> | "Its the software!" |
2025-05-02 21:38:43 +0200 | <tomsmeding> | "Well who made that software?!" |
2025-05-02 21:38:57 +0200 | rvalue- | rvalue |
2025-05-02 21:38:57 +0200 | <dminuoso> | Does not matter. Look at crowdstrike. |
2025-05-02 21:39:11 +0200 | <tomsmeding> | oh but that's big corporate taking services from other big corporate |
2025-05-02 21:39:28 +0200 | <tomsmeding> | money and interpersonal relations are more important than services rendered or product quality |
2025-05-02 21:39:54 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
2025-05-02 21:40:02 +0200 | <tomsmeding> | oh, and being table to tick something off a checklist |
2025-05-02 21:40:06 +0200 | <tomsmeding> | *able, not table |
2025-05-02 21:40:12 +0200 | <monochrom> | It's why I still refuse to say "software engineers". If you are not liable to go to prison, you are not an engineer. |
2025-05-02 21:40:13 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 21:40:28 +0200 | <monochrom> | Because all other engineers are. |
2025-05-02 21:40:48 +0200 | <dminuoso> | Fun fact, in Germany it is illegal to call yourself Softwareingenieur without a degree in mechanical engineering. |
2025-05-02 21:41:04 +0200 | <dminuoso> | (The job title "ingenieur" is protected by law) |
2025-05-02 21:41:18 +0200 | <tomsmeding> | however much you think there should be a feedback loop, I find it somewhat awkward to send an engineer (any engineer) to _prison_ for faulty engineering -- assuming the faulty engineering was unintentional |
2025-05-02 21:41:35 +0200 | <tomsmeding> | prison is for intentionally committed crimes, not for incompetence |
2025-05-02 21:41:44 +0200 | <dminuoso> | tomsmeding: Sure, lawmakers have notions like gross negligence for that. |
2025-05-02 21:41:48 +0200 | <haskellbridge> | <Liamzee> "criminal negligence" |
2025-05-02 21:41:53 +0200 | <tomsmeding> | right |
2025-05-02 21:42:18 +0200 | <monochrom> | Well there is this notion of crimincal negligence. But we can debate why we need it. |
2025-05-02 21:43:17 +0200 | sprotte24 | (~sprotte24@p200300d16f0dd100892d07af958b891b.dip0.t-ipconnect.de) |
2025-05-02 21:43:52 +0200 | <monochrom> | There is also manslaughter. |
2025-05-02 21:44:08 +0200 | <dminuoso> | Software has led us up to a point of time, where cars are driving autonomously with software, provoke an accident and a split second before impact they turn off their autopilot so legally you were driving with AP off. |
2025-05-02 21:44:20 +0200 | <monochrom> | Yikes |
2025-05-02 21:44:20 +0200 | <dminuoso> | End-stage capitalism. :-) |
2025-05-02 21:44:46 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2025-05-02 21:45:26 +0200 | <monochrom> | But end-stage? We'll see about that. :) |
2025-05-02 21:46:11 +0200 | <monochrom> | There is still a chance that people can evolve and carry on because they learned to either not buy AP or not buy cars at all. |
2025-05-02 21:47:01 +0200 | <monochrom> | Alternatively all of humanity die from those car accidents, then it is the highly automated frequent trading machines that will carry on capitalism! |
2025-05-02 21:47:42 +0200 | <dminuoso> | I've read opinions comparing the situation to that of aviation, where autonomous driving enables rolling out changes to improve safety across all drivers. |
2025-05-02 21:47:53 +0200 | remedan_ | (~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan |
2025-05-02 21:48:25 +0200 | <monochrom> | You know, they said that about CPU firmware too... |
2025-05-02 21:48:38 +0200 | <dminuoso> | :-) |
2025-05-02 21:49:09 +0200 | remedan | (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Ping timeout: 276 seconds) |
2025-05-02 21:49:58 +0200 | <dminuoso> | In aviation this works because any single incident can and often does lead to mandated (!) changes. |
2025-05-02 21:50:10 +0200 | <dminuoso> | But it is not software that enabled it, but the fact that those changes were mandated. |
2025-05-02 21:50:17 +0200 | michalz | (~michalz@185.246.207.203) |
2025-05-02 21:50:36 +0200 | <EvanR> | except helicopters |
2025-05-02 21:50:44 +0200 | <EvanR> | accidents keep leading to no changes |
2025-05-02 21:50:49 +0200 | <dminuoso> | What do you mean? |
2025-05-02 21:51:30 +0200 | <EvanR> | people just accept the risk with helicopter flights |
2025-05-02 21:51:41 +0200 | jespada | (~jespada@r179-25-202-180.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-05-02 21:52:37 +0200 | jespada | (~jespada@r179-25-202-180.dialup.adsl.anteldata.net.uy) jespada |
2025-05-02 21:52:44 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-02 21:53:00 +0200 | remedan_ | (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Ping timeout: 252 seconds) |
2025-05-02 21:53:22 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
2025-05-02 21:54:44 +0200 | <dminuoso> | Given that its the same regulation bodies, I find the characterization somewhat unlikely |
2025-05-02 21:55:13 +0200 | <dminuoso> | It is just that commercial helicopters are rather rare. |
2025-05-02 21:58:59 +0200 | m15k47on1c | (~m15k47on1@user/m15k47on1c) m15k47on1c |
2025-05-02 21:59:13 +0200 | <dminuoso> | EvanR: Ill dig up some numbers but last I checked helicopters have about 1/10th of the chance for fatal or non-fatal accidents per 100,000 flight hours. |
2025-05-02 21:59:27 +0200 | <dminuoso> | They are exceedingly safe. |
2025-05-02 22:00:18 +0200 | <hellwolf> | It kinda makes intuitive sense. I think most commercial jet crashes during taking off or landing? And helicopter has a much safer landing/taking off procedure? |
2025-05-02 22:00:22 +0200 | <hellwolf> | in comparison. |
2025-05-02 22:01:11 +0200 | <hellwolf> | pardon my sloppy english: most commercial jet crashes happen during.... |
2025-05-02 22:01:17 +0200 | <dminuoso> | Sounds plausible. Helicopters - even with engine failure - are still very mobile and need only minimal space for an emergency landing. |
2025-05-02 22:02:05 +0200 | <dminuoso> | With an A320 you need 1.5km of runway... |
2025-05-02 22:02:06 +0200 | <EvanR> | I hope no one hears this and mistakes what you're saying that helicopters are much safer than commercial airliners |
2025-05-02 22:02:45 +0200 | jcarpenter2 | (~lol@2603:3016:1e01:b960:740e:a7b5:ac86:87b2) |
2025-05-02 22:03:40 +0200 | <EvanR> | when I try to look up stats, I get obvious AI generated articles |
2025-05-02 22:04:37 +0200 | <dminuoso> | EvanR: I have some good sources, but Im behind rubbish internet right now. |
2025-05-02 22:04:45 +0200 | <EvanR> | (used to work for a fake article site company, they're probably loving the AI craze right now) |
2025-05-02 22:04:52 +0200 | <dminuoso> | Will get back to you tomorrow on this. :) |
2025-05-02 22:05:35 +0200 | remedan | (~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan |
2025-05-02 22:06:21 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Quit: Client closed) |
2025-05-02 22:06:32 +0200 | <m15k47on1c> | Is there any steam game written in haskell? |
2025-05-02 22:06:37 +0200 | Googulator65 | (~Googulato@2a01-036d-0106-4a24-1dc7-297e-fae3-e794.pool6.digikabel.hu) |
2025-05-02 22:06:43 +0200 | <EvanR> | yes |
2025-05-02 22:06:48 +0200 | <EvanR> | more than 1 |
2025-05-02 22:07:01 +0200 | <EvanR> | (uhg. "steam game") |
2025-05-02 22:07:09 +0200 | <dminuoso> | At the same time, this way of "events lead to changes" is also what makes modern clean sheet designs nearly impossible, and it makes it difficult and expensive for new companies to emerge. |
2025-05-02 22:07:20 +0200 | <m15k47on1c> | Can you tell me their names? |
2025-05-02 22:07:35 +0200 | <dminuoso> | If you make an aircraft, you have these 724,012 things to address to prevent past mistakes. |
2025-05-02 22:07:48 +0200 | <EvanR> | defect process, is one |
2025-05-02 22:11:42 +0200 | <haskellbridge> | <sm> and https://store.steampowered.com/app/2495130/Pixelpusher is the other |
2025-05-02 22:12:41 +0200 | <dminuoso> | hellwolf: Come to think of it, I suspect the major reason to be the ability to autorotate |
2025-05-02 22:13:29 +0200 | <dminuoso> | Which means at any point in the flight, you can just abort and land where you want, even if both engines go out. |
2025-05-02 22:13:45 +0200 | <dminuoso> | With planes you are extremely limited. |
2025-05-02 22:14:39 +0200 | <EvanR> | there's a lot more on itch.io |
2025-05-02 22:15:15 +0200 | <EvanR> | like critically acclaimed peoplemon |
2025-05-02 22:17:15 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 22:24:19 +0200 | michalz | (~michalz@185.246.207.203) (Remote host closed the connection) |
2025-05-02 22:25:38 +0200 | <haskellbridge> | <sm> https://linearity.itch.io/peoplemon eh |
2025-05-02 22:26:41 +0200 | <hellwolf> | dminuoso: makes sense. both are established technology, so that should be less of a contributor. So, the innate property of the technology, the ones you just mentioned for instances, becomes a more important factor here. |
2025-05-02 22:28:38 +0200 | <hellwolf> | that's brainrot game |
2025-05-02 22:28:56 +0200 | hellwolf | have no idea what does brainrot mean. I just saw the word lately. |
2025-05-02 22:29:01 +0200 | <EvanR> | it's pure art is what it is |
2025-05-02 22:29:46 +0200 | <EvanR> | >I tried to write this game program a number of times. In the end, the only natural way to do it was writing it in Haskell... |
2025-05-02 22:30:23 +0200 | <hellwolf> | so, it was you that wrote it? |
2025-05-02 22:30:25 +0200 | <EvanR> | (quote taken completely out of context) |
2025-05-02 22:30:44 +0200 | <hellwolf> | oh, a quote |
2025-05-02 22:31:08 +0200 | <haskellbridge> | <sm> added to my games list. |
2025-05-02 22:31:50 +0200 | <haskellbridge> | <Liamzee> the humor isn't that dated on peoplemon |
2025-05-02 22:31:55 +0200 | <haskellbridge> | <sm> Peoplemon, Defect Process, Pixelpusher all have pretty good reviews, notably |
2025-05-02 22:32:10 +0200 | <haskellbridge> | <Liamzee> https://youtu.be/8na6mdQAv-0?t=525 |
2025-05-02 22:32:17 +0200 | <tomsmeding> | the fact that it says "in Haskell using the Glasgow Haskell Compiler" already dates it |
2025-05-02 22:32:46 +0200 | <hellwolf> | is it finally the glorious haskell compiler now |
2025-05-02 22:33:17 +0200 | <hellwolf> | don't just add to your list. let's buy the game. |
2025-05-02 22:33:32 +0200 | <tomsmeding> | https://www.haskell.org/ghc/ says "Glasgow" still |
2025-05-02 22:33:54 +0200 | <hellwolf> | $ ghc --version |
2025-05-02 22:33:54 +0200 | <hellwolf> | The Glorious Glasgow Haskell Compilation System, version 9.10.1 |
2025-05-02 22:33:59 +0200 | <haskellbridge> | <Liamzee> https://haskell-game.dev/games/peoplemon.html |
2025-05-02 22:34:00 +0200 | <tomsmeding> | gghc! |
2025-05-02 22:34:12 +0200 | <haskellbridge> | <Liamzee> that's the haskell game dev roster |
2025-05-02 22:34:32 +0200 | <haskellbridge> | <sm> by list, I meant https://joyful.com/Haskell+games#What%20are%20some%20notable%20Haskell%20games |
2025-05-02 22:34:32 +0200 | <haskellbridge> | I did buy Magic Cookies and Defect Process at least, but don't have time for more games |
2025-05-02 22:35:02 +0200 | <EvanR> | oh yeah magic cookies |
2025-05-02 22:35:06 +0200 | <hellwolf> | I just paid bucks to the game. I am applying social pressure now to this grouo. |
2025-05-02 22:37:08 +0200 | <haskellbridge> | <Liamzee> honestly the other games on the roster look better |
2025-05-02 22:37:31 +0200 | <EvanR> | not a fan of people? |
2025-05-02 22:37:32 +0200 | <haskellbridge> | <Liamzee> https://haskell-game.dev/games/orboros.html |
2025-05-02 22:38:37 +0200 | <haskellbridge> | <Liamzee> Peoplemon's a bit raunch humor, and satire has a tendency to get old |
2025-05-02 22:40:01 +0200 | <hellwolf> | too bad, I can't run with NixOS what I just bought and downloaded. will just touch it with mouse cursor for now. |
2025-05-02 22:40:25 +0200 | traxex | (traxex@user/traxex) (Ping timeout: 252 seconds) |
2025-05-02 22:41:19 +0200 | alt-crns | (~crns@p200300f1171e03c029e61908ecaeb223.dip0.t-ipconnect.de) |
2025-05-02 22:41:20 +0200 | crns | (~crns@user/crns) (Read error: Connection reset by peer) |
2025-05-02 22:41:37 +0200 | <EvanR> | I tried to run it with dosbox and it didn't work either |
2025-05-02 22:41:45 +0200 | <haskellbridge> | <sm> Liamzee let us know what OrboROS is like if you play it |
2025-05-02 22:41:46 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-05-02 22:42:19 +0200 | <haskellbridge> | <Liamzee> don't have time :( |
2025-05-02 22:42:30 +0200 | <haskellbridge> | <Liamzee> i still think that Haskell games seem better than Rust's |
2025-05-02 22:42:31 +0200 | <haskellbridge> | <sm> s/Liamzee/anyone/ |
2025-05-02 22:44:29 +0200 | <hellwolf> | Ask your users to buy a bigger computer with more memory and faster CPU - An advise from a ex-C++ user |
2025-05-02 22:44:40 +0200 | <haskellbridge> | <sm> huh, more at https://haskell-game.dev/games.html I haven't seen |
2025-05-02 22:47:11 +0200 | <hellwolf> | Rust is anti-capitalistic movement, don't fix hardware manufacturers' sloppiness without them paying you. Use Haskell to get your mental sanity back and let hardware people fix the limitations :p |
2025-05-02 22:47:37 +0200 | hellwolf | certainly reached Friday peak. Duck now. |
2025-05-02 22:48:11 +0200 | <m15k47on1c> | Is there something close to SDL in Haskell? Pure haskell? No SDL bidings? |
2025-05-02 22:52:42 +0200 | takuan | (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection) |
2025-05-02 22:53:28 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-05-02 22:54:09 +0200 | <haskellbridge> | <sm> https://hackage.haskell.org/packages/search?terms=sdl |
2025-05-02 22:54:25 +0200 | <haskellbridge> | <sm> oh I see.. gloss, maybe |
2025-05-02 22:55:44 +0200 | <int-e> | What's the reason to avoid SDL or other C library bindings? |
2025-05-02 22:56:48 +0200 | <haskellbridge> | <Liamzee> sdl2 at least is broken in recent versions on windows, msys2 |
2025-05-02 22:57:08 +0200 | <haskellbridge> | <Liamzee> msys2, unless you can find older versions, won't compile due to GHC on Windows not supporting stack protector |
2025-05-02 22:57:15 +0200 | <haskellbridge> | <Liamzee> erm, excuse me, sdl2 |
2025-05-02 22:57:31 +0200 | <haskellbridge> | <Liamzee> you need the older msys2 package for sdl2 to compile as newer versions require stack protector |
2025-05-02 22:57:42 +0200 | <haskellbridge> | <sm> and what's the status / pureness of monomer ? |
2025-05-02 22:57:56 +0200 | <haskellbridge> | <Liamzee> monomer's on sdl2 |
2025-05-02 22:58:11 +0200 | <haskellbridge> | <Liamzee> it runs on all platforms (i think) other than windows due to the stack protector issue |
2025-05-02 22:58:26 +0200 | <int-e> | monomer uses sdl2 as a dependency. gloss uses GLFW |
2025-05-02 22:58:52 +0200 | <haskellbridge> | <Liamzee> this version MIGht work, i haven't tested it as i no longer have a windows machine |
2025-05-02 22:58:54 +0200 | <haskellbridge> | <Liamzee> https://cygwin.com/packages/summary/mingw64-x86_64-SDL2-src.html |
2025-05-02 22:58:58 +0200 | <EvanR> | this is haskell, we don't require C libraries be rewritten in haskell before using them |
2025-05-02 23:00:31 +0200 | <haskellbridge> | <sm> m15k47on1c and there's FunGEn, based on opengl |
2025-05-02 23:00:40 +0200 | <int-e> | https://hackage.haskell.org/package/xhb is one thing I can readily think of that is very low-level windowing related but not binding an existing C library. what was that site for looking up reverse dependencies on hackage? |
2025-05-02 23:01:06 +0200 | <haskellbridge> | <Liamzee> evanr: I think the real reason I think Haskell games are better than Rust games is that Haskell games are, well, limited, and also the skills needed to make a Haskell game are relatively rare |
2025-05-02 23:01:09 +0200 | <haskellbridge> | <sm> it's built in to hackage now.. but https://packdeps.haskellers.com |
2025-05-02 23:01:24 +0200 | <EvanR> | that sounds like labor theory of game value |
2025-05-02 23:01:28 +0200 | <haskellbridge> | <Liamzee> so the games people do make seem to have had much more love than the Rust counterparts, quite a few on the Rust games list feel like someone was trying to spam an app store |
2025-05-02 23:01:41 +0200 | alt-crns | (~crns@p200300f1171e03c029e61908ecaeb223.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-05-02 23:01:46 +0200 | <EvanR> | the more work it took to make the game, get to the of being able to make the game the way they did, the better the game is? |
2025-05-02 23:01:53 +0200 | <int-e> | And FunGEn binds GLUT for window creation. It's almost as if nobody really wants to reimplement the low-level stuff when an existing C library already does it well enough :P |
2025-05-02 23:01:55 +0200 | <EvanR> | get to the point* |
2025-05-02 23:02:35 +0200 | <haskellbridge> | <Liamzee> i don't believe in LTOV either! |
2025-05-02 23:02:44 +0200 | <int-e> | (For OpenGL you have no choice anyway; the interface is a C API) |
2025-05-02 23:03:03 +0200 | <EvanR> | rewrite opengl in ~~rust~~ haskell! |
2025-05-02 23:03:06 +0200 | <haskellbridge> | <Liamzee> i'm just saying it's an expectations thing, it should be relatively more straightforward to make games in Rust |
2025-05-02 23:03:21 +0200 | <EvanR> | I don't see how you came to that conclusion |
2025-05-02 23:03:47 +0200 | <EvanR> | unless you maybe narrow down the scope of "game" which would easily exclude rust in the process |
2025-05-02 23:04:58 +0200 | <int-e> | sm: Built in, hmm. Oh there it is, just a bit hard to discover. https://hackage.haskell.org/package/xhb/reverse says that there are 2 reverse deps and then lists one called `robot`. |
2025-05-02 23:06:05 +0200 | haskellbridge | sm looked for a rust games list, found https://github.com/rust-unofficial/awesome-rust?tab=readme-ov-file#games and https://itch.io/games/made-with-rust |
2025-05-02 23:06:28 +0200 | <int-e> | In contrast, the X11 bindings have 37 reverse deps. |
2025-05-02 23:06:54 +0200 | <EvanR> | roguelike games, well met |