2025-04-09 00:00:04 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2025-04-09 00:00:13 +0200 | Googulator | (~Googulato@2a01-036d-0106-211a-f46d-c0c9-579b-1a24.pool6.digikabel.hu) |
2025-04-09 00:00:42 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-04-09 00:00:42 +0200 | ljdarj1 | ljdarj |
2025-04-09 00:00:46 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-04-09 00:02:02 +0200 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2025-04-09 00:02:45 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2025-04-09 00:03:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 00:06:00 +0200 | thuna` | (~thuna`@user/thuna/x-1480069) thuna` |
2025-04-09 00:06:06 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2025-04-09 00:08:55 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-09 00:12:32 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2025-04-09 00:15:27 +0200 | c_wraith | (~c_wraith@adjoint.us) (Ping timeout: 252 seconds) |
2025-04-09 00:17:06 +0200 | Hecate | (~mariposa@user/hecate) (Ping timeout: 272 seconds) |
2025-04-09 00:17:38 +0200 | Hecate | (~mariposa@user/hecate) Hecate |
2025-04-09 00:18:59 +0200 | tabaqui | (~tabaqui@167.71.80.236) (Ping timeout: 260 seconds) |
2025-04-09 00:19:43 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 00:20:14 +0200 | c_wraith | (~c_wraith@adjoint.us) c_wraith |
2025-04-09 00:22:23 +0200 | tromp | (~textual@2001:1c00:3487:1b00:e513:bc03:349e:ac26) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-04-09 00:27:06 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-04-09 00:31:02 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-04-09 00:31:21 +0200 | califax | (~califax@user/califx) califx |
2025-04-09 00:37:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 00:42:14 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) Feuermagier |
2025-04-09 00:42:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 00:42:29 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2025-04-09 00:43:07 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-04-09 00:46:42 +0200 | <EvanR> | monochrom, if this were a free monad, then uh for all other monads there would be a unique monad morphism something or other from Check to it? |
2025-04-09 00:46:53 +0200 | <EvanR> | such that |
2025-04-09 00:46:59 +0200 | <EvanR> | some diagram xD |
2025-04-09 00:49:34 +0200 | thuna` | (~thuna`@user/thuna/x-1480069) (Ping timeout: 252 seconds) |
2025-04-09 00:51:27 +0200 | sprout | (~sprout@84-80-106-227.fixed.kpn.net) (Ping timeout: 265 seconds) |
2025-04-09 00:53:30 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 00:53:33 +0200 | <EvanR> | I lied, every other monad for this functor, which would be like ... |
2025-04-09 00:54:03 +0200 | sprotte24 | (~sprotte24@p200300d16f06b600a14bd9dc58a29dc6.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-04-09 00:58:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-04-09 01:00:17 +0200 | <EvanR> | I lied that was the beginning of a universal property not a free thing |
2025-04-09 01:02:21 +0200 | <monochrom> | Your monad is Free C, where C is defined by "data C r = G (Int -> r) | F String". |
2025-04-09 01:03:03 +0200 | prolic_ | (~sasa@181.122.135.9) (Ping timeout: 246 seconds) |
2025-04-09 01:04:28 +0200 | <monochrom> | There is a definition of free monad in terms of "left adjoint of the forgetful functor for monads" but I haven't really studied that. |
2025-04-09 01:04:46 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-04-09 01:05:24 +0200 | <monochrom> | More precisely, Check is Free C. This is ignoring the special thing done by runCheck. |
2025-04-09 01:05:42 +0200 | <monochrom> | (to the Int part) |
2025-04-09 01:07:29 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-09 01:07:34 +0200 | <EvanR> | turns out there is a connection between the free forgetful adjoint functors on one hand and initial algebras, which satisfy a universal property I think. If you just throw adjoint and universal at the wall you get a categorical theorem right |
2025-04-09 01:07:53 +0200 | <monochrom> | But here is the universal property you're looking for. Suppose a certain monad M supports two additional operations: gennum :: M Int, fail :: String -> M a. Then there is a unique monad morphism from Check to M. |
2025-04-09 01:08:08 +0200 | <EvanR> | such that |
2025-04-09 01:08:14 +0200 | <EvanR> | something factors through |
2025-04-09 01:09:18 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 01:11:41 +0200 | <monochrom> | Yeah it's an initial object in the category of monads like M. |
2025-04-09 01:12:26 +0200 | <monochrom> | I think you can go further for initial algebra if you're also into algebraic effects. |
2025-04-09 01:13:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 01:16:33 +0200 | <EvanR> | ok but, the runCheck function which interprets the Check program in a certain way |
2025-04-09 01:17:50 +0200 | <EvanR> | is that specializing anything or orthogonal to the narrative |
2025-04-09 01:18:07 +0200 | <monochrom> | It is specializing. |
2025-04-09 01:18:15 +0200 | <EvanR> | would you not need it if you define the monad instance some other way |
2025-04-09 01:18:48 +0200 | <monochrom> | You are factoring a supply monad into a free monad plus an interpreter that kills the freeness. |
2025-04-09 01:19:55 +0200 | <monochrom> | Most useful monads are not free, but it is also useful to factor them into free monads and interpreters. |
2025-04-09 01:20:03 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-09 01:20:14 +0200 | _xor | (~xor@ip-66-42-132-175.dynamic.fuse.net) (Read error: Connection reset by peer) |
2025-04-09 01:20:33 +0200 | <EvanR> | trying to see how you would unfree it just by changing the monad instance |
2025-04-09 01:21:34 +0200 | <haskellbridge> | <Bowuigi> EvanR the factoring thing is "such that this unique morphism respects the Monad + M laws" IIRC |
2025-04-09 01:21:50 +0200 | <monochrom> | Or equivalently, in algebraic effects, factor into a free algebra and a handler. |
2025-04-09 01:22:49 +0200 | _xor | (~xor@ip-66-42-132-175.dynamic.fuse.net) _xor |
2025-04-09 01:22:58 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-09 01:24:15 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 01:25:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 01:25:17 +0200 | <EvanR> | a monad morphism automatically respects monad laws... but... |
2025-04-09 01:25:39 +0200 | <haskellbridge> | <Bowuigi> A nice corollary is that you can integrate any monad into an effect system that uses free monads and interpreters (which are a lot) |
2025-04-09 01:25:41 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds) |
2025-04-09 01:25:41 +0200 | ljdarj1 | ljdarj |
2025-04-09 01:26:10 +0200 | <monochrom> | You can change to the Int->Either String (a,Int) monad and don't give users direct access, give them only "genNum = \s -> Right (s, s+1)" and "fail msg = \s -> Left msg". |
2025-04-09 01:27:17 +0200 | <monochrom> | That would be very unfree, and even more specialized than Int->Either String (a,Int). |
2025-04-09 01:27:28 +0200 | <haskellbridge> | <Bowuigi> EvanR yeah that's why I said morphism instead of monad morphism, to emphasize that it respects both the monad laws AND the M/Check/whatever laws |
2025-04-09 01:29:55 +0200 | <emojelly> | I wonder if I can (and should) rewrite my Coroutine-using framework with Pipes. |
2025-04-09 01:30:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-04-09 01:31:07 +0200 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2025-04-09 01:31:15 +0200 | <emojelly> | The pattern I have (and I wonder whether there's a name for it): I have a monad which both yields and awaits a value (types between input and output can differ), which feed into and feed back from another component, in my specific case a circuit. |
2025-04-09 01:32:42 +0200 | <haskellbridge> | <Bowuigi> You are describing Arrow and ArrowLoop, see if those abstractions make your program clearer first |
2025-04-09 01:32:55 +0200 | <emojelly> | So each monadic action gives (yields) input to the circuit, and returns (awaits) the output of the circuit. |
2025-04-09 01:33:18 +0200 | <emojelly> | I've used Arrows before, for CPU emulation, but that was an entirely different use case... wonder if Arrows can help here. |
2025-04-09 01:33:39 +0200 | <emojelly> | Monads seem to work fine? |
2025-04-09 01:33:53 +0200 | <haskellbridge> | <Bowuigi> If it is a monad it likely also supports ArrowApply too |
2025-04-09 01:34:19 +0200 | <emojelly> | My use case for CPU emulation was that I could do different things for "running" emulated instructions vs. "analyzing" them. |
2025-04-09 01:34:36 +0200 | <haskellbridge> | <Bowuigi> Why do you want to rewrite it if it works fine? Learning? Speed? Clarity? |
2025-04-09 01:34:42 +0200 | <emojelly> | It would be speed |
2025-04-09 01:35:18 +0200 | <emojelly> | I don't know if you followed the drama (technical drama, not human drama) yesterday, but my Coroutine-implementation is insanely slow for some reason, and profiling is not helping at all unfortunately. |
2025-04-09 01:35:59 +0200 | <emojelly> | It's pathologically slow. It looks like some accidental O(n^2) thing maybe, or something else... but I wasn't able to suss out what's taking so long in *any* way |
2025-04-09 01:36:54 +0200 | <emojelly> | only that for some reason a simple test is churning through 70GB/s of allocations for a relatively simple test, but it's not leaking it, so heap profiling didn't help either. |
2025-04-09 01:37:18 +0200 | <haskellbridge> | <Bowuigi> According to their own benchmarks, streamly is way faster than pipes, maybe try that? |
2025-04-09 01:37:34 +0200 | <emojelly> | I really like the Coroutines approach, but if pipes or something else helps... |
2025-04-09 01:37:45 +0200 | <emojelly> | I've looked at streamly, but I'm not sure it's better suited than pipes? |
2025-04-09 01:40:53 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 01:41:14 +0200 | <emojelly> | Pipes seems centered around yield/await that I need here, while streamly, ironically, looks more like unix pipes |
2025-04-09 01:41:22 +0200 | <emojelly> | but that's only after a very, very cursory look, so I might be wrong |
2025-04-09 01:42:35 +0200 | <haskellbridge> | <Bowuigi> I see |
2025-04-09 01:43:03 +0200 | <haskellbridge> | <Bowuigi> Do you have a repo link? |
2025-04-09 01:43:09 +0200 | <emojelly> | Not yet, no |
2025-04-09 01:43:17 +0200 | <emojelly> | I will! |
2025-04-09 01:43:52 +0200 | jespada | (~jespada@r167-61-127-49.dialup.adsl.anteldata.net.uy) (Ping timeout: 272 seconds) |
2025-04-09 01:45:13 +0200 | <haskellbridge> | <Bowuigi> Just to make sure, did you check for space leaks and other laziness pitfalls? You probably did but just to make sure |
2025-04-09 01:45:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 01:45:42 +0200 | <haskellbridge> | <Bowuigi> For concurrency you have that actions may not run on the thread you wanted |
2025-04-09 01:46:21 +0200 | <emojelly> | I did. The heap is growing to an "okay" 40MB before gc brings it back down. Meanwhile, the *total* allocations are upwards of 70GB, with the program churning through 5-8GB/s for... nothing. But apparently those allocations are very short lived, because they don't really show up in the heap profile other than in those total statistics. |
2025-04-09 01:46:23 +0200 | jespada | (~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) jespada |
2025-04-09 01:46:31 +0200 | <emojelly> | There is no concurrency! |
2025-04-09 01:47:24 +0200 | <geekosaur> | most allocations are in the nursery (very fast) and most of those will disappear when it's GCd (anything still referenced moves to gen1, then the pointer is reset to the base of the nursery) |
2025-04-09 01:48:37 +0200 | <emojelly> | and the time profiling is (as far as I can tell myself) completely useless. The majority of the time is spent "in" this function, that's the full thing: "combineTestSignals = combineTestSignals (,)". Not in any of its children, this is not "inherited" time. No, profiling tells me *this* is where all CPU time goes. |
2025-04-09 01:48:56 +0200 | <emojelly> | sorry, it's "combineTestSignals = combineTestSignals' ()", missed the ' there |
2025-04-09 01:49:00 +0200 | <emojelly> | sigh |
2025-04-09 01:49:08 +0200 | <emojelly> | combineTestSignals = combineTestSignals' (,) |
2025-04-09 01:49:10 +0200 | <emojelly> | now it's right |
2025-04-09 01:49:34 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
2025-04-09 01:49:46 +0200 | <emojelly> | geekosaur: I wish there was a way to tell me what allocations were in the nursery, i.e. what type, who produced them... maybe that would give me one hint of what's wrong... |
2025-04-09 01:50:49 +0200 | <geekosaur> | I think there's a heap visualizer somewhere, but I'm not sure if it also handles the nursery or if it's only gen1+ |
2025-04-09 01:51:12 +0200 | <emojelly> | Do you mean the heap visualizer that is processing the event log through HTML? That's what I used, yeah |
2025-04-09 01:51:16 +0200 | <geekosaur> | https://hackage.haskell.org/package/ghc-heap-view |
2025-04-09 01:51:19 +0200 | <emojelly> | ah |
2025-04-09 01:51:32 +0200 | <emojelly> | this seems different |
2025-04-09 01:52:32 +0200 | <emojelly> | But it might still not help. If I stop the program at any point, there's probably not a lot of allocations live. It seems the program does not *retain* an extreme amount of allocations for long, it just *churns* through them |
2025-04-09 01:52:44 +0200 | <geekosaur> | weirdly, it claims to only support ghc 8.8, but it was last updated at the beginning of this year |
2025-04-09 01:52:59 +0200 | <emojelly> | This results in total statistics of "74GB total allocations" while the heap profile looks fine, otherwise. |
2025-04-09 01:53:37 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) () |
2025-04-09 01:54:34 +0200 | <emojelly> | All in all, I don't think I have a space leak (or maybe just a "very local one"), it's just that the allocations *might* help me understand why "combineTestSignals = combineTestSignals' (,)" takes an extreme amount of time entirely *by itself*. I.e. all its children in the profiling tree spend much less, it doesn't sum up. |
2025-04-09 01:54:49 +0200 | potatoespotatoes | (~quassel@130.44.147.204) |
2025-04-09 01:54:49 +0200 | potatoespotatoes | (~quassel@130.44.147.204) (Changing host) |
2025-04-09 01:54:49 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) potatoespotatoes |
2025-04-09 01:55:06 +0200 | <emojelly> | one thing I've done is actually using the OS to sample the process |
2025-04-09 01:55:19 +0200 | <emojelly> | which gave me weird symbols, which I can look up in the GHC Core file that is generated |
2025-04-09 01:55:56 +0200 | <emojelly> | so far however I find the Core code very hard to understand, and knowing which executable symbol the system spends most time in did not really help me much in knowing why. |
2025-04-09 01:56:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 01:56:44 +0200 | <emojelly> | But in theory, it's better than "all the time in nonsensically spent in this function which literally just applies another function, and nothing else" |
2025-04-09 01:57:22 +0200 | <emojelly> | by the way, if I remove that function and directly type "combineTestSignals' (,) ..." in the caller, the "lost" time predictably just wanders to the caller. |
2025-04-09 01:57:46 +0200 | <emojelly> | I thought I understood laziness and thunks, but this expression does nothing. It does not force any evaluation or anything. |
2025-04-09 01:58:14 +0200 | <geekosaur> | that really sounds to me like something is getting forced in `combineTestSignals` or whatever else consumes the result of `combineTestSignals'` |
2025-04-09 01:58:25 +0200 | <geekosaur> | but yeh, I don't see why |
2025-04-09 01:58:43 +0200 | <emojelly> | Yeah. And, sure, something will eventually force it. But the point of profiling is to tell me where the actual work is happening, no? |
2025-04-09 01:59:13 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-04-09 01:59:22 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-09 01:59:54 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e71c4f631cbaa9c9535aaf6d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2025-04-09 02:00:25 +0200 | <emojelly> | Like if I write a fib function... then it will return a thunk (for discussion's sake). Now that thunk might get evaluated somewhere else entirely, but usually at least time profiling will still tell me that fib is the function to which the work is attributed, no? |
2025-04-09 02:00:47 +0200 | <emojelly> | At least that's how I understood it to work. The documentation literally says it's saving away the *call* stack, not the evaluation stack (if that's the right word). |
2025-04-09 02:02:23 +0200 | <geekosaur> | right, which means it ought to attribute things to where they're generated, not where they're forced |
2025-04-09 02:02:36 +0200 | <emojelly> | And the kicker is that the entire combineTestSignals' only merges two Coroutines together, which means replacing the continuation with a new continuation that calls the continuations of both coroutines and pastes them together. |
2025-04-09 02:02:42 +0200 | <emojelly> | Apart from that it's a whole lot of wrapping and unwrapping. |
2025-04-09 02:03:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 02:03:33 +0200 | jespada | (~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) (Ping timeout: 252 seconds) |
2025-04-09 02:03:41 +0200 | <emojelly> | geekosaur: exactly, which makes this case so weird, because: a) nothing gets forced in "combineTestSignals' (,)" itself, I think, but b) even if it would it certainly didn't come from that expression |
2025-04-09 02:08:01 +0200 | sprout | (~sprout@2a02-a448-3a80-0-c61c-b515-5509-58e7.fixed6.kpn.net) |
2025-04-09 02:09:00 +0200 | <haskellbridge> | <Bowuigi> emojelly did you disable optimization for the profiling build? That shouldn't allocate too much |
2025-04-09 02:09:14 +0200 | <haskellbridge> | <Bowuigi> Either that or it's weird CAF shenanigans |
2025-04-09 02:09:31 +0200 | hgolden_ | (~hgolden@syn-172-251-233-141.res.spectrum.com) hgolden |
2025-04-09 02:09:58 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) () |
2025-04-09 02:10:07 +0200 | hgolden_ | (~hgolden@syn-172-251-233-141.res.spectrum.com) (Remote host closed the connection) |
2025-04-09 02:11:37 +0200 | <haskellbridge> | <Bowuigi> If you don't want to disable optimization, make sure that GHC doesn't inline combineTestSignals' |
2025-04-09 02:11:38 +0200 | <geekosaur> | with prof-late optimization shouldn't matter |
2025-04-09 02:12:00 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:d5a9:8f67:3cb9:6399) (Ping timeout: 246 seconds) |
2025-04-09 02:12:20 +0200 | <statusbot> | Maintenance update: hackage is going down for migration. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/67f5bb13d9e59f092626b642 |
2025-04-09 02:12:52 +0200 | potatoespotatoes | (~quassel@130.44.147.204) |
2025-04-09 02:12:52 +0200 | potatoespotatoes | (~quassel@130.44.147.204) (Changing host) |
2025-04-09 02:12:52 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) potatoespotatoes |
2025-04-09 02:12:59 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) (Client Quit) |
2025-04-09 02:13:24 +0200 | potatoespotatoes | (~quassel@130.44.147.204) |
2025-04-09 02:13:24 +0200 | potatoespotatoes | (~quassel@130.44.147.204) (Changing host) |
2025-04-09 02:13:24 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) potatoespotatoes |
2025-04-09 02:13:31 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) (Client Quit) |
2025-04-09 02:13:56 +0200 | potatoespotatoes | (~quassel@user/potatoespotatoes) potatoespotatoes |
2025-04-09 02:14:43 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 02:16:11 +0200 | <emojelly> | haskellbridge: I tried everything. Disabling optimization, enabling optimization, various profiling settings, switching between GHC 9.8 and 9.10... |
2025-04-09 02:16:47 +0200 | <emojelly> | it is entirely possible that the problem is maybe in Clash, which I have practically no insight into, but if, profiling is just not telling me anything. |
2025-04-09 02:17:02 +0200 | ystael | (~ystael@user/ystael) (Ping timeout: 244 seconds) |
2025-04-09 02:17:20 +0200 | <emojelly> | (system process sampling and looking up the funky generated symbol name in the Core code seems to rather suggest it's in my code at first glance, though.) |
2025-04-09 02:18:00 +0200 | <emojelly> | have to run. |
2025-04-09 02:19:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-04-09 02:19:58 +0200 | inca | (~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
2025-04-09 02:20:53 +0200 | inca | (~inca@pool-96-255-212-224.washdc.fios.verizon.net) |
2025-04-09 02:22:17 +0200 | Inst | (~Inst@user/Inst) Inst |
2025-04-09 02:26:44 +0200 | inca | (~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2025-04-09 02:27:11 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-04-09 02:30:30 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 02:32:43 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-04-09 02:34:25 +0200 | califax | (~califax@user/califx) califx |
2025-04-09 02:34:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 02:37:13 +0200 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 268 seconds) |
2025-04-09 02:39:09 +0200 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) gabriel_sevecek |
2025-04-09 02:40:11 +0200 | inca | (~inca@pool-96-255-212-224.washdc.fios.verizon.net) |
2025-04-09 02:43:09 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds) |
2025-04-09 02:45:53 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 02:50:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-04-09 02:51:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 02:54:34 +0200 | <EvanR> | dude why are you talking to a bridge |
2025-04-09 02:55:43 +0200 | <geekosaur> | because many IRC clients autocomplete to the last speaker on a bare tab, which will get the bridge |
2025-04-09 02:55:45 +0200 | xff0x | (~xff0x@2405:6580:b080:900:c071:5032:6468:f840) (Ping timeout: 248 seconds) |
2025-04-09 02:57:26 +0200 | <emojelly> | Ah, no. Because my irc client front end has a bug right now that swallows stuff in angle brackets, brackets included. I didn’t realize there was a name there… |
2025-04-09 02:57:54 +0200 | <EvanR> | oof |
2025-04-09 02:57:55 +0200 | <emojelly> | I *did* wonder, but I figured maybe this bridge is only used by a single user. :’) |
2025-04-09 02:58:52 +0200 | <haskellbridge> | <Liamzee> geekosaur maintains a bridge between some haskell rooms and matrix |
2025-04-09 02:58:57 +0200 | <geekosaur> | I want to move the bridge to something that does puppeting, but I need to get it off my personal box and that's waiting on the HF |
2025-04-09 02:59:22 +0200 | otto_s | (~user@p5b044d5e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-04-09 02:59:44 +0200 | <geekosaur> | (it works best with IPv6 but my provider's in the 20th century still) |
2025-04-09 03:01:19 +0200 | otto_s | (~user@p4ff27c58.dip0.t-ipconnect.de) |
2025-04-09 03:01:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 03:03:02 +0200 | cptaffe | (~cptaffe@user/cptaffe) cptaffe |
2025-04-09 03:06:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 03:06:47 +0200 | <EvanR> | I dunno, this IPv6 stuff is probably just a fad |
2025-04-09 03:06:52 +0200 | <EvanR> | like unicode |
2025-04-09 03:07:13 +0200 | <jackdk> | emojelly: some kind of HTML sanitising? |
2025-04-09 03:07:38 +0200 | <EvanR> | third rate back alley HTML sanitizing |
2025-04-09 03:07:58 +0200 | <haskellbridge> | <Bowuigi> That shouldn't remove tags, just replace them with their &-codes |
2025-04-09 03:09:15 +0200 | <geekosaur> | that's certainly how I've always done it |
2025-04-09 03:11:49 +0200 | <mauke> | Bowuigi: that would be HTML escaping, not sanitizing |
2025-04-09 03:12:49 +0200 | <geekosaur> | .oO{ so you're saying sanitizing isn't sane? ) |
2025-04-09 03:13:47 +0200 | <mauke> | exactly |
2025-04-09 03:14:17 +0200 | <haskellbridge> | <Bowuigi> It should just remove stuff on a blocklist and escape the unknowns |
2025-04-09 03:14:22 +0200 | <mauke> | "sanitizing" = mangling your inputs to remove all the "harmful" parts |
2025-04-09 03:14:49 +0200 | <haskellbridge> | <Bowuigi> That's the sanest option, given it removes possibly harmful stuff and keeps the rest |
2025-04-09 03:15:37 +0200 | <haskellbridge> | <Bowuigi> Unless my alias is potentially harmful, which it might be for my career but not for anyone else |
2025-04-09 03:17:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 03:19:37 +0200 | <EvanR> | sanitize :: String -> String |
2025-04-09 03:19:41 +0200 | <EvanR> | sanitize _ = "" |
2025-04-09 03:20:42 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-04-09 03:21:57 +0200 | <jackdk> | No output, no vulnerability |
2025-04-09 03:22:09 +0200 | <jackdk> | And with lazy evaluation it doesn't even consider the input! |
2025-04-09 03:22:28 +0200 | XZDX | (~xzdx@2601:404:ce00:4e51:214:51ff:fe2b:e82e) (Remote host closed the connection) |
2025-04-09 03:22:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 03:28:54 +0200 | <haskellbridge> | <Liamzee> the empty string is technically output |
2025-04-09 03:29:49 +0200 | <haskellbridge> | <Liamzee> i wonder what the safety of outputting bottom would be, though |
2025-04-09 03:33:16 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 03:33:31 +0200 | prolic_ | (~sasa@181.122.135.9) prolic_ |
2025-04-09 03:36:02 +0200 | <EvanR> | perfectly safe. Just ignore the existence of bottom |
2025-04-09 03:37:53 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-04-09 03:44:32 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-04-09 03:49:03 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 03:52:51 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-09 03:53:51 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
2025-04-09 03:59:12 +0200 | <statusbot> | Maintenance update: hackage server is operational again! -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/67f5bb13d9e59f092626b642 |
2025-04-09 03:59:18 +0200 | <haskellbridge> | <Liamzee> yay |
2025-04-09 03:59:27 +0200 | <haskellbridge> | <Liamzee> thanks @sclv etc |
2025-04-09 03:59:38 +0200 | Garbanzo | (~Garbanzo@2602:304:6eac:dc10::2e) |
2025-04-09 03:59:46 +0200 | notdabs | (~Owner@2600:1700:69cf:9000:1d8b:380b:ab0b:1fbd) (Read error: Connection reset by peer) |
2025-04-09 04:02:57 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds) |
2025-04-09 04:03:37 +0200 | qyrhx | (~qyrhx@user/qyrhx) qyrhx |
2025-04-09 04:04:51 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 04:05:04 +0200 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.6.0) |
2025-04-09 04:05:05 +0200 | jmcantrell_ | jmcantrell |
2025-04-09 04:08:06 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) ezzieyguywuf |
2025-04-09 04:08:47 +0200 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2025-04-09 04:08:49 +0200 | qyrhx | (~qyrhx@user/qyrhx) (Quit: WeeChat 4.6.0) |
2025-04-09 04:09:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
2025-04-09 04:10:28 +0200 | jmcantrell | (644f1bed9a@user/jmcantrell) (Killed (tungsten.libera.chat (Nickname regained by services))) |
2025-04-09 04:10:28 +0200 | __jmcantrell__ | jmcantrell |
2025-04-09 04:10:37 +0200 | jmcantrell_ | (644f1bed9a@user/jmcantrell) jmcantrell |
2025-04-09 04:15:40 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer) |
2025-04-09 04:16:13 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) ezzieyguywuf |
2025-04-09 04:17:26 +0200 | ezzieygu1wuf | (~Unknown@user/ezzieyguywuf) ezzieyguywuf |
2025-04-09 04:17:58 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer) |
2025-04-09 04:20:38 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 04:23:41 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-09 04:24:50 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 04:26:59 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2025-04-09 04:27:22 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 04:28:34 +0200 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 244 seconds) |
2025-04-09 04:33:36 +0200 | bramh | (~bramh@user/bramh) (Quit: Ping timeout (120 seconds)) |
2025-04-09 04:33:50 +0200 | bramh | (~bramh@user/bramh) bramh |
2025-04-09 04:36:00 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 04:36:26 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2025-04-09 04:36:37 +0200 | Inst | (~Inst@user/Inst) (Ping timeout: 248 seconds) |
2025-04-09 04:36:49 +0200 | <emojelly> | jackdk: I think it’s HTML sanitizing gone wrong, because I didn’t have this problem with an earlier version of the front end. |
2025-04-09 04:37:59 +0200 | <monochrom> | Moar general: sanitize :: a -> [b]; sanitize _ = [] |
2025-04-09 04:38:52 +0200 | <monochrom> | Or maybe you prefer this other generalization direction? sanitize :: Istring b => a -> b; sanitize _ = "" |
2025-04-09 04:40:27 +0200 | prolic_ | (~sasa@181.122.135.9) (Ping timeout: 244 seconds) |
2025-04-09 04:40:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-04-09 04:40:56 +0200 | <EvanR> | give me the most general generalization |
2025-04-09 04:42:10 +0200 | <geekosaur> | const [] |
2025-04-09 04:42:18 +0200 | <monochrom> | sanitize :: forall a b c. IsString c => a -> ([b], c); sanitize _ = ([], "") |
2025-04-09 04:46:41 +0200 | <haskellbridge> | <Bowuigi> sanitize _ = mempty |
2025-04-09 04:47:19 +0200 | <haskellbridge> | <Bowuigi> Pointed sets would be more general, but it has to have this meaning of "nothing but something" |
2025-04-09 04:49:02 +0200 | <monochrom> | Like this? sanitize :: a -> Maybe b; sanitize _ = Nothing |
2025-04-09 04:51:10 +0200 | <monochrom> | OK mempty is nicer. |
2025-04-09 04:51:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 04:52:16 +0200 | EvanR | (~EvanR@user/evanr) (Ping timeout: 268 seconds) |
2025-04-09 04:55:42 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-04-09 04:56:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-04-09 04:57:20 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Max SendQ exceeded) |
2025-04-09 04:57:43 +0200 | <mauke> | sanitize :: a -> () |
2025-04-09 04:58:02 +0200 | <monochrom> | :) |
2025-04-09 04:58:54 +0200 | <monochrom> | That's brilliant. The terminal object ought to be the most general. :) |
2025-04-09 05:00:07 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-04-09 05:01:19 +0200 | EvanR | (~EvanR@user/evanr) EvanR |
2025-04-09 05:04:44 +0200 | <jackdk> | What they don't tell you is that `sanitise` uses `acme-smuggler` under the hood |
2025-04-09 05:07:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 05:09:17 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-09 05:10:04 +0200 | <haskellbridge> | <Liamzee> is everything okay with your issue, emojelly? I probably can't be of help, but just hoping you fixed your problem |
2025-04-09 05:10:50 +0200 | <haskellbridge> | <Liamzee> and sorry for the jokes (but you might actually want to shift the sanitize function to () and see how the profiler goes) |
2025-04-09 05:13:15 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-09 05:21:18 +0200 | Square2 | (~Square@user/square) Square |
2025-04-09 05:23:17 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 05:25:18 +0200 | Square | (~Square4@user/square) (Ping timeout: 252 seconds) |
2025-04-09 05:27:12 +0200 | spew | (~spew@135.233.119.40) (Remote host closed the connection) |
2025-04-09 05:27:58 +0200 | spew | (~spew@135.233.119.40) spew |
2025-04-09 05:28:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 05:28:41 +0200 | spew | (~spew@135.233.119.40) (Remote host closed the connection) |
2025-04-09 05:29:04 +0200 | spew | (~spew@135.233.119.40) spew |
2025-04-09 05:32:05 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz |
2025-04-09 05:39:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 05:43:45 +0200 | michalz | (~michalz@185.246.207.200) |
2025-04-09 05:44:00 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 05:49:25 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-04-09 05:54:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 05:59:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-09 06:10:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 06:16:18 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-09 06:22:01 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-09 06:25:10 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 06:26:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 06:26:51 +0200 | tavare | (~tavare@150.129.88.189) |
2025-04-09 06:26:51 +0200 | tavare | (~tavare@150.129.88.189) (Changing host) |
2025-04-09 06:26:51 +0200 | tavare | (~tavare@user/tavare) tavare |
2025-04-09 06:29:28 +0200 | Square2 | (~Square@user/square) (Ping timeout: 244 seconds) |
2025-04-09 06:31:17 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 06:41:51 +0200 | thuna` | (~thuna`@user/thuna/x-1480069) thuna` |
2025-04-09 06:42:11 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 06:42:50 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-09 06:46:00 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 06:47:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-04-09 06:57:56 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 06:58:03 +0200 | harveypwca | (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) |
2025-04-09 07:01:19 +0200 | JuanDaugherty | ColinRobinson |
2025-04-09 07:02:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-04-09 07:05:38 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) (Quit: Hi, this is Paul Allen. I'm being called away to London for a few days. Meredith, I'll call you when I get back. Hasta la vista, baby.) |
2025-04-09 07:06:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 07:11:33 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-04-09 07:11:50 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-09 07:11:59 +0200 | esph | (~weechat@user/esph) esph |
2025-04-09 07:12:26 +0200 | sayurc | (~sayurc@169.150.203.34) sayurc |
2025-04-09 07:12:48 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 265 seconds) |
2025-04-09 07:19:58 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-04-09 07:20:00 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 246 seconds) |
2025-04-09 07:22:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 07:24:33 +0200 | thuna` | (~thuna`@user/thuna/x-1480069) (Ping timeout: 246 seconds) |
2025-04-09 07:27:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 07:28:40 +0200 | Inst | (~Inst@user/Inst) Inst |
2025-04-09 07:29:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 07:34:33 +0200 | tavare | (~tavare@user/tavare) (Remote host closed the connection) |
2025-04-09 07:34:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 07:46:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 07:50:45 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 07:53:59 +0200 | Natch | (~natch@c-92-34-7-158.bbcust.telenor.se) (Ping timeout: 260 seconds) |
2025-04-09 07:54:14 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-09 07:55:23 +0200 | Natch | (~natch@c-92-34-7-158.bbcust.telenor.se) |
2025-04-09 08:01:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 08:06:15 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 08:06:25 +0200 | thuna` | (~thuna`@user/thuna/x-1480069) thuna` |
2025-04-09 08:06:57 +0200 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.6.0) |
2025-04-09 08:06:57 +0200 | jmcantrell_ | jmcantrell |
2025-04-09 08:18:06 +0200 | Garbanzo | (~Garbanzo@2602:304:6eac:dc10::2e) (Remote host closed the connection) |
2025-04-09 08:29:19 +0200 | harveypwca | (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving) |
2025-04-09 08:29:57 +0200 | ColinRobinson | JuanDaugherty |
2025-04-09 08:32:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 08:38:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-04-09 08:40:03 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-04-09 08:42:22 +0200 | ft | (~ft@p508db463.dip0.t-ipconnect.de) (Quit: leaving) |
2025-04-09 08:48:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 08:51:56 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-04-09 08:53:06 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-09 08:57:54 +0200 | fantom | (~fantom@2.219.56.221) (Quit: Connection error?!) |
2025-04-09 08:58:21 +0200 | sayurc | (~sayurc@169.150.203.34) (Quit: Konversation terminated!) |
2025-04-09 09:00:01 +0200 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-04-09 09:00:57 +0200 | caconym | (~caconym@user/caconym) caconym |
2025-04-09 09:01:50 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-04-09 09:03:07 +0200 | JuanDaugherty | ColinRobinson |
2025-04-09 09:03:22 +0200 | fantom | (~fantom@2.219.56.221) |
2025-04-09 09:03:40 +0200 | polyphem | (~rod@p4fc2cdf8.dip0.t-ipconnect.de) polyphem |
2025-04-09 09:04:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 09:06:54 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-04-09 09:08:58 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-09 09:17:06 +0200 | jco | (~jco@78-70-217-44-no600.tbcn.telia.com) jco |
2025-04-09 09:18:00 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2025-04-09 09:18:12 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-04-09 09:18:45 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2025-04-09 09:18:50 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-04-09 09:25:51 +0200 | <[exa]> | is there any good way to build stuff with accelerate-llvm-native without stack now? I was trying to somewhat revive the docker container but it fails (llvm 15 not available etc) |
2025-04-09 09:26:18 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2025-04-09 09:34:49 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e71c4f99589ab59c7ee4b7ea.dip0.t-ipconnect.de) acidjnk |
2025-04-09 09:37:08 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2025-04-09 09:37:12 +0200 | califax | (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-04-09 09:37:27 +0200 | califax | (~califax@user/califx) califx |
2025-04-09 09:38:05 +0200 | a_fantom | (~fantom@2.219.56.221) |
2025-04-09 09:41:09 +0200 | fantom | (~fantom@2.219.56.221) (Ping timeout: 244 seconds) |
2025-04-09 09:41:37 +0200 | chele | (~chele@user/chele) chele |
2025-04-09 09:45:57 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2025-04-09 09:51:40 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2025-04-09 09:55:47 +0200 | ColinRobinson | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-04-09 09:57:06 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-04-09 09:59:17 +0200 | fantom | (~fantom@2.219.56.221) |
2025-04-09 10:01:49 +0200 | a_fantom | (~fantom@2.219.56.221) (Ping timeout: 244 seconds) |
2025-04-09 10:05:54 +0200 | Inst | (~Inst@user/Inst) (Remote host closed the connection) |
2025-04-09 10:07:48 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-04-09 10:14:12 +0200 | Googulator | (~Googulato@2a01-036d-0106-211a-f46d-c0c9-579b-1a24.pool6.digikabel.hu) (Quit: Client closed) |
2025-04-09 10:38:51 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2025-04-09 10:39:27 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 268 seconds) |
2025-04-09 10:41:48 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 10:48:48 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds) |
2025-04-09 10:56:33 +0200 | poxel | (~lennart@user/poxel) (Quit: WeeChat 4.6.0) |
2025-04-09 11:00:05 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds) |
2025-04-09 11:03:47 +0200 | fp | (~Thunderbi@2001:708:150:10::1d80) fp |
2025-04-09 11:13:02 +0200 | lortabac | (~lortabac@2a0d:e487:132f:be52:3a12:65c4:6cf:efd7) |
2025-04-09 11:13:50 +0200 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
2025-04-09 11:14:42 +0200 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu |
2025-04-09 11:16:46 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-09 11:24:55 +0200 | forell_ | (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) |
2025-04-09 11:25:00 +0200 | forell | (~forell@user/forell) (Ping timeout: 252 seconds) |
2025-04-09 11:26:25 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-04-09 11:27:10 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
2025-04-09 11:37:06 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-09 11:40:57 +0200 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
2025-04-09 11:41:08 +0200 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |
2025-04-09 11:41:14 +0200 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu |
2025-04-09 11:41:42 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 11:47:56 +0200 | EvanR | (~EvanR@user/evanr) (Read error: Connection reset by peer) |
2025-04-09 11:48:03 +0200 | EvanR_ | (~EvanR@user/evanr) EvanR |
2025-04-09 11:53:09 +0200 | lortabac | (~lortabac@2a0d:e487:132f:be52:3a12:65c4:6cf:efd7) (Ping timeout: 252 seconds) |
2025-04-09 11:59:12 +0200 | justin | (~justin@136.158.10.171) |
2025-04-09 11:59:12 +0200 | justin | Guest6600 |
2025-04-09 12:01:05 +0200 | Guest6600 | (~justin@136.158.10.171) (Client Quit) |
2025-04-09 12:03:08 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
2025-04-09 12:05:40 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz |
2025-04-09 12:10:53 +0200 | alp | (~alp@2001:861:8ca0:4940:93b8:dd2d:3845:3995) |
2025-04-09 12:19:15 +0200 | fantom | (~fantom@2.219.56.221) (Ping timeout: 244 seconds) |
2025-04-09 12:24:39 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2025-04-09 12:28:01 +0200 | <haskellbridge> | <Morj> Hello Joe, do you like functional programming? |
2025-04-09 13:02:00 +0200 | jespada | (~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) jespada |
2025-04-09 13:02:49 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-04-09 13:05:42 +0200 | xff0x | (~xff0x@2405:6580:b080:900:b50:e5e9:27c3:86) |
2025-04-09 13:13:40 +0200 | <Digit> | every time i'm configuring a program in something other than haskell, i feel like i'm wasting time that could be better spent better learning haskell... how far can one go, in replacing all the things with haskell programs? ... e.g. is there a terminal emulator written in haskell? yi for text editor, what else? can "everything" be covered? |
2025-04-09 13:15:37 +0200 | <dmoerner> | although there are exceptions (suckless, e.g.) i don't find that most programs written in language X need to be configured in language X |
2025-04-09 13:16:20 +0200 | <dmoerner> | instead for good reason they often use a specific language for configuration, like toml |
2025-04-09 13:22:24 +0200 | <dutchie> | there's xmonad for window management that immediately comes to mind |
2025-04-09 13:22:50 +0200 | <dutchie> | you could always generate program X's config by writing a Haskell program |
2025-04-09 13:26:10 +0200 | <Leary> | @hackage termonad |
2025-04-09 13:26:10 +0200 | <lambdabot> | https://hackage.haskell.org/package/termonad |
2025-04-09 13:26:14 +0200 | <Leary> | Digit: ^ |
2025-04-09 13:27:04 +0200 | <int-e> | . o O ( what a name, but "termonador" would be better ) |
2025-04-09 13:28:57 +0200 | <merijn> | Digit: There's also vty |
2025-04-09 13:29:39 +0200 | <merijn> | Although, tbh I doubt using yi would be a worthwhile investment :p |
2025-04-09 13:31:35 +0200 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 244 seconds) |
2025-04-09 13:34:10 +0200 | sprotte24 | (~sprotte24@p200300d16f0bc1000c82a6b41033ea55.dip0.t-ipconnect.de) |
2025-04-09 13:45:41 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds) |
2025-04-09 13:48:35 +0200 | hsw | (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) (Remote host closed the connection) |
2025-04-09 13:48:54 +0200 | hsw | (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) hsw |
2025-04-09 13:52:49 +0200 | jespada | (~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) (Ping timeout: 248 seconds) |
2025-04-09 13:55:15 +0200 | TheCoffeMaker_ | (~TheCoffeM@186.136.173.186) (Ping timeout: 252 seconds) |
2025-04-09 13:55:46 +0200 | jespada | (~jespada@r190-133-30-51.dialup.adsl.anteldata.net.uy) jespada |
2025-04-09 13:55:59 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2025-04-09 13:56:23 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 265 seconds) |
2025-04-09 13:57:45 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-09 14:01:13 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-04-09 14:06:48 +0200 | notdabs | (~Owner@2600:1700:69cf:9000:19b2:995a:60d5:3b93) |
2025-04-09 14:07:03 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 246 seconds) |
2025-04-09 14:16:31 +0200 | zfnmxt | (~zfnmxt@user/zfnmxt) (Remote host closed the connection) |
2025-04-09 14:17:32 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds) |
2025-04-09 14:17:34 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 244 seconds) |
2025-04-09 14:18:00 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2025-04-09 14:20:50 +0200 | zfnmxt | (~zfnmxt@user/zfnmxt) zfnmxt |
2025-04-09 14:27:49 +0200 | JuanDaugherty | ColinRobinson |
2025-04-09 14:30:33 +0200 | as_ | (~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8) |
2025-04-09 14:30:52 +0200 | comerijn | (~merijn@77.242.116.146) merijn |
2025-04-09 14:30:54 +0200 | thuna` | (~thuna`@user/thuna/x-1480069) (Ping timeout: 252 seconds) |
2025-04-09 14:33:36 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
2025-04-09 14:36:26 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-09 14:36:38 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2025-04-09 14:43:59 +0200 | michalz_ | (~michalz@185.246.207.203) |
2025-04-09 14:44:33 +0200 | michalz | (~michalz@185.246.207.200) (Ping timeout: 245 seconds) |
2025-04-09 14:54:56 +0200 | troydm | (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
2025-04-09 14:55:32 +0200 | troydm | (~troydm@user/troydm) troydm |
2025-04-09 14:59:04 +0200 | fp | (~Thunderbi@2001:708:150:10::1d80) (Ping timeout: 268 seconds) |
2025-04-09 15:26:53 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-04-09 15:34:32 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Remote host closed the connection) |
2025-04-09 15:34:55 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2025-04-09 15:35:35 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
2025-04-09 15:40:02 +0200 | tromp | (~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf) |
2025-04-09 15:42:22 +0200 | Square | (~Square4@user/square) Square |
2025-04-09 15:52:11 +0200 | ystael | (~ystael@user/ystael) ystael |
2025-04-09 16:12:52 +0200 | ColinRobinson | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-04-09 16:14:52 +0200 | <[exa]> | Digit: unix clearly dictates that there's no silver bullet |
2025-04-09 16:14:57 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-04-09 16:15:35 +0200 | <[exa]> | (otoh any time spent trying to sensibly port stuff to haskell is certainly not wasted) |
2025-04-09 16:16:11 +0200 | amadaluzia | (~amadaluzi@2a00:23c7:ed8b:6701:58aa:f4c7:c90:674e) |
2025-04-09 16:17:48 +0200 | <[exa]> | btw, is there any modern replacement for Ivory? I see the website is somehow dead today |
2025-04-09 16:19:48 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds) |
2025-04-09 16:20:35 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2025-04-09 16:30:23 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 245 seconds) |
2025-04-09 16:32:00 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 16:33:25 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e71c4f99589ab59c7ee4b7ea.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2025-04-09 16:36:13 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 245 seconds) |
2025-04-09 16:37:44 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 268 seconds) |
2025-04-09 16:54:44 +0200 | Googulator | (~Googulato@2a01-036d-0106-211a-98f9-54d1-cd01-d0d3.pool6.digikabel.hu) |
2025-04-09 16:56:02 +0200 | EvanR_ | EvanR |
2025-04-09 16:57:10 +0200 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2025-04-09 16:57:27 +0200 | jmcantrell | Guest4549 |
2025-04-09 16:57:27 +0200 | Guest4549 | (644f1bed9a@user/jmcantrell) (Killed (zirconium.libera.chat (Nickname regained by services))) |
2025-04-09 16:57:27 +0200 | __jmcantrell__ | jmcantrell |
2025-04-09 16:57:35 +0200 | jmcantrell_ | (644f1bed9a@user/jmcantrell) jmcantrell |
2025-04-09 17:07:16 +0200 | tromp | (~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-04-09 17:10:25 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e71c4f995d166d77a499a203.dip0.t-ipconnect.de) acidjnk |
2025-04-09 17:18:50 +0200 | as_ | (~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8) (Quit: as_) |
2025-04-09 17:20:38 +0200 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-04-09 17:20:50 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2025-04-09 17:21:23 +0200 | as_ | (~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8) |
2025-04-09 17:22:06 +0200 | rembo10 | (~rembo10@main.remulis.com) rembo10 |
2025-04-09 17:25:25 +0200 | alp | (~alp@2001:861:8ca0:4940:93b8:dd2d:3845:3995) (Ping timeout: 252 seconds) |
2025-04-09 17:28:48 +0200 | <hellwolf> | There is no (!!) for linear arrays: you need to split it, dup it to (it', it'') then use it' and assemble the original list back with it''. |
2025-04-09 17:28:53 +0200 | <hellwolf> | pain |
2025-04-09 17:31:56 +0200 | tromp | (~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf) |
2025-04-09 17:32:02 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 248 seconds) |
2025-04-09 17:33:38 +0200 | <EvanR> | !! is lookup |
2025-04-09 17:33:43 +0200 | zmt00 | (~zmt00@user/zmt00) zmt00 |
2025-04-09 17:33:45 +0200 | <EvanR> | the operation is usually ! for arrays |
2025-04-09 17:33:49 +0200 | <EvanR> | operator* |
2025-04-09 17:34:07 +0200 | <EvanR> | > [1,2,3,4,5] !! 3 |
2025-04-09 17:34:08 +0200 | <lambdabot> | 4 |
2025-04-09 17:34:29 +0200 | <int-e> | I don't think it matters for the linear type trouble |
2025-04-09 17:34:41 +0200 | <EvanR> | oh, linear |
2025-04-09 17:35:26 +0200 | <int-e> | though you could still have a function that replaces an array element and returns the old one |
2025-04-09 17:35:54 +0200 | <EvanR> | get :: HasCallStack => Int -> Vector a %1 -> (Ur a, Vector a) |
2025-04-09 17:36:59 +0200 | <int-e> | EvanR: more precisely, the problem would occur if the elements have a linear type |
2025-04-09 17:37:11 +0200 | int-e | shrugs |
2025-04-09 17:38:02 +0200 | <EvanR> | example? |
2025-04-09 17:39:34 +0200 | <EvanR> | a vector of linear functions? |
2025-04-09 17:40:13 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2025-04-09 17:42:12 +0200 | <int-e> | I'm trying to understand where the unrestricted a in your signature comes from. That would mean the elements of the vectors are also unrestricted when they are put in, wouldn't it? |
2025-04-09 17:42:48 +0200 | <EvanR> | let me find the constructor |
2025-04-09 17:43:18 +0200 | <EvanR> | fromList :: (HasCallStack, Movable b) => [a] -> (Vector a %1 -> b) %1 -> b |
2025-04-09 17:43:24 +0200 | <EvanR> | no |
2025-04-09 17:43:30 +0200 | <EvanR> | yes |
2025-04-09 17:44:45 +0200 | <EvanR> | so that's what Data.Vector.Mutable.Linear does |
2025-04-09 17:48:03 +0200 | ft | (~ft@p508db463.dip0.t-ipconnect.de) ft |
2025-04-09 17:49:15 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 252 seconds) |
2025-04-09 17:51:44 +0200 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
2025-04-09 17:54:26 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-04-09 17:54:26 +0200 | Chai-T-Rex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2025-04-09 17:54:55 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2025-04-09 17:54:55 +0200 | califax | (~califax@user/califx) califx |
2025-04-09 17:58:54 +0200 | as_ | (~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8) (Adiós) |
2025-04-09 18:06:13 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e71c4f995d166d77a499a203.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2025-04-09 18:13:21 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-04-09 18:14:55 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-09 18:15:29 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2025-04-09 18:18:21 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 265 seconds) |
2025-04-09 18:28:04 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2025-04-09 18:30:32 +0200 | sayurc | (~sayurc@169.150.203.34) sayurc |
2025-04-09 18:35:24 +0200 | stef204 | (~stef204@user/stef204) stef204 |
2025-04-09 18:36:43 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2025-04-09 18:44:46 +0200 | alp | (~alp@2001:861:8ca0:4940:408a:bf2b:1297:8090) |
2025-04-09 18:46:44 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds) |
2025-04-09 18:48:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 18:52:15 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 276 seconds) |
2025-04-09 18:53:42 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-04-09 18:54:18 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-04-09 19:02:53 +0200 | <EvanR> | does the W in algorithm W stand for anything in particular |
2025-04-09 19:03:57 +0200 | <spew> | wadler |
2025-04-09 19:04:35 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 19:07:00 +0200 | <EvanR> | it's from Milner 1978, at which time wadler had just completed their bachelors in mathematics |
2025-04-09 19:07:06 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2025-04-09 19:07:56 +0200 | <EvanR> | A Theory of Type Polymorphism in Programming |
2025-04-09 19:08:11 +0200 | tromp | (~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-04-09 19:08:48 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2025-04-09 19:09:34 +0200 | sayurc | (~sayurc@169.150.203.34) (Quit: Konversation terminated!) |
2025-04-09 19:12:00 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-09 19:13:07 +0200 | <spew> | they were future seers |
2025-04-09 19:15:31 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2025-04-09 19:16:06 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2025-04-09 19:16:25 +0200 | sayurc | (~sayurc@169.150.203.34) sayurc |
2025-04-09 19:17:04 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2025-04-09 19:18:04 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-09 19:20:06 +0200 | <haskellbridge> | <Bowuigi> Milner was just using gen Z language because the algorithm was ahead of its time |
2025-04-09 19:20:12 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
2025-04-09 19:20:59 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-09 19:22:34 +0200 | tromp | (~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf) |
2025-04-09 19:22:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 19:23:14 +0200 | <Leary> | EvanR: Probably 'well-typing'. |
2025-04-09 19:24:35 +0200 | amadaluzia | (~amadaluzi@2a00:23c7:ed8b:6701:58aa:f4c7:c90:674e) (Changing host) |
2025-04-09 19:24:35 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-04-09 19:27:16 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
2025-04-09 19:27:17 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-09 19:32:56 +0200 | alp | (~alp@2001:861:8ca0:4940:408a:bf2b:1297:8090) (Ping timeout: 272 seconds) |
2025-04-09 19:34:48 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz) |
2025-04-09 19:35:00 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e71c4f997cc0cb9b6e0fa5d7.dip0.t-ipconnect.de) |
2025-04-09 19:36:24 +0200 | <EvanR> | wikipedia states: Formally, in HM, a type σ' is more general than σ, formally σ' ⊑ σ, if ... |
2025-04-09 19:36:34 +0200 | <EvanR> | struggling to justify that choice of operator for that xD |
2025-04-09 19:36:47 +0200 | <EvanR> | since it looks like subset of |
2025-04-09 19:37:14 +0200 | <EvanR> | or less than |
2025-04-09 19:37:17 +0200 | <EvanR> | not more than |
2025-04-09 19:38:04 +0200 | <int-e> | well a more general type has fewer inhabitants; consider the extreme case forall a. a |
2025-04-09 19:38:26 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 19:39:56 +0200 | <EvanR> | in general that's not necessarily true |
2025-04-09 19:40:46 +0200 | <int-e> | are you sure about that |
2025-04-09 19:40:54 +0200 | <EvanR> | give or take I still don't know how to count such inhabitants |
2025-04-09 19:41:25 +0200 | <int-e> | any inhabitant of sigma' can be used at type sigma |
2025-04-09 19:42:17 +0200 | <EvanR> | more information about the types may let you do other things, but not less things |
2025-04-09 19:42:24 +0200 | <EvanR> | ok |
2025-04-09 19:43:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-04-09 19:47:56 +0200 | atwm | (~andrew@19-193-28-81.ftth.cust.kwaoo.net) atwm |
2025-04-09 19:48:07 +0200 | sayurc | (~sayurc@169.150.203.34) (Quit: Konversation terminated!) |
2025-04-09 19:48:10 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 19:52:39 +0200 | atwm | (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Client Quit) |
2025-04-09 19:52:53 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-09 19:54:59 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2025-04-09 20:03:56 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 20:03:59 +0200 | <monochrom> | So "more general" means "less information". |
2025-04-09 20:05:34 +0200 | <monochrom> | To be sure, that sounds wrong until I show the intermediate steps: more general = more abstract = less detail = less information |
2025-04-09 20:07:24 +0200 | <monochrom> | You can remember this example: \x -> x could be Int->Int or it could also be forall a. a->a. Int->Int is a larger space, forall a. a->a is a smaller space. |
2025-04-09 20:08:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-04-09 20:10:12 +0200 | <int-e> | monochrom: so by making things more general you strive to convey as little information as possible |
2025-04-09 20:10:14 +0200 | <[exa]> | EvanR: I'm usually reading that operator as "less specialized" but the choice still sucks |
2025-04-09 20:10:20 +0200 | sayurc | (~sayurc@169.150.203.34) sayurc |
2025-04-09 20:10:29 +0200 | <EvanR> | "less specialized" didn't help xD |
2025-04-09 20:10:47 +0200 | <EvanR> | since I guess I just flipped the confusion around mentally to still be there |
2025-04-09 20:10:52 +0200 | <[exa]> | at least it sounds properly like the "less than" for me |
2025-04-09 20:11:06 +0200 | <[exa]> | yeah |
2025-04-09 20:11:15 +0200 | <int-e> | in the end the choice of direction is completely arbitrary |
2025-04-09 20:11:27 +0200 | <EvanR> | sure |
2025-04-09 20:11:29 +0200 | <[exa]> | maybe we could just go and edit the wiki? where did they get the boxy lessthan anyway? |
2025-04-09 20:11:42 +0200 | [exa] | wants to see some radical model theory |
2025-04-09 20:11:44 +0200 | <int-e> | from unicode? |
2025-04-09 20:11:52 +0200 | int-e | runs |
2025-04-09 20:11:58 +0200 | [exa] | throws a stone |
2025-04-09 20:12:08 +0200 | <monochrom> | Yeah my favourite tease is saying that half of the fundamental theorem of Galois theory is just lattice theory, to show how little information it has/needs. >:) |
2025-04-09 20:12:40 +0200 | <monochrom> | (Also, that half is just 5-10 lines of proof.) |
2025-04-09 20:12:41 +0200 | <int-e> | I suspect that this direction is standard in the relevant fragment of the literature and you'd confuse people if you flipped the direction |
2025-04-09 20:13:26 +0200 | <EvanR> | you can say "σ' is more general than σ, formally σ ⊒ σ'" |
2025-04-09 20:13:31 +0200 | <EvanR> | totally arbitrary xD |
2025-04-09 20:13:49 +0200 | <int-e> | ⊑ is a standard symbol for partial orders that aren't comparisons or subsets |
2025-04-09 20:14:00 +0200 | <int-e> | EvanR: I see what you did there and I don't disapprove. |
2025-04-09 20:14:14 +0200 | <EvanR> | yeah I think of it as "less than" |
2025-04-09 20:14:24 +0200 | <EvanR> | and forall a . a is at the bottom |
2025-04-09 20:15:21 +0200 | <EvanR> | "lines of proof" (LOP) |
2025-04-09 20:17:24 +0200 | <monochrom> | Speaking of which, you do have an inverse relationship between number of statements satisfied vs number of elements. |
2025-04-09 20:18:20 +0200 | <[exa]> | kinda wondering, doesn't the declarative rule system they have there actually give a slightly different typesystem than what they show with algorithm W later? |
2025-04-09 20:19:03 +0200 | <EvanR> | they describe 4 different rule systems |
2025-04-09 20:19:12 +0200 | <EvanR> | for reasons, I presume |
2025-04-09 20:19:14 +0200 | ft | (~ft@p508db463.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-04-09 20:19:25 +0200 | <[exa]> | as in, the Inst rule with ⊒ allows partial instantiation as opposed to the explicit instantiate() later below |
2025-04-09 20:19:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 20:19:45 +0200 | <EvanR> | if you get to they very end of that story, they kind of leave you on a cliffhanger |
2025-04-09 20:20:00 +0200 | <EvanR> | (proof obligations) |
2025-04-09 20:20:27 +0200 | <int-e> | (execises to the reader) |
2025-04-09 20:20:30 +0200 | <int-e> | +r |
2025-04-09 20:21:12 +0200 | ft | (~ft@p508db594.dip0.t-ipconnect.de) ft |
2025-04-09 20:21:47 +0200 | [exa] | imagines an episode of Dallas ending with JR saying to unseen person "I know who put ⊒ there!" |
2025-04-09 20:22:27 +0200 | <haskellbridge> | <Bowuigi> I just use bidirectional/contextual typing and call it a day. Still waiting for the polymorphism inference paper for contextual typing tho |
2025-04-09 20:23:25 +0200 | <EvanR> | do you have a paper for that |
2025-04-09 20:23:50 +0200 | <haskellbridge> | <Bowuigi> For the first two things yes, the last one does not exist yet |
2025-04-09 20:24:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-09 20:25:55 +0200 | <haskellbridge> | <Bowuigi> https://dl.acm.org/doi/10.1145/3450952 bidirectional typing https://dl.acm.org/doi/10.1145/3674655 contextual typing |
2025-04-09 20:26:33 +0200 | <haskellbridge> | <Bowuigi> The respective talks on both explain the concepts better |
2025-04-09 20:27:28 +0200 | <haskellbridge> | <Bowuigi> Polymorphism inference with bidirectional typing is reasonably well studied. Kovacs' algorithm is pretty fast and good enough for a lot of use cases |
2025-04-09 20:28:01 +0200 | <haskellbridge> | <Bowuigi> Polymorphism inference with contextual typing is likely going to be faster and more powerful, but it has to exist first |
2025-04-09 20:29:33 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-04-09 20:30:43 +0200 | target_i | (~target_i@user/target-i/x-6023099) target_i |
2025-04-09 20:30:52 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-04-09 20:30:56 +0200 | <EvanR> | if it exists, then it is fast |
2025-04-09 20:31:11 +0200 | <EvanR> | like tachyons |
2025-04-09 20:33:32 +0200 | <haskellbridge> | <Bowuigi> Yes, except that tachyons have to be discovered rather than thought about and problem solve'd into existence |
2025-04-09 20:34:23 +0200 | <int-e> | EvanR: I always admire people who have the energy to make a full trip around the Sun every single year. |
2025-04-09 20:35:31 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 20:36:05 +0200 | __monty__ | (~toonn@user/toonn) (Ping timeout: 248 seconds) |
2025-04-09 20:40:42 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-04-09 20:41:21 +0200 | <EvanR> | :thonk: |
2025-04-09 20:42:00 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2025-04-09 20:42:03 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2025-04-09 20:42:44 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-04-09 20:47:01 +0200 | jco | (~jco@78-70-217-44-no600.tbcn.telia.com) (Quit: leaving) |
2025-04-09 20:49:10 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-09 20:52:58 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-04-09 20:54:17 +0200 | img | (~img@user/img) img |
2025-04-09 20:55:55 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-09 20:59:18 +0200 | Guest51 | (~Guest17@2001:1c00:a01:bc00:d043:d46d:298e:ed82) |