2025/11/21

2025-11-21 00:02:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-11-21 00:06:14 +0100xff0x(~xff0x@2405:6580:b080:900:8837:488e:4fa1:2e) (Ping timeout: 260 seconds)
2025-11-21 00:07:57 +0100williu5(~williu5@user/williu5) (Quit: WeeChat 4.7.1)
2025-11-21 00:09:39 +0100Pixi`Pixi
2025-11-21 00:10:19 +0100tromp(~textual@2001:1c00:3487:1b00:e845:fcad:fefd:4441) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 00:13:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 00:17:00 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-11-21 00:18:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 00:19:29 +0100xff0x(~xff0x@2405:6580:b080:900:8837:488e:4fa1:2e)
2025-11-21 00:20:18 +0100tromp(~textual@2001:1c00:3487:1b00:e845:fcad:fefd:4441)
2025-11-21 00:20:47 +0100Googulator2(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 00:20:47 +0100Googulator87(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 00:24:26 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-11-21 00:28:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 00:30:44 +0100tromp(~textual@2001:1c00:3487:1b00:e845:fcad:fefd:4441) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 00:33:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 00:37:39 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-11-21 00:42:45 +0100vardhan(~vardhan@122.172.85.147)
2025-11-21 00:44:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 00:49:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 00:53:23 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc)
2025-11-21 00:54:48 +0100haskellbridge(~hackager@96.28.224.214) (Remote host closed the connection)
2025-11-21 00:55:52 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds)
2025-11-21 00:57:12 +0100haskellbridge(~hackager@96.28.224.214) hackager
2025-11-21 00:57:12 +0100ChanServ+v haskellbridge
2025-11-21 01:02:40 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds)
2025-11-21 01:03:34 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 01:08:28 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-11-21 01:08:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 01:12:21 +0100 <Square2> hackage package search seems OOS. Cloudflare?
2025-11-21 01:15:54 +0100karenw(~karenw@user/karenw) karenw
2025-11-21 01:17:25 +0100karenw(~karenw@user/karenw) (Client Quit)
2025-11-21 01:17:37 +0100karenw(~karenw@user/karenw) karenw
2025-11-21 01:19:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 01:20:42 +0100Googulator52(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 01:20:47 +0100Googulator87(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 01:22:00 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Ping timeout: 245 seconds)
2025-11-21 01:24:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-11-21 01:25:58 +0100williu5(~williu5@user/williu5) williu5
2025-11-21 01:27:29 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-11-21 01:30:20 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-11-21 01:34:19 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 265 seconds)
2025-11-21 01:34:23 +0100ljdarj(~Thunderbi@user/ljdarj) (Read error: Connection reset by peer)
2025-11-21 01:34:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 01:39:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-11-21 01:45:05 +0100xff0x(~xff0x@2405:6580:b080:900:8837:488e:4fa1:2e) (Ping timeout: 264 seconds)
2025-11-21 01:48:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 01:52:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-11-21 02:03:34 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 02:06:51 +0100omidmash6(~omidmash@user/omidmash) omidmash
2025-11-21 02:08:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 02:08:41 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 244 seconds)
2025-11-21 02:08:41 +0100omidmash6omidmash
2025-11-21 02:13:07 +0100vetkat(~vetkat@user/vetkat) (Quit: So long, and thanks for all the fish)
2025-11-21 02:15:52 +0100bggd(~bgg@2a01:e0a:819:1510:3835:521f:ca74:58be)
2025-11-21 02:18:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 02:22:41 +0100ert485(~ert485@207.195.86.11)
2025-11-21 02:22:48 +0100vetkat(~vetkat@user/vetkat) vetkat
2025-11-21 02:23:21 +0100ert485(~ert485@207.195.86.11) (Quit: Client closed)
2025-11-21 02:23:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 02:23:58 +0100mange(~mange@user/mange) mange
2025-11-21 02:24:51 +0100ert485(~ert485@207.195.86.11)
2025-11-21 02:27:13 +0100synchrom1(~john@2406:5a00:2412:2c00:394c:fa0b:5fac:c256) (Read error: Connection reset by peer)
2025-11-21 02:28:35 +0100synchromesh(~john@2406:5a00:2412:2c00:58f6:2167:890b:2ed2) synchromesh
2025-11-21 02:28:46 +0100acidjnk(~acidjnk@p200300d6e71719764cede409c055dd1e.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2025-11-21 02:28:54 +0100trickard(~trickard@cpe-90-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 02:29:06 +0100trickard_(~trickard@cpe-90-98-47-163.wireline.com.au)
2025-11-21 02:30:01 +0100ert485(~ert485@207.195.86.11) (Quit: Client closed)
2025-11-21 02:32:11 +0100califax(~califax@user/califx) (Remote host closed the connection)
2025-11-21 02:34:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 02:34:34 +0100ert485(~ert485@207.195.86.11)
2025-11-21 02:34:59 +0100ert485(~ert485@207.195.86.11) (Client Quit)
2025-11-21 02:35:21 +0100AlexNoo_(~AlexNoo@94.233.240.123)
2025-11-21 02:37:04 +0100AlexZenon(~alzenon@178.34.162.20) (Ping timeout: 256 seconds)
2025-11-21 02:38:51 +0100AlexNoo(~AlexNoo@178.34.162.20) (Ping timeout: 250 seconds)
2025-11-21 02:40:18 +0100peterbecich(~Thunderbi@172.222.148.214) (Quit: peterbecich)
2025-11-21 02:40:23 +0100aditya_an1l(~aditya_an@user/aditya-an1l:63825) aditya_an1l
2025-11-21 02:41:14 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-11-21 02:41:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-11-21 02:41:44 +0100itaipu(~itaipu@168.121.97.28) (Ping timeout: 240 seconds)
2025-11-21 02:42:56 +0100ubert1(~Thunderbi@178.165.175.248.wireless.dyn.drei.com) (Quit: ubert1)
2025-11-21 02:43:12 +0100ert485(~ert485@207.195.86.11)
2025-11-21 02:43:24 +0100ert485(~ert485@207.195.86.11) (Client Quit)
2025-11-21 02:43:26 +0100califax(~califax@user/califx) califx
2025-11-21 02:49:14 +0100 <chromoblob> [exa]: sorry, what? what's "act"?
2025-11-21 02:52:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 02:55:01 +0100itaipu(~itaipu@168.121.97.28) itaipu
2025-11-21 02:56:55 +0100AlexZenon(~alzenon@94.233.240.123)
2025-11-21 02:57:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 02:57:55 +0100mange(~mange@user/mange) (Ping timeout: 264 seconds)
2025-11-21 03:02:52 +0100trickard_(~trickard@cpe-90-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 03:03:05 +0100trickard_(~trickard@cpe-90-98-47-163.wireline.com.au)
2025-11-21 03:06:03 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc) (Remote host closed the connection)
2025-11-21 03:06:26 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc)
2025-11-21 03:07:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 03:08:25 +0100marlino(~marlino@96-8-193-95.block0.gvtc.com)
2025-11-21 03:12:08 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-11-21 03:13:19 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2025-11-21 03:20:43 +0100Googulator87(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 03:20:51 +0100Googulator52(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 03:23:08 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 03:26:02 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-11-21 03:27:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 03:29:44 +0100down200(~down200@shell.lug.mtu.edu) (Quit: ZNC - https://znc.in)
2025-11-21 03:32:11 +0100connrs(~connrs@user/connrs) (Read error: Connection reset by peer)
2025-11-21 03:32:23 +0100connrs(~connrs@user/connrs) connrs
2025-11-21 03:38:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 03:39:03 +0100 <sam113101> I'm not happy with the performance of haskell
2025-11-21 03:39:37 +0100 <sam113101> make code takes 30s to run will it takes 2s in most other languages
2025-11-21 03:40:17 +0100 <jreicher> How do you know the language is the problem and not your code?
2025-11-21 03:40:48 +0100 <monochrom> I'll just say I never had that problem, so I can't reproduce it.
2025-11-21 03:41:13 +0100 <monochrom> If it's 4 seconds vs 2 seconds, I had that usually, sure. Not 30 vs 2.
2025-11-21 03:41:30 +0100 <sam113101> I think I reproduced the same algorithm faithfully across the multiple languages
2025-11-21 03:41:40 +0100 <sam113101> but it might still be me indeed
2025-11-21 03:41:42 +0100 <fgarcia> this is after it has been compiled? :O
2025-11-21 03:42:48 +0100 <EvanR> it could very well be the case you translate an imperative algorithm to haskell using some bespoke monad and it slows down
2025-11-21 03:43:08 +0100 <EvanR> but if you translated haskell algorithms to C it would also slow down
2025-11-21 03:43:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-11-21 03:43:37 +0100 <fgarcia> and i think for haskell, correctness is the first thing that is implemented. speed is a bit of a bonus. for languages, assembly or C++ would probably be faster as i think they advertise execution speed
2025-11-21 03:43:43 +0100 <EvanR> it's programming language relativistic time dilation
2025-11-21 03:44:09 +0100 <monochrom> @quote monochrom einstein
2025-11-21 03:44:10 +0100 <lambdabot> monochrom says: einstein's theory implies that haskell cannot be faster than c
2025-11-21 03:44:38 +0100 <jreicher> sam113101: have you attempted any kind of explicit state change in the code?
2025-11-21 03:45:04 +0100 <sam113101> https://paste.centos.org/view/016a1c20
2025-11-21 03:45:10 +0100 <haskellbridge> <sm> sam113101: if you post it somewhere, like the discourse, people will show you how to make it fast
2025-11-21 03:45:20 +0100 <jreicher> hailstone numbers. :)
2025-11-21 03:47:19 +0100 <sam113101> the elixir version: https://paste.centos.org/view/raw/9ea27c56
2025-11-21 03:47:26 +0100 <haskellbridge> <sm> aha there it is. Im no expert at this but repeatedly getting the length of lists is wasteful
2025-11-21 03:47:31 +0100 <monochrom> Probably this: You think "length xs" takes O(1) time, my students do too. No, it takes Ω(length xs) time.
2025-11-21 03:47:53 +0100 <monochrom> Sometimes I even put that on exams.
2025-11-21 03:48:34 +0100 <monochrom> And some other times, "a student coded up `isEmpty xs = length xs == 0`, why is it stupid?"
2025-11-21 03:48:44 +0100 <jreicher> I think that's more because a list isn't just a list in other languages.
2025-11-21 03:50:02 +0100 <EvanR> strlen in C is also not O(1), which no one is surprised by
2025-11-21 03:50:37 +0100 <jreicher> That's a nice comparison. it's probably because they know what a string "really" is in C.
2025-11-21 03:50:59 +0100 <sam113101> well it's a linked list in haskell right? it's also a linked list in elixir
2025-11-21 03:51:11 +0100 <monochrom> And some other other times, I make a question that goes "design a list data structure that caches length, and code up prepend, append, etc."
2025-11-21 03:51:17 +0100 <jreicher> With extra book keeping which, if you also did in Haskell, would give you the performance you expect.
2025-11-21 03:52:02 +0100 <sam113101> oh really? didn't know about this "book keeping"
2025-11-21 03:52:17 +0100 <EvanR> the length of a list in elixir is also not O(1)
2025-11-21 03:52:32 +0100 <haskellbridge> <sm> why don't we have this magical bookkeeping 🧙♂️
2025-11-21 03:53:23 +0100 <EvanR> if you're comparing the elixir code performance to haskell, then make sure you're compiling with optimizations
2025-11-21 03:53:24 +0100 <sam113101> it was from my understanding that you had to walk through the entire list to count it
2025-11-21 03:53:29 +0100 <monochrom> Probably 90% of the time if you need O(1)-time length you also need other things such that vector is better for example.
2025-11-21 03:53:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 03:54:53 +0100 <EvanR> if that doesn't fix it, then start looking for unintended and unhelpful (and unoptimized away) laziness
2025-11-21 03:54:56 +0100 <monochrom> I don't think professional Haskellers use [] as a data structure at all. They use it as for loops. Then caching lengths becomes the stupid one.
2025-11-21 03:55:03 +0100 <EvanR> since stuff like elixir doesn't have
2025-11-21 03:55:20 +0100 <EvanR> that
2025-11-21 03:55:47 +0100 <jreicher> Oh you're right. Elixir doesn't do this either. I didn't know.
2025-11-21 03:56:08 +0100jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-11-21 03:56:11 +0100 <probie> You're also calling `collatz` a lot of times; Your `maximumBy` will invoke it twice at each comparison
2025-11-21 03:56:31 +0100 <monochrom> or perhaps s/at all/seriously/ . E.g., short lists outside hotspots still happen.
2025-11-21 03:58:36 +0100 <EvanR> I'm kind of surprised the elixir code doesn't stack over flow with that kind of eager evaluation and recursion
2025-11-21 03:58:45 +0100 <jreicher> sam113101: why are you computing (and keeping) the chain? Why not just do the count as you go?
2025-11-21 03:58:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 03:58:54 +0100 <haskellbridge> <sm> you could add trace logging to both and it might show how much more work the haskell is doing
2025-11-21 03:59:07 +0100 <haskellbridge> <sm> also you could profile it
2025-11-21 03:59:18 +0100 <EvanR> yes there are more efficient ways to do this but the idea was the compare the "same algorithm" (ignoring the difference in evaluation strategy) in the two languages
2025-11-21 03:59:22 +0100 <EvanR> which we haven't actually seen yet
2025-11-21 03:59:25 +0100 <sam113101> jreicher: that's the way I've done it the first time and now I'm comparing languages/runtimes with the same algorithm
2025-11-21 03:59:33 +0100 <EvanR> show the haskell code
2025-11-21 04:00:04 +0100 <fgarcia> for the clauses, i wasn't sure what it did at first. you might like 'collatzChain lst@(1:_) = lst' as a pattern match
2025-11-21 04:00:07 +0100 <monochrom> I do wish GHC allowed multiple-module files.
2025-11-21 04:00:28 +0100 <monochrom> or any Haskell implementation
2025-11-21 04:01:47 +0100 <EvanR> on line 10 in the haskell version, you should explicitly evaluate nextCollatz x before prepending it to the list
2025-11-21 04:02:02 +0100 <EvanR> otherwise you're tacking on a thunk that will be evaluated later
2025-11-21 04:02:11 +0100 <EvanR> which has a cost and is unnecessary
2025-11-21 04:03:10 +0100 <EvanR> this would be automatic in elixir
2025-11-21 04:03:10 +0100 <probie> monochrom: I think it does, via bkp files (if that hasn't been removed yet)
2025-11-21 04:03:11 +0100 <fgarcia> oh that might be something like flip (:) lst $! nextCollatz x
2025-11-21 04:03:42 +0100 <monochrom> Probably not. the "x==1" test that happens right away will evaluate it. With -O1, the strictness analyzer will notice that and kill the laziness altogether. We can check this...
2025-11-21 04:03:44 +0100 <jreicher> EvanR: how is that automatic in Elixir?
2025-11-21 04:03:55 +0100 <EvanR> it's an eager language
2025-11-21 04:04:06 +0100 <EvanR> monochrom, oh...
2025-11-21 04:04:06 +0100 <jreicher> Oh. :)
2025-11-21 04:04:45 +0100 <EvanR> still worth a shot because the field is full of dead attempts to predict what GHC does
2025-11-21 04:05:58 +0100 <EvanR> I refuse to say more until I see the properly
2025-11-21 04:06:08 +0100 <EvanR> evaluation
2025-11-21 04:06:20 +0100 <EvanR> I refuse to say more until I see the two programs properly compared
2025-11-21 04:07:01 +0100 <jreicher> I also have no idea how much static analysis either language can do; they might figure out the list is actually discarded.
2025-11-21 04:07:46 +0100 <jreicher> And for that reason I really wouldn't code this with a list.
2025-11-21 04:08:29 +0100 <fgarcia> i think ghc might be detecting a lot of things. it would warn me about changing 'collatzChain lst@(x:xs)' to 'collatzChain lst@(x:_)' because xs it not used
2025-11-21 04:09:15 +0100 <c_wraith> It's worth spending some time learning about things that are easy to detect vs things that are hard to detect.
2025-11-21 04:09:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 04:09:30 +0100 <c_wraith> It's easy to detect a symbol is bound and not used.
2025-11-21 04:09:59 +0100 <c_wraith> It's a lot harder to do flow analysis to determine usage patterns across recursive calls
2025-11-21 04:10:00 +0100 <monochrom> Is it just because GHC uses multi-precision integers and Elixir uses 32-bit or 64-bit?
2025-11-21 04:10:30 +0100 <EvanR> xs not used, it's not even clear how it could compile that in any other way than "not"
2025-11-21 04:10:59 +0100 <probie> monochrom: I know this isn't actually what you want, but https://paste.tomsmeding.com/oqM6JwKf
2025-11-21 04:11:33 +0100 <fgarcia> making a collatzChain' with an accumulator might speed things up but i am not sure
2025-11-21 04:11:37 +0100 <EvanR> elixir's "int" or whatever it's called is notionally unlimited precision
2025-11-21 04:12:05 +0100 <EvanR> and does collatz grow large enough to matter (and leave the small int case of Integer's backend)
2025-11-21 04:12:11 +0100 <monochrom> Oh I didn't know that backpack can do that. :)
2025-11-21 04:14:41 +0100 <monochrom> Yikes, core says not evaluated until next time it hits the x==1 test.
2025-11-21 04:15:08 +0100 <EvanR> it could be worse
2025-11-21 04:15:11 +0100 <monochrom> Although, I would bet it only causes 2->4 not 2->30.
2025-11-21 04:15:31 +0100 <sam113101> I got it dows to 6s with -O2
2025-11-21 04:15:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-11-21 04:16:01 +0100 <EvanR> that was my first suggestion! smh
2025-11-21 04:17:02 +0100 <Leary> sam113101: Next suggestion: write some type signatures. Believe it or not, they make your code faster.
2025-11-21 04:17:10 +0100 <monochrom> What is Enum.count in Elixir?
2025-11-21 04:17:24 +0100 <EvanR> for lists it will count the elements
2025-11-21 04:17:32 +0100 <EvanR> of a linked list
2025-11-21 04:18:40 +0100 <Leary> (the compiler can infer types, but that doesn't mean it can read your mind to infer the type you wanted to use)
2025-11-21 04:19:38 +0100fgarciahides code without signatures
2025-11-21 04:20:06 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 265 seconds)
2025-11-21 04:20:39 +0100Googulator87(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 04:20:44 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-11-21 04:20:44 +0100Googulator96(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 04:20:46 +0100 <sam113101> Executed in 1.36 secs
2025-11-21 04:20:50 +0100 <sam113101> wow it really did
2025-11-21 04:20:58 +0100 <EvanR> I delete all my type signatures, dare the compiler to do what I mean, without even my knowing what I mean
2025-11-21 04:21:41 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
2025-11-21 04:22:18 +0100 <monochrom> Is that just because you say "Int" not "Integer"?
2025-11-21 04:22:48 +0100 <sam113101> I did use Int, not sure if the compiler defaulted to Integer?
2025-11-21 04:23:05 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-11-21 04:23:13 +0100 <monochrom> Without type signature, everything resolves to Integer. And monomorphized. (I checked the Core code.)
2025-11-21 04:23:23 +0100 <monochrom> Yes default Integer.
2025-11-21 04:24:34 +0100 <fgarcia> Do as I say. delete cosmic!
2025-11-21 04:25:15 +0100 <monochrom> "permission denied"
2025-11-21 04:25:35 +0100 <monochrom> You have to say: sudo delete cosmic and make me a sandwich :)
2025-11-21 04:26:06 +0100 <fgarcia> gah why is it so hard to install steam
2025-11-21 04:26:39 +0100 <monochrom> Fun fact: Curry has Int, it already means multi-precision. There is no bounded integer type in Curry. :)
2025-11-21 04:27:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 04:29:10 +0100 <EvanR> bounded integer is a contradiction extraordinaire
2025-11-21 04:29:12 +0100 <monochrom> Also, Float is already double-precision, it is the only floating point type.
2025-11-21 04:29:21 +0100 <EvanR> not to be confused with modular integers
2025-11-21 04:29:35 +0100 <EvanR> or Fin n
2025-11-21 04:29:41 +0100 <EvanR> *nor
2025-11-21 04:30:14 +0100 <EvanR> the certain good applications that exist for single precision are sad
2025-11-21 04:30:21 +0100 <EvanR> with curry
2025-11-21 04:30:45 +0100 <EvanR> but going from 1/2 number types to any number of number types is definitely a jump
2025-11-21 04:31:01 +0100 <fgarcia> does Fractional work? i think it has Float and Double
2025-11-21 04:32:06 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-11-21 04:32:44 +0100annamalai(~annamalai@2409:4042:4e39:7842::9e0a:bf0a) (Read error: Connection reset by peer)
2025-11-21 04:32:58 +0100annamalai(~annamalai@2409:4042:4e39:7842::9e0a:bf0a) annamalai
2025-11-21 04:35:41 +0100 <monochrom> Fractional works but there is only one instance.
2025-11-21 04:36:33 +0100 <EvanR> > 100 / 3 :: Centi
2025-11-21 04:36:35 +0100 <lambdabot> 33.33
2025-11-21 04:36:45 +0100 <EvanR> we have more instances
2025-11-21 04:37:07 +0100trickard_trickard
2025-11-21 04:37:17 +0100qqe(~qqq@185.54.21.140)
2025-11-21 04:39:10 +0100 <monochrom> Yeah Haskell has more adoption and more contributors :)
2025-11-21 04:41:12 +0100 <EvanR> oh, curry has few instances just because lack of effort, and not to simplify things?
2025-11-21 04:42:04 +0100aditya_an1l(~aditya_an@user/aditya-an1l:63825) (Ping timeout: 264 seconds)
2025-11-21 04:42:21 +0100 <monochrom> I'm over-philosophizing and over-economicsizing it, but scarce resource and simplifying things are highly correlated! :)
2025-11-21 04:42:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 04:43:39 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-11-21 04:43:54 +0100 <monochrom> But, say, very fantasizingly, if one day some big shot started using Curry for GPUs, I'm sure single-precision float would be added right away. :)
2025-11-21 04:44:21 +0100trickard(~trickard@cpe-90-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 04:44:25 +0100 <monochrom> So it's like "no one needs anything else, let's chill".
2025-11-21 04:45:42 +0100 <EvanR> maybe a compiler flag which changes the backend from double to float
2025-11-21 04:46:01 +0100 <EvanR> choose your own semantics
2025-11-21 04:46:28 +0100 <monochrom> heh
2025-11-21 04:46:52 +0100trickard(~trickard@cpe-90-98-47-163.wireline.com.au)
2025-11-21 04:47:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 04:47:28 +0100 <monochrom> You are evil. The last thing we need is an ecosystem that fulfills the prophecy "floating point semantics is unpredictable".
2025-11-21 04:48:57 +0100marlino(~marlino@96-8-193-95.block0.gvtc.com) (Quit: WeeChat 4.7.1)
2025-11-21 04:49:59 +0100marlino(~marlino@96-8-193-95.block0.gvtc.com)
2025-11-21 04:52:17 +0100trickard(~trickard@cpe-90-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 04:55:26 +0100 <EvanR> we don't need to limit our evil choices to floating point
2025-11-21 04:55:52 +0100 <EvanR> select what integers mean, select what function application means, select what defining equations means
2025-11-21 04:57:42 +0100trickard_(~trickard@cpe-90-98-47-163.wireline.com.au)
2025-11-21 04:58:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 05:03:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 05:05:43 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
2025-11-21 05:06:49 +0100 <davean> EvanR: we do select what integer means every time we compile Haskell.
2025-11-21 05:08:19 +0100 <EvanR> ummmmmmmmmmm
2025-11-21 05:08:39 +0100 <EvanR> GMP and the other implementation of Integer ought to morally result in the same semantics?
2025-11-21 05:09:02 +0100 <EvanR> for all practical purposes a platonic ideal
2025-11-21 05:09:49 +0100 <haskellbridge> <Zemyla> We need a non-GMP Integer implementation that uses ByteArrays like GMP.
2025-11-21 05:13:03 +0100 <davean> EvanR: morally, sure
2025-11-21 05:13:27 +0100 <davean> IIRC they had some variation on how they errored with improper operations
2025-11-21 05:13:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 05:15:20 +0100 <EvanR> that's the incentive to wrote error free code
2025-11-21 05:15:56 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-11-21 05:16:27 +0100 <davean> Tell that to Vincent
2025-11-21 05:17:08 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-11-21 05:18:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-11-21 05:20:12 +0100werneta(~werneta@71.83.160.242) werneta
2025-11-21 05:20:44 +0100Googulator46(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 05:20:45 +0100Googulator96(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 05:22:39 +0100 <EvanR> Divide by zero -- You can't divide by zero on a computer. Some kind of math thing. Don't worry too much about understanding why. Just don't do it. (EXAPUNKS zine 1 page 12)
2025-11-21 05:24:01 +0100 <fgarcia> :D
2025-11-21 05:27:29 +0100 <chromoblob> AArch64 gives you 0 as result of division by zero. i also wanted to make it like this in my language (because dividing 0 by anything gives 0, so 0 / 0 should be 0 too, and since x / 0 for x ≠ 0 is undefined, might as well just check for dividend = 0, regarding other cases as UB)
2025-11-21 05:27:47 +0100 <chromoblob> i mean, in integer division
2025-11-21 05:28:52 +0100 <haskellbridge> <Zemyla> x / 0 should be 0 if division is total, because 0 is the pseudoinverse of zero. The pseudoinverse of x is y such that xyx = x and yxy = y.
2025-11-21 05:28:59 +0100 <EvanR> it is "interesting" that you would mix a nonsense result on one hand with undefined behavior on the other
2025-11-21 05:29:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 05:29:14 +0100Dhark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net)
2025-11-21 05:29:25 +0100 <EvanR> if you are going to make it total make it total really and define all behavior
2025-11-21 05:29:28 +0100 <jreicher> EvanR what's the nonsense result?
2025-11-21 05:29:33 +0100 <EvanR> 0 / 0 = 0
2025-11-21 05:29:39 +0100 <geekosaur> Zemyla, I actually started work on that (adding bsdmp as a backend), but decided it would be easier to port its multiplication optimizations than to work around its violation of ghc bignum invariants
2025-11-21 05:29:57 +0100 <jreicher> EvanR what should it be? (I'm not saying it should be 0; I'm just curious what you think)
2025-11-21 05:30:06 +0100 <geekosaur> haven't really had time to work on it though
2025-11-21 05:30:17 +0100 <EvanR> it should clearly be 7 because this one time that would make sense
2025-11-21 05:30:22 +0100 <chromoblob> <s>0.5</s>
2025-11-21 05:30:27 +0100 <EvanR> lol
2025-11-21 05:30:51 +0100 <fgarcia> oh, somewhere i have written 0.0 / 0.0 because i wanted Not a Number as a result
2025-11-21 05:31:04 +0100 <jreicher> But it is a number. You just don't know which one. :p
2025-11-21 05:31:18 +0100 <EvanR> that be the realm of float "logic"
2025-11-21 05:31:50 +0100 <EvanR> they should have made a signed NaN in case you divide negative zero by zero
2025-11-21 05:31:57 +0100marlino(~marlino@96-8-193-95.block0.gvtc.com) (Quit: WeeChat 4.7.1)
2025-11-21 05:32:09 +0100Shark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net) (Ping timeout: 244 seconds)
2025-11-21 05:32:40 +0100 <jreicher> Signed zero in the first place should not be a thing. :(
2025-11-21 05:32:45 +0100 <EvanR> lol
2025-11-21 05:33:40 +0100 <EvanR> for numbers of the form mantissa times 2^e signed zero isn't a thing xD
2025-11-21 05:33:47 +0100 <EvanR> or any kind of zero for that matter
2025-11-21 05:33:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-11-21 05:34:50 +0100 <EvanR> whatever you need to do do it in the range 1 <= x < 2
2025-11-21 05:34:59 +0100 <fgarcia> i am not smart. would they have thought it would be somehow useful for limits approaching from >0 and <0 ?
2025-11-21 05:36:40 +0100 <geekosaur> actually it was bsdnt, which seems to have disappeared
2025-11-21 05:36:42 +0100 <EvanR> a negative zero happens when a computation would be negative but too small to represent
2025-11-21 05:37:05 +0100werneta(~werneta@71.83.160.242) (Quit: Lost terminal)
2025-11-21 05:37:11 +0100 <geekosaur> as apparently has libtommath which was my first idea (then found something pointing to bsdnt instead)
2025-11-21 05:37:11 +0100 <EvanR> so you end up with partial information
2025-11-21 05:37:54 +0100 <geekosaur> fgarcia, yes, and it happens when you're working with trig functions in a plane
2025-11-21 05:37:55 +0100 <EvanR> by the same logic negative NaN accomplishes the same thing
2025-11-21 05:38:05 +0100Pseudonym(~Pseudonym@194-223-46-47.tpgi.com.au) Pseudonym
2025-11-21 05:38:09 +0100 <geekosaur> losing the "negative" switches which quadrant you're in
2025-11-21 05:38:26 +0100 <fgarcia> i think wikipedia has some writing about this
2025-11-21 05:38:51 +0100 <fgarcia> "It is claimed that the inclusion of signed zero in IEEE 754 makes it much easier to achieve numerical accuracy in some critical problems, in particular when computing with complex elementary functions. On the other hand, the concept of signed zero runs contrary to the usual assumption made in mathematics that negative zero is the same value as zero. Representations that allow negative zero can be
2025-11-21 05:38:53 +0100 <fgarcia> a source of errors in programs, if software developers do not take into account that while the two zero representations behave as equal under numeric comparisons, they yield different results in some operations."
2025-11-21 05:40:02 +0100 <jreicher> That's really interesting. I object to it on mathematically purist grounds, which I'm only half-serious about, but that actually looks like it matters.
2025-11-21 05:40:04 +0100 <chromoblob> you should never test "real" numbers for equality, it's not meaningful in computers
2025-11-21 05:40:13 +0100 <EvanR> attempting to use math on a computer is a source of errors in programs. avoidance recommended
2025-11-21 05:40:33 +0100 <EvanR> chromoblob, this is false for floats, and is the correct thing to do in some cases
2025-11-21 05:40:47 +0100 <EvanR> exact real numbers, yes
2025-11-21 05:44:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 05:48:39 +0100Pseudonym(~Pseudonym@194-223-46-47.tpgi.com.au) (Quit: Leaving)
2025-11-21 05:49:06 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 05:50:36 +0100democritus(~democritu@2600:1700:ba69:10:ad1b:59dc:c894:12ec)
2025-11-21 05:53:31 +0100vardhan(~vardhan@122.172.85.147) (Ping timeout: 246 seconds)
2025-11-21 05:55:06 +0100trickard_trickard
2025-11-21 06:00:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 06:04:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-11-21 06:07:03 +0100vardhan(~vardhan@122.172.85.147)
2025-11-21 06:15:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 06:20:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-11-21 06:22:09 +0100 <monochrom> EvanR: Haha define what function application means. I like that. I propose 5 choices: call by value left-to-right, call by value right-to-left, call by need (lazy), call by name, TeX-like macro
2025-11-21 06:23:19 +0100 <monochrom> (Difference between lazy and by name: lazy memoizes, by-name doesn't.)
2025-11-21 06:24:18 +0100 <monochrom> (Difference between by-name and macro expansion: The latter suffers variable capture issues!)
2025-11-21 06:31:06 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 06:31:15 +0100weary-traveler(~user@user/user363627) user363627
2025-11-21 06:34:40 +0100Square3(~Square@user/square) Square
2025-11-21 06:35:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 06:37:52 +0100Square2(~Square4@user/square) (Ping timeout: 255 seconds)
2025-11-21 06:39:40 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 264 seconds)
2025-11-21 06:45:54 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-11-21 06:46:21 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-11-21 06:46:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 06:53:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-21 06:55:24 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-11-21 06:55:30 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-11-21 07:04:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 07:08:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-11-21 07:12:13 +0100michalz(~michalz@185.246.207.203)
2025-11-21 07:14:32 +0100trickard(~trickard@cpe-90-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 07:14:46 +0100trickard_(~trickard@cpe-90-98-47-163.wireline.com.au)
2025-11-21 07:19:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 07:20:25 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2025-11-21 07:20:43 +0100Googulator12(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 07:20:45 +0100Googulator46(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 07:22:37 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-11-21 07:24:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 07:25:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 07:30:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 07:30:37 +0100Guest9999(~democritu@2600:1700:ba69:10:1d61:8aca:ac7c:ea23)
2025-11-21 07:33:34 +0100djspacewhale(~djspacewh@user/djspacewhale) djspacewhale
2025-11-21 07:34:53 +0100democritus(~democritu@2600:1700:ba69:10:ad1b:59dc:c894:12ec) (Ping timeout: 264 seconds)
2025-11-21 07:35:00 +0100Guest9999democritus
2025-11-21 07:41:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 07:45:55 +0100Square3(~Square@user/square) (Ping timeout: 264 seconds)
2025-11-21 07:46:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 07:51:09 +0100Googulator12(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 07:51:10 +0100Googulator72(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 07:55:36 +0100djspacewhale(~djspacewh@user/djspacewhale) (Remote host closed the connection)
2025-11-21 07:56:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 07:56:43 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-11-21 07:57:54 +0100bggd(~bgg@2a01:e0a:819:1510:3835:521f:ca74:58be) (Remote host closed the connection)
2025-11-21 08:00:45 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 245 seconds)
2025-11-21 08:01:03 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-11-21 08:01:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-11-21 08:01:31 +0100karenw(~karenw@user/karenw) (Ping timeout: 264 seconds)
2025-11-21 08:03:32 +0100democritus(~democritu@2600:1700:ba69:10:1d61:8aca:ac7c:ea23) (Quit: Leaving)
2025-11-21 08:09:04 +0100ft(~ft@p4fc2aaeb.dip0.t-ipconnect.de) (Quit: leaving)
2025-11-21 08:12:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 08:12:40 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds)
2025-11-21 08:12:55 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-11-21 08:16:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-21 08:27:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 08:32:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 08:34:52 +0100annamalai(~annamalai@2409:4042:4e39:7842::9e0a:bf0a) (Ping timeout: 264 seconds)
2025-11-21 08:40:50 +0100Googulator83(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 08:41:10 +0100Googulator72(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 08:43:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 08:45:01 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-11-21 08:48:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 08:55:08 +0100annamalai(~annamalai@157.32.221.227) annamalai
2025-11-21 08:55:32 +0100elbartol(~user@user/elbartol) (Remote host closed the connection)
2025-11-21 08:58:01 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 265 seconds)
2025-11-21 08:58:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 08:58:40 +0100 <[exa]> chromoblob: it looked like they don't want the patch so I wanted to have more folks coming in there :D
2025-11-21 08:59:58 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-11-21 09:03:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-11-21 09:05:03 +0100 <jreicher> sam113101: this is the kind of thing I had in mind before
2025-11-21 09:05:05 +0100 <jreicher> https://paste.centos.org/view/783848f1
2025-11-21 09:10:31 +0100annamalai(~annamalai@157.32.221.227) (Remote host closed the connection)
2025-11-21 09:10:45 +0100Googulator83(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Quit: Client closed)
2025-11-21 09:10:47 +0100Googulator66(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu)
2025-11-21 09:10:50 +0100annamalai(~annamalai@157.32.221.227) annamalai
2025-11-21 09:12:05 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 264 seconds)
2025-11-21 09:12:49 +0100 <fgarcia> looks like it could be fast :O
2025-11-21 09:13:27 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-11-21 09:13:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 09:15:29 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-11-21 09:18:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-11-21 09:21:31 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-11-21 09:26:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 09:33:42 +0100trickard_trickard
2025-11-21 09:34:21 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-11-21 09:34:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 09:41:51 +0100Googulator66(~Googulato@2a01-036d-0106-0231-4475-80b4-5cdc-43d6.pool6.digikabel.hu) (Ping timeout: 250 seconds)
2025-11-21 09:44:21 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-11-21 09:44:40 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-11-21 09:45:19 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2025-11-21 09:45:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 09:45:58 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 09:48:52 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-11-21 09:49:07 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 255 seconds)
2025-11-21 09:52:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-11-21 09:54:37 +0100fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-11-21 09:57:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 10:13:10 +0100acidjnk(~acidjnk@p200300d6e717197425fbe5e3285ef130.dip0.t-ipconnect.de) acidjnk
2025-11-21 10:15:07 +0100mesaoptimizer(~mesa@user/PapuaHardyNet) (Quit: WeeChat 4.0.4)
2025-11-21 10:16:08 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-11-21 10:21:21 +0100jreicher(~user@user/jreicher) (Ping timeout: 252 seconds)
2025-11-21 10:22:43 +0100jreicher(~user@user/jreicher) jreicher
2025-11-21 10:34:16 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
2025-11-21 10:40:01 +0100__monty__(~toonn@user/toonn) toonn
2025-11-21 10:44:51 +0100synchromesh(~john@2406:5a00:2412:2c00:58f6:2167:890b:2ed2) (Read error: Connection reset by peer)
2025-11-21 10:46:18 +0100synchromesh(~john@2406:5a00:2412:2c00:58f6:2167:890b:2ed2) synchromesh
2025-11-21 10:50:38 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-11-21 10:53:15 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 245 seconds)
2025-11-21 10:56:00 +0100weary-traveler(~user@user/user363627) (Ping timeout: 252 seconds)
2025-11-21 10:56:45 +0100weary-traveler(~user@user/user363627) user363627
2025-11-21 10:58:16 +0100fp(~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 244 seconds)
2025-11-21 11:00:36 +0100fp(~Thunderbi@130.233.70.141) fp
2025-11-21 11:01:04 +0100fp(~Thunderbi@130.233.70.141) (Client Quit)
2025-11-21 11:01:17 +0100fp(~Thunderbi@130.233.70.141) fp
2025-11-21 11:01:31 +0100fp(~Thunderbi@130.233.70.141) (Client Quit)
2025-11-21 11:01:47 +0100fp(~Thunderbi@130.233.70.141) fp
2025-11-21 11:10:00 +0100 <haskellbridge> <Morj> I have an intrusive thought to build servant combinators to support gemini protocol
2025-11-21 11:10:22 +0100 <haskellbridge> <Morj> I see the gemini space is not really explored on hackage
2025-11-21 11:17:10 +0100 <[exa]> gemini is the new gopher?
2025-11-21 11:17:23 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-21 11:18:47 +0100chele(~chele@user/chele) chele
2025-11-21 11:21:44 +0100 <[exa]> anyway is there a lowlevel server for that (like warp)? would be great
2025-11-21 11:22:42 +0100p3n_(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.10.1 - https://znc.in)
2025-11-21 11:24:05 +0100 <[exa]> ah ok there's gemini-router which looks pretty much like we can do scotty stuff on that
2025-11-21 11:24:13 +0100 <[exa]> coool.
2025-11-21 11:25:42 +0100fp(~Thunderbi@130.233.70.141) (Ping timeout: 252 seconds)
2025-11-21 11:28:16 +0100 <[exa]> I love the client certificate proliferation there, that's very nice.
2025-11-21 11:29:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 11:29:39 +0100trickard___(~trickard@cpe-88-98-47-163.wireline.com.au)
2025-11-21 11:31:17 +0100trickard(~trickard@cpe-90-98-47-163.wireline.com.au) (Ping timeout: 264 seconds)
2025-11-21 11:31:21 +0100 <haskellbridge> <Morj> Yeah, gemini and gopher share some lineage and proponents. I'm too zoomer to know more
2025-11-21 11:31:51 +0100p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) p3n
2025-11-21 11:32:24 +0100 <haskellbridge> <Morj> Wait, I didn't know gemini appeared in 2019
2025-11-21 11:34:57 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-11-21 11:34:58 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-11-21 11:34:58 +0100haritz(~hrtz@user/haritz) haritz
2025-11-21 11:36:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-11-21 11:37:58 +0100 <[exa]> yeah it's super new
2025-11-21 11:38:48 +0100Googulator66(~Googulato@team.broadbit.hu)
2025-11-21 11:40:48 +0100 <probie> I like Gemini in theory, but the things I'd like to see use it never will
2025-11-21 11:42:26 +0100 <haskellbridge> <Morj> Some blogs I follow have a gemini mirror. Which I never open
2025-11-21 11:43:21 +0100 <haskellbridge> <Morj> Gemini looks like a good transport for rss/atom, except a lot of rss readers rely on http response headers to know when to hit again, and gemini doesn't have headers
2025-11-21 11:44:31 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 11:47:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 11:47:54 +0100 <[exa]> like, ideally the rss/atom protocol would be itself aware of the fact that the rss has to be refreshed
2025-11-21 11:50:07 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-11-21 11:50:52 +0100trickard___(~trickard@cpe-88-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 11:51:05 +0100trickard_(~trickard@cpe-88-98-47-163.wireline.com.au)
2025-11-21 11:51:14 +0100 <yin> chromoblob: what's your view on 0^0 ?
2025-11-21 11:51:25 +0100 <chromoblob> yin: 1
2025-11-21 11:52:34 +0100 <jreicher> lim x->0 0^x
2025-11-21 11:53:04 +0100 <jreicher> (counterexample, not a definition)
2025-11-21 11:53:34 +0100 <[exa]> jreicher: counter-countered by `lim x->0 x^x` and `lim x->0 x^0`
2025-11-21 11:54:16 +0100 <jreicher> I didn't say 1 wasn't the limit in some situations. I'm just saying it's not the limit in all, so it can't be the definition.
2025-11-21 11:54:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 11:55:17 +0100 <chromoblob> 0^0 for me is simply the number of functions from bottom to bottom :)
2025-11-21 11:55:40 +0100 <[exa]> <3
2025-11-21 11:56:10 +0100 <lucabtz> chromoblob shouldnt it be the number of function from an empty set to an empty set?
2025-11-21 11:56:18 +0100 <lucabtz> but by that definition it would be 0
2025-11-21 11:56:40 +0100 <chromoblob> why zero? id is a correct example
2025-11-21 11:57:11 +0100 <lucabtz> a function from a set A to B is a subset of A x B with some properties
2025-11-21 11:57:19 +0100 <lucabtz> but {} x {} = {}
2025-11-21 11:57:25 +0100 <chromoblob> hmmmm
2025-11-21 11:57:33 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Remote host closed the connection)
2025-11-21 11:57:49 +0100 <lucabtz> well i suppose {} is a subset of {} x {}
2025-11-21 11:57:53 +0100 <lucabtz> so maybe 1
2025-11-21 11:57:56 +0100 <chromoblob> well, there you have it, {} is the function
2025-11-21 11:57:59 +0100 <lucabtz> is correct
2025-11-21 11:58:04 +0100 <lucabtz> yep
2025-11-21 11:58:16 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
2025-11-21 11:59:01 +0100kritzefitz(~kritzefit@debian/kritzefitz) kritzefitz
2025-11-21 11:59:07 +0100 <lucabtz> though i think it should be a non-epty subset
2025-11-21 11:59:49 +0100 <lucabtz> because if you take f:A -> B and A = B = {1}, the set of functions from A->B has has cardinality 1
2025-11-21 12:00:04 +0100 <lucabtz> but if {} is a function the you have two functions from A->B
2025-11-21 12:00:15 +0100 <yin> 0^0 would be Void -> Void and not () -> () right?
2025-11-21 12:00:25 +0100 <lucabtz> since A x B = {(1, 1)} you have both {} and {(1, 1)}
2025-11-21 12:00:27 +0100 <c_wraith> yes
2025-11-21 12:00:32 +0100 <chromoblob> yin: yes, () would correspond to 1
2025-11-21 12:01:01 +0100 <yin> and how many functions are there of the type Void -> Void?
2025-11-21 12:01:12 +0100EvanR_(~EvanR@user/evanr) EvanR
2025-11-21 12:01:25 +0100 <haskellbridge> <Morj> But how many functions are there from bottom to bottom? One or infinitely many?
2025-11-21 12:01:26 +0100 <chromoblob> lucabtz: which restrictions are there on the subset?
2025-11-21 12:01:32 +0100 <c_wraith> here's where things get annoying: you need to be more precise than "function"
2025-11-21 12:01:54 +0100 <chromoblob> Morj: one, because any two are indistinguishable
2025-11-21 12:02:01 +0100 <c_wraith> because there are multiple concepts of function, and a lot of the disagreement is coming from set theory vs domain theory
2025-11-21 12:02:36 +0100 <haskellbridge> <Morj> chromoblob: How extentional of you
2025-11-21 12:02:44 +0100fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-11-21 12:02:48 +0100 <lucabtz> chromoblob i think in general a subset of A x B is called a relation between A and B. for a function the relation has to assign a single element of B to each and every element of A
2025-11-21 12:02:51 +0100 <[exa]> :t id :: Void -> Void
2025-11-21 12:02:52 +0100 <lambdabot> Void -> Void
2025-11-21 12:03:02 +0100 <c_wraith> lucabtz: in set theory, yes. In domain theory?
2025-11-21 12:03:03 +0100mesaoptimizer(~user@user/PapuaHardyNet) PapuaHardyNet
2025-11-21 12:03:14 +0100 <lucabtz> which does exclude {} from the example of A = B = {1}
2025-11-21 12:03:28 +0100 <chromoblob> yeah, i wanted to lead to this
2025-11-21 12:03:30 +0100 <lucabtz> but does not exclude {} in the example A = B = {}
2025-11-21 12:03:34 +0100 <yin> does the Yoneda Lemma apply?
2025-11-21 12:03:41 +0100EvanR(~EvanR@user/evanr) (Ping timeout: 264 seconds)
2025-11-21 12:04:04 +0100califax(~califax@user/califx) (Ping timeout: 272 seconds)
2025-11-21 12:04:10 +0100 <lucabtz> chromoblob yep
2025-11-21 12:04:53 +0100 <c_wraith> Haskell is better modeled by domain theory than set theory, as it has explicit bottom values
2025-11-21 12:05:10 +0100 <yin> which is a mistake
2025-11-21 12:05:17 +0100 <yin> imo
2025-11-21 12:05:25 +0100 <lucabtz> c_wraith i see, i know nothing about domain theory though
2025-11-21 12:05:37 +0100 <probie> If you don't have an "at least as defined as" operator, are you really living?
2025-11-21 12:07:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 12:07:58 +0100 <c_wraith> So you get fun things like newtype Hyper a b = H { runH :: Hyper b a -> b }
2025-11-21 12:08:11 +0100 <c_wraith> which would be nonsensical in type theory
2025-11-21 12:08:14 +0100 <c_wraith> err, set theory
2025-11-21 12:08:24 +0100 <c_wraith> but it turns out to actually work in Haskell
2025-11-21 12:09:19 +0100Vajb(~Vajb@n6jd7kwb4e2quheg6tf-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds)
2025-11-21 12:09:32 +0100 <c_wraith> (you can use hyperfunctions to implement deforestation for zip, for instance)
2025-11-21 12:09:59 +0100Vajb(~Vajb@n4bl3ovzcj023yptes7-1.v6.elisa-mobile.fi)
2025-11-21 12:10:27 +0100 <lucabtz> you lost me
2025-11-21 12:11:57 +0100 <c_wraith> If you strip out the newtype wrappers, that type is like (((... -> b) -> a) -> b), with infinite recursion on right sides of the arrows.
2025-11-21 12:11:58 +0100 <__monty__> Is Void -> Void a problem for set theory? I can see how a "function" from a non-empty set to Void might be problematic. OTOH can't you say empty sets are not a thing because they're all inhabited by bottom?
2025-11-21 12:12:17 +0100trickard_trickard
2025-11-21 12:12:26 +0100califax(~califax@user/califx) califx
2025-11-21 12:12:44 +0100 <lucabtz> c_wraith right
2025-11-21 12:12:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 12:13:50 +0100 <lucabtz> but you stil lost me with domain theory because i have no idea what it is
2025-11-21 12:14:25 +0100 <lucabtz> but thx for the insights, very interesting
2025-11-21 12:15:24 +0100 <c_wraith> domain theory is... sort of adding infinite loops to functions, by introducing a bottom value to represent "this never completes"
2025-11-21 12:15:32 +0100 <c_wraith> It's much more precise than that.
2025-11-21 12:15:50 +0100 <c_wraith> But that's what it's going for.
2025-11-21 12:25:08 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 12:36:22 +0100jle`(~jle`@2603:8001:3b00:11:658b:1126:1485:2a54) (Ping timeout: 246 seconds)
2025-11-21 12:37:57 +0100jle`(~jle`@2603:8001:3b00:11:2f12:c034:12fc:8093) jle`
2025-11-21 12:43:48 +0100biberu(~biberu@user/biberu) biberu
2025-11-21 12:47:23 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 12:49:38 +0100califax(~califax@user/califx) (Remote host closed the connection)
2025-11-21 12:49:41 +0100bwe(~bwe@2a01:4f8:1c1c:4878::2) (Read error: Connection reset by peer)
2025-11-21 12:49:52 +0100bwe70296(~bwe@2a01:4f8:1c1c:4878::2) bwe
2025-11-21 12:50:02 +0100califax(~califax@user/califx) califx
2025-11-21 12:54:41 +0100down200(~down200@shell.lug.mtu.edu) down200
2025-11-21 13:00:58 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 256 seconds)
2025-11-21 13:08:39 +0100 <haskellbridge> <Morj> I have a promo code for a month of discord nitro: HPN5-7QGj-yp58-xZPT-Eu5R-W2ke - for anyone who's fast and wants
2025-11-21 13:10:16 +0100aditya_an1l(~aditya_an@user/aditya-an1l:63825) aditya_an1l
2025-11-21 13:17:13 +0100srazkvt(~sarah@user/srazkvt) srazkvt
2025-11-21 13:18:11 +0100 <chromoblob> that "Hyper" type looks like it could be used for games (in math sense)
2025-11-21 13:23:21 +0100xff0x(~xff0x@ai083123.d.east.v6connect.net)
2025-11-21 13:28:54 +0100fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
2025-11-21 13:36:06 +0100trickard(~trickard@cpe-88-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 13:36:18 +0100 <[exa]> any users of `pipes` here? Is the performance OK-ish if I have gazillions of very little pipe-ish operations glued together?
2025-11-21 13:36:19 +0100trickard_(~trickard@cpe-88-98-47-163.wireline.com.au)
2025-11-21 13:38:22 +0100fp(~Thunderbi@dhcp-86-136.eduroam.aalto.fi) fp
2025-11-21 13:39:44 +0100bwe70296(~bwe@2a01:4f8:1c1c:4878::2) (Read error: Connection reset by peer)
2025-11-21 13:41:57 +0100 <dminuoso> [exa]: "OK-ish" and "bazillion" are very subjective terms.
2025-11-21 13:42:03 +0100 <dminuoso> The answer is clearly "Yes, no, maybe"
2025-11-21 13:42:56 +0100 <dminuoso> From what I read, pipes is on the faster side of things, but conduit/streaming generally are much faster.
2025-11-21 13:43:17 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-11-21 13:44:25 +0100 <[exa]> like, main question probably is that if some kind of fusion works in there, like with Text
2025-11-21 13:44:29 +0100bwe(~bwe@2a01:4f8:1c1c:4878::2) bwe
2025-11-21 13:45:58 +0100 <dminuoso> Text fusion is so adhoc.. heh
2025-11-21 13:46:06 +0100Googulator7(~Googulato@81.183.235.203)
2025-11-21 13:46:27 +0100 <dminuoso> But should be easy to check: Just look for how many rewrite rules are in pipes.
2025-11-21 13:47:12 +0100 <[exa]> hm yeah good point
2025-11-21 13:48:06 +0100 <dminuoso> Ultimately its tough to make predictions about when fusion occurs externally, even in case of text.
2025-11-21 13:48:24 +0100 <dminuoso> It's best to just take your hot path and stare at the generated Core for way too much of your time.
2025-11-21 13:49:43 +0100Googulator66(~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-21 13:49:44 +0100 <[exa]> turns out `streaming` kinda measured that for me, see below in the readme https://github.com/haskell-streaming/streaming
2025-11-21 13:50:31 +0100 <dminuoso> [exa]: There seem to be quite a bunch of RULES that could facilitate shortcut fusion.
2025-11-21 13:50:37 +0100 <[exa]> yeah
2025-11-21 13:50:50 +0100 <dminuoso> But its really hard to predicte whether that actually ends up triggering.
2025-11-21 13:51:02 +0100 <dminuoso> And it may easily differ between GHC versions or other GHC flags.
2025-11-21 13:51:23 +0100qqe(~qqq@185.54.21.140) (Quit: Lost terminal)
2025-11-21 13:53:59 +0100bwe(~bwe@2a01:4f8:1c1c:4878::2) (Remote host closed the connection)
2025-11-21 13:54:23 +0100bwe(~bwe@2a01:4f8:1c1c:4878::2) bwe
2025-11-21 13:55:31 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-11-21 13:58:43 +0100aditya_an1l(~aditya_an@user/aditya-an1l:63825) (Quit: WeeChat 4.7.1)
2025-11-21 13:58:57 +0100 <lucabtz> c_wraith any resource with precise definitions for domain theory?
2025-11-21 13:59:05 +0100fp(~Thunderbi@dhcp-86-136.eduroam.aalto.fi) (Remote host closed the connection)
2025-11-21 13:59:07 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 14:02:03 +0100 <lucabtz> https://en.wikipedia.org/wiki/Domain_theory this page doesnt make much of a connection to haskell and im not even sure it is the same thing you mean because it is still speaking about sets in the end
2025-11-21 14:03:14 +0100trickard_trickard
2025-11-21 14:04:49 +0100ringo_(~ringo@157.230.117.128) (Ping timeout: 264 seconds)
2025-11-21 14:13:23 +0100Nachtgespenst(~user@user/siracusa) (Quit: Bye!)
2025-11-21 14:18:15 +0100ringo_(~ringo@157.230.117.128) ringo_
2025-11-21 14:20:57 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-11-21 14:23:51 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 14:25:08 +0100fp(~Thunderbi@130.233.70.141) fp
2025-11-21 14:26:37 +0100ft(~ft@p4fc2aaeb.dip0.t-ipconnect.de) ft
2025-11-21 14:33:18 +0100fp(~Thunderbi@130.233.70.141) (Quit: fp)
2025-11-21 14:33:39 +0100fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-11-21 14:50:49 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-11-21 14:51:09 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-11-21 15:02:16 +0100 <kuribas> Interesting how dependent types blur the line between dynamic and static. For example, in haskell I can choose to pass JSON Value as opaque values, or to parse them into datatypes.
2025-11-21 15:02:23 +0100 <kuribas> But the two approaches are mutual exclusive.
2025-11-21 15:02:46 +0100 <kuribas> Other than messing with generics, you lose flexibility by putting values in data.
2025-11-21 15:03:51 +0100 <kuribas> However with a dependent types (idris) I can treat the schema as a description of the value, which can be manipulated at runtime, so it's both a static and dynamic value.
2025-11-21 15:04:01 +0100 <Hecate> kuribas: they blur the line only if you don't take advantage of them, by putting conditions in the type like 'Vector n where n > 3" or something
2025-11-21 15:04:47 +0100 <kuribas> Hecate: it's there where the flexbility comes from, by putting your schema in the type.
2025-11-21 15:05:10 +0100 <kuribas> The "n" in vector can be considered a static value, or something dynamic that can be manipulated at runtime.
2025-11-21 15:06:54 +0100 <kuribas> You can somewhat emulate this in haskell, by lifting the computations into type level haskell, but it gets cumbersome to do type level computations.
2025-11-21 15:12:02 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-11-21 15:17:04 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2025-11-21 15:18:55 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 250 seconds)
2025-11-21 15:22:36 +0100 <tomsmeding> you can also create existentials, which sometimes allow you to do things that seem dependent
2025-11-21 15:22:52 +0100 <tomsmeding> also GADTs and singletons allow you to simulate dependencies to a certain extent
2025-11-21 15:23:28 +0100 <tomsmeding> though with singletons, you indeed either have to lift the computation to the type-level too, or have to deal with some kind of forgetfulness on the type level and use existentials
2025-11-21 15:24:56 +0100Inline(~inlinE@2001-4dd7-ae97-0-4674-ae6d-2607-c022.ipv6dyn.netcologne.de) (Quit: Leaving)
2025-11-21 15:25:28 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 15:27:48 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-11-21 15:30:45 +0100Googulator83(~Googulato@team.broadbit.hu)
2025-11-21 15:32:01 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 255 seconds)
2025-11-21 15:34:09 +0100Googulator7(~Googulato@81.183.235.203) (Ping timeout: 250 seconds)
2025-11-21 15:41:11 +0100 <kuribas> yes
2025-11-21 15:48:33 +0100Inline(~inlinE@2001-4dd7-ae97-0-4674-ae6d-2607-c022.ipv6dyn.netcologne.de) Inline
2025-11-21 15:49:14 +0100YoungFrog(~youngfrog@2a02:a03f:ca07:f900:5e58:dbf4:c0b:fbb3) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2025-11-21 15:49:34 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) youngfrog
2025-11-21 15:54:22 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-11-21 15:56:44 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-11-21 15:58:50 +0100jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-11-21 16:01:02 +0100Googulator5(~Googulato@team.broadbit.hu)
2025-11-21 16:04:03 +0100Googulator83(~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-21 16:08:43 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-11-21 16:10:35 +0100 <kuribas> existentials are like dynamic types, but with dependent types I can compute on the unknown type part, without breaking static garantees, and without the need for a second language for type computations.
2025-11-21 16:15:33 +0100 <merijn> how are existentials like dynamic types?
2025-11-21 16:15:39 +0100 <haskellbridge> <loonycyborg> If you add Typeable constraint to your existentials you can query exact type at runtime too.
2025-11-21 16:15:53 +0100 <merijn> You can kinda fake dynamic types with existentials, but they are far more principled
2025-11-21 16:16:02 +0100 <haskellbridge> <loonycyborg> https://hackage.haskell.org/package/base-4.21.0.0/docs/Type-Reflection.html
2025-11-21 16:16:20 +0100 <haskellbridge> <loonycyborg> you can do things like with C++ rtti then
2025-11-21 16:16:32 +0100 <kuribas> merijn: yeah, it's the other way.
2025-11-21 16:16:52 +0100 <kuribas> merijn: dynamic types are existentials, but not all existentials are like dynamic types.
2025-11-21 16:17:11 +0100 <merijn> loonycyborg: You don't have to do that yourself, Dynamic exists already :)
2025-11-21 16:17:13 +0100yin(~zero@user/zero) (Ping timeout: 246 seconds)
2025-11-21 16:17:35 +0100yin(~zero@user/zero) zero
2025-11-21 16:17:41 +0100 <haskellbridge> <Zemyla> Thinking about the free monoid now.
2025-11-21 16:17:55 +0100 <haskellbridge> <loonycyborg> If you don't use type.reflection then typeclass entirely determines what can you do with existential
2025-11-21 16:18:19 +0100 <haskellbridge> <loonycyborg> that way they're not dynamic types but more like C++ virtual functions and abstract classes
2025-11-21 16:18:24 +0100 <kuribas> merijn: A dynamic language just means every value is (Tag t ** t), Where Tag :: Type -> Type
2025-11-21 16:18:28 +0100 <haskellbridge> <Zemyla> newtype FreeMonoid a = FreeMonoid { runFreeMonoid :: forall r. Monoid r => (a -> r) -> r }
2025-11-21 16:18:35 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) (Read error: Connection reset by peer)
2025-11-21 16:18:45 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-11-21 16:19:08 +0100 <kuribas> merijn: but you hide the tag, and make primitive functions partial.
2025-11-21 16:19:33 +0100 <__monty__> What can existentials express that dynamic types restrict?
2025-11-21 16:20:16 +0100 <haskellbridge> <loonycyborg> It's the other way around
2025-11-21 16:20:29 +0100 <haskellbridge> <loonycyborg> existentials can restric more than dynamic types
2025-11-21 16:20:34 +0100 <__monty__> That's what I assumed.
2025-11-21 16:20:38 +0100FragByte(~christian@user/fragbyte) (Quit: Quit)
2025-11-21 16:21:25 +0100 <__monty__> But kuribas' comment of "dynamic types are existentials, but not all existentials are dynamic types" is the other way around, no?
2025-11-21 16:21:29 +0100 <haskellbridge> <loonycyborg> but with Typeable/Dynamic they're equivalent
2025-11-21 16:21:42 +0100 <kuribas> __monty__: the existential can carry more information and guarantees. Restrict is a funny word for "guarantee".
2025-11-21 16:22:13 +0100 <kuribas> Like "Hashable t => t ** t"
2025-11-21 16:22:27 +0100 <kuribas> It restrict t to a hashable, but it's also a guarantee that the type is hashable.
2025-11-21 16:22:37 +0100FragByte(~christian@user/fragbyte) FragByte
2025-11-21 16:23:21 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) sam113101
2025-11-21 16:26:04 +0100srazkvt(~sarah@user/srazkvt) (Quit: Konversation terminated!)
2025-11-21 16:26:09 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) (Read error: Connection reset by peer)
2025-11-21 16:26:16 +0100 <haskellbridge> <loonycyborg> And if it's "(Hashable t, Dynamic t)" you can both use Hashable instance and reflect its exact type.
2025-11-21 16:27:12 +0100 <haskellbridge> <loonycyborg> But obviously it can get less maintainable because compiler won't warn you if you change types in the origin but forget to update uses of Typeable.
2025-11-21 16:30:04 +0100 <haskellbridge> <loonycyborg> And if it's "(Hashable t, Typeable t)" you can both use Hashable instance and reflect its exact type.
2025-11-21 16:30:42 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 16:30:46 +0100Googulator75(~Googulato@team.broadbit.hu)
2025-11-21 16:31:15 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-11-21 16:31:16 +0100 <haskellbridge> <loonycyborg> btw does the matrix bridge support showing edits to IRC?
2025-11-21 16:31:30 +0100 <__monty__> Basically repeats the entire message.
2025-11-21 16:32:11 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no)
2025-11-21 16:32:38 +0100 <haskellbridge> <loonycyborg> It's better than losing them
2025-11-21 16:33:00 +0100 <lucabtz> well losing them isnt really possible through IRC
2025-11-21 16:33:08 +0100 <lucabtz> once sent it is sen
2025-11-21 16:33:17 +0100 <lucabtz> s/sen/sent
2025-11-21 16:33:46 +0100 <haskellbridge> <loonycyborg> I mean not showing in the first place :P
2025-11-21 16:33:57 +0100Googulator5(~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-21 16:34:20 +0100timide(~timide@user/timide) (Remote host closed the connection)
2025-11-21 16:35:00 +0100 <lucabtz> like not showing the edit?
2025-11-21 16:35:16 +0100 <lucabtz> it would be cool if it only sent a diff with the edit
2025-11-21 16:36:13 +0100 <haskellbridge> <loonycyborg> Indeed
2025-11-21 16:36:21 +0100 <haskellbridge> <loonycyborg> but it's a hard ask honestly
2025-11-21 16:36:40 +0100 <__monty__> As long as the diff is shorter that is.
2025-11-21 16:36:55 +0100Googulator75(~Googulato@team.broadbit.hu) (Quit: Client closed)
2025-11-21 16:37:12 +0100Googulator75(~Googulato@81.183.235.203)
2025-11-21 16:37:31 +0100 <haskellbridge> <loonycyborg> But if things aren't context aware then it could be worse than showing it entirely
2025-11-21 16:38:07 +0100Vajb(~Vajb@n4bl3ovzcj023yptes7-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds)
2025-11-21 16:38:34 +0100 <haskellbridge> <loonycyborg> Like if you edit some message you made month ago in a busy channel :P
2025-11-21 16:38:38 +0100FragByte(~christian@user/fragbyte) (Quit: Quit)
2025-11-21 16:40:01 +0100 <__monty__> Maybe we should move to off-topic? What context could you provide other than a timestamp? And if just a timestamp, most people don't have theirs in UTC.
2025-11-21 16:40:44 +0100FragByte(~christian@user/fragbyte) FragByte
2025-11-21 16:41:58 +0100 <haskellbridge> <loonycyborg> I mean sometimes in IRC people correct themselves with conventions such as *something to correct a single word
2025-11-21 16:42:01 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
2025-11-21 16:42:15 +0100 <haskellbridge> <loonycyborg> and it requires context to understand
2025-11-21 16:42:22 +0100 <haskellbridge> <loonycyborg> I don't think it can be replicated in general without human understanding
2025-11-21 16:42:30 +0100polykernel_(~polykerne@user/polykernel) polykernel
2025-11-21 16:42:50 +0100 <haskellbridge> <loonycyborg> As in AI-complete problem
2025-11-21 16:44:01 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-11-21 16:44:07 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 240 seconds)
2025-11-21 16:44:55 +0100 <lucabtz> i think s/old/new would look cool, if the edit is of an old message it would be better to not send it to IRC instead because it would make little sense to see the edit here
2025-11-21 16:45:13 +0100polykernel(~polykerne@user/polykernel) (Ping timeout: 246 seconds)
2025-11-21 16:45:14 +0100polykernel_polykernel
2025-11-21 16:45:18 +0100Vajb(~Vajb@n4bleudhyon0g5ws745-1.v6.elisa-mobile.fi)
2025-11-21 16:45:39 +0100 <lucabtz> __monty__ is offtopic bridged to matrix too?
2025-11-21 16:45:55 +0100 <__monty__> I assumed it was, but I don't *know*.
2025-11-21 16:47:18 +0100raoul(~raoul@95.179.203.88) (Quit: Ping timeout (120 seconds))
2025-11-21 16:48:19 +0100 <haskellbridge> <Morj> I don't think it is, or at least it doesn't show up in the lobby
2025-11-21 16:48:59 +0100corecaps(~igloo@user/corecaps) corecaps
2025-11-21 16:49:13 +0100 <geekosaur> the bridge will show an edit with * if it's short enough and it's editing themost recent message the user sent; otherwise it resends the whole message
2025-11-21 16:49:20 +0100fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 256 seconds)
2025-11-21 16:49:25 +0100 <geekosaur> offtopic isn't bridged
2025-11-21 16:49:40 +0100fp(~Thunderbi@2001:708:150:10::7e06) fp
2025-11-21 16:49:53 +0100raoul(~raoul@95.179.203.88) raoul
2025-11-21 16:50:03 +0100 <lucabtz> geekosaur okay that's cool
2025-11-21 16:50:26 +0100 <chromoblob> it should resend whole message with a *
2025-11-21 16:51:01 +0100 <geekosaur> you can file a bug report for heisenbridge…
2025-11-21 16:51:32 +0100EvanR_EvanR
2025-11-21 16:52:08 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 16:52:17 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 16:52:46 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) sam113101
2025-11-21 16:53:09 +0100 <haskellbridge> <Morj> I fear resending the whole message would lead to a lot of accidental spam
2025-11-21 16:53:34 +0100 <haskellbridge> <Morj> Maybe would be nice to buffer a message for five seconds and apply edits to the buffer if you're fast enough
2025-11-21 16:54:27 +0100 <__monty__> Yeah, I don't like the full repeat. So hard to actually spot what changed.
2025-11-21 16:57:47 +0100 <EvanR> it can be hard for the computer to spot what changed
2025-11-21 16:58:01 +0100 <EvanR> which is more where we want to be on that
2025-11-21 16:58:40 +0100Square3(~Square@user/square) Square
2025-11-21 16:59:27 +0100corecaps(~igloo@user/corecaps) (Remote host closed the connection)
2025-11-21 16:59:30 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) Tuplanolla
2025-11-21 16:59:43 +0100Vajb(~Vajb@n4bleudhyon0g5ws745-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds)
2025-11-21 17:01:04 +0100Googulator82(~Googulato@team.broadbit.hu)
2025-11-21 17:01:17 +0100corecaps(~igloo@user/corecaps) corecaps
2025-11-21 17:02:10 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 17:02:39 +0100Vajb(~Vajb@n5f2pnc8xvnar9hzscx-1.v6.elisa-mobile.fi)
2025-11-21 17:03:55 +0100fp(~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 264 seconds)
2025-11-21 17:04:17 +0100Googulator75(~Googulato@81.183.235.203) (Ping timeout: 250 seconds)
2025-11-21 17:06:34 +0100 <geekosaur> heisenbridge's actually pretty decent at it. as long as it's the most recent message
2025-11-21 17:07:35 +0100 <geekosaur> that said, if you change both ends of a long message, it outputs the whole message gaain instead of two edits
2025-11-21 17:10:49 +0100codolio(~dolio@130.44.140.168) (Quit: ZNC 1.10.1 - https://znc.in)
2025-11-21 17:11:29 +0100corecaps(~igloo@user/corecaps) (Remote host closed the connection)
2025-11-21 17:12:13 +0100dolio(~dolio@130.44.140.168) dolio
2025-11-21 17:12:17 +0100FragByte_(~christian@user/fragbyte) FragByte
2025-11-21 17:14:24 +0100FragByte(~christian@user/fragbyte) (Ping timeout: 265 seconds)
2025-11-21 17:14:24 +0100FragByte_FragByte
2025-11-21 17:15:31 +0100dolio(~dolio@130.44.140.168) (Client Quit)
2025-11-21 17:16:26 +0100dolio(~dolio@130.44.140.168) dolio
2025-11-21 17:21:37 +0100Vajb(~Vajb@n5f2pnc8xvnar9hzscx-1.v6.elisa-mobile.fi) (Ping timeout: 246 seconds)
2025-11-21 17:21:45 +0100timide(~timide@user/timide) timide
2025-11-21 17:22:32 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 17:24:25 +0100Vajb(~Vajb@n4w7puti44x2voev9cr-1.v6.elisa-mobile.fi)
2025-11-21 17:27:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-11-21 17:29:25 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-11-21 17:30:13 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2025-11-21 17:30:44 +0100Lord_of_Life_Lord_of_Life
2025-11-21 17:34:48 +0100polykernel(~polykerne@user/polykernel) (Remote host closed the connection)
2025-11-21 17:35:07 +0100polykernel(~polykerne@user/polykernel) polykernel
2025-11-21 17:35:07 +0100lucabtz(~lucabtz@user/lucabtz) (Remote host closed the connection)
2025-11-21 17:38:48 +0100FragByte(~christian@user/fragbyte) (Quit: Quit)
2025-11-21 17:39:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 17:40:53 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
2025-11-21 17:42:21 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-11-21 17:43:10 +0100ouilemur(~jgmerritt@user/ouilemur) (Quit: WeeChat 4.7.0)
2025-11-21 17:46:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 17:49:03 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 252 seconds)
2025-11-21 17:49:55 +0100Vajb(~Vajb@n4w7puti44x2voev9cr-1.v6.elisa-mobile.fi) (Ping timeout: 245 seconds)
2025-11-21 17:50:23 +0100mauke(~mauke@user/mauke) (Remote host closed the connection)
2025-11-21 17:50:25 +0100preflex(~preflex@user/mauke/bot/preflex) (Remote host closed the connection)
2025-11-21 17:51:39 +0100Vajb(~Vajb@n5gequa6sjlhrxrjaky-1.v6.elisa-mobile.fi)
2025-11-21 17:52:13 +0100preflex(~preflex@user/mauke/bot/preflex) preflex
2025-11-21 17:52:39 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no)
2025-11-21 17:53:46 +0100gehmehgeh(~user@user/gehmehgeh) gehmehgeh
2025-11-21 17:54:18 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 272 seconds)
2025-11-21 17:54:22 +0100gehmehgehgmg
2025-11-21 17:54:33 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2025-11-21 17:56:31 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 17:57:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 18:01:14 +0100Googulator7(~Googulato@team.broadbit.hu)
2025-11-21 18:02:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 18:02:34 +0100Xe_Xe
2025-11-21 18:04:05 +0100Googulator82(~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-21 18:04:27 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2025-11-21 18:05:03 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 18:05:11 +0100AlexNoo_AlexNoo
2025-11-21 18:05:16 +0100Vajb(~Vajb@n5gequa6sjlhrxrjaky-1.v6.elisa-mobile.fi) (Ping timeout: 256 seconds)
2025-11-21 18:06:48 +0100Vajb(~Vajb@85-76-107-130-nat.elisa-mobile.fi)
2025-11-21 18:08:25 +0100malte(~malte@mal.tc) (Ping timeout: 264 seconds)
2025-11-21 18:09:58 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 255 seconds)
2025-11-21 18:11:50 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 18:13:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 18:15:42 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 18:17:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-11-21 18:18:25 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-11-21 18:23:39 +0100chele(~chele@user/chele) (Remote host closed the connection)
2025-11-21 18:25:13 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 264 seconds)
2025-11-21 18:26:08 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2025-11-21 18:27:46 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
2025-11-21 18:28:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 18:28:43 +0100vardhan(~vardhan@122.172.85.147) (Ping timeout: 260 seconds)
2025-11-21 18:29:34 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-11-21 18:29:38 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 256 seconds)
2025-11-21 18:32:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-21 18:35:48 +0100qqe(~qqq@185.54.21.140)
2025-11-21 18:39:34 +0100trickard(~trickard@cpe-88-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 18:39:47 +0100trickard_(~trickard@cpe-88-98-47-163.wireline.com.au)
2025-11-21 18:43:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 18:44:20 +0100jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-11-21 18:47:11 +0100polykernel_(~polykerne@user/polykernel) polykernel
2025-11-21 18:48:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-11-21 18:49:18 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
2025-11-21 18:50:05 +0100Cattycatties
2025-11-21 18:50:06 +0100polykernel(~polykerne@user/polykernel) (Ping timeout: 265 seconds)
2025-11-21 18:50:06 +0100polykernel_polykernel
2025-11-21 18:50:15 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-11-21 18:50:19 +0100trickard_(~trickard@cpe-88-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 18:50:33 +0100trickard_(~trickard@cpe-88-98-47-163.wireline.com.au)
2025-11-21 18:51:36 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 18:53:40 +0100trickard_(~trickard@cpe-88-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 18:59:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 18:59:47 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 19:00:27 +0100Dhark8Shark8
2025-11-21 19:00:52 +0100trickard_(~trickard@cpe-88-98-47-163.wireline.com.au)
2025-11-21 19:01:06 +0100Vajb(~Vajb@85-76-107-130-nat.elisa-mobile.fi) (Ping timeout: 252 seconds)
2025-11-21 19:01:26 +0100Vajb(~Vajb@n7k9gf95j3ud2llqzrc-1.v6.elisa-mobile.fi)
2025-11-21 19:02:50 +0100synchromesh(~john@2406:5a00:2412:2c00:58f6:2167:890b:2ed2) (Read error: Connection reset by peer)
2025-11-21 19:03:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 19:04:08 +0100synchromesh(~john@2406:5a00:2412:2c00:58f6:2167:890b:2ed2) synchromesh
2025-11-21 19:05:09 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.)
2025-11-21 19:07:55 +0100remedan_(~remedan@78-80-95-79.customers.tmcz.cz) (Quit: Bye!)
2025-11-21 19:08:28 +0100Vajb(~Vajb@n7k9gf95j3ud2llqzrc-1.v6.elisa-mobile.fi) (Ping timeout: 265 seconds)
2025-11-21 19:09:02 +0100Vajb(~Vajb@n720r98vdho1vtnt3mg-1.v6.elisa-mobile.fi)
2025-11-21 19:13:17 +0100FANTOM(~fantom@212.228.181.156) (Ping timeout: 256 seconds)
2025-11-21 19:14:41 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 19:15:11 +0100FANTOM(~fantom@212.228.181.156)
2025-11-21 19:19:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-11-21 19:19:20 +0100tt12316(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (*.net *.split)
2025-11-21 19:19:20 +0100xal(~xal@mx1.xal.systems) (*.net *.split)
2025-11-21 19:19:20 +0100enikar(~enikar@user/enikar) (*.net *.split)
2025-11-21 19:19:20 +0100tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (*.net *.split)
2025-11-21 19:19:20 +0100sp1ff(~user@2601:1c2:4c00:6820::8bad) (*.net *.split)
2025-11-21 19:19:20 +0100arahael(~wetfoot@user/arahael) (*.net *.split)
2025-11-21 19:19:20 +0100elenril(~elenril@tutturu.khirnov.net) (*.net *.split)
2025-11-21 19:24:28 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 19:24:44 +0100tt12316(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) tt1231
2025-11-21 19:24:44 +0100xal(~xal@mx1.xal.systems) xal
2025-11-21 19:24:44 +0100enikar(~enikar@user/enikar) enikar
2025-11-21 19:24:44 +0100tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2025-11-21 19:24:44 +0100sp1ff(~user@2601:1c2:4c00:6820::8bad) sp1ff
2025-11-21 19:24:44 +0100arahael(~wetfoot@user/arahael) arahael
2025-11-21 19:24:44 +0100elenril(~elenril@tutturu.khirnov.net) elenril
2025-11-21 19:28:52 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
2025-11-21 19:29:26 +0100malte(~malte@mal.tc) malte
2025-11-21 19:30:48 +0100Vajb(~Vajb@n720r98vdho1vtnt3mg-1.v6.elisa-mobile.fi) (Ping timeout: 252 seconds)
2025-11-21 19:31:38 +0100Vajb(~Vajb@n6jrirf92qztswrjkg8-1.v6.elisa-mobile.fi)
2025-11-21 19:40:23 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 19:45:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 19:50:52 +0100weary-traveler(~user@user/user363627) user363627
2025-11-21 19:55:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 20:00:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 20:04:27 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 20:05:47 +0100Googulator78(~Googulato@81.183.235.203)
2025-11-21 20:08:12 +0100m1dnight(~m1dnight@d8D861A17.access.telenet.be) (Ping timeout: 252 seconds)
2025-11-21 20:08:47 +0100tromp(~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 20:08:53 +0100Googulator7(~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-21 20:11:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 20:15:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 20:16:17 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-11-21 20:16:55 +0100remedan(~remedan@78-80-95-79.customers.tmcz.cz) remedan
2025-11-21 20:17:09 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) Anarchos
2025-11-21 20:22:23 +0100ZLima12(~zlima12@user/meow/ZLima12) ZLima12
2025-11-21 20:22:24 +0100Nachtgespenst(~user@user/siracusa) siracusa
2025-11-21 20:22:29 +0100ZLima12_(~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds)
2025-11-21 20:23:30 +0100mauke(~mauke@user/mauke) mauke
2025-11-21 20:25:59 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 20:29:38 +0100m1dnight(~m1dnight@d8D861A17.access.telenet.be) m1dnight
2025-11-21 20:30:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-11-21 20:33:26 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2025-11-21 20:34:06 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc)
2025-11-21 20:34:12 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 20:36:07 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-11-21 20:36:59 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) (Quit: Vision[]: i've been blurred!)
2025-11-21 20:41:15 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) Anarchos
2025-11-21 20:41:22 +0100infinity0(~infinity0@pwned.gg) (Quit: WeeChat 4.6.3)
2025-11-21 20:41:23 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 20:41:38 +0100Dhark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net)
2025-11-21 20:41:46 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-11-21 20:43:15 +0100infinity0(~infinity0@pwned.gg) (Client Quit)
2025-11-21 20:43:43 +0100poscat0x04(~poscat@user/poscat) (Remote host closed the connection)
2025-11-21 20:44:48 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-11-21 20:45:19 +0100Shark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net) (Ping timeout: 264 seconds)
2025-11-21 20:46:52 +0100marlino(~marlino@96-8-193-104.block0.gvtc.com)
2025-11-21 20:47:14 +0100poscat(~poscat@user/poscat) poscat
2025-11-21 20:47:40 +0100infinity0(~infinity0@pwned.gg) (Client Quit)
2025-11-21 20:48:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 20:50:09 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-11-21 20:54:41 +0100AlexZenon(~alzenon@94.233.240.123) (Ping timeout: 264 seconds)
2025-11-21 20:59:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 21:00:51 +0100Googulator11(~Googulato@team.broadbit.hu)
2025-11-21 21:03:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-21 21:03:55 +0100Googulator78(~Googulato@81.183.235.203) (Ping timeout: 250 seconds)
2025-11-21 21:05:29 +0100Dhark8Shark8
2025-11-21 21:09:11 +0100AlexZenon(~alzenon@94.233.240.123)
2025-11-21 21:14:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-11-21 21:15:37 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-11-21 21:17:02 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-11-21 21:19:16 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 264 seconds)