Home liberachat/#haskell: Logs Calendar

Logs on 2025-01-20 (liberachat/#haskell)

00:01:50 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:06:02 xff0x joins (~xff0x@2405:6580:b080:900:2483:168a:41f:3286)
00:06:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
00:09:44 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 260 seconds)
00:11:54 rvalue joins (~rvalue@user/rvalue)
00:17:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:22:05 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
00:22:52 ystael joins (~ystael@user/ystael)
00:24:03 × Midjak quits (~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep)
00:32:34 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:34:10 × dsrt^ quits (~dsrt@108.192.66.114) (Remote host closed the connection)
00:34:16 × dnerdhm^ quits (~dnerdhm@108.192.66.114) (Remote host closed the connection)
00:37:03 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
00:39:02 × euleritian quits (~euleritia@77.23.250.232) (Read error: Connection reset by peer)
00:39:27 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
00:46:23 <albet70> bind Cont Monad is CPS?
00:46:29 <albet70> Cont Monad contain CPS compute, use bind to chain Cont Monad, is this still CPS?
00:47:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
00:48:00 × dtman34 quits (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
00:48:21 dtman34 joins (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net)
00:49:08 × acidjnk quits (~acidjnk@p200300d6e7283f1558eeea12d8956a76.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
00:52:32 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
00:53:33 × sprotte24 quits (~sprotte24@p200300d16f4f2e00b0312921636c686d.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
00:57:43 × xff0x quits (~xff0x@2405:6580:b080:900:2483:168a:41f:3286) (Ping timeout: 264 seconds)
01:03:19 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:05:26 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
01:06:06 stiell joins (~stiell@gateway/tor-sasl/stiell)
01:06:33 <haskellbridge> <Bowuigi> I think so, yeah. It kinda composes two CPS programs
01:08:03 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
01:08:31 <albet70> what's the point to write two CPS and use bind to chain them rather than just write one CPS
01:10:27 <haskellbridge> <Bowuigi> Separation of concerns
01:11:15 × anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
01:13:27 <jle`> albet70: "composable CPS programs" essentially
01:13:39 <jle`> same as the point of writing two lists to concat them together instead of writing one long list
01:14:12 <jle`> or two IO actions and sequence them one after the other instead of writing one big IO action
01:16:05 <jle`> but yeah, consider the function (++) :: [a] -> [a] -> [a] to concat two lists (or strings) together, and someone asks you "why would you ever concat two lists together instead of just writing one big list"
01:17:00 <albet70> can CPS do early return from a nested function call? like f (g (a ...))) turn to CPS, can return from a to f directly? like return only return the previous function caller, can it return to the original caller at once?
01:18:41 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:22:24 × homo quits (~homo@user/homo) (Read error: Connection reset by peer)
01:25:02 <c_wraith> with CPS, there aren't nested function calls
01:26:05 <c_wraith> at least when you go *full* CPS, functions never return.
01:26:26 <c_wraith> They take an argument for what to do next - the continuation
01:26:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
01:27:53 <albet70> but runCont still need a k to get its result
01:28:27 <c_wraith> it's not full CPS - it's bounded in scope.
01:28:48 <c_wraith> runCont is the adapter
01:29:38 × otto_s quits (~user@p4ff277d7.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
01:29:45 <c_wraith> (also, you still have access to all regular functions inside of Cont. they aren't CPS'd)
01:30:37 <geekosaur> not by Cont, at least. (doesn't GHC do full CPS?)
01:31:25 otto_s joins (~user@p5b044ca8.dip0.t-ipconnect.de)
01:34:25 <int-e> as an invisible implementation detail of graph reduction
01:36:39 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 276 seconds)
01:37:12 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
01:37:43 <albet70> so Cont is not CPS?
01:38:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:38:18 <int-e> it is
01:38:32 <int-e> it lives at a different level of abstraction
01:39:02 <monochrom> Does this make sense? Cont does CPS so you don't have to. >:)
01:39:27 <monochrom> But then since you don't have to, it's not CPS from your POV.
01:40:39 <albet70> it's confused
01:40:46 <monochrom> Analogously, GHC compiles my Haskell code to asm. So is Haskell asm? Of course not. But then why does GHC do asm? Doesn't that make Haskell asm?
01:40:52 <int-e> :t cont (const ()) -- I guess you can quibble about this and how Codensity is the real CPS
01:40:53 <lambdabot> Cont () a
01:41:17 <probie> What precisely do you guys mean when you say "CPS"?
01:41:27 <int-e> continuation passing style
01:41:42 <probie> ...
01:41:46 <int-e> where rather than returning a value, you pass it to a continuation
01:42:07 <probie> What precisely do you guys means when you say "continuation passing style"?
01:42:09 <monochrom> https://www.vex.net/~trebla/haskell/cont.xhtml#cps Does that answer your question?
01:42:21 <int-e> probie: It's not precise. That's where I was going.
01:42:37 <probie> monochrom: Not really, it gives me a definition that may not match what you are actually talking about
01:42:50 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:42:50 <monochrom> Yeah it's like "I write FP, I write OOP", it's supposed to have grey areas.
01:43:11 <monochrom> OK but I wrote that for Cont so it is actually.
01:43:23 <int-e> Cont or Codensity express a particular flavor of CPS where every function gets passed exactly one continuation.
01:43:33 × alx741 quits (~alx741@186.33.188.229) (Ping timeout: 246 seconds)
01:44:48 <int-e> GHC's CPS is that it doesn't maintain a call stack but instead passes continuations (pointers to code to jump to after loading a result in a register) around.
01:44:54 × poscat quits (~poscat@user/poscat) (Quit: Bye)
01:45:05 <int-e> They're both CPS and they're not the same.
01:46:02 <int-e> Cont/Codensity give you Haskell-level access to continuations. GHC's are, as already mentioned, an implementation detail. One you'll probably only care about if you stare at CMM code or disassemblies.
01:46:05 <probie> and yet I think albet70 has a specific meaning of CPS in mind which it seems no-one is attempting to discern so that their questions can be answered
01:46:40 <monochrom> Sure. You can try to discern. Good luck with that. (Speaking from experience.)
01:47:09 <monochrom> Askers should learn to clarify their questions, not be spoiled and expect answerers to guess.
01:47:12 <albet70> no, I don't have, I just confused
01:47:21 <int-e> probie: /I/ think we have affirmed that Cont is CPS before muddying the water by bringing up all the other stuff :P
01:47:28 <albet70> someone say this is , others say this isn't
01:48:09 poscat joins (~poscat@user/poscat)
01:48:19 <int-e> The sophistery of Cont vs. Codensity is that with Cont you can discard a continuation and just inject a result.
01:48:25 <probie> int-e: I'm not even happy with that. `Cont` is not CPS. `pure $ f (g (h a)) :: Cont r a` is not in continuation passing style.
01:48:43 anpad joins (~pandeyan@user/anpad)
01:48:44 <int-e> probie: that's okay and anticipated
01:49:00 <int-e> but personally I don't find that distinction useful
01:49:05 <monochrom> <monochrom> Does this make sense? Cont does CPS so you don't have to. >:) <monochrom> But then since you don't have to, it's not CPS from your POV.
01:49:46 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:50:15 <int-e> Cont is a viable answer to "I want to write CPS code, what do I use" in the single-continuation setting.
01:50:40 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
01:50:46 <int-e> Codensity solves a problem that you won't run into if that's your premise.
01:50:51 <monochrom> Instead of making "CPS" precise, I think what we lack is chosing the level of abstraction in the first place.
01:50:58 × anpad quits (~pandeyan@user/anpad) (Client Quit)
01:51:15 <int-e> It's an operational notion, those tend to be inherently imprecise :P
01:51:32 <int-e> embrace the ambiguity
01:51:34 <int-e> love the bomb
01:51:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
01:52:35 <int-e> probie: anyway, feel free to make things precise
01:54:13 <monochrom> One more analogy/fable and I'll stop, I promise. >:)
01:54:15 <albet70> can we do early return from nested function call by CPS or callcc without Cont Monad?
01:54:21 <albet70> just function level
01:55:35 <c_wraith> everything Cont does is just functions
01:56:02 <monochrom> Suppose your prof gives you this homework: Write factorial in CPS. You're too lazy to hand-convert to CPS, so you give direct-style factorial code to chatgpt and tell it to CPSize for you. Let's say it even does it correctly. Is it CPS? Surely you didn't write it yourself, so it isn't? But you have a correct solution to hand in, so it is?
01:56:21 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
01:56:21 <monochrom> Right now chatgpt can't do it correctly, but Cont can!
01:56:34 <c_wraith> If you want early return, the trick is to not nest functions. Using CPS (by hand or by Cont) can remove that nesting, when done properly
01:57:35 <int-e> > runCont (callCC (\cont -> cont 41 >> undefined) >>= pure . succ) id
01:57:37 <lambdabot> 42
01:58:06 <int-e> Is that an "early return"? What's a "return" if you're looking at Cont-specific monadic code?
01:59:14 <int-e> (note the `undefined` action that is never executed)
01:59:51 anpad joins (~pandeyan@user/anpad)
02:01:05 <int-e> This is why I'm reluctant to just say "yes" - there is a form of early return here, but you're writing your code in a very peculiar style. It's a shallow abstraction.
02:02:26 <probie> > let f acc l = case l of { x:xs | x <= 10 -> f (x + acc) xs; _ -> acc } in f 0 [4,6,8,9,12,3,2] -- does this count as an early return?
02:02:27 <lambdabot> 27
02:03:07 <int-e> You don't even need the Cont monad to achieve and of this; you can manually change your code to return `(a -> r) -> r` instead of `a`, gain the capability to pass multiple continuations without the awkward `callCC`, and have more readable code because it's not monadic.
02:04:06 <int-e> And get the same capability of an early return, relying on Haskell's tail recursion elimination.
02:04:09 int-e shrugs
02:04:20 weary-traveler joins (~user@user/user363627)
02:04:30 <c_wraith> (strict speaking, tail *call* elimination. It works whether the call is recursive or not)
02:04:43 <int-e> sure
02:04:56 <int-e> Not the objection I was expecting
02:06:09 <c_wraith> I think full tail-call elimination is really cool, and in many ways simpler than having a special case for tail recursion
02:06:12 <int-e> > let iter n = n : iter (n+1) -- I was expecting this
02:06:13 <lambdabot> <no location info>: error:
02:06:13 <lambdabot> not an expression: ‘let iter n = n : iter (n+1) -- I was expecting this’
02:06:19 <monochrom> Were you waiting for this? "Haskell doesn't specify TCE" :)
02:06:27 <int-e> whoops
02:06:38 <int-e> monochrom: no
02:06:54 <c_wraith> Haskell may not specify exactly that, but it does specify something roughly equivalent
02:06:54 <int-e> monochrom: I was expecting the laziness complication
02:07:10 <int-e> that makes things tail-recursive that aren't syntactically tail recursive
02:07:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:07:28 <c_wraith> The spec does require that recursion not have a max depth
02:07:38 <monochrom> Oh yeah I used to raised that on haskell-cafe. It didn't end well, people thought I was a moron.
02:08:28 × Adran quits (~adran@botters/adran) (Quit: Este é o fim.)
02:09:25 <int-e> > let start c = c []; push xs x c = c (x:xs); add (x:y:xs) c = c (x+y:xs); end xs = xs in start push 1 push 2 add push 3 add push 4 end -- CPS
02:09:27 <lambdabot> [4,6]
02:10:37 <monochrom> https://mail.haskell.org/pipermail/haskell-cafe/2007-May/025591.html and see subsequent responses.
02:10:56 <int-e> monochrom: yeah that's unfair; you're just a troll :P
02:12:12 <albet70> for example in python f(g(a(b(c)))) you can throw an exception in c and catch it in f, no need to return to b, then to a, then to g
02:12:14 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
02:12:40 <albet70> i just wonder if cps can achive that
02:12:58 <albet70> without exception stuff
02:13:57 <c_wraith> the thing, CPS doesn't work like that.
02:14:40 <albet70> try catch isn't cps, right?
02:14:41 <c_wraith> You have to write it more like `b c (f . g . a)'
02:15:10 <c_wraith> It's an invasive intervention
02:15:18 <monochrom> int-e: :( XD
02:15:23 <int-e> The answer is yes but you have to change all your functions to take continuations as arguments. (Whether you do that using Cont or not is up to you.)
02:15:38 <int-e> For example, look at this https://hackage.haskell.org/package/parsec-3.1.18.0/docs/src/Text.Parsec.Prim.html#ParsecT
02:15:39 <c_wraith> You need to make significant changes, because the whole point is that you're replacing nested function calls with continuations
02:15:58 <int-e> Which you can read as ParsecT wrapping a function that takes *four* continuations
02:16:36 <monochrom> I'm going to go out on a limb that Python achieves that by compiling an exception language to CPS low level code.
02:16:43 <int-e> On a different level, the answer is no; you can't have a pure function with an early return. Obviously not; that wouldn't be pure.
02:16:51 <geekosaur> it does stack unwinding
02:16:54 <geekosaur> so does C++
02:17:02 <geekosaur> so does GHC for that matter
02:17:18 <geekosaur> exceptions pretty much require it
02:17:22 <int-e> The game we're playing could be called "pick your favorite abstraction to think about your code".
02:17:42 <monochrom> THANK YOU!
02:18:38 <geekosaur> in all cases it works backwards up stack frames until it finds one with an exception handler
02:20:36 <probie> "true" CPS code™ (with TCO) doesn't allocate stack frames
02:21:33 <geekosaur> in GHC Haskell these frames don't correspond to calls the way they do in more procedural languages; but I don't recall what they do correspond to.
02:22:28 <geekosaur> (possibly it's all exception frames. note that in Haskell you must be in IO to handle an exception, so things are a bit different than they are for pure code anyway)
02:22:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:23:32 <c_wraith> ghc uses the stack for nested evaluation of thunks. That often corresponds with nested function calls, but not always.
02:23:59 <int-e> AIUI, fundamentally, entering a thunk allocates a stack frame. This extends to strict functions (which can be thought of as a thunk that is entered immediately, but GHC won't allocate the thunk)
02:24:01 <geekosaur> I know you can piggyback on the mechanism to get a "stack trace" (with +RTS -xc) *but* profiling must be enabled for it to work; I presume that provides something resembling a call stack
02:25:28 <int-e> Details get murky quickly. You won't be able to discern most of these things at the source code level.
02:26:01 <int-e> (GHC does way too much inlining, for starters. And you'd need to anticipate strictness analysis too.)
02:26:17 <geekosaur> (in a profiling report, you do get an indication of call stacks of some flavor)
02:26:58 <int-e> But the thunk thing explains why `foldl (+) 1 [1..1000000]` used to overflow the stack (before stacks were made extensible)
02:27:21 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
02:27:42 <int-e> because that *tail-recusively* builds a huge thunk that is then entered, entering a chain of subthunks all at once
02:28:13 <int-e> (the strictness analyser can spoil the fun of course)
02:29:28 <int-e> Anyway. Understanding Haskell low-level execution is quite difficult. I'm sure I'm getting it subtly wrong.
02:30:07 <int-e> Well, not sure. But the chances are good.
02:32:42 <monochrom> Once you fix an evaluation order, you will realize you need a stack for some things. Eager and lazy have opposite "some things", but both will need a stack.
02:33:51 <monochrom> Fortunately! PLT people have noticed a commonality over all evaluation orders. The "some things" is called... continuations. You can always say "continuation stack" and it will be always right.
02:37:31 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
02:37:50 <geekosaur> you know we probably lost albet70 long ago…
02:38:05 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:38:15 <monochrom> At a high level, it goes like this. Given an evaluation order, you can factor each to-be-evaluated expression into redex and context. Redex means the small subexpression to evaluate right now, context is the rest.
02:39:26 <int-e> geekosaur: *surely* one of the many answers we've come up with was satisfactory
02:39:47 <monochrom> If you then try to go a bit lower level, you say: push the context (or representation of) on the stack, bring the redex to the front and work on it, afterwards pop the context and look for the next redex, etc.
02:39:55 <geekosaur> unless they drowned in the wall-o-wtf
02:40:07 <monochrom> In this case, context is synonym for continuation.
02:41:25 <monochrom> Ooops, s/small//
02:42:44 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
02:43:29 Adran joins (~adran@botters/adran)
02:43:58 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
02:45:00 <int-e> monochrom: Heh. So if you use Cont or other (a -> r) -> (b -> r) -> r Haskell-level continuations, then at runtime, you have thunk-level CPS (continuations are stored in thunks until needed)
02:45:29 <albet70> I like this talks even I don't understand now, it's very inspired :)
02:45:39 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
02:45:47 <geekosaur> that's what I said, wall-o-wtf 🙂
02:46:02 <monochrom> Yeah you're just trading heap for stack. It's why I was so worked up about limited stack and unlimited heap.
02:49:40 <monochrom> Anyway, that's a high-level reason why I don't make a distinction between "call stack like in C" and "eval stack like in Haskell". (I'm also mocking the irony there too because neither ISO C nor Haskell 2010 require a stack.) They are all continuation stacks, and once you know the evaluation order you know what continuation means.
02:49:49 <monochrom> But here is also a low-level reason.
02:50:38 × anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
02:51:56 <monochrom> For this, you have to accept that I use the callee-pops-arguments convention. Suppose you make a "function call", i.e., push argument, push "return" address, jump to function. And suppose the function "returns", i.e., pop "return" address, pop argument, jump.
02:52:11 <monochrom> Now just rename "return" to "continuation" there, and you have CPS.
02:53:21 <int-e> right, and `call` (or `jsr` or whatever; the assembly level things) are callCC
02:53:28 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
02:53:57 <int-e> and you have to read programs backward to discern continuations
02:53:59 <int-e> what fun
02:54:09 <int-e> +s
02:58:29 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
03:01:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
03:01:25 JuanDaugherty joins (~juan@user/JuanDaugherty)
03:02:58 homo joins (~homo@user/homo)
03:05:07 anpad joins (~pandeyan@user/anpad)
03:07:57 × anpad quits (~pandeyan@user/anpad) (Client Quit)
03:11:31 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:15:30 anpad joins (~pandeyan@user/anpad)
03:15:57 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
03:16:17 × anpad quits (~pandeyan@user/anpad) (Client Quit)
03:19:20 <homo> it's happening, microhs lowers language requirements to be bootstrappable with hugs https://github.com/augustss/MicroHs/commit/2f9eab4db4e811e4c75ea370a64914abc94abf9c https://github.com/augustss/MicroHs/commit/56be300c293304b37cb18db499d825621be9ec4d
03:19:48 <homo> however, pattern guards are not going away, so someone has to implement those in hugs
03:23:59 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:24:10 anpad joins (~pandeyan@user/anpad)
03:26:32 pavonia joins (~user@user/siracusa)
03:28:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
03:33:12 JuanDaugherty is now known as ColinRobinson
03:37:24 × anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
03:39:22 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:41:33 ColinRobinson is now known as JuanDaugherty
03:42:40 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds)
03:43:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
03:44:36 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
03:52:28 JuanDaugherty is now known as ColinRobinson
03:54:44 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
03:59:17 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
04:00:48 anpad joins (~pandeyan@user/anpad)
04:03:11 × ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: ColinRobinson)
04:10:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:14:38 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
04:25:29 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:30:07 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
04:37:21 × dtman34 quits (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
04:40:51 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
04:43:14 × comonad quits (~comonad@p200300d027182d00bcfd40be9d94d2dc.dip0.t-ipconnect.de) (Quit: WeeChat 4.4.2)
04:47:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
04:51:56 dtman34 joins (~dtman34@2601:447:d000:1f5e:d8cf:6a91:a7b5:a018)
04:56:54 × dtman34 quits (~dtman34@2601:447:d000:1f5e:d8cf:6a91:a7b5:a018) (Ping timeout: 252 seconds)
05:00:34 michalz joins (~michalz@185.246.207.217)
05:01:49 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
05:04:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:05:47 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
05:07:47 × JimL quits (~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:08:49 dtman34 joins (~dtman34@2601:447:d000:1f5e:d8cf:6a91:a7b5:a018)
05:09:12 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
05:10:42 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 272 seconds)
05:11:00 j1n37 joins (~j1n37@user/j1n37)
05:11:17 JimL joins (~quassel@89.162.16.26)
05:19:30 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:24:03 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
05:34:52 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:39:20 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
05:39:33 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 248 seconds)
05:41:10 monochrom joins (trebla@216.138.220.146)
05:50:16 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
05:54:18 × ft quits (~ft@p508db21c.dip0.t-ipconnect.de) (Quit: leaving)
05:55:29 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
06:06:12 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:09:36 × notzmv quits (~umar@user/notzmv) (Ping timeout: 265 seconds)
06:10:51 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
06:12:46 alp joins (~alp@2001:861:8ca0:4940:eea0:f0c9:6:c921)
06:13:09 × haritz quits (~hrtz@user/haritz) (Ping timeout: 248 seconds)
06:17:46 tnt2 joins (~Thunderbi@user/tnt1)
06:19:45 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 265 seconds)
06:19:45 tnt2 is now known as tnt1
06:21:34 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:23:10 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:26:34 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
06:26:38 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
06:27:10 euleritian joins (~euleritia@77.23.250.232)
06:31:46 × euleritian quits (~euleritia@77.23.250.232) (Ping timeout: 272 seconds)
06:34:22 euleritian joins (~euleritia@dynamic-176-006-144-251.176.6.pool.telefonica.de)
06:34:44 comonad joins (~comonad@p200300d027182d00bcfd40be9d94d2dc.dip0.t-ipconnect.de)
06:37:38 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:45:04 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
06:55:41 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
06:58:56 <haskellbridge> <sm> What’s the goal there homo ?
07:00:43 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
07:01:38 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 248 seconds)
07:01:43 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
07:02:14 rvalue joins (~rvalue@user/rvalue)
07:02:35 <jackdk> Bootstrap gcc -> hugs -> microhs -> ghc
07:05:36 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
07:07:07 monochrom joins (trebla@216.138.220.146)
07:07:20 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
07:11:03 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:15:13 acidjnk joins (~acidjnk@p200300d6e7283f8031585a6e342b94fb.dip0.t-ipconnect.de)
07:16:16 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Read error: Connection reset by peer)
07:16:23 comerijn joins (~merijn@77.242.116.146)
07:21:12 <homo> sm jackdk while ideally ghc would be bootstrapped with microhs, the first thing I want is to have darcs binary that I can trust
07:22:51 <haskellbridge> <Bowuigi> Can microhs bootstrap GHC at all?
07:22:57 <homo> it's still preferable that ghc lowers requirements so much that it becomes possible to compile today ghc with ancient ghc, then bootstrap with microhs should be easy
07:23:11 <homo> nobody tried bootstrapping ghc with microhs
07:23:33 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds)
07:23:52 <haskellbridge> <Bowuigi> Ah it's multistep for now, so like microhs -> ghc -> ghc -> ... -> ghc
07:24:15 <homo> the reason to lower requirements is because it only makes sense to use small subset of language to implement whole language
07:24:57 <homo> Bowuigi nobody tried even that multistep, it's too much work to adjust source code of any version of ghc
07:26:48 sawilagar joins (~sawilagar@user/sawilagar)
07:27:58 <homo> anyway, I have different idea: how about to use hugs ported to plan9 to bootstrap microhs on plan9 to have haskell2010 with 50+ ghc extensions compiler on plan9
07:30:19 <haskellbridge> <Bowuigi> Well, the bootstrap process has to be made at most once per platform, but still, compiling a ton of GHC versions sounds painful
07:32:50 paul_j joins (~user@8.190.187.81.in-addr.arpa)
07:34:55 <homo> Bowuigi and even impossible, I want to switch to riscv or arm, microhs is easy to boostrap there, but ghc is not
07:42:20 Square joins (~Square@user/square)
07:42:47 Square2 joins (~Square4@user/square)
07:44:15 <haskellbridge> <Bowuigi> For a scripting even Hugs is fast enough, do you have a special usecase in mind for GHC?
07:46:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:46:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
07:48:14 <homo> I want haskell compiler, not haskell interpreter, and my motivation to modify yacc and c parts of hugs just to get language features I need is almost 0
07:48:57 <homo> also is there anyone who tried to run darcs under hugs?
07:49:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:53:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
07:55:49 × alfiee quits (alfiee@user/alfiee) (Ping timeout: 260 seconds)
07:56:14 alfiee joins (alfiee@user/alfiee)
08:00:02 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:29 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:00:41 caconym joins (~caconym@user/caconym)
08:01:24 monochrm joins (trebla@216.138.220.146)
08:01:27 paul_j` joins (~user@8.190.187.81.in-addr.arpa)
08:01:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
08:02:31 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 264 seconds)
08:02:31 monochrm is now known as monochrom
08:05:09 × Square quits (~Square@user/square) (Ping timeout: 260 seconds)
08:06:19 caryhartline joins (~caryhartl@KD106184157010.ec-userreverse.dion.ne.jp)
08:09:21 kuribas joins (~user@d51529C17.access.telenet.be)
08:11:50 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 272 seconds)
08:12:27 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
08:12:39 monochrom joins (trebla@216.138.220.146)
08:12:44 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:14:53 × kuribas quits (~user@d51529C17.access.telenet.be) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
08:15:08 kuribas joins (~user@ptr-17d51eocedivlwulkvg.18120a2.ip6.access.telenet.be)
08:17:22 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
08:17:42 notzmv joins (~umar@user/notzmv)
08:18:55 <homo> Bowuigi keep in mind memory manager of hugs is another pain point, try in hugs: sum $ reverse [1..200000]
08:19:18 <homo> then try in ghci: sum $ reverse [1..1000000]
08:19:49 × caryhartline quits (~caryhartl@KD106184157010.ec-userreverse.dion.ne.jp) (Read error: Connection reset by peer)
08:20:06 × mulk quits (~mulk@pd9514590.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
08:22:50 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
08:27:22 × euleritian quits (~euleritia@dynamic-176-006-144-251.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
08:27:41 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
08:28:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:31:05 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 244 seconds)
08:32:35 CiaoSen joins (~Jura@2a05:5800:2ce:7100:ca4b:d6ff:fec1:99da)
08:32:36 mulk joins (~mulk@pd9514590.dip0.t-ipconnect.de)
08:33:07 monochrom joins (trebla@216.138.220.146)
08:33:07 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
08:33:59 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
08:37:30 weary-traveler joins (~user@user/user363627)
08:38:07 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
08:40:16 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
08:41:37 img joins (~img@user/img)
08:45:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
08:49:30 × kuribas quits (~user@ptr-17d51eocedivlwulkvg.18120a2.ip6.access.telenet.be) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
08:50:03 kuribas joins (~user@ptr-17d51eocedivlwulkvg.18120a2.ip6.access.telenet.be)
08:51:18 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:52:51 akegalj joins (~akegalj@162-231.dsl.iskon.hr)
08:54:09 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
08:55:29 img joins (~img@user/img)
08:55:30 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
08:56:02 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
08:59:42 alecs joins (~alecs@nat16.software.imdea.org)
09:02:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
09:03:59 × alecs quits (~alecs@nat16.software.imdea.org) (Client Quit)
09:04:25 alecs joins (~alecs@nat16.software.imdea.org)
09:05:43 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:06:27 × acidjnk quits (~acidjnk@p200300d6e7283f8031585a6e342b94fb.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
09:07:49 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:10:10 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
09:10:41 tnt2 joins (~Thunderbi@user/tnt1)
09:11:23 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
09:11:23 tnt2 is now known as tnt1
09:11:31 img joins (~img@user/img)
09:11:53 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
09:14:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
09:15:30 ljdarj joins (~Thunderbi@user/ljdarj)
09:19:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
09:21:01 lxsameer joins (~lxsameer@Serene/lxsameer)
09:21:32 SrOs0 joins (~sroso@user/SrOso)
09:30:03 alexherbo2 joins (~alexherbo@2a02-8440-350d-0fe5-4d5d-0a7b-f8e6-7ac2.rev.sfr.net)
09:30:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
09:33:55 <hc> join rust
09:33:59 <hc> oops, sry
09:34:55 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
09:34:58 <kuribas> What do you think about verse?
09:35:38 <tomsmeding> homo: if you're interested in bootstrapping ghc on a different platform, and you somehow manage to compile some version of ghc with microhs, couldn't you copy the resulting combinator C code to the other platform and compile it with gcc there?
09:35:45 <tomsmeding> no need to run microhs with hugs, as far as I can see
09:41:05 sroso joins (~sroso@user/SrOso)
09:42:48 <kuribas> Is verse only for the metaverse?
09:43:17 × sroso quits (~sroso@user/SrOso) (Client Quit)
09:43:26 sroso joins (~sroso@user/SrOso)
09:43:37 <kuribas> I wonder why so many haskell jobs are on the hype train (block chain, defense, high speed traiding, metaverse), rather than providing solid society progress.
09:43:50 sroso3 joins (~sroso@user/SrOso)
09:44:39 × SrOs0 quits (~sroso@user/SrOso) (Quit: Leaving :))
09:44:52 <kuribas> Though I suppose verse is more widely applicable than just the metaverse?
09:45:40 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
09:46:03 vanishingideal joins (~vanishing@user/vanishingideal)
09:47:47 × sroso3 quits (~sroso@user/SrOso) (Quit: Client closed)
09:48:58 × sroso quits (~sroso@user/SrOso) (Quit: Quit)
09:49:03 SrOs0 joins (~sroso@user/SrOso)
09:49:08 sroso joins (~sroso@user/SrOso)
09:49:30 × SrOs0 quits (~sroso@user/SrOso) (Max SendQ exceeded)
09:49:49 × sroso quits (~sroso@user/SrOso) (Client Quit)
09:50:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
09:52:19 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 264 seconds)
09:54:26 sroso joins (~sroso@user/SrOso)
10:01:01 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
10:03:03 chele joins (~chele@user/chele)
10:09:08 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
10:12:15 infinity0 joins (~infinity0@pwned.gg)
10:16:14 __monty__ joins (~toonn@user/toonn)
10:18:43 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 245 seconds)
10:20:06 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
10:24:45 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
10:30:09 × sroso quits (~sroso@user/SrOso) (Ping timeout: 248 seconds)
10:30:10 acidjnk joins (~acidjnk@p200300d6e7283f8031585a6e342b94fb.dip0.t-ipconnect.de)
10:35:28 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
10:36:48 × akegalj quits (~akegalj@162-231.dsl.iskon.hr) (Ping timeout: 252 seconds)
10:36:50 <dminuoso> 09:43:37 kuribas │ I wonder why so many haskell jobs are on the hype train (block chain, defense, high speed traiding, metaverse), rather than providing solid society progress.
10:36:59 <dminuoso> They are on the money train. :-)
10:37:05 <dminuoso> Money attracks people.
10:37:19 <kuribas> True, but it also feels like a bubble that will pop.
10:37:24 <kuribas> blockchain at least.
10:38:07 ensyde joins (~ensyde@2601:5c6:c200:6dc0::95d2)
10:38:56 <dminuoso> At work I contribute to societal decay and enable criminal behavior.
10:38:58 <kuribas> If I want lots of money, I'd better use scala.
10:39:01 <dminuoso> What can I say, I'm morally flexible.
10:40:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
10:40:42 <dminuoso> It's just a matter of perspective. From a technical perspective I help build reliable networks.
10:41:14 <dminuoso> Being involved with blockchain has some cook perks, namely that you can do math things *and* get paid well for it.
10:42:01 <dminuoso> That combination does not exist often.
10:42:03 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
10:42:19 <homo> tomsmeding if I can't use another platform to produce combinator file, it's not bootstrappable on that platform
10:42:39 <homo> and don't tell me anything about reproducible builds propaganda
10:42:48 <dminuoso> Given that Haskeller attract mathematically inclined folks more than other languages, it seems reasonable that Haskell has a strong blockchain presence.
10:44:23 <homo> tomsmeding for your suggestion to be considered bootstrappable from nothing but source, if my laptop is riscv, I must run hugs and microhs inside virtual machine that emulates x86_64 instructions, which is a waste of time and energy
10:46:18 <dminuoso> tomsmeding: Also, why do you presume you can just copy some C code to another platform and get sensible code out of it? Portable C code is something you only ever hear about in philosphical discusssions in ##c
10:47:12 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
10:47:14 <dminuoso> Im not too sure how portable C code is in practice *without* a huge pile of autotools around.
10:47:24 × son0p quits (~ff@2800:e6:4001:6cc3:2e2c:4b4e:bc2a:6f17) (Remote host closed the connection)
10:50:08 <homo> so, it would be a long chain: start with reviewable 200 byte binary for riscv, use that binary to bootstrap assembler, use that assembler to bootstrap c compiler and make, use that c compiler to compile x86_64 emulator and cross-compile operating system, hugs and microhs to x86_64, use microhs in virtual machine to produce combinator file to ghc, compile microhs combinator vm and combinator file for riscv, get broken ghc because ghc doesn't know how to produce
10:50:08 <homo> riscv instructions
10:52:05 <homo> the actual bootstrap chain is longer than that, but you get the idea
10:52:09 <kuribas> dminuoso: We do a lot of math at our work, but I find it's often not based on solid theoretical principles.
10:54:07 <homo> it's like start with stone tools to produce modern-day computers
10:55:44 <kuribas> homo: you want to replicate ASML with stone tools? :-O
10:55:55 aforemny joins (~aforemny@2001:9e8:6ce7:fd00:e796:ccd3:bb44:3a2f)
10:57:00 <kuribas> There was a guy who build a µM scale lithography machine, but he used modern tech.
10:57:08 <homo> except you don't need historical crufts to have bootstrappable builds if you write code for entire bootstrap chain, it would be hell to replicate all historical software
10:57:14 × CiaoSen quits (~Jura@2a05:5800:2ce:7100:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
10:57:21 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
10:57:38 <kuribas> https://www.youtube.com/watch?v=RuVS7MsQk4Y
10:57:51 <homo> not to mention historical hardware that nobody has anymore
10:59:03 <__monty__> homo: You might be interested in this series of blogs, https://compilercrim.es/bootstrap/
10:59:35 <kuribas> homo: are you talking about hardware or software?
11:02:32 <homo> kuribas about software, to have software truly bootstrappable, you have to start from very basic features and use those to recursively implement more and more features, so ghc depending on its own extensions to implement those extensions is a horrible practice
11:02:34 sroso joins (~sroso@user/SrOso)
11:03:23 <kuribas> homo: You can bootstrap via an interpreter.
11:03:23 × sroso quits (~sroso@user/SrOso) (Read error: Connection reset by peer)
11:03:35 <kuribas> idris2 is also fully implemented in itself.
11:03:41 sroso joins (~sroso@user/SrOso)
11:03:57 × sroso quits (~sroso@user/SrOso) (Read error: Connection reset by peer)
11:04:03 <__monty__> Interpreter vs compiler doesn't really make a difference.
11:04:15 sroso joins (~sroso@user/SrOso)
11:04:27 × sroso quits (~sroso@user/SrOso) (Read error: Connection reset by peer)
11:04:43 sroso joins (~sroso@user/SrOso)
11:04:48 <homo> __monty__ thanks, but I'm not into forth and there is already #bootstrappable channel on libera, as well as https://bootstrappable.org and https://bootstrapping.miraheze.org/
11:04:58 × sroso quits (~sroso@user/SrOso) (Read error: Connection reset by peer)
11:05:53 <homo> the bootstrappable seeds they use are https://github.com/oriansj/bootstrap-seeds and they are smaller than 500 bytes
11:05:57 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
11:07:37 <homo> kuribas ghc is not bootstrappable at all, there is no haskell implementation that has enough features to deal with ghc and its internal quirks
11:07:46 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
11:08:10 sroso joins (~sroso@user/SrOso)
11:08:52 <homo> also self-hosting language implementation is not big of a deal if it uses subset of its own features to implement itself
11:09:08 × sroso quits (~sroso@user/SrOso) (Client Quit)
11:09:11 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
11:09:18 <__monty__> Well, GHC itself. Someone's been trying to get every old version of GHC building recently-ish. Presumably that'd be enough to build current GHC.
11:09:46 <homo> take a look at microhs, it only demands haskell2010 (and several extentions supported by hugs), but in return implements over 50 ghc-specific extentions
11:10:29 <homo> hugs has everything microhs demands except pattern guards, which are part of haskell2010
11:11:07 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
11:11:14 sprotte24 joins (~sprotte24@p200300d16f08390080f981bd603eb58d.dip0.t-ipconnect.de)
11:11:34 Pozyomka joins (~pyon@user/pyon)
11:11:49 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 260 seconds)
11:11:53 <homo> I rewrote pattern guards to make hugs happy and got entire microhs running inside hugs, even though it throws runtime exception
11:12:57 <homo> another great example is this self-hosting haskell compiler https://github.com/blynn/compiler
11:13:31 xff0x joins (~xff0x@2405:6580:b080:900:89d7:1b64:1ef9:ca1d)
11:13:48 <homo> it implements tiny language in c and uses that language to recursively implement bigger subset of haskell, that is amazing bootstrap practice
11:13:49 monochrom joins (trebla@216.138.220.146)
11:13:51 × kaskal quits (~kaskal@84-115-237-124.cable.dynamic.surfer.at) (Quit: ZNC - https://znc.in)
11:14:52 kaskal joins (~kaskal@84-115-237-124.cable.dynamic.surfer.at)
11:14:53 × Pozyomka quits (~pyon@user/pyon) (Client Quit)
11:15:51 <homo> anyway, I need to spend a lot of time and energy figuring out how to add pattern guards to hugs, as yacc and imperative programming are very hard to get right
11:17:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
11:18:07 Pozyomka joins (~pyon@user/pyon)
11:19:20 <homo> __monty__ using old ghc to cleanly bootstrap modern ghc implies running ghc in x86 emulator on arm and riscv or patching every individual version of ghc to support arm and riscv
11:20:37 <homo> also I'm not insane to get ghc working on plan9, it's much more trivial to port microhs to plan9
11:21:26 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
11:22:02 × rubin55 quits (sid666177@id-666177.lymington.irccloud.com) (Quit: Connection closed for inactivity)
11:32:31 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
11:37:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
11:42:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
11:47:07 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
11:47:55 <kuribas> homo: what's your interest in bootsrapping?
11:50:59 wootehfoot joins (~wootehfoo@user/wootehfoot)
11:52:39 haritz joins (~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737)
11:52:42 × haritz quits (~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737) (Changing host)
11:52:42 haritz joins (~hrtz@user/haritz)
11:53:44 akegalj joins (~akegalj@89-172-182-73.adsl.net.t-com.hr)
11:56:20 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:58:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
11:58:55 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
11:59:14 ljdarj joins (~Thunderbi@user/ljdarj)
11:59:25 CiaoSen joins (~Jura@2a05:5800:2ce:7100:ca4b:d6ff:fec1:99da)
12:00:00 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:01:37 son0p joins (~ff@2800:e6:4001:6cc3:2e2c:4b4e:bc2a:6f17)
12:02:52 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
12:03:33 × AlexZenon quits (~alzenon@178.34.163.23) (Ping timeout: 248 seconds)
12:11:53 jespada joins (~jespada@2800:a4:15d:de00:30ea:fcd2:b2d:6544)
12:14:10 × jespada quits (~jespada@2800:a4:15d:de00:30ea:fcd2:b2d:6544) (Client Quit)
12:14:38 jespada joins (~jespada@2800:a4:15d:de00:30ea:fcd2:b2d:6544)
12:15:15 AlexZenon joins (~alzenon@178.34.163.23)
12:19:25 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
12:20:06 × koz quits (~koz@121.99.240.58) (Ping timeout: 252 seconds)
12:22:03 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds)
12:24:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
12:29:10 ljdarj joins (~Thunderbi@user/ljdarj)
12:34:47 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
12:39:44 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
12:43:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
12:45:24 × taleseeker quits (~taleseeke@185.107.44.16) (Ping timeout: 246 seconds)
12:47:29 taleseeker joins (~taleseeke@185.107.44.16)
12:50:31 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
12:52:21 × taleseeker quits (~taleseeke@185.107.44.16) (Ping timeout: 252 seconds)
12:56:24 × alexherbo2 quits (~alexherbo@2a02-8440-350d-0fe5-4d5d-0a7b-f8e6-7ac2.rev.sfr.net) (Remote host closed the connection)
12:56:44 alexherbo2 joins (~alexherbo@2a02-8440-350d-0fe5-4d5d-0a7b-f8e6-7ac2.rev.sfr.net)
13:01:58 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
13:06:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
13:08:51 <homo> kuribas to have everything buildable from nothing but source
13:11:13 <homo> and considering I plan to switch to completely different hardware, I have no interest emulating x86 instructions just to build what I need from source
13:12:02 koz joins (~koz@121.99.240.58)
13:13:00 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
13:16:29 alx741 joins (~alx741@186.33.188.229)
13:18:02 rvalue- joins (~rvalue@user/rvalue)
13:19:19 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 264 seconds)
13:21:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
13:24:01 × CiaoSen quits (~Jura@2a05:5800:2ce:7100:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds)
13:24:27 rvalue- is now known as rvalue
13:24:36 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds)
13:26:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
13:34:32 × vgtw quits (~vgtw@user/vgtw) (Ping timeout: 252 seconds)
13:36:40 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
13:36:42 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:37:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
13:38:33 euleritian joins (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de)
13:38:48 × ensyde quits (~ensyde@2601:5c6:c200:6dc0::95d2) (Ping timeout: 276 seconds)
13:39:17 ljdarj joins (~Thunderbi@user/ljdarj)
13:42:42 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
13:43:30 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
13:43:33 × mange quits (~user@user/mange) (Quit: Zzz...)
13:43:43 chexum joins (~quassel@gateway/tor-sasl/chexum)
13:44:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
13:49:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
13:52:45 weary-traveler joins (~user@user/user363627)
13:58:56 monochrm joins (trebla@216.138.220.146)
13:59:57 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 246 seconds)
13:59:57 monochrm is now known as monochrom
14:00:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
14:04:51 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
14:06:12 × euleritian quits (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
14:07:56 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
14:09:40 × acidjnk quits (~acidjnk@p200300d6e7283f8031585a6e342b94fb.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
14:12:50 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
14:13:01 lekapuz85_ joins (uid686223@user/lekapuz85)
14:13:15 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
14:13:30 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:15:41 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
14:19:33 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
14:19:54 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
14:25:39 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
14:31:03 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
14:33:03 UXCVZhouBaiden73 joins (~UXCVZhouB@84.15.223.15)
14:35:32 × homo quits (~homo@user/homo) (Read error: Connection reset by peer)
14:35:38 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
14:41:23 ZhouBaiden243539 joins (~ZhouBaide@109241102026.choszczno.vectranet.pl)
14:41:28 <ZhouBaiden243539> Hey guys... Joe Biden here. I've decided to step down from the White House to focus on other projects. Billionaires are a threat to democracy, so check out https://BidenCash.st to put them in the bullseye. Keep an eye on the CNN inauguration for a promo code!
14:42:04 ChanServ sets mode +o geekosaur
14:42:18 geekosaur sets mode +b *!*ZhouBaide@109241102026.choszczno.vectranet.pl
14:42:18 ZhouBaiden243539 is kicked by geekosaur (ZhouBaiden243539)
14:42:45 <geekosaur> will stay opped for a bit, they're popping up randomly
14:42:50 × UXCVZhouBaiden73 quits (~UXCVZhouB@84.15.223.15) (Remote host closed the connection)
14:45:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
14:50:18 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
14:52:32 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:52:38 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
14:53:41 ljdarj joins (~Thunderbi@user/ljdarj)
14:57:00 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
14:57:26 <hellwolf> to erase a package from cabal, can I just delete stuff from the store?
15:01:28 <hellwolf> and If I had destroyed the cabal db by doing so, how can I recover from it
15:02:10 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
15:02:26 <geekosaur> deleting something from the store is possible but it's on you to make sure nothing else uses it. if you get that wrong you need to remove the whole store and let cabal regenerate it
15:02:35 <geekosaur> I recommend something like
15:02:39 gentauro joins (~gentauro@user/gentauro)
15:02:39 <geekosaur> @where cabalgc
15:02:39 <lambdabot> https://github.com/treblacy/cabalgc
15:03:58 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
15:04:31 euleritian joins (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de)
15:09:09 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
15:14:16 <geekosaur> same applies to stack's pantry but I don't know of any gc utilities for it
15:19:21 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
15:23:48 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
15:28:21 <hellwolf> :/
15:28:24 <hellwolf> I messed it up
15:28:52 <hellwolf> I did cabal install. but I don't know how to uninstall.
15:33:20 <geekosaur> just don't `cabal install` libraries
15:33:39 <geekosaur> proper store garbage collection is still a work in progress
15:34:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
15:36:15 × jespada quits (~jespada@2800:a4:15d:de00:30ea:fcd2:b2d:6544) (Ping timeout: 252 seconds)
15:38:59 × alexherbo2 quits (~alexherbo@2a02-8440-350d-0fe5-4d5d-0a7b-f8e6-7ac2.rev.sfr.net) (Remote host closed the connection)
15:39:11 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
15:39:20 acidjnk joins (~acidjnk@p200300d6e7283f8095cc0997f421f19c.dip0.t-ipconnect.de)
15:39:32 alexherbo2 joins (~alexherbo@2a02-8440-350d-0fe5-7df2-5544-e9e5-c4d7.rev.sfr.net)
15:40:49 jespada joins (~jespada@2800:a4:177:4000:e940:78f8:1f73:68d0)
15:43:06 × alexherbo2 quits (~alexherbo@2a02-8440-350d-0fe5-7df2-5544-e9e5-c4d7.rev.sfr.net) (Remote host closed the connection)
15:43:08 <hellwolf> right, I am exploring options when porting play.haskell.org
15:43:15 <hellwolf> cabal install was one that worked
15:43:46 <hellwolf> but after 2nd time, I created duplicated packages, which in itself is not a problem, but there is something specific to the playground worker I need to address.
15:46:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
15:51:17 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
15:51:24 × forell quits (~forell@user/forell) (Ping timeout: 276 seconds)
15:52:08 × euleritian quits (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
15:52:39 euleritian joins (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de)
15:53:04 × euleritian quits (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
15:53:26 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
15:57:42 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:02:02 emfrom joins (~emfrom@37.169.25.0)
16:02:10 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
16:02:18 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
16:02:39 × alecs quits (~alecs@nat16.software.imdea.org) (Ping timeout: 244 seconds)
16:05:14 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
16:06:41 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
16:07:52 euleritian joins (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de)
16:12:59 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:13:39 × euleritian quits (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
16:13:57 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
16:17:42 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
16:21:25 monochrm joins (trebla@216.138.220.146)
16:22:19 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 264 seconds)
16:22:19 monochrm is now known as monochrom
16:23:15 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
16:23:16 × paul_j quits (~user@8.190.187.81.in-addr.arpa) (Read error: Connection reset by peer)
16:23:25 paul_j joins (~user@8.190.187.81.in-addr.arpa)
16:28:38 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
16:33:36 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
16:35:37 monochrm joins (trebla@216.138.220.146)
16:37:36 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds)
16:37:36 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
16:37:37 monochrm is now known as monochrom
16:39:33 vanishingideal joins (~vanishing@user/vanishingideal)
16:40:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
16:45:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
16:47:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
16:50:11 emfrom_ joins (~emfrom@37.169.25.0)
16:52:34 × emfrom quits (~emfrom@37.169.25.0) (Ping timeout: 248 seconds)
16:52:46 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
16:54:37 <haskellbridge> <Bowuigi> Btw @irc_libera.chat_homo:kf8nh.com trying to boostreap any compiler for a new architecture will have the "cannot generate code for this" problem
16:57:03 × emfrom_ quits (~emfrom@37.169.25.0) (Quit: /o)
16:57:58 <geekosaur> they left
16:58:16 <geekosaur> but I think ghc has an experimental risc-v backend (might require llvm?)
16:58:27 geekosaur sets mode -o geekosaur
17:00:57 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 276 seconds)
17:03:49 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
17:04:52 homo joins (~homo@user/homo)
17:08:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
17:11:56 monochrm joins (trebla@216.138.220.146)
17:12:04 ft joins (~ft@p508db21c.dip0.t-ipconnect.de)
17:13:04 Sgeo_ joins (~Sgeo@user/sgeo)
17:13:13 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 265 seconds)
17:13:13 monochrm is now known as monochrom
17:13:34 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
17:17:10 × jespada quits (~jespada@2800:a4:177:4000:e940:78f8:1f73:68d0) (Quit: My Mac has gone to sleep. ZZZzzz…)
17:17:28 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 245 seconds)
17:17:52 jespada joins (~jespada@2800:a4:177:4000:e940:78f8:1f73:68d0)
17:19:13 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
17:19:55 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 264 seconds)
17:23:46 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
17:26:45 target_i joins (~target_i@user/target-i/x-6023099)
17:28:37 monochrom joins (trebla@216.138.220.146)
17:33:08 Midjak joins (~MarciZ@82.66.147.146)
17:34:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
17:39:24 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
17:41:30 forell joins (~forell@user/forell)
17:48:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
17:50:22 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
17:52:54 Square joins (~Square@user/square)
17:55:15 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
17:56:48 × Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds)
18:00:14 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:02:37 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:05:56 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
18:09:23 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:09:25 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Ping timeout: 248 seconds)
18:10:23 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
18:12:27 × jespada quits (~jespada@2800:a4:177:4000:e940:78f8:1f73:68d0) (Quit: My Mac has gone to sleep. ZZZzzz…)
18:12:58 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
18:13:39 <hellwolf> how can I make ghc-pkg list only the latest package installed
18:15:30 <c_wraith> I don't think it stores that information intentionally
18:17:51 <int-e> hmmm ghc-pkg list --simple-output --names-only | xargs -n 1 ghc-pkg latest does *something*
18:17:55 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
18:18:12 <int-e> (`latest` is latest version, not last installed)
18:18:32 <c_wraith> I think you could look in the cabal store and find the entry with the most recent creation date.
18:19:40 <tomsmeding> depending on what is meant with "latest" :p
18:20:27 rekahsoft joins (~rekahsoft@70.51.99.237)
18:21:35 <c_wraith> good point. I'm not awake enough for multiple meanings of words yet. :)
18:22:22 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
18:23:10 <tomsmeding> hellwolf: if you did `cabal install --lib`, it's now in .ghc/<platform>/environments/
18:23:18 <tomsmeding> you can just remove the file in there and it's gone
18:23:37 <tomsmeding> the build products still still be there in ~/.cabal/, but they won't be used, so they're just costing you disk space
18:23:43 <hellwolf> I also discovered ghc-pkg recache command
18:23:58 <tomsmeding> if you did `cabal install` on an executable, then just removing the symlink in ~/.cabal/bin/ will "uninstall" it
18:24:03 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
18:24:03 <tomsmeding> again, leaving the build products still in ~/.cabal/
18:24:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
18:24:20 <hellwolf> I am using --store-db, fwiw. You know the playground project.
18:24:25 <tomsmeding> actually freeing up disk space is harder and requires something like https://github.com/treblacy/cabalgc
18:24:41 <tomsmeding> (if you don't want to just nuke the entire store)
18:26:53 <hellwolf> yea, I just wanted to keep a unique latest instance, for now.
18:26:58 <tomsmeding> hellwolf: I now read the backlog more properly. I recommend treating the cabal store as a disposable thing: create it programmatically, and if you need a different one, destroy it and create a new one. Don't try to play surgeon on what's in there
18:27:11 <tomsmeding> perhaps you can
18:27:18 <tomsmeding> but it's better for your sanity if you don't, I think
18:27:48 <tomsmeding> e.g. don't try to find out "the latest from the store", just install what you need in the store and get the package ID from that installation procedure somehow
18:27:57 <tomsmeding> ensure you don't need to care about what else is roaming around in that store
18:28:12 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:28:36 <hellwolf> tomsmeding: it's a good idea; it is just that it takes 20 minutes to build the db from scratch :p
18:28:52 <tomsmeding> then don't destroy it, but instead just install the new thing you need in it :p
18:29:12 <tomsmeding> make a cabal project, use the thing you want in the store in that project, build the project with that store path
18:29:16 <tomsmeding> now it's in the store
18:29:26 <tomsmeding> pick the package ID from dist-newstyle/cache/plan.json
18:29:30 <tomsmeding> and roll with that
18:29:50 <tomsmeding> (this is what the playground's mkbuildscript.sh is essentially doing)
18:30:47 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
18:33:20 <hellwolf> the problem with dist-newstyle/cache/plan.json is that for locally build project, they are decorated with "xxx-in-place"
18:33:25 <hellwolf> not usable for packge-id
18:33:40 <tomsmeding> oh are they not put in the store?
18:34:44 <tomsmeding> I just checked with a project where I have a 'source-repository-package' stanza in cabal.project that points to a git repo; that thing gets a proper package ID
18:35:12 <hellwolf> I see. I will experiment that strategy too
18:35:20 <tomsmeding> oh isn't the in-place thing for components of the current package?
18:35:41 <tomsmeding> right -- "inplace", not "in-place"
18:36:21 mengu1 joins (~mengu1@88.253.125.86)
18:37:02 <tomsmeding> note, a git repo need not be remote, it can also be a directory on the local system iirc
18:38:51 × acidjnk quits (~acidjnk@p200300d6e7283f8095cc0997f421f19c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
18:39:33 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
18:39:44 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 265 seconds)
18:40:18 <haskellbridge> <alexfmpe> Yeah can be local, I've done it often
18:41:14 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
18:41:16 vanishingideal joins (~vanishing@user/vanishingideal)
18:41:38 <haskellbridge> <alexfmpe> git remote add originOrSo /my/local/path
18:42:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
18:42:47 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:43:07 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
18:45:43 Lord_of_Life_ is now known as Lord_of_Life
18:46:34 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
18:47:20 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
18:50:02 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
18:50:57 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
18:54:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
18:56:30 × ThePenguin quits (~ThePengui@cust-95-80-24-166.csbnet.se) (Quit: Ping timeout (120 seconds))
18:56:47 ThePenguin joins (~ThePengui@cust-95-80-24-166.csbnet.se)
18:57:55 alecs joins (~alecs@61.pool85-58-154.dynamic.orange.es)
18:59:03 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
19:01:32 × superbil quits (~superbil@114-32-231-70.hinet-ip.hinet.net) (Quit: WeeChat 4.4.3)
19:01:48 ubert joins (~Thunderbi@p200300ecdf3b1a8716f2ef54d84641f5.dip0.t-ipconnect.de)
19:05:20 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:07:29 × alecs quits (~alecs@61.pool85-58-154.dynamic.orange.es) (Ping timeout: 248 seconds)
19:08:22 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
19:09:42 superbil joins (~superbil@114-32-231-70.hinet-ip.hinet.net)
19:09:57 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
19:10:38 jespada joins (~jespada@2800:a4:177:4000:e940:78f8:1f73:68d0)
19:20:40 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:22:17 <hellwolf> success! Thanks to @tomsmeding help! I have port haskell playground to https://play.yolc.dev/ Where you can compile a Yolc module and generate target code displayed on the right side :) Very happy now. I will do some write up and create a (additive) PR that can make the playground white-label friendly.
19:22:56 <haskellbridge> <sm> congrats hellwolf
19:23:38 <hellwolf> it uses a lot of memory, but that's GHC's fault!
19:23:54 <haskellbridge> <sm> what's the language on the right ? Solidity ?
19:24:00 <hellwolf> Solidity/Yul
19:24:07 <hellwolf> the intermediate language behind Solidity
19:24:22 <hellwolf> ugly as hell, my primary motivation is to use Haskell.
19:24:32 <hellwolf> because of those bastardized languages.
19:25:16 <haskellbridge> <sm> and on the left is Yolc.. which is actually a Haskell EDSL ? At first I didn't quite recognise it as haskell
19:25:36 pavonia joins (~user@user/siracusa)
19:25:39 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
19:25:54 acidjnk joins (~acidjnk@p200300d6e7283f8095cc0997f421f19c.dip0.t-ipconnect.de)
19:26:00 <hellwolf> yea... :D
19:26:08 <haskellbridge> <sm> not sure why, probably the $locId and the object = definition at the top and some other unfamiliar bits (@ type applications..)
19:26:09 <hellwolf> which one is the most surprising? Function signature?
19:26:16 <hellwolf> $locId I will eliminate.
19:26:40 <hellwolf> bunch of boiler plate I should still eliminate.
19:26:42 <haskellbridge> <sm> and what are the names with ' in them ?
19:27:03 <hellwolf> that's the weird bits indeed. just a variable name convention.
19:27:19 <haskellbridge> <sm> and what's :| ? Nothing bad, just some things I'm not used to :)
19:27:26 <hellwolf> :| is the NomEmpty
19:27:41 <hellwolf> This bits works with linearhaskell, so it looks unfamiliar
19:27:50 <tomsmeding> % :i Data.List.NonEmpty.NonEmpty
19:27:51 <yahb2> type GHC.Internal.Base.NonEmpty :: * -> * ; data GHC.Internal.Base.NonEmpty a = a GHC.Internal.Base.:| [a] ; -- Defined in ‘GHC.Internal.Base’ ; instance Foldable GHC.Internal.Base.NonEmpty ; ...
19:28:19 <haskellbridge> <sm> 👍️
19:28:30 kadobanana joins (~mud@user/kadoban)
19:29:51 × mud quits (~mud@user/kadoban) (Read error: Connection reset by peer)
19:29:56 × mengu1 quits (~mengu1@88.253.125.86) (Quit: Client closed)
19:33:38 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
19:36:02 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:40:27 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
19:46:24 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 264 seconds)
19:51:26 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
19:51:42 ljdarj1 joins (~Thunderbi@user/ljdarj)
19:53:52 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
19:55:09 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
19:55:09 ljdarj1 is now known as ljdarj
19:55:40 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
19:58:07 stiell joins (~stiell@gateway/tor-sasl/stiell)
20:00:00 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:38 caconym joins (~caconym@user/caconym)
20:01:56 × kuribas quits (~user@ptr-17d51eocedivlwulkvg.18120a2.ip6.access.telenet.be) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
20:06:47 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:12:34 tallcatparade joins (~tallcatpa@2600:1700:52c3:250::40)
20:13:28 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
20:17:17 × tallcatparade quits (~tallcatpa@2600:1700:52c3:250::40) (Client Quit)
20:18:34 × traxex quits (traxex@user/traxex) (Ping timeout: 260 seconds)
20:18:55 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
20:19:50 euleritian joins (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de)
20:20:47 traxex joins (~traxex@freeshell.org)
20:24:51 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:24:57 × traxex quits (~traxex@freeshell.org) (Ping timeout: 246 seconds)
20:29:15 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
20:30:35 × vanishingideal quits (~vanishing@user/vanishingideal) (Quit: leaving)
20:40:13 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
20:44:52 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
20:46:26 × euleritian quits (~euleritia@dynamic-176-006-139-206.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
20:46:57 euleritian joins (~euleritia@77.23.250.232)
20:47:48 monochrm joins (trebla@216.138.220.146)
20:49:56 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 272 seconds)
20:49:56 monochrm is now known as monochrom
20:52:02 × jespada quits (~jespada@2800:a4:177:4000:e940:78f8:1f73:68d0) (Quit: My Mac has gone to sleep. ZZZzzz…)
20:53:08 × dtman34 quits (~dtman34@2601:447:d000:1f5e:d8cf:6a91:a7b5:a018) (Ping timeout: 265 seconds)
20:55:38 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:00:02 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
21:04:19 × ubert quits (~Thunderbi@p200300ecdf3b1a8716f2ef54d84641f5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
21:07:51 dtman34 joins (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net)
21:09:42 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
21:11:00 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:11:44 Square2 joins (~Square4@user/square)
21:11:51 ubert joins (~Thunderbi@p200300ecdf3b1a87027ad7cd77bda83c.dip0.t-ipconnect.de)
21:14:48 × Square quits (~Square@user/square) (Ping timeout: 252 seconds)
21:15:23 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
21:16:32 × dtman34 quits (~dtman34@c-75-72-179-251.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
21:19:41 cptaffe parts (~cptaffe@user/cptaffe) ()
21:20:23 × ubert quits (~Thunderbi@p200300ecdf3b1a87027ad7cd77bda83c.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
21:20:52 cptaffe joins (~cptaffe@user/cptaffe)
21:23:27 ljdarj1 joins (~Thunderbi@user/ljdarj)
21:26:24 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:26:31 × Fijxu quits (~Fijxu@user/fijxu) (Ping timeout: 264 seconds)
21:27:26 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
21:27:27 ljdarj1 is now known as ljdarj
21:28:16 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds)
21:29:31 monochrom joins (trebla@216.138.220.146)
21:30:04 cptaffe parts (~cptaffe@user/cptaffe) ()
21:30:45 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
21:31:40 × notzmv quits (~umar@user/notzmv) (Read error: Connection reset by peer)
21:31:42 Fijxu joins (~Fijxu@user/fijxu)
21:31:55 dtman34 joins (~dtman34@2601:447:d000:1f5e:d8cf:6a91:a7b5:a018)
21:33:37 × akegalj quits (~akegalj@89-172-182-73.adsl.net.t-com.hr) (Ping timeout: 248 seconds)
21:34:40 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:36:13 cptaffe joins (~cptaffe@user/cptaffe)
21:41:48 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
21:47:44 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
21:53:37 akegalj joins (~akegalj@89-172-182-73.adsl.net.t-com.hr)
21:56:38 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds)
21:58:23 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:02:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
22:06:06 × euleritian quits (~euleritia@77.23.250.232) (Read error: Connection reset by peer)
22:06:26 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:06:34 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
22:06:51 traxex joins (traxex@user/traxex)
22:13:43 × alx741 quits (~alx741@186.33.188.229) (Quit: alx741)
22:13:43 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:17:50 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
22:18:03 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:18:39 Everything joins (~Everythin@195.138.86.118)
22:24:00 × michalz quits (~michalz@185.246.207.217) (Remote host closed the connection)
22:27:11 alx741 joins (~alx741@186.33.188.229)
22:29:07 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:33:46 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
22:40:16 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
22:44:29 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
22:45:34 mange joins (~user@user/mange)
22:51:57 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
22:56:12 × red-snail quits (~red-snail@static.151.210.203.116.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
22:57:55 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
22:58:20 red-snail joins (~red-snail@static.151.210.203.116.clients.your-server.de)
23:02:32 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:05:23 × Square2 quits (~Square4@user/square) (Ping timeout: 245 seconds)
23:06:50 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
23:08:08 × xff0x quits (~xff0x@2405:6580:b080:900:89d7:1b64:1ef9:ca1d) (Quit: xff0x)
23:10:10 × remedan quits (~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
23:11:50 remedan joins (~remedan@ip-62-245-108-153.bb.vodafone.cz)
23:14:26 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:16:39 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
23:17:53 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:18:13 × Everything quits (~Everythin@195.138.86.118) (Quit: leaving)
23:22:18 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
23:33:17 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:33:33 × sp1ff quits (~user@c-67-160-173-55.hsd1.wa.comcast.net) (Ping timeout: 276 seconds)
23:37:50 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
23:48:39 merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl)
23:50:31 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 252 seconds)
23:52:49 × merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
23:57:11 ljdarj1 joins (~Thunderbi@user/ljdarj)

All times are in UTC on 2025-01-20.