2021/12/01

2021-12-01 00:00:02 +0100 <monochrom> It looks like eager.
2021-12-01 00:00:12 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 00:01:28 +0100__monty__(~toonn@user/toonn) (Ping timeout: 264 seconds)
2021-12-01 00:01:51 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
2021-12-01 00:02:57 +0100__monty__(~toonn@user/toonn)
2021-12-01 00:03:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-12-01 00:03:23 +0100 <Axman6> maerwald: we'll get around to it one day, I'm sure
2021-12-01 00:03:48 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
2021-12-01 00:04:05 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-01 00:04:59 +0100 <monochrom> When it is really demanded, yes. >:)
2021-12-01 00:06:00 +0100 <geekosaur> that will be a sad day
2021-12-01 00:06:19 +0100 <geekosaur> when haskell abandons its core principle
2021-12-01 00:06:34 +0100 <maerwald> SPJ said the next Haskell might be strict
2021-12-01 00:06:58 +0100 <monochrom> No worries geekosaur, I (and I think Axman6) were doing meta-punning on laziness! Can't you see? >:)
2021-12-01 00:08:25 +0100 <maerwald> I think laziness is a failed experiment. It only really serves compiler optimizations, but creates more headache for the users and is a poor streaming hack
2021-12-01 00:09:47 +0100 <monochrom> No, I think it's successful. "f bottom = bottom" sucks.
2021-12-01 00:10:17 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-12-01 00:10:56 +0100 <monochrom> if-then-else not being a function sucks.
2021-12-01 00:11:35 +0100 <monochrom> I do not think of laziness as the only solution to streaming. I only admit that I do benefit from it, but only when it's appropriate.
2021-12-01 00:11:51 +0100 <dibblego> can't write map in terms of foldr with scala, that sucks
2021-12-01 00:11:52 +0100 <jackdk> At least we have Data.Bool.bool
2021-12-01 00:12:10 +0100 <jackdk> and take n . sort
2021-12-01 00:12:29 +0100ChanServ-o dibblego
2021-12-01 00:12:46 +0100 <monochrom> But as said, my reason for preferring laziness is because it enables "f True x y = x; f False x y = y".
2021-12-01 00:13:14 +0100 <monochrom> I tried to do that in Python. It was disappointing.
2021-12-01 00:13:20 +0100 <dibblego> map f = foldr ((:) . f) [] -- I like laziness because it enables this
2021-12-01 00:13:29 +0100 <monochrom> I then tried to do that in Scheme. It was also disappointing.
2021-12-01 00:13:32 +0100 <maerwald> you can have laziness in strict languages
2021-12-01 00:13:39 +0100 <maerwald> but the language is strict
2021-12-01 00:13:50 +0100 <dibblego> with so much effort that it is not worth it, yes
2021-12-01 00:13:53 +0100 <janus> monochrom: you tried refactoring through a if-then-else? or you tried writing lazy python by putting everything in lambdas?
2021-12-01 00:14:19 +0100 <dibblego> I have also tried this with python, but the failure was obviously imminent
2021-12-01 00:14:36 +0100 <monochrom> I tried the simple-minded "def f(b, x, y): if b return x else return y"
2021-12-01 00:14:44 +0100 <dibblego> dead
2021-12-01 00:15:14 +0100 <monochrom> Well, that reminded me that I needed to do "def f(b, x, y): if b return x() else return y()". Well, that sucks.
2021-12-01 00:15:18 +0100 <dibblego> def f(b, x, y): if b return x() else return y() # but ya can do laziness in a strict language!
2021-12-01 00:15:32 +0100 <hpc> yeah, and then you have to be able to say "function of zero arguments" with a straight face
2021-12-01 00:15:37 +0100 <monochrom> Also, it's not the same. You lose memoization.
2021-12-01 00:15:42 +0100 <janus> i wonder with this question how people can have such different perspectives... is it because monochrom encounters a lot more infinite loops than maerwald? surely the problem domain must have something to do with it
2021-12-01 00:16:00 +0100 <monochrom> Or put it theoretically, call-by-name is not call-by-need.
2021-12-01 00:16:23 +0100pfurla(~pfurla@2804:14d:5c81:4104:b590:8966:cd38:8f41) (Quit: gone to sleep. ZZZzzz…)
2021-12-01 00:16:23 +0100 <hpc> i think it comes from just how you think about the definitions of things
2021-12-01 00:16:35 +0100 <hpc> that definition of f leans heavily on equational reasoning
2021-12-01 00:16:44 +0100 <janus> i mean, why does it matter how to reason about bottom if bottom never occurs? it could tip the scale if you have more bottoms than the next person
2021-12-01 00:17:03 +0100 <kennyd> @src and
2021-12-01 00:17:03 +0100 <lambdabot> and = foldr (&&) True
2021-12-01 00:17:04 +0100 <geekosaur> but bottom does occur in strict languages
2021-12-01 00:17:06 +0100 <maerwald> janus: when you've experienced complicated laziness issues in production that cost the business a lot of money and engineering time, you realize that for many thing, you don't actually want it. High-performance libraries already depend on hacks and whatnot, not on naive laziness
2021-12-01 00:17:23 +0100 <geekosaur> it just means hangs or crashes
2021-12-01 00:17:28 +0100 <kennyd> @src any
2021-12-01 00:17:28 +0100 <lambdabot> any p = or . map p
2021-12-01 00:17:32 +0100 <maerwald> every library I looked at that uses laziness to implement streaming sucks
2021-12-01 00:17:36 +0100 <maerwald> (e.g. tar)
2021-12-01 00:17:51 +0100 <maerwald> so you don't even want it for that
2021-12-01 00:17:59 +0100 <monochrom> Only with a total language are you really free of bottom.
2021-12-01 00:18:07 +0100 <maerwald> for networking, even the maintainers of said packages say they don't want laziness in their code
2021-12-01 00:18:40 +0100 <monochrom> The rest, it depends on whether you focus on operational or denotational semantics.
2021-12-01 00:18:51 +0100 <maerwald> the only pro argument I constantly hear is that you get neat optimizations tricks
2021-12-01 00:18:52 +0100 <kennyd> for `any p = or . map p', all functions involved need to be lazy
2021-12-01 00:18:57 +0100 <kennyd> +to work
2021-12-01 00:19:05 +0100 <dibblego> you saw compositional arguments earlier
2021-12-01 00:19:05 +0100 <janus> geekosaur: hangs or crashes are the worst though ;) i think request timeout is tested less than just normal failures like permission denied
2021-12-01 00:19:09 +0100 <maerwald> but if you implement a high performance library you may do these tricks yourself anyway
2021-12-01 00:19:21 +0100 <monochrom> If you focus on operational semantics, then, by the time your control flow is inside your function, you are assured that all parameters are non-bottoms, yes.
2021-12-01 00:19:51 +0100 <monochrom> But if you focuse on denotational semantics, then "f bottom = bottom" is still there, it's a true statement.
2021-12-01 00:21:52 +0100vysn(~vysn@user/vysn) (Ping timeout: 264 seconds)
2021-12-01 00:21:52 +0100 <maerwald> and... have you ever used a library where the performance characteristics depends heavily on laziness or inlining? Those properties constantly break
2021-12-01 00:22:40 +0100 <dibblego> yes, no they don't
2021-12-01 00:23:01 +0100 <dibblego> > take 2 (map (+1) [1..])
2021-12-01 00:23:02 +0100 <lambdabot> [2,3]
2021-12-01 00:23:06 +0100 <dibblego> still works, phew
2021-12-01 00:23:18 +0100gawen(~gawen@user/gawen) (Quit: cya)
2021-12-01 00:23:24 +0100 <maerwald> erm
2021-12-01 00:23:30 +0100 <maerwald> I'm not talking about silly repl examples :p
2021-12-01 00:23:39 +0100 <int-e> inlining and rewrite rules are everywhere
2021-12-01 00:23:50 +0100 <maerwald> yep and they constantly break
2021-12-01 00:23:56 +0100 <maerwald> see streamly
2021-12-01 00:24:01 +0100 <dibblego> oh, you mean poorly designed libraries that focus on operational semantics while trying to exploit laziness? No, I haven't used those libraries, since I don't bother picking them up to begin with.
2021-12-01 00:24:17 +0100 <maerwald> aha
2021-12-01 00:24:39 +0100 <maerwald> well, lens/optics also play that game
2021-12-01 00:24:44 +0100 <maerwald> you don't use those?
2021-12-01 00:24:50 +0100 <dibblego> of course I do, and no they don't
2021-12-01 00:25:10 +0100 <maerwald> absolutely... they're affected by small GHC changes
2021-12-01 00:25:37 +0100 <maerwald> or a PR unknowingly breaking laziness
2021-12-01 00:25:38 +0100 <monochrom> Food for thought: tibbe is a battle-tested Haskeller, and his style guide recommends: lazy functions, eager data.
2021-12-01 00:25:40 +0100 <int-e> lists, bytestring, vector ... everything with fusion. it's just constant factors but those matter
2021-12-01 00:25:47 +0100 <dibblego> I worked on data-lens before lens existed, and now I use mostly lens — please show me where it broke in all those years
2021-12-01 00:25:48 +0100 <maerwald> except those are smart guys understanding GHC
2021-12-01 00:25:57 +0100 <maerwald> but don't tell me that's easy or common
2021-12-01 00:26:28 +0100 <int-e> these things are battle-tested and relatively robust but it does hurt when they fail
2021-12-01 00:26:41 +0100 <maerwald> dibblego: it's constantly fixed up, that's what I said
2021-12-01 00:26:55 +0100 <monochrom> It would have said "turn on StrictData, but don't turn on Strict" if it were written after those extensions were introduced.
2021-12-01 00:27:04 +0100 <dibblego> perhaps I don't know what this means, "those properties constantly break"
2021-12-01 00:27:21 +0100 <maerwald> I'm not going to pull out all the issues now :)
2021-12-01 00:27:32 +0100 <dibblego> then I won't know what "properties"
2021-12-01 00:27:35 +0100 <monochrom> And indeed that's also the advice from other front-line Haskellers.
2021-12-01 00:27:53 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-12-01 00:28:26 +0100geekosaurdoes not see the page-long list of updates that would corroborate
2021-12-01 00:28:33 +0100 <maerwald> Haskell is a performance debugging nightmare
2021-12-01 00:28:39 +0100gawen(~gawen@user/gawen)
2021-12-01 00:28:50 +0100 <jackdk> there's a warning in the haddocks for either (^?) or preview that says if you see space leaks, try `firstOf` instead because the First monoid is lazy
2021-12-01 00:28:52 +0100 <maerwald> and laziness is one of the reasons
2021-12-01 00:29:14 +0100 <dibblego> when I think of properties breaking, I think of e.g. this:
2021-12-01 00:29:20 +0100 <dibblego> scala> def map[A, B](f: A => B, x: Stream[A]): Stream[B] = x.foldRight(Stream.empty[B])((a, b) => Stream.cons(f(a), b))
2021-12-01 00:29:26 +0100 <dibblego> scala> streamMap((_: Int) + 1, Stream.continually(1)).take(5)
2021-12-01 00:29:26 +0100 <dibblego> java.lang.StackOverflowError
2021-12-01 00:29:28 +0100 <maerwald> the last memory leak I found in cardano a week ago
2021-12-01 00:29:54 +0100 <maerwald> after 2hours I stopped searching and just filed a bug
2021-12-01 00:29:57 +0100 <dibblego> s/map/streamMap
2021-12-01 00:30:23 +0100 <monochrom> OK I'm going to be elitist. I'm going to agree up to this much: Eagerness is a better idea, for programmers below let's say the 50th percentile.
2021-12-01 00:30:33 +0100 <dibblego> I will support this notion.
2021-12-01 00:31:07 +0100 <kennyd> <maerwald> Haskell is a performance debugging nightmare <- why do trollish statements like this get tolerate? it is not the first time I've heard something similar from the same person either
2021-12-01 00:31:09 +0100 <hpc> banning recursion is also a better idea for that same group
2021-12-01 00:31:25 +0100 <dsal> Only allow them to use fix
2021-12-01 00:31:26 +0100 <monochrom> :)
2021-12-01 00:32:01 +0100 <maerwald> kennyd: that's my production experience
2021-12-01 00:32:04 +0100 <monochrom> Laziness is a power tool and is also harder to use. I am aware of the cost and benefit, and I chose it.
2021-12-01 00:32:09 +0100 <yushyin> kennyd: it is always the same discussions with always the same participants in here
2021-12-01 00:32:24 +0100 <kennyd> maerwal, I don't care, you are using loaded language for trolling and attention
2021-12-01 00:32:28 +0100 <maerwald> monochrom: have you worked on a large scale Haskell codebase that needs to meet certain performance criteria?
2021-12-01 00:32:36 +0100 <monochrom> No.
2021-12-01 00:32:50 +0100 <maerwald> kennyd: loaded language? :D
2021-12-01 00:32:50 +0100 <monochrom> But tibbe has.
2021-12-01 00:32:56 +0100 <maerwald> monochrom: yeah, me too
2021-12-01 00:33:13 +0100 <maerwald> and even after hiring expensive Haskell consultants they couldn't figure it out :D
2021-12-01 00:33:43 +0100 <monochrom> What I have experience is in observing students in the lower 50th percentile vs students in the upper 50th percentile.
2021-12-01 00:33:45 +0100 <dibblego> I have done this. Yes, figuring it out after the code is written (poorly) is one of the most difficult situations. It can be done though.
2021-12-01 00:33:46 +0100 <maerwald> so I don't think this has much to do with elitism
2021-12-01 00:33:55 +0100 <maerwald> GHC is a moving target
2021-12-01 00:33:59 +0100 <maerwald> laziness is a moving target
2021-12-01 00:34:13 +0100 <maerwald> you need to invest a lot of manpower in it
2021-12-01 00:34:25 +0100 <maerwald> facebook does, cardano does (but they struggle too)
2021-12-01 00:34:28 +0100cosimone(~user@93-47-231-3.ip115.fastwebnet.it) (Ping timeout: 264 seconds)
2021-12-01 00:34:34 +0100 <dibblego> I would like to see all the manpower in my code because of laziness
2021-12-01 00:34:44 +0100 <monochrom> Laziness, recursion, non-operational reasoning of code... a lot of nice things are out of reach for the lower ones, yes, can't be helped.
2021-12-01 00:34:49 +0100 <dibblego> as the example above illustrates, quite the opposite is true
2021-12-01 00:34:57 +0100 <hpc> facebook is a bad example, they've written their own php implementation from scratch multiple times
2021-12-01 00:35:07 +0100 <hpc> if you want to argue "lots of manpower"
2021-12-01 00:35:55 +0100 <janus> hpc: how does a php implementation disprove that they have a lot of manpower?
2021-12-01 00:36:14 +0100 <maerwald> there's a reason standard chartered uses Mu, which is strict
2021-12-01 00:36:26 +0100 <hpc> janus: if haskell requires such a wasteful amount of expert-written code, so does the most popular language in the world
2021-12-01 00:36:43 +0100 <hpc> and somehow the web hasn't collapsed
2021-12-01 00:36:49 +0100 <monochrom> I think hpc means: Having re-implemented PHP multiple times disproves that the immense manpower was spent majorly on fighting laziness.
2021-12-01 00:37:30 +0100 <maerwald> monochrom: then you haven't read Simon Mars last post on the GHC/base breaking discussion, where he explained how new GHC versions break their performance characteristics
2021-12-01 00:37:30 +0100 <monochrom> If anything, it was spent on fixing PHP, no? >:)
2021-12-01 00:39:51 +0100sproso(~sproso@d137-186-73-215.abhsia.telus.net) (Quit: Client closed)
2021-12-01 00:39:55 +0100 <janus> maerwald: where can i find that ? i tried googling for it, couldn't see it
2021-12-01 00:40:53 +0100 <maerwald> https://github.com/haskell/core-libraries-committee/issues/12#issuecomment-971794515
2021-12-01 00:41:23 +0100sus(zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net)
2021-12-01 00:41:50 +0100 <janus> thanks
2021-12-01 00:41:53 +0100 <maerwald> https://github.com/composewell/streamly/issues/1061 is also a good read
2021-12-01 00:42:21 +0100 <maerwald> you can also search the cardano issue tracker for performance issues :p
2021-12-01 00:42:46 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 00:42:51 +0100 <yushyin> :p:p
2021-12-01 00:42:51 +0100dagit(~dagit@2001:558:6025:38:6476:a063:d05a:44da)
2021-12-01 00:42:55 +0100max22-(~maxime@2a01cb088335980070cf7b273a01dbc1.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-12-01 00:43:04 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 00:43:11 +0100 <hpc> one person-year on a typical software team is a month or two, and they forked the core tools
2021-12-01 00:43:19 +0100 <hpc> from my experience that's not bad at all
2021-12-01 00:43:20 +0100 <concrete-houses> postgresql is harder to program than I had thought
2021-12-01 00:43:23 +0100 <concrete-houses> sql too
2021-12-01 00:43:26 +0100 <concrete-houses> its hell
2021-12-01 00:43:30 +0100 <maerwald> or https://github.com/yesodweb/wai/pull/752#issuecomment-501531386
2021-12-01 00:43:43 +0100 <concrete-houses> but how do you save data in haskell?
2021-12-01 00:44:13 +0100 <concrete-houses> maybe forth is the answer
2021-12-01 00:44:38 +0100 <sm> a much higher proportion of haskell issues are performance issues. In part because there are fewer of the other kind
2021-12-01 00:45:19 +0100 <dsal> concrete-houses: postgresql has been in development for decades. I'd expect if it were easy it would've been finished in the 90s. :)
2021-12-01 00:45:34 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-12-01 00:46:02 +0100jeetelongname(~jeet@eduroam-public-46.nat.port.ac.uk)
2021-12-01 00:46:29 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
2021-12-01 00:46:55 +0100 <maerwald> or in optics: https://github.com/well-typed/optics/pull/277
2021-12-01 00:47:01 +0100 <maerwald> I can do this all day
2021-12-01 00:47:07 +0100 <sm> positive view: you freed up a bunch of time by avoiding uncontrolled effects and unclear semantics, now you can afford to spend more time chasing performance
2021-12-01 00:47:25 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-01 00:47:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-01 00:47:57 +0100 <maerwald> so... if you really claim laziness doesn't affect your performance code... you have never written performant code. Yes, StrictData is neat (I enable it a lot), but not enough
2021-12-01 00:48:36 +0100 <hpc> maerwald: now do python
2021-12-01 00:48:42 +0100 <maerwald> I do
2021-12-01 00:48:50 +0100 <hpc> find all the garbage collection and GIL bugs :P
2021-12-01 00:49:11 +0100 <maerwald> I know a couple of folks who write high-performance python code... it's a dark art too
2021-12-01 00:49:24 +0100 <hpc> or javascript, find all the useless roundtrips in popular frameworks
2021-12-01 00:50:11 +0100 <janus> concrete-houses: using bitcoin you can store data with their forth-based scripting language ;) (joking!)
2021-12-01 00:50:18 +0100 <hpc> and then find all the other stupid problems like having a hundred copies of the is-false package in node_modules
2021-12-01 00:51:29 +0100 <maerwald> I found writing high performance code in Go much easier, because the language is so dumb
2021-12-01 00:51:34 +0100 <maerwald> and that's a good thing for that goal
2021-12-01 00:51:35 +0100 <janus> concrete-houses: i almost think you're joking but the debate is in a way also typical of #haskell i think, because it is about leaving the pure world and things get ugly. thinking of acid-state which burned some people in here. almost seems like your question could open that wound
2021-12-01 00:52:27 +0100 <EvanR> what's wrong with acid-state
2021-12-01 00:52:43 +0100 <hpc> EvanR: data in an acid-state database needs to fit entirely in memory
2021-12-01 00:52:48 +0100 <EvanR> concrete-houses, I'm thinking of taking sqlite out for a spin
2021-12-01 00:53:08 +0100 <maerwald> ixset-typed
2021-12-01 00:53:19 +0100 <maerwald> btw... another performance nightmare ;p
2021-12-01 00:53:22 +0100 <EvanR> hpc, ok that's understood. What's the problem? xD
2021-12-01 00:53:30 +0100 <maerwald> but it's actually neat
2021-12-01 00:53:37 +0100 <maerwald> @hackage ixset-typed
2021-12-01 00:53:37 +0100 <lambdabot> https://hackage.haskell.org/package/ixset-typed
2021-12-01 00:53:59 +0100 <janus> it's like that perfect moment where i can't decide whether a question is a troll or if i am just in #haskell :D
2021-12-01 00:54:20 +0100 <hpc> how can haskell be real if our eyes aren't real
2021-12-01 00:54:31 +0100 <EvanR> real eyes realize real lies
2021-12-01 00:55:43 +0100 <EvanR> so is it that acid-state has no API for knowing if you're getting close to your limit or something
2021-12-01 00:55:52 +0100 <EvanR> unlike e.g. the bounds on Int
2021-12-01 00:56:20 +0100hiruji(~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-01 00:56:34 +0100 <hpc> more that it doesn't really make that clear on its own
2021-12-01 00:56:44 +0100 <hpc> and people writing about it made it sound like it could replace postgres
2021-12-01 00:56:55 +0100 <hpc> it was an expectation thing
2021-12-01 00:57:17 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-12-01 00:57:20 +0100 <EvanR> that's like the number zero thing I learned about acid-state
2021-12-01 00:57:36 +0100 <hpc> ah
2021-12-01 00:57:56 +0100 <EvanR> it seems like the defining characteristic, because I don't believe "acid" usually xD
2021-12-01 00:59:15 +0100 <EvanR> when acid state was written I don't think people had like 16G of memory
2021-12-01 00:59:47 +0100 <EvanR> oh yeah, and GHC uses like 3x your live data for gc maintenance
2021-12-01 00:59:53 +0100jinsun(~quassel@user/jinsun)
2021-12-01 01:00:02 +0100zopsi_(zopsi@2600:3c00::f03c:91ff:fe14:551f) (Quit: Oops)
2021-12-01 01:00:03 +0100jinsun(~quassel@user/jinsun) (*.net *.split)
2021-12-01 01:00:03 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (*.net *.split)
2021-12-01 01:00:03 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (*.net *.split)
2021-12-01 01:00:04 +0100FragByte(~christian@user/fragbyte) (*.net *.split)
2021-12-01 01:00:04 +0100ozzymcduff(~mathieu@81-234-151-21-no94.tbcn.telia.com) (*.net *.split)
2021-12-01 01:00:04 +0100Logio(em@kapsi.fi) (*.net *.split)
2021-12-01 01:00:04 +0100glider(~glider@user/glider) (*.net *.split)
2021-12-01 01:00:04 +0100lukec(9dfd4d094e@2604:bf00:561:2000::10e) (*.net *.split)
2021-12-01 01:00:04 +0100jkoshy(99b9359beb@2604:bf00:561:2000::10f) (*.net *.split)
2021-12-01 01:00:04 +0100sm2n(ae95cb1267@user/sm2n) (*.net *.split)
2021-12-01 01:00:04 +0100acidsys(~LSD@2.lsd.systems) (*.net *.split)
2021-12-01 01:00:04 +0100sander(~sander@user/sander) (*.net *.split)
2021-12-01 01:00:04 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
2021-12-01 01:00:04 +0100arahael(~arahael@27-32-144-20.tpgi.com.au) (*.net *.split)
2021-12-01 01:00:04 +0100evanrelf(3addc196af@2604:bf00:561:2000::f0) (*.net *.split)
2021-12-01 01:00:04 +0100zmt00(~zmt00@user/zmt00) (*.net *.split)
2021-12-01 01:00:04 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (*.net *.split)
2021-12-01 01:00:04 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split)
2021-12-01 01:00:04 +0100sweater(~sweater@206.81.18.26) (*.net *.split)
2021-12-01 01:00:04 +0100carbolymer(~carbolyme@dropacid.net) (*.net *.split)
2021-12-01 01:00:04 +0100shanemikel(~shanemike@desk.roadwar.net) (*.net *.split)
2021-12-01 01:00:04 +0100remexre(~remexre@user/remexre) (*.net *.split)
2021-12-01 01:00:04 +0100teddyc(theodorc@cassarossa.samfundet.no) (*.net *.split)
2021-12-01 01:00:04 +0100dyniec(~dyniec@mail.dybiec.info) (*.net *.split)
2021-12-01 01:00:04 +0100rembo10(~rembo10@remulis.com) (*.net *.split)
2021-12-01 01:00:04 +0100TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split)
2021-12-01 01:00:04 +0100cocreature(~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split)
2021-12-01 01:00:04 +0100xacktm(xacktm@user/xacktm) (*.net *.split)
2021-12-01 01:00:11 +0100lukec(9dfd4d094e@2604:bf00:561:2000::10e)
2021-12-01 01:00:13 +0100TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667)
2021-12-01 01:00:16 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-12-01 01:00:19 +0100dyniec(~dyniec@mail.dybiec.info)
2021-12-01 01:00:20 +0100Alex_test(~al_test@178.34.160.14)
2021-12-01 01:00:20 +0100evanrelf(3addc196af@2604:bf00:561:2000::f0)
2021-12-01 01:00:21 +0100AlexZenon(~alzenon@178.34.160.14)
2021-12-01 01:00:22 +0100teddyc(theodorc@cassarossa.samfundet.no)
2021-12-01 01:00:23 +0100sm2n(ae95cb1267@user/sm2n)
2021-12-01 01:00:23 +0100jkoshy(99b9359beb@2604:bf00:561:2000::10f)
2021-12-01 01:00:26 +0100nickdaly(45ce440a48@2604:bf00:561:2000::e2)
2021-12-01 01:00:28 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-12-01 01:00:28 +0100Logio(em@kapsi.fi)
2021-12-01 01:00:28 +0100FragByte(~christian@p579d2134.dip0.t-ipconnect.de)
2021-12-01 01:00:31 +0100caubert(~caubert@136.244.111.235)
2021-12-01 01:00:35 +0100ehamberg_(sid18208@id-18208.hampstead.irccloud.com)
2021-12-01 01:00:36 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-12-01 01:00:38 +0100FragByte(~christian@p579d2134.dip0.t-ipconnect.de) (Changing host)
2021-12-01 01:00:38 +0100FragByte(~christian@user/fragbyte)
2021-12-01 01:00:41 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2021-12-01 01:00:42 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-01 01:00:47 +0100Teacup(~teacup@user/teacup)
2021-12-01 01:01:01 +0100zopsi(~zopsi@irc.dir.ac)
2021-12-01 01:01:14 +0100natechan(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-12-01 01:01:19 +0100rembo10(~rembo10@remulis.com)
2021-12-01 01:01:57 +0100yaroot(~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953)
2021-12-01 01:02:06 +0100dwt_(~dwt_@c-98-200-58-177.hsd1.tx.comcast.net)
2021-12-01 01:02:09 +0100filwisher(2e6936c793@2604:bf00:561:2000::170)
2021-12-01 01:02:11 +0100sander(~sander@user/sander)
2021-12-01 01:02:14 +0100shanemikel(~shanemike@desk.roadwar.net)
2021-12-01 01:02:15 +0100heath(~heath@user/heath)
2021-12-01 01:02:18 +0100jinsun(~quassel@user/jinsun)
2021-12-01 01:02:18 +0100dolio(~dolio@130.44.130.54)
2021-12-01 01:02:25 +0100carbolymer(~carbolyme@dropacid.net)
2021-12-01 01:02:27 +0100xacktm(xacktm@user/xacktm)
2021-12-01 01:02:29 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-01 01:02:34 +0100acidsys(~LSD@2.lsd.systems)
2021-12-01 01:02:35 +0100oats(~thomas@user/oats)
2021-12-01 01:02:35 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2021-12-01 01:02:42 +0100haskl(~haskl@user/haskl)
2021-12-01 01:02:42 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 01:02:55 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-01 01:03:05 +0100 <davean> EvanR: Also, like acid-state has NOT built in recovery
2021-12-01 01:03:05 +0100lbseale_(~ep1ctetus@user/ep1ctetus) (Quit: Leaving)
2021-12-01 01:03:14 +0100 <EvanR> eh?
2021-12-01 01:03:16 +0100sweater(~sweater@206.81.18.26)
2021-12-01 01:03:16 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
2021-12-01 01:03:17 +0100remexre(~remexre@user/remexre)
2021-12-01 01:03:18 +0100 <davean> either it comes up because everything went well or you get all the peices
2021-12-01 01:03:27 +0100cocreature(~moritz@2a03:b0c0:3:d0::c8:f001)
2021-12-01 01:03:31 +0100 <EvanR> that part I did not know
2021-12-01 01:03:33 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-12-01 01:04:11 +0100jeetelongname(~jeet@eduroam-public-46.nat.port.ac.uk) (Ping timeout: 256 seconds)
2021-12-01 01:04:11 +0100noctux(~noctux@user/noctux) (Ping timeout: 256 seconds)
2021-12-01 01:04:12 +0100 <EvanR> even my shitty append-only log for my MUD server could recover
2021-12-01 01:04:15 +0100glider(~glider@user/glider)
2021-12-01 01:04:29 +0100noctux(~noctux@user/noctux)
2021-12-01 01:05:09 +0100 <davean> I mean acid state is an operational append log with rollup
2021-12-01 01:05:11 +0100jackhill(~jackhill@kalessin.dragonsnail.net)
2021-12-01 01:05:16 +0100Patternmaster(~georg@li1192-118.members.linode.com)
2021-12-01 01:05:22 +0100ozzymcduff(~mathieu@81-234-151-21-no94.tbcn.telia.com)
2021-12-01 01:05:24 +0100ystael(~ystael@user/ystael)
2021-12-01 01:06:08 +0100emf(~emf@2620:10d:c090:400::5:d28b)
2021-12-01 01:06:55 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-01 01:07:01 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-12-01 01:07:14 +0100jeetelongname(~jeet@148.197.248.46)
2021-12-01 01:07:57 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 3.3)
2021-12-01 01:08:11 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2021-12-01 01:08:32 +0100sheb(~sheb@31.223.228.71) (Ping timeout: 240 seconds)
2021-12-01 01:10:50 +0100 <concrete-houses> acid state!! happstack.com!! I am beginning to think that centralized databases are a huge mistake and bs of usury bankers
2021-12-01 01:11:13 +0100 <maerwald> right... you should enjoy blockchain
2021-12-01 01:11:23 +0100 <maerwald> it's pretty simple... look
2021-12-01 01:11:46 +0100 <concrete-houses> I am stunned how ahrd sql adn psotgresql are to use
2021-12-01 01:11:59 +0100 <concrete-houses> how poor the docs are
2021-12-01 01:12:09 +0100 <concrete-houses> endless manusl
2021-12-01 01:12:12 +0100 <concrete-houses> no howto to do x y
2021-12-01 01:12:20 +0100 <concrete-houses> almsot as if its a distraction to keep u poor
2021-12-01 01:12:23 +0100 <EvanR> 🤔
2021-12-01 01:13:32 +0100 <davean> uh what?
2021-12-01 01:13:58 +0100 <maerwald> it's a blockchain scam... wait for it :D
2021-12-01 01:14:01 +0100 <hpc> sql adn psotgresql are ahrd :P
2021-12-01 01:15:00 +0100 <EvanR> > sort "sql adn psotgresql are ahrd"
2021-12-01 01:15:02 +0100 <lambdabot> " aaaddeeghllnopqqrrrssst"
2021-12-01 01:15:13 +0100 <janus> concrete-houses: i know your struggle. you like relational algebra but sql doesn't respect it
2021-12-01 01:15:15 +0100 <EvanR> fixed it
2021-12-01 01:15:18 +0100 <janus> i know the project that saves the day
2021-12-01 01:15:23 +0100 <janus> @package Project-M36
2021-12-01 01:15:23 +0100 <lambdabot> https://hackage.haskell.org/package/Project-M36
2021-12-01 01:15:26 +0100 <hpc> EvanR: sorted it all out, one might say
2021-12-01 01:15:32 +0100 <janus> oh ok here it is https://github.com/agentm/project-m36
2021-12-01 01:16:02 +0100 <janus> relational algebra built totally in haskell with much type fanciness that lets you collaborate with the compiler in harmony
2021-12-01 01:16:29 +0100 <EvanR> but is it web scale
2021-12-01 01:16:52 +0100 <janus> yes, it doesn't require all data to be in memory. in theory.
2021-12-01 01:17:55 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
2021-12-01 01:19:05 +0100 <janus> there is even an irc channel on this network, but you must be patient because Agent M doesn't use a bouncer, iirc: #project-m36
2021-12-01 01:19:33 +0100 <EvanR> what's up with haskellDB, is that still a thing
2021-12-01 01:19:35 +0100 <davean> Bouncers are weird
2021-12-01 01:22:03 +0100 <janus> EvanR: haskellDB looks like it compiles to SQL, so not nearly as ambitious as Project M36
2021-12-01 01:22:08 +0100jeetelongname(~jeet@148.197.248.46) (Remote host closed the connection)
2021-12-01 01:22:40 +0100 <janus> but no, haskellDB doesn't seem active, no commits since 2019
2021-12-01 01:22:47 +0100 <EvanR> that's ancient
2021-12-01 01:22:54 +0100 <EvanR> jk
2021-12-01 01:22:59 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-12-01 01:23:19 +0100 <EvanR> give them time to recover from the pandemic
2021-12-01 01:23:35 +0100 <janus> the drivers havn't been touched for 9 years ;)
2021-12-01 01:23:58 +0100 <EvanR> good that means they work with databases
2021-12-01 01:24:07 +0100 <EvanR> that are that old
2021-12-01 01:24:27 +0100 <EvanR> vintage drivers
2021-12-01 01:25:03 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-01 01:26:51 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 256 seconds)
2021-12-01 01:27:20 +0100jeetelongname(~jeet@148.197.248.46)
2021-12-01 01:30:17 +0100 <dsal> What's wrong with postgres docs? I've found them quite good.
2021-12-01 01:31:07 +0100 <monochrom> Can I ban that person already?
2021-12-01 01:32:20 +0100 <Axman6> yeah postgres has some of the best docs of any project I use regularly
2021-12-01 01:32:36 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3)
2021-12-01 01:32:57 +0100 <janus> monochrom: yes you can :)
2021-12-01 01:32:58 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 265 seconds)
2021-12-01 01:33:09 +0100 <monochrom> Pretty sure they just mean the entitlement attitude "the doc does not teach me SQL for free".
2021-12-01 01:33:25 +0100 <janus> i still think it is an elaborate joke on the culture of the channel
2021-12-01 01:33:27 +0100ChanServ+o monochrom
2021-12-01 01:33:30 +0100justachetotallynotjustac
2021-12-01 01:33:32 +0100seanparsons(~seanparso@cpc158525-gill21-2-0-cust151.20-1.cable.virginm.net) (Ping timeout: 240 seconds)
2021-12-01 01:33:34 +0100monochrom+b *!*@209.6.150.53
2021-12-01 01:33:34 +0100concrete-housesmonochrom (concrete-houses)
2021-12-01 01:33:47 +0100pfurla(~pfurla@2804:14d:5c81:4104:b590:8966:cd38:8f41)
2021-12-01 01:33:59 +0100iqubic(~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59)
2021-12-01 01:34:10 +0100totallynotjustacjustache
2021-12-01 01:34:11 +0100 <Axman6> and nothing of value was lost
2021-12-01 01:34:31 +0100yauhsien(~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
2021-12-01 01:34:35 +0100Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 268 seconds)
2021-12-01 01:35:40 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2021-12-01 01:39:12 +0100 <jeetelongname> dis postgress and get the hammer /s
2021-12-01 01:39:19 +0100yauhsien(~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-01 01:39:26 +0100 <Axman6> damn right
2021-12-01 01:39:47 +0100 <Axman6> We can't have PHP with the first P
2021-12-01 01:41:03 +0100seanparsons(~seanparso@cpc158525-gill21-2-0-cust151.20-1.cable.virginm.net)
2021-12-01 01:41:17 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 01:41:17 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 01:41:17 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 01:42:06 +0100Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2021-12-01 01:43:45 +0100 <maerwald> postgres keeps you poor... blockchain makes you rich
2021-12-01 01:43:47 +0100 <maerwald> checks out
2021-12-01 01:44:15 +0100burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-01 01:49:59 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702)
2021-12-01 01:50:15 +0100pfurla_(~pfurla@205-185-222-149.ipvanish.com)
2021-12-01 01:51:37 +0100pfurla(~pfurla@2804:14d:5c81:4104:b590:8966:cd38:8f41) (Ping timeout: 250 seconds)
2021-12-01 01:54:47 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2021-12-01 01:57:10 +0100justachezoite
2021-12-01 01:58:05 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-12-01 01:59:11 +0100zoitez0ite
2021-12-01 01:59:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 02:04:01 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 02:08:19 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds)
2021-12-01 02:09:35 +0100zuserm(~mz@71.161.92.216)
2021-12-01 02:10:09 +0100lbseale_(~ep1ctetus@user/ep1ctetus)
2021-12-01 02:10:19 +0100 <zuserm> can anyone help my with stack on nixos?
2021-12-01 02:10:49 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-01 02:11:15 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-12-01 02:13:53 +0100lbseale(~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds)
2021-12-01 02:15:17 +0100acidjnk_new(~acidjnk@p200300d0c7271e72351a12a888efd4cb.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-01 02:15:23 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
2021-12-01 02:16:56 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-01 02:17:14 +0100gentauro(~gentauro@user/gentauro)
2021-12-01 02:17:30 +0100tinwood(~tinwood@canonical/tinwood) (Remote host closed the connection)
2021-12-01 02:17:54 +0100pfurla_(~pfurla@205-185-222-149.ipvanish.com) (Ping timeout: 256 seconds)
2021-12-01 02:20:34 +0100tinwood(~tinwood@general.default.akavanagh.uk0.bigv.io)
2021-12-01 02:20:34 +0100tinwood(~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host)
2021-12-01 02:20:34 +0100tinwood(~tinwood@canonical/tinwood)
2021-12-01 02:21:45 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-12-01 02:23:15 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-01 02:25:06 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-12-01 02:25:06 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-12-01 02:25:09 +0100allbery_bgeekosaur
2021-12-01 02:26:43 +0100sus(zero@user/zeromomentum)
2021-12-01 02:28:20 +0100 <dsal> zuserm: possibly.
2021-12-01 02:28:38 +0100 <dsal> Native ghc no longer works on my new laptop. heh
2021-12-01 02:29:39 +0100 <zuserm> I'm trying to run "stack script test.hs" and I'm getting "Executable named nix-shell not found on path: ..."
2021-12-01 02:30:06 +0100 <dsal> Not having nix-shell in your path on a nixos machine seems a bit odd.
2021-12-01 02:30:40 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 02:30:48 +0100 <dsal> I don't do stack scripts, though. There's a bunch of indirection along the way.
2021-12-01 02:33:34 +0100 <zuserm> alternately if I run "stack script --no-nix test.hs" "I don't know how to install GHC on your system configuration, please install manually" but I already have the same version of ghc installed as the resolver I'm trying to use
2021-12-01 02:33:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 02:35:57 +0100 <geekosaur> you would also need --system-ghc
2021-12-01 02:36:10 +0100 <geekosaur> because stack really really wants to install and manage its own ghcs
2021-12-01 02:39:10 +0100zeroyin
2021-12-01 02:40:32 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
2021-12-01 02:40:55 +0100lbseale__(~ep1ctetus@user/ep1ctetus)
2021-12-01 02:41:18 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
2021-12-01 02:42:57 +0100lbseale__(~ep1ctetus@user/ep1ctetus) (Client Quit)
2021-12-01 02:43:26 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 02:44:29 +0100lbseale_(~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds)
2021-12-01 02:49:39 +0100renzhi(~xp@2607:fa49:6500:b100::5cef)
2021-12-01 02:56:43 +0100 <EvanR> ghcup is awesome
2021-12-01 02:57:31 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
2021-12-01 02:58:03 +0100 <zuserm> geekosaur: --system-ghc doesn't help :(
2021-12-01 02:58:44 +0100 <geekosaur> mrr, wonder if that works with stack script then
2021-12-01 02:59:22 +0100DNH(~DNH@2a02:8108:1100:16d8:f00d:18c8:3973:574b) (Quit: Textual IRC Client: www.textualapp.com)
2021-12-01 03:00:55 +0100 <lechner> Hi, can aeson's Generics parser handle sum types? Thanks!
2021-12-01 03:02:19 +0100 <dsal> lechner: you mean simple enums? sure.
2021-12-01 03:02:34 +0100bsima1(9d7e39c8ad@2604:bf00:561:2000::dd)
2021-12-01 03:03:42 +0100 <lechner> not just enum but something like Hint | PointedHint where PointedHint includes a Pointer
2021-12-01 03:04:42 +0100jmorris(uid433911@id-433911.hampstead.irccloud.com)
2021-12-01 03:08:05 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-12-01 03:08:06 +0100hiruji(~hiruji@user/hiruji)
2021-12-01 03:08:43 +0100 <lechner> i think that's it https://artyom.me/aeson#types-with-many-constructors
2021-12-01 03:11:53 +0100sheb(~sheb@31.223.228.71)
2021-12-01 03:14:04 +0100sheb(~sheb@31.223.228.71) (Remote host closed the connection)
2021-12-01 03:14:20 +0100sheb(~sheb@31.223.228.71)
2021-12-01 03:18:29 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-01 03:19:37 +0100alzgh(~alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-12-01 03:22:50 +0100monochrom-o monochrom
2021-12-01 03:25:12 +0100jkaye(~jkaye@2601:281:8300:7530:4aac:42f1:645e:c02f)
2021-12-01 03:25:17 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 03:29:43 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-12-01 03:32:20 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 03:33:26 +0100alzgh(alzgh@user/alzgh)
2021-12-01 03:34:29 +0100xff0x(~xff0x@2001:1a81:52c5:f300:8200:618:b8e3:ab90) (Ping timeout: 252 seconds)
2021-12-01 03:36:17 +0100xff0x(~xff0x@2001:1a81:530d:ee00:3ffa:7a4c:8a0a:d168)
2021-12-01 03:36:41 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-01 03:38:18 +0100lavaman(~lavaman@98.38.249.169)
2021-12-01 03:38:31 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds)
2021-12-01 03:39:01 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 03:39:01 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 03:39:01 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 03:44:23 +0100mmhat(~mmh@55d4269f.access.ecotel.net) (Ping timeout: 252 seconds)
2021-12-01 03:49:20 +0100alzgh(alzgh@user/alzgh) (Remote host closed the connection)
2021-12-01 03:50:30 +0100Sgeo(~Sgeo@user/sgeo)
2021-12-01 03:55:24 +0100alzgh(~alzgh@user/alzgh)
2021-12-01 03:56:25 +0100ubert(~Thunderbi@p200300ecdf0ba2aae6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-01 03:56:49 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
2021-12-01 03:59:19 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-12-01 03:59:37 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
2021-12-01 03:59:39 +0100arahael(~arahael@27-32-144-20.tpgi.com.au)
2021-12-01 04:00:41 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 04:05:20 +0100 <dsal> I tried out ghcup and it seems to not work at all because clang something.
2021-12-01 04:11:03 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-12-01 04:12:27 +0100 <sm> someone should write an accurate "set up haskell on new m1 mac" guide
2021-12-01 04:12:33 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-12-01 04:12:33 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-12-01 04:12:33 +0100finn_elijaFinnElija
2021-12-01 04:13:55 +0100 <lechner> maerwald: ^
2021-12-01 04:16:34 +0100 <dsal> I'd never tried ghcup, but my new m1 mac doesn't build stuff my old m1 mac would build via nix. And ghcup doesn't get very close.
2021-12-01 04:20:27 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-01 04:22:53 +0100td_(~td@muedsl-82-207-238-126.citykom.de) (Ping timeout: 252 seconds)
2021-12-01 04:24:46 +0100td_(~td@muedsl-82-207-238-025.citykom.de)
2021-12-01 04:25:49 +0100jkaye(~jkaye@2601:281:8300:7530:4aac:42f1:645e:c02f) (Ping timeout: 252 seconds)
2021-12-01 04:29:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 04:31:45 +0100mbuf(~Shakthi@27.58.139.230)
2021-12-01 04:35:32 +0100stefan-_(~cri@42dots.de) (Ping timeout: 252 seconds)
2021-12-01 04:36:41 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-12-01 04:38:21 +0100LiaoTao(~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds)
2021-12-01 04:38:59 +0100LiaoTao(~LiaoTao@gateway/tor-sasl/liaotao)
2021-12-01 04:39:26 +0100stefan-_(~cri@42dots.de)
2021-12-01 04:42:39 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 04:45:53 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 04:45:53 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 04:45:53 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 04:47:05 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
2021-12-01 04:47:23 +0100 <sm> dsal: there was a recent reddit discussion on m1 setup
2021-12-01 04:48:00 +0100 <sm> https://www.reddit.com/r/haskell/comments/qwvj0k/does_anyone_know_the_best_way_to_build_a_haskell/
2021-12-01 04:50:17 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2021-12-01 04:52:32 +0100 <dsal> Oh yeah, I saw that. I had thing that worked on my old M1, but not my new M1.
2021-12-01 04:52:37 +0100 <dsal> I'm not 100% sure what the difference is
2021-12-01 04:53:00 +0100 <dsal> GHC for aarch64 from nix fails with EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
2021-12-01 04:53:08 +0100renzhi(~xp@2607:fa49:6500:b100::5cef) (Ping timeout: 252 seconds)
2021-12-01 04:53:34 +0100 <dsal> From ghcup, just something about needing clang.
2021-12-01 04:54:50 +0100 <Axman6> do you have clang installed?
2021-12-01 04:56:40 +0100 <dsal> I don't. There's no binary release for this platform. I guess I can see if it'll build.
2021-12-01 05:00:01 +0100haasn(~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-12-01 05:00:29 +0100bliminse(~bliminse@host86-188-36-178.range86-188.btcentralplus.com) (Ping timeout: 256 seconds)
2021-12-01 05:01:21 +0100haasn(~nand@haasn.dev)
2021-12-01 05:02:07 +0100bliminse(~bliminse@host86-162-147-196.range86-162.btcentralplus.com)
2021-12-01 05:03:03 +0100 <Axman6> surely Apple provides one
2021-12-01 05:03:11 +0100 <Axman6> you've got Xcode installed right?
2021-12-01 05:03:53 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-01 05:04:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 05:06:21 +0100 <dsal> Yeah. I've not used it, though. I wonder if there's a thing I have to do to activate that.
2021-12-01 05:07:48 +0100 <dsal> I have clang, but not opt
2021-12-01 05:08:58 +0100jeetelongname(~jeet@148.197.248.46) (Remote host closed the connection)
2021-12-01 05:10:32 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-12-01 05:10:33 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-12-01 05:10:58 +0100 <arahael> That's odd. I'm on M1 and it works fine for me. Granted, I'm using an existing ghc, and not building that myself using nix.
2021-12-01 05:11:31 +0100 <arahael> What's the specific error message due to that "clang something"?
2021-12-01 05:12:16 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2021-12-01 05:12:40 +0100 <arahael> But yeah, that promise of nix just workign has been something that's let me down a lot. :(
2021-12-01 05:13:24 +0100fef(~thedawn@user/thedawn)
2021-12-01 05:13:39 +0100 <arahael> dsal: ghc 9.2.1 works fine with ghcup for me. Sadly not the earlier one. And I do need to set export C_INCLUDE_PATH="`xcrun --show-sdk-path`/usr/include/ffi" as a workaround for another bug with it.
2021-12-01 05:13:48 +0100sproso(~sproso@node-1w7jr9y8y96l370tw0h9cpsrf.ipv6.telus.net)
2021-12-01 05:15:57 +0100zaquest(~notzaques@5.130.79.72)
2021-12-01 05:17:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 05:17:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 05:17:59 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 05:20:34 +0100 <dsal> My old M1 was fine. New M1 is less fine.
2021-12-01 05:20:46 +0100 <dsal> This is an "M1 Max"
2021-12-01 05:21:07 +0100 <sm> it's just too fast.
2021-12-01 05:23:03 +0100 <dsal> My old machine had 4 performance cores and 4 efficiency cores. This one has 8 performance cores and 2 efficiency cores, so maybe it's just not efficient enough.
2021-12-01 05:24:28 +0100maroloccio(~marolocci@151.53.155.184) (Quit: WeeChat 3.0)
2021-12-01 05:26:44 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
2021-12-01 05:26:45 +0100 <arahael> dsal: LLVM 13.0 broke a few things - which is what you would've gotten with the latest xcode. Which is what you would have on the new M1.
2021-12-01 05:27:37 +0100 <dsal> Hmm... The error I get is about code signature.
2021-12-01 05:28:08 +0100 <arahael> Notorisation requirements may well have been boosted in the new OS?
2021-12-01 05:28:12 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 05:28:20 +0100 <sm> arahael: I've always had to install some optional command line component of xcode
2021-12-01 05:29:09 +0100 <arahael> sm: That hasn't changed.
2021-12-01 05:29:18 +0100 <arahael> sm: (The versions of the tools in that would have, though)
2021-12-01 05:31:27 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-12-01 05:32:25 +0100 <dsal> I've got x86 working. I'll have to switch to that in the meantime.
2021-12-01 05:33:08 +0100 <sm> dsal, tried the stack route ?
2021-12-01 05:33:10 +0100 <arahael> A bit slower to start, but yeah, that does work nicely. However, aarch64 works fine too but you have to use 9.2.1
2021-12-01 05:33:13 +0100 <Square> I have this function that works properly https://paste.tomsmeding.com/jE8lp78x . The case part is recurring in other places so i felt I needed some sort of reuse of it. Ie, something that that routes the "path" to a handler for each case.
2021-12-01 05:33:27 +0100 <Square> You dont happen to see what would be practical here?
2021-12-01 05:34:07 +0100 <dsal> sm: I'm using stack via nix. It gets ghc just like I did on my other machine, it just won't run it.
2021-12-01 05:34:56 +0100 <sm> ack. Is the stack executable x86 or arm ? just curious
2021-12-01 05:35:26 +0100 <arahael> dsal: Use the arch command to force a particular arch.
2021-12-01 05:35:55 +0100 <arahael> dsal: But yeah, I've moved away from nix for various reasons. And also stack - less moving parts.
2021-12-01 05:36:10 +0100sagax(~sagax_nb@user/sagax) (Quit: Konversation terminated!)
2021-12-01 05:36:11 +0100 <dsal> Well, I'm actually failing a little earlier than that. Just getting home-manager to switch to arm tries to run the GHC and crashes.
2021-12-01 05:36:14 +0100 <arahael> nix doesn't even sandbox adequately on macos.
2021-12-01 05:36:17 +0100 <dsal> I tried the stack that came with ghcup.
2021-12-01 05:36:25 +0100smseems to remember getting newer clang/llvm with homebrew
2021-12-01 05:36:49 +0100 <arahael> sm: In this case, you're goign to want _older_ clang/llvm, I think.
2021-12-01 05:36:51 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-01 05:37:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 05:37:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 05:37:05 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 05:37:25 +0100 <dsal> I've not used homebrew in a while. nix has done a good job of getting my tools for the most part. New install has a couple issues, but I'm not going to solve them tonight.
2021-12-01 05:37:38 +0100smwould try the stack binary from fpcomplete as well
2021-12-01 05:39:17 +0100 <dsal> yeah, stack from ghcup is the path that got me the complains about missing `opt`
2021-12-01 05:39:38 +0100 <arahael> dsal: What's the full error - what's the whole "opt" thing?
2021-12-01 05:39:56 +0100 <arahael> dsal: I might be able to recognise some of it.
2021-12-01 05:40:23 +0100 <dsal> Actually, different error. Earlier it was that it couldn't find `opt` from clang. Now it's just saying it can't find clang. Warning: Couldn't figure out LLVM version! Make sure you have installed LLVM between [9 and 13)
2021-12-01 05:40:26 +0100 <dsal> It says warning, but it fails.
2021-12-01 05:41:03 +0100 <arahael> dsal: Ah, yes. You need ghc 9.2.1, that's the same issue I have. Note [9 and 13], that's "version 9, through to but not including version 13". My guess is you have version 13.
2021-12-01 05:41:43 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-12-01 05:41:44 +0100 <dsal> Oh, I selected 9.2.1
2021-12-01 05:41:50 +0100 <dsal> It's seeming to do something now.
2021-12-01 05:42:13 +0100 <arahael> dsal: That has a bug involving ffi on macos. You'll need that environment variable I showed above for the C_INCLUDE_PATH.
2021-12-01 05:42:22 +0100 <dsal> Er, maybe not. OK. I'll try that. heh
2021-12-01 05:43:03 +0100 <sm> arahael: wow, tricky error message there..
2021-12-01 05:43:15 +0100 <arahael> dsal: Does stack support that yet, incidentially? I thought ghc 9.2.1 is too new for stack?
2021-12-01 05:44:02 +0100 <dsal> Hmm... No, it still fails to compile all my deps.
2021-12-01 05:44:32 +0100 <dsal> ghc: could not execute: opt
2021-12-01 05:44:47 +0100 <arahael> "could not execute: opt". That's _curious_.
2021-12-01 05:45:58 +0100 <dsal> yeah, I don't know where it's supposed to get opt. I have Apple clang version 13.0.0 (clang-1300.0.29.3)
2021-12-01 05:46:27 +0100 <arahael> Right, that's not within the supported [9 and 13) range (except for GHC 9.2.1)
2021-12-01 05:46:55 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 05:46:58 +0100 <arahael> dsal: Welcome to my troubles here from the past week or so. :) I recall you were there! ;)
2021-12-01 05:47:18 +0100 <dsal> ah. Everything worked well for me on my old machine due to luck.
2021-12-01 05:47:42 +0100 <arahael> dsal: Hmm. :)
2021-12-01 05:47:56 +0100 <dsal> Oooh, I didn't notice the ) on 13.
2021-12-01 05:48:24 +0100 <arahael> dsal: It's super subtle isnt' it? I only pointed it out like 3 times, and you _STILL_ missed it, it's that subtle, yes. (And not blaming you for that, either)
2021-12-01 05:48:32 +0100 <sm> that's what I meant by "tricky error message"! Pretty bad UX
2021-12-01 05:49:43 +0100 <dsal> Yeah. There's a fairly narrow band of tooling I care about.
2021-12-01 05:50:04 +0100 <arahael> dsal: One thing I did not try, was installing an older xcode.
2021-12-01 05:50:42 +0100 <arahael> dsal: But you need an apple developer account to get access to the older xcodes.
2021-12-01 05:50:48 +0100 <dsal> Ah, that sounds painful.
2021-12-01 05:50:53 +0100 <dsal> I think I've done that before.
2021-12-01 05:50:59 +0100 <arahael> (I have the account, but anyways)
2021-12-01 05:55:20 +0100 <arahael> dsal: Anyway, realise you're ultimately dealing with four layers here: nix, stack, haskell, and macos/xcode. That's a lot of moving parts.
2021-12-01 05:55:30 +0100 <sm> +1
2021-12-01 05:55:46 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 05:55:55 +0100 <Axman6> and Apple don't give a shit about us
2021-12-01 05:56:53 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-12-01 05:57:57 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 05:57:57 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 05:57:57 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 05:58:35 +0100 <EvanR> advent of code... like 1 minute xd
2021-12-01 05:58:57 +0100 <sm> agh!
2021-12-01 05:58:59 +0100 <arahael> Oh, yeah! I'm torn between doing this in literate haskell, or rust.
2021-12-01 05:59:19 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-12-01 05:59:45 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 06:00:25 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-01 06:00:52 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
2021-12-01 06:01:04 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-12-01 06:02:49 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-12-01 06:03:33 +0100z0itejustache
2021-12-01 06:06:15 +0100kennyd(~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
2021-12-01 06:08:40 +0100ec_(~ec@gateway/tor-sasl/ec)
2021-12-01 06:15:29 +0100Jing_(~hedgehog@2604:a840:3::1061)
2021-12-01 06:16:10 +0100 <dsal> I also had emacs in the layers there. It froze up on part 2. *sigh*
2021-12-01 06:16:43 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
2021-12-01 06:18:04 +0100 <arahael> That's another moving part!
2021-12-01 06:18:32 +0100Jing(~hedgehog@125.105.11.101) (Ping timeout: 240 seconds)
2021-12-01 06:19:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 06:21:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 06:23:10 +0100lavaman(~lavaman@98.38.249.169)
2021-12-01 06:25:28 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
2021-12-01 06:26:36 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-01 06:28:36 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net)
2021-12-01 06:31:03 +0100img(~img@user/img)
2021-12-01 06:39:56 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-01 06:40:08 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-01 06:41:21 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 06:41:38 +0100sproso(~sproso@node-1w7jr9y8y96l370tw0h9cpsrf.ipv6.telus.net) (Quit: Client closed)
2021-12-01 06:45:31 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-12-01 06:47:37 +0100 <arahael> With literate haskell (Particularly markdown-unlit), how can I produce test cases from the same markdown file? I want to say: ... And that should produce the following outcome in the repl: ...
2021-12-01 06:50:33 +0100 <aplainzetakind> `ghcid "--command=cabal run the-project"` exits on error, and when no-error, does not update on save. What am I doing wrong?
2021-12-01 06:51:04 +0100 <aplainzetakind> I mean it's as if I simply issued the cabal command by itself.
2021-12-01 06:51:38 +0100 <sm> ghcid -c 'cabal run'
2021-12-01 06:52:07 +0100 <sm> but really I think you mean ghcid -c 'cabal repl'
2021-12-01 06:52:14 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 06:52:41 +0100atwm(~atwm@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 256 seconds)
2021-12-01 06:53:04 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-12-01 06:53:27 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2021-12-01 06:54:44 +0100fr33domlover(~fr33@2.53.150.205)
2021-12-01 06:55:19 +0100 <aplainzetakind> sm: Still not updating, as if a single run (with ghcid -c 'cabal repl')
2021-12-01 06:58:45 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-12-01 07:00:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 07:05:46 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
2021-12-01 07:06:17 +0100fr33domlover(~fr33@2.53.150.205) (Ping timeout: 256 seconds)
2021-12-01 07:06:42 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-12-01 07:07:34 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
2021-12-01 07:07:42 +0100moet(~moet@mobile-166-170-42-127.mycingular.net)
2021-12-01 07:07:48 +0100puke(~puke@user/puke)
2021-12-01 07:09:35 +0100moet(~moet@mobile-166-170-42-127.mycingular.net) (Client Quit)
2021-12-01 07:10:36 +0100echoreply(~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8)
2021-12-01 07:17:51 +0100 <EvanR> how does the AoC guy know to come up with puzzles that are fun for haskell
2021-12-01 07:19:17 +0100 <jle`> it's a conspiracy
2021-12-01 07:19:28 +0100chomwitt(~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374)
2021-12-01 07:20:05 +0100 <opqdonut> typically there are ones in the second half that aren't much fun in haskell
2021-12-01 07:20:17 +0100 <opqdonut> "simulate this slightly ill-specified register machine"
2021-12-01 07:20:21 +0100xff0x(~xff0x@2001:1a81:530d:ee00:3ffa:7a4c:8a0a:d168) (Ping timeout: 245 seconds)
2021-12-01 07:20:31 +0100 <EvanR> yeah I remember that
2021-12-01 07:20:51 +0100 <opqdonut> but in general they're purely computational puzzles that don't need maximum performance, so of course haskell is a good fit!
2021-12-01 07:21:28 +0100xff0x(~xff0x@2001:1a81:530d:ee00:3669:3c5b:65c3:3f53)
2021-12-01 07:21:50 +0100 <EvanR> how fast it runs will be a crucial tie breaker if you and the C guy press `enter' at the same time
2021-12-01 07:24:25 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
2021-12-01 07:28:52 +0100 <dsal> I've rarely found any that weren't fun in Haskell.
2021-12-01 07:29:17 +0100 <dsal> Just the ones that feel like labor.
2021-12-01 07:33:24 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 07:33:40 +0100vysn(~vysn@user/vysn)
2021-12-01 07:33:43 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-12-01 07:34:03 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-12-01 07:34:19 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 07:34:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 07:35:11 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 07:35:22 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-12-01 07:39:09 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-01 07:43:05 +0100xff0x(~xff0x@2001:1a81:530d:ee00:3669:3c5b:65c3:3f53) (Ping timeout: 252 seconds)
2021-12-01 07:43:39 +0100xff0x(~xff0x@2001:1a81:530d:ee00:fdea:9bb5:abe4:a159)
2021-12-01 07:45:48 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 07:46:27 +0100connrs(~connrs@user/connrs) (Ping timeout: 260 seconds)
2021-12-01 07:48:06 +0100 <dmj`> An AOC CLI tool would be nice ... automatic puzzle fetching, submission, stats
2021-12-01 07:50:43 +0100rkrishnan(~user@122.171.76.46)
2021-12-01 07:52:50 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-01 07:53:11 +0100 <iqubic> @hackage aoc
2021-12-01 07:53:11 +0100 <lambdabot> https://hackage.haskell.org/package/aoc
2021-12-01 07:53:34 +0100 <iqubic> @hackage advent-of-code-api
2021-12-01 07:53:34 +0100 <lambdabot> https://hackage.haskell.org/package/advent-of-code-api
2021-12-01 07:53:47 +0100 <iqubic> That's a library made by jle` and it's excellent.
2021-12-01 07:54:30 +0100 <iqubic> jle`: Does that also have an executable too, or is it just a haskell library?
2021-12-01 07:55:06 +0100 <dmj`> jle` does write good code
2021-12-01 07:56:32 +0100 <dmj`> this explains how he's so fast too
2021-12-01 07:57:08 +0100 <iqubic> Yeah. I also use that library. It's good.
2021-12-01 07:58:09 +0100 <iqubic> > (zip <*> tail) [1..10]
2021-12-01 07:58:10 +0100 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10)]
2021-12-01 07:58:16 +0100 <iqubic> Why does that work!?!?
2021-12-01 08:02:46 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-12-01 08:03:20 +0100 <jle`> iqubic: that's just the library :) my advent-of-code-dev repo on github has an executable for auto fetching and stuff but it's probably more of an example than something that works out of the box
2021-12-01 08:03:26 +0100 <jle`> iqubic: (f <*> g) x = f x (g x)
2021-12-01 08:04:06 +0100 <iqubic> Isn't that just S from the SKI combinators?
2021-12-01 08:04:49 +0100 <iqubic> And let me guess... pure is K?
2021-12-01 08:04:56 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de)
2021-12-01 08:05:02 +0100 <jle`> it's been a while, but that does sound familiar :)
2021-12-01 08:05:06 +0100 <iqubic> :t pure
2021-12-01 08:05:07 +0100 <lambdabot> Applicative f => a -> f a
2021-12-01 08:05:28 +0100 <iqubic> https://en.wikipedia.org/wiki/SKI_combinator_calculus
2021-12-01 08:05:40 +0100 <arahael> Really happy with how I've started advent of code: Start with a bang, end with a whimper? (It's a LOT of typing for literate haskell!) https://github.com/arafangion/super-eureka/blob/main/app/Day1.md
2021-12-01 08:06:20 +0100 <arahael> Disclaimer: That's the *solution*.
2021-12-01 08:07:15 +0100 <iqubic> jle`: Wikipedia gives this: I x = x, K x y = x, S x y z = x z (y z), which, after some variable renaming shows that <*> is the same as S.
2021-12-01 08:07:45 +0100monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2021-12-01 08:08:47 +0100 <jle`> iqubic: looks convincing to me :)
2021-12-01 08:09:43 +0100cyclosa(~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com)
2021-12-01 08:10:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 08:10:43 +0100 <iqubic> What exactly is pure for the Function/Reader applicative?
2021-12-01 08:13:56 +0100 <c_wraith> const
2021-12-01 08:14:04 +0100 <c_wraith> > pure 5 ()
2021-12-01 08:14:06 +0100 <lambdabot> 5
2021-12-01 08:14:23 +0100 <jle`> iqubic: there is actually only one implementation that typechecks
2021-12-01 08:14:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-01 08:16:26 +0100caubert(~caubert@136.244.111.235) (Quit: WeeChat 3.3)
2021-12-01 08:16:59 +0100 <iqubic> "pure :: a -> (b -> a)" is the type signature for pure, when specialized to functions. And clearly the only thing you can do there is to ignore the b and just return the a you have. Which is exactly what const does.
2021-12-01 08:18:26 +0100caubert(~caubert@136.244.111.235)
2021-12-01 08:18:42 +0100fef(~thedawn@user/thedawn) (Ping timeout: 276 seconds)
2021-12-01 08:23:42 +0100 <arahael> Anyone else doing advent of code using literate haskell?
2021-12-01 08:24:11 +0100hololeap(~hololeap@user/hololeap)
2021-12-01 08:25:46 +0100fr33domlover(~fr33@2.53.150.205)
2021-12-01 08:26:16 +0100 <dmj`> that's advanced
2021-12-01 08:27:39 +0100 <arahael> dmj`: Not really, it was surprisingly easy - the literate haskell bit. Ensuring it's *intelligent* is a separate matter!
2021-12-01 08:28:02 +0100monochrom(trebla@216.138.220.146)
2021-12-01 08:28:13 +0100 <dmj`> arahael: hmm, intelligent in what way?
2021-12-01 08:28:17 +0100 <arahael> The main thing that's awkward is that cabal requires the file extension to be either .hs, or .lhs, so since I need .md for... Uh... Literate reasons, I had to use symlinks.
2021-12-01 08:28:29 +0100 <arahael> dmj`: Intelligent in that it makes sense to the reader.
2021-12-01 08:28:52 +0100 <dmj`> arahael: ah, yea I don't use cabal files, just raw ghc
2021-12-01 08:29:06 +0100 <arahael> dmj`: That's even easier!
2021-12-01 08:29:10 +0100 <dmj`> might try to do AOC w/ just boot packages only
2021-12-01 08:29:20 +0100 <dmj`> ReadP FTW
2021-12-01 08:29:28 +0100 <arahael> dmj`: Go for it. :)
2021-12-01 08:30:27 +0100 <dmj`> the only thing I don't like is that chunksOf and split aren't in Data.List, so I always end up rewriting them
2021-12-01 08:31:10 +0100 <dmj`> just all maps, sets, lists, etc.
2021-12-01 08:31:32 +0100 <arahael> Yeah. I was surprised to discover that there isn't a windowing function already in the prelude.
2021-12-01 08:31:38 +0100 <arahael> (Am I wrong?)
2021-12-01 08:31:54 +0100 <arahael> I had to write my own implementation in my example above.
2021-12-01 08:32:46 +0100dmj`looks
2021-12-01 08:34:09 +0100 <dmj`> arahael: nothing built-in, but you can use tails
2021-12-01 08:34:39 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 08:34:46 +0100 <dmj`> @def sliding n xs = take n <$> tails xs
2021-12-01 08:34:47 +0100 <lambdabot> Defined.
2021-12-01 08:35:00 +0100 <dmj`> > sliding 3 [1..5]
2021-12-01 08:35:03 +0100 <lambdabot> [[1,2,3],[2,3,4],[3,4,5],[4,5],[5],[]]
2021-12-01 08:35:10 +0100chele(~chele@user/chele)
2021-12-01 08:35:35 +0100 <c_wraith> I just used zipWith3
2021-12-01 08:36:02 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-01 08:36:43 +0100 <arahael> Nice.
2021-12-01 08:39:11 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-01 08:39:13 +0100 <dmj`> c_wraith: that was smart
2021-12-01 08:39:46 +0100 <dmj`> > zipWith3 (\x y z -> sum [x,y,z]) [1..5] (tail [1..5]) (tail (tail [1..5]))
2021-12-01 08:39:48 +0100 <lambdabot> [6,9,12]
2021-12-01 08:40:09 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-12-01 08:40:16 +0100 <dmj`> c_wraith: would have been up a creek if the window size was 4 :)
2021-12-01 08:40:36 +0100 <hololeap> what function in System.FilePath can resolve ("/var/uploads/" </> "../uploads/thing") to "/var/uploads/thing" ?
2021-12-01 08:40:37 +0100 <arahael> That's teh thing with advent of code: It's *all* throwaway code, and you don't know the change that will happen in part 2.
2021-12-01 08:41:04 +0100 <c_wraith> nah, I can nest zipWith :)
2021-12-01 08:41:26 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2b1a:1927:b5c5:1912)
2021-12-01 08:41:29 +0100 <dmj`> arahael: true
2021-12-01 08:41:39 +0100 <arahael> I think I prefer the take n <$> tails xs
2021-12-01 08:42:06 +0100alx741(~alx741@181.196.69.153) (Ping timeout: 256 seconds)
2021-12-01 08:43:01 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-12-01 08:47:30 +0100 <dmj`> c_wraith: tricky :)
2021-12-01 08:48:04 +0100 <hololeap> % canonicalizePath ("/dev/" </> "..")
2021-12-01 08:48:04 +0100 <yahb> hololeap: "/dev/.."
2021-12-01 08:48:12 +0100 <hololeap> shouldn't this return "/" ?
2021-12-01 08:50:55 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-01 08:51:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 08:52:48 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-12-01 08:53:08 +0100 <c_wraith> hololeap: I'm willing to bet yahb runs in a jail that doesn't have /dev
2021-12-01 08:53:47 +0100kennyd(~bc8165b6@83.167.180.121)
2021-12-01 08:53:58 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 08:54:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 08:54:25 +0100 <hololeap> no, I think this is the actual reason: https://neilmitchell.blogspot.com/2015/10/filepaths-are-subtle-symlinks-are-hard.html
2021-12-01 08:54:52 +0100 <c_wraith> on my system, it does result in "/"
2021-12-01 08:54:59 +0100 <hololeap> wait, really?
2021-12-01 08:55:01 +0100alx741(~alx741@181.196.69.156)
2021-12-01 08:55:40 +0100 <hololeap> oh, I guess it does on mine too
2021-12-01 08:55:50 +0100 <c_wraith> I think it's just the env yahb runs in
2021-12-01 08:56:38 +0100 <c_wraith> If I ask ghci to canonicalize a "/dev2/.." I get no change, as I have no /dev2 directory
2021-12-01 08:57:19 +0100cyclosa(~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com) (Quit: computer broke)
2021-12-01 08:57:22 +0100 <kennyd> it works even on windows, canonicalizePath ("/dev/" </> "..") => "C:\\"
2021-12-01 08:57:43 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-12-01 08:58:18 +0100 <hololeap> https://github.com/Happstack/happstack-server/blob/master/src/Happstack/Server/FileServe/BuildingB…
2021-12-01 08:58:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-01 08:59:27 +0100 <hololeap> I'm trying to submit a PR that does away with the system-filepath package, but I don't see any equivalent in the filepath or directory packages
2021-12-01 09:00:00 +0100 <hololeap> >>> combineSafe "/var/uploads/" "../uploads/home/../etc/passwd"
2021-12-01 09:00:08 +0100 <hololeap> Just "/var/uploads/etc/passwd"
2021-12-01 09:00:11 +0100Cajun(~Cajun@user/cajun) (Ping timeout: 256 seconds)
2021-12-01 09:04:03 +0100cfricke(~cfricke@user/cfricke)
2021-12-01 09:04:43 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 09:08:29 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-01 09:08:49 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 09:09:51 +0100img(~img@user/img)
2021-12-01 09:09:54 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 09:10:00 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-12-01 09:10:00 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 09:10:18 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 09:14:22 +0100ub(~Thunderbi@p200300ecdf0ba2be089e3f14725e8432.dip0.t-ipconnect.de)
2021-12-01 09:19:20 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-12-01 09:20:30 +0100nschoe(~quassel@2a01:e0a:8e:a190:8ef1:d1b1:96b4:f9df)
2021-12-01 09:21:02 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-01 09:25:13 +0100iqubic(~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59) (Remote host closed the connection)
2021-12-01 09:25:24 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-12-01 09:25:29 +0100neurocyte0132889(~neurocyte@45.128.183.11)
2021-12-01 09:25:29 +0100neurocyte0132889(~neurocyte@45.128.183.11) (Changing host)
2021-12-01 09:25:29 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-12-01 09:27:24 +0100aarchi(sid486183@id-486183.uxbridge.irccloud.com) (Excess Flood)
2021-12-01 09:27:27 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-12-01 09:27:33 +0100aarchi(sid486183@id-486183.uxbridge.irccloud.com)
2021-12-01 09:29:32 +0100iqubic(~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59)
2021-12-01 09:31:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 09:34:58 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 09:35:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 09:39:37 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
2021-12-01 09:41:17 +0100chomwitt(~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) (Quit: Leaving)
2021-12-01 09:43:47 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 09:44:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 09:45:44 +0100alzgh(~alzgh@user/alzgh)
2021-12-01 09:46:28 +0100Codaraxis_(~Codaraxis@user/codaraxis)
2021-12-01 09:46:50 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-01 09:48:55 +0100Codaraxis(~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
2021-12-01 09:49:29 +0100michalz(~michalz@185.246.204.43)
2021-12-01 09:52:51 +0100kuribas(~user@188.188.219.184)
2021-12-01 09:52:56 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-01 09:54:24 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-12-01 09:56:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 09:57:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:00:30 +0100 <dminuoso> Is there any documentation for `cabal build --ghc-options`? Because I cant find any..
2021-12-01 10:03:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:03:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:03:33 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-01 10:05:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:05:30 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:05:57 +0100acidjnk_new(~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de)
2021-12-01 10:06:05 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
2021-12-01 10:07:19 +0100aforemny_aforemny
2021-12-01 10:07:29 +0100nrl^(~nrl@68.101.58.90) (Remote host closed the connection)
2021-12-01 10:09:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:09:29 +0100 <merijn> dminuoso: What kinda documentation would you expect?
2021-12-01 10:09:36 +0100 <dminuoso> Any?
2021-12-01 10:09:40 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:09:42 +0100 <dminuoso> It's not even listed in the man page
2021-12-01 10:09:44 +0100 <merijn> It just passes options directly to GHC
2021-12-01 10:09:48 +0100 <dminuoso> Well only under configure
2021-12-01 10:09:49 +0100 <dminuoso> Sure
2021-12-01 10:09:56 +0100 <dminuoso> Is it too much to ask for a man page regardless?
2021-12-01 10:10:01 +0100 <merijn> Probably :p
2021-12-01 10:10:03 +0100 <dminuoso> A note of it I mean
2021-12-01 10:10:05 +0100 <dminuoso> :p
2021-12-01 10:10:15 +0100 <dminuoso> The thing is
2021-12-01 10:10:26 +0100 <dminuoso> It allows for no discoverability of this option
2021-12-01 10:10:41 +0100 <dminuoso> You know it exists because someone told you. But I couldn't even find its existence based on the man page
2021-12-01 10:10:44 +0100 <merijn> I don't even know where the manpage is in the cabal repo, so I'm not sure anyone else does either, let alone update it :p
2021-12-01 10:10:50 +0100 <dminuoso> Unless I happened to have read this:
2021-12-01 10:10:52 +0100 <dminuoso> https://cabal.readthedocs.io/en/3.4/cabal-commands.html
2021-12-01 10:10:57 +0100 <dminuoso> Under `cabal v2-configure`
2021-12-01 10:11:01 +0100 <dminuoso> `cabal v2-configure FLAGS; cabal v2-build is roughly equivalent to cabal v2-build FLAGS`
2021-12-01 10:11:02 +0100 <merijn> dminuoso: I was about to say, the cabal docs :p
2021-12-01 10:11:05 +0100 <dminuoso> The thing is
2021-12-01 10:11:32 +0100 <dminuoso> Its just highly annoying that you need to read another commands (v2-configure, it's even called v2 mind you!) documentation to know about build.
2021-12-01 10:11:50 +0100 <dminuoso> Sort of suggesting "read the entire docs from top to bottom before you ask"
2021-12-01 10:12:41 +0100kuribas(~user@188.188.219.184) (Ping timeout: 252 seconds)
2021-12-01 10:14:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:14:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:15:45 +0100 <merijn> dminuoso: Complain to Hecate and her docs improvement iniative? :p
2021-12-01 10:16:46 +0100 <dminuoso> I guess I should just fix it myself rather than complain
2021-12-01 10:16:53 +0100 <merijn> Hecate just became cabal core contributor too, so... :p
2021-12-01 10:16:54 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
2021-12-01 10:16:55 +0100 <Hecate> 'sup
2021-12-01 10:17:04 +0100 <merijn> Hecate: Throwing you under the bus :p
2021-12-01 10:17:12 +0100 <Hecate> sure that's the point :)
2021-12-01 10:17:35 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-01 10:19:23 +0100dsrt^(~dsrt@68.101.58.90)
2021-12-01 10:20:30 +0100 <dminuoso> But yeah, cabal-install documentation has some pretty bad parts.
2021-12-01 10:20:56 +0100 <Hecate> yes
2021-12-01 10:21:21 +0100 <Hecate> Gil Mizrahi is working on improving this
2021-12-01 10:21:47 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-12-01 10:22:36 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-12-01 10:24:07 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 10:27:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:27:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:29:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:29:41 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:31:23 +0100 <arahael> dminuoso: Imagine my difficulty finding out how to disable colour output in cabal build.
2021-12-01 10:33:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:33:58 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:34:47 +0100mestre(~mestre@191.177.175.57) (Quit: Lost terminal)
2021-12-01 10:35:00 +0100 <Hecate> arahael: NO_COLOR doesn't work?
2021-12-01 10:36:13 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 10:36:28 +0100 <arahael> Hecate: 1) I didn't actually test that, and 2) Where's that documented?
2021-12-01 10:40:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 10:40:42 +0100 <Hecate> hmm, nowhere
2021-12-01 10:40:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 10:40:47 +0100 <Hecate> it doesn't work.
2021-12-01 10:40:53 +0100 <Hecate> but it will have to
2021-12-01 10:41:03 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-01 10:41:58 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-01 10:43:21 +0100 <merijn> Only 45 people on the Haskell leaderboard for AoC
2021-12-01 10:43:25 +0100 <merijn> come on, slackers :p
2021-12-01 10:44:50 +0100kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-12-01 10:45:53 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-12-01 10:46:52 +0100kmein(~weechat@user/kmein)
2021-12-01 10:47:08 +0100 <mniip> slackers indeed
2021-12-01 10:48:43 +0100 <[exa]> people don't use awk for this?
2021-12-01 10:48:57 +0100 <merijn> I mean, you can use whatever :p
2021-12-01 10:49:12 +0100 <merijn> I use over-engineered Haskell :p
2021-12-01 10:50:53 +0100 <merijn> My personal rule is to try and keep my code (mostly?) readable to Haskell beginners and (more importantly) no unhandled errors
2021-12-01 10:51:15 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2021-12-01 10:51:32 +0100 <Hecate> arahael: what did you use for no colours in cabal, btw?
2021-12-01 10:51:40 +0100 <Hecate> I'm gonna implement NO_COLOR
2021-12-01 10:52:16 +0100 <arahael> Hecate: I ended up using --ghc-options=-fdiagnostics-color=never but there are other bugs preventing that from working - and it didn't fix my ultimate issue where Shake, which calls cabal, has an "fd:7: hGetContents: invalid argument (invalid byte sequence)" as a result.
2021-12-01 10:52:45 +0100 <arahael> Hecate: Or rather, it works, but you have to recompile basically everything, and still has that result.
2021-12-01 10:53:23 +0100 <arahael> I should find out what byte sequence it's complaining about, but not today - rather drained from everything else. *sigh*. Video conferences....
2021-12-01 10:53:28 +0100 <Square> if i have a polymorphic function with proper signature and all. Create local version of it (providing some, but not all, arguments) it sort loses its polymorphic status and get type infered to first application. Ie. myFknWSomeParams = myFkn x y. Can invoke "myFkn x y moreArgs" but not "myFknWSomeParams moreArgs"
2021-12-01 10:53:35 +0100 <merijn> arahael: tbh, invalid byte sequence is often "you f-ed up your locale" :p
2021-12-01 10:53:49 +0100 <arahael> merijn: Yep, it's f'ing UTF-8. :)
2021-12-01 10:53:51 +0100nek0(~nek0@nek0.eu)
2021-12-01 10:53:57 +0100 <merijn> arahael: Which OS?
2021-12-01 10:54:02 +0100 <arahael> merijn: macOS.
2021-12-01 10:54:14 +0100 <merijn> What's the output of "locale" in your shell?
2021-12-01 10:54:39 +0100 <arahael> merijn: Except for LC_ALL, which is unset, it's all en_AU.UTF-8.
2021-12-01 10:55:33 +0100 <merijn> arahael: Mine is: https://paste.tomsmeding.com/deHyKqgk
2021-12-01 10:55:52 +0100 <merijn> arahael: And I recall having issues on macOS (years ago) before fixing my environment to set a proper locale
2021-12-01 10:56:34 +0100 <arahael> merijn: Hmm, let me try setting the LANG and LC_ALL explicitly to those, as well - that's the only thing that's different.
2021-12-01 10:57:00 +0100 <arahael> merijn: Doing a rebuild...
2021-12-01 10:57:41 +0100xkuru(~xkuru@user/xkuru)
2021-12-01 10:57:57 +0100 <zincy> I am doing state machine testing in hedgehog for a card game, should I use my existing player action validation function to help generate state machine actions or does this defeat the point?
2021-12-01 10:58:05 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-12-01 10:58:21 +0100 <[exa]> merijn: where's the haskell leaderboard tho?
2021-12-01 10:58:33 +0100 <merijn> [exa]: See topic
2021-12-01 10:58:47 +0100 <[exa]> aaaaaay
2021-12-01 10:58:49 +0100 <[exa]> thanks
2021-12-01 10:59:26 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
2021-12-01 11:00:11 +0100 <arahael> Oh, wow, quite a few peole on that leaderboard, has it been shared outside the IRC?
2021-12-01 11:00:26 +0100 <merijn> arahael: It's been the same for the past 2 years
2021-12-01 11:00:44 +0100 <arahael> I just put myself on it :D
2021-12-01 11:01:00 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-01 11:01:48 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-12-01 11:04:11 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-12-01 11:04:32 +0100 <[exa]> will I get banned if I did the first aoc in R?
2021-12-01 11:04:45 +0100 <merijn> :O
2021-12-01 11:04:47 +0100 <merijn> Heresy
2021-12-01 11:04:56 +0100hololeap(~hololeap@user/hololeap)
2021-12-01 11:05:24 +0100 <nek0> Hi folks, I'm having a problem using exceptions, with which I am not very familiar with. The issue I have is, that a call of "fromException" returns "Nothing" instead of "Just WhateverException". Reproducing this issue in GHCI has been unsuccessful so far...
2021-12-01 11:05:29 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2021-12-01 11:05:37 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 11:05:46 +0100 <arahael> [exa]: I did one of mine last year (or was it 2019?), in QuickBASIC.
2021-12-01 11:05:59 +0100 <[exa]> nek0: there are many types of exceptions so you might be catching the wrong one. Can we have a code sample?
2021-12-01 11:06:25 +0100 <[exa]> arahael: now that's a honorable adventure
2021-12-01 11:06:25 +0100 <merijn> Yeah, ENOTENOUGHINFO
2021-12-01 11:06:48 +0100 <arahael> merijn: E_NOTENOUGHINFO.
2021-12-01 11:07:02 +0100Lord_of_Life_Lord_of_Life
2021-12-01 11:07:04 +0100 <[exa]> pls negate your error returns
2021-12-01 11:07:07 +0100 <merijn> arahael: No underscores in E codes :p
2021-12-01 11:07:12 +0100 <Unhammer> Hi, http://sprunge.us/3rIlhp?haskell is there some smart way to check that roundtripping works in both directions for sumtypes that can't be enum/bounded?
2021-12-01 11:07:12 +0100 <arahael> Finally, my build completed. Now to do a re-build, with my set locale.
2021-12-01 11:07:17 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-01 11:07:20 +0100 <arahael> merijn: Oh? I thought they often did!
2021-12-01 11:07:31 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-01 11:07:52 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702)
2021-12-01 11:08:04 +0100 <merijn> Unhammer: 1 list of tuples and then build two maps (one in each direction)
2021-12-01 11:08:08 +0100 <Unhammer> for all ints, I know fromStatus(toStatus n)==n, can even quickcheck that, but I can't check the other way around toStatus(fromStatus s)==s without being able to generate all possible statuses
2021-12-01 11:08:29 +0100 <arahael> merijn: https://gist.github.com/arafangion/632f5072d56afed633e3f77d9ec44d11
2021-12-01 11:08:38 +0100 <Unhammer> merijn, but how do I know my map is complete?
2021-12-01 11:08:42 +0100 <arahael> merijn: I don't think it's the locale.
2021-12-01 11:08:47 +0100 <nek0> [exa]: I tried to build a minimal working error, but it failed at failing...
2021-12-01 11:09:03 +0100 <merijn> Unhammer: Same idea, but special case the other constructor :p
2021-12-01 11:09:24 +0100 <Unhammer> I don't quite understand
2021-12-01 11:09:37 +0100 <merijn> use my approach for the bounded constructor part
2021-12-01 11:09:39 +0100 <[exa]> nek0: oh noes.
2021-12-01 11:09:51 +0100 <merijn> Then write a wrapper function around those dictionaries handling the unbounded Other part
2021-12-01 11:10:16 +0100 <[exa]> nek0: so at least snippets of the original code?
2021-12-01 11:12:33 +0100 <arahael> merijn: When I find time (and energy), I intend to make my buidl system call 'cabal build' in _binary_ mode, such that it uses ByteStrings instead, I'll then be able to look at what the particular sequence is that it's choking on.
2021-12-01 11:12:37 +0100 <hololeap> Unhammer: you could also move the Other constructor to it's own type so you can derive Enum/Bounded, then have your round trip between (Either OtherStatus Status <-> Int)
2021-12-01 11:14:08 +0100 <Unhammer> merijn, list of pairs just means I make it a runtime error, doesn't it? http://sprunge.us/tNc1gA?haskell
2021-12-01 11:14:23 +0100 <Unhammer> hololeap, yeah thought of that, except it complicates the use of the type :/
2021-12-01 11:16:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 11:16:28 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 11:16:29 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-01 11:16:42 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-01 11:16:54 +0100 <lortabac> Unhammer: I think you should be able to enumerate the constructors with Data
2021-12-01 11:16:58 +0100 <merijn> Unhammer: Just wrap hololeap's approach with pattern synonyms
2021-12-01 11:17:08 +0100 <merijn> Then you can use your current syntax with his suggest type
2021-12-01 11:17:31 +0100juhp(~juhp@128.106.188.82) (Quit: juhp)
2021-12-01 11:17:47 +0100 <lortabac> otherwise you can make an Arbitrary instance with generic-random
2021-12-01 11:18:47 +0100 <Franciman> at last it happened, haskell interpreter overperformed
2021-12-01 11:18:57 +0100 <Franciman> ggwp to the haskell garbage collector
2021-12-01 11:19:00 +0100 <Franciman> it was hard to overperform it
2021-12-01 11:19:28 +0100 <merijn> What do you mean by that?
2021-12-01 11:19:30 +0100 <Franciman> precise memory management and high level programming. Choose two
2021-12-01 11:19:38 +0100 <Unhammer> ok. Was hoping there was some uncomplicated solution that I just can't see but I guess I hit a hard problem.
2021-12-01 11:20:58 +0100 <lortabac> Unhammer: to be honest nothing beats code reviews for these problems
2021-12-01 11:22:11 +0100 <Unhammer> that would be a nice world to live in
2021-12-01 11:22:11 +0100 <lortabac> Unhammer: we have several data-types like that at work, and have never had a bug due to missing some integers
2021-12-01 11:22:31 +0100 <Franciman> merijn: I was doing some tests against haskell's memory management system. I wrote a lambda calculus interpreter in haskell. And now an interpreter in zig where I can fully manage memory layout
2021-12-01 11:22:33 +0100 <Franciman> easily
2021-12-01 11:23:04 +0100 <Franciman> haskell manages to keep the amount of cache refs high, while keeping cache misses very low
2021-12-01 11:23:14 +0100mc47(~mc47@xmonad/TheMC47)
2021-12-01 11:23:15 +0100fef(~thedawn@user/thedawn)
2021-12-01 11:24:05 +0100Jing_(~hedgehog@2604:a840:3::1061) (Remote host closed the connection)
2021-12-01 11:24:42 +0100Jing(~hedgehog@115.207.46.97)
2021-12-01 11:25:49 +0100 <Franciman> in zig I get like 70% cache misses lol
2021-12-01 11:25:54 +0100 <Franciman> but it is still faster
2021-12-01 11:26:39 +0100 <Franciman> haskell also has an higher throughput
2021-12-01 11:26:47 +0100 <Franciman> it performs a lot more instructions, in less time
2021-12-01 11:26:50 +0100 <Franciman> but that's not enough
2021-12-01 11:26:59 +0100 <Franciman> it performs too much
2021-12-01 11:27:06 +0100 <arahael> Too much?
2021-12-01 11:27:42 +0100 <Franciman> yes it has to do too many operations, that's why in the end it is slower
2021-12-01 11:27:47 +0100 <merijn> Franciman: Ah, I know why that is
2021-12-01 11:27:49 +0100 <Franciman> I hyperoptimized the zig version
2021-12-01 11:28:00 +0100 <Franciman> oh curious to hear
2021-12-01 11:28:09 +0100 <merijn> Franciman: GHC is using a copy&collect GC, which means that if you have a small liveset it's very likely to all be in cache
2021-12-01 11:28:19 +0100 <merijn> Franciman: Because it all gets copied into a dense memory region
2021-12-01 11:28:25 +0100 <Franciman> nice
2021-12-01 11:28:52 +0100 <Franciman> the GHC does a really good job
2021-12-01 11:28:54 +0100 <Franciman> GC*
2021-12-01 11:29:06 +0100 <merijn> Franciman: Basically, the way GHC's GC works is: Create a new heap. Copy all alive data to new heap. Throw away old heap
2021-12-01 11:29:19 +0100 <merijn> Franciman: This has several advantages (and disadvantages)
2021-12-01 11:29:36 +0100 <merijn> Due to Haskell being lazy there are *a lot* of allocations and *a lot* of garbage
2021-12-01 11:29:45 +0100 <Franciman> yep, that's why it's impressive
2021-12-01 11:30:02 +0100 <merijn> Since our heap is always a dense blob, your allocator is just a pointer to the end of the heap and allocating is literally "increment a pointer and check overflow"
2021-12-01 11:30:09 +0100 <merijn> You can't build a faster allocator than that
2021-12-01 11:30:31 +0100 <Franciman> but my zig allocator is the same
2021-12-01 11:30:34 +0100 <merijn> And because we copy *live* data only, the GC time scales with the amount of *live* data, not garbage
2021-12-01 11:30:37 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-12-01 11:30:50 +0100 <Franciman> by live you mean reachable data?
2021-12-01 11:30:55 +0100 <Franciman> or something about generations too?
2021-12-01 11:30:58 +0100 <merijn> The downside is that if you have a large live set (see the pusher blog posts from a few years ago) you copy a lot
2021-12-01 11:31:18 +0100 <merijn> Franciman: I meant reachable yeah. There's also generational collection, but then things get messier to explain :p
2021-12-01 11:31:28 +0100 <Franciman> okok nvm the generational
2021-12-01 11:32:01 +0100 <merijn> Franciman: basically there's a nursery (where new allocations happen) and if they survive 1 GC, they go into the older generation (which is GCed less frequently), iirc
2021-12-01 11:32:28 +0100 <merijn> Franciman: But yeah, if you have 2GB reachable data, you end up copying 2 GB every GC, which can kill you (although compact regions can help reduce/eliminate that)
2021-12-01 11:32:49 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
2021-12-01 11:33:00 +0100 <Franciman> my test case is summing the first 10M numbers, with a recursive function
2021-12-01 11:33:02 +0100 <Franciman> :P
2021-12-01 11:33:10 +0100 <Franciman> so it allocates quite a bit, but they are all small values
2021-12-01 11:33:18 +0100 <Franciman> also in haskell recursion is basically cheap
2021-12-01 11:33:20 +0100 <merijn> yeah, that's gonna have a tiny live set (only a handful of numbers)
2021-12-01 11:33:39 +0100 <merijn> Franciman: You might wanna run your haskell code with "+RTS -sstderr" if you wanna see GC info
2021-12-01 11:34:06 +0100 <Franciman> thanks. merijn my problem is that I can't figure out in any way how to improve the timing
2021-12-01 11:34:11 +0100 <Franciman> of the haskell version
2021-12-01 11:34:28 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 11:34:51 +0100 <Franciman> if the GC is so effettive, it must be somewhere that I have to improve. I bet on the GC
2021-12-01 11:35:00 +0100 <Franciman> in fact my zig version does arena allocation
2021-12-01 11:35:07 +0100hololeap(~hololeap@user/hololeap) (Read error: Connection reset by peer)
2021-12-01 11:35:14 +0100 <Franciman> I request a page of memory from the OS, and allocate without ever deallocating anything
2021-12-01 11:35:23 +0100 <Franciman> so it does 0 memory management
2021-12-01 11:36:11 +0100_bo(~bo@217.18.216.247)
2021-12-01 11:36:16 +0100 <arahael> Franciman: Generally you can't achieve the best general case GC.
2021-12-01 11:36:23 +0100hololeap(~hololeap@user/hololeap)
2021-12-01 11:36:26 +0100 <arahael> Franciman: You have to optimise it for a very particular use case.
2021-12-01 11:36:46 +0100 <Franciman> hmm I see, so for writing a programming language it's not a particularly good idea
2021-12-01 11:37:02 +0100 <merijn> There is no best GC, no
2021-12-01 11:37:07 +0100 <merijn> GC design is 100% trade offs
2021-12-01 11:37:13 +0100 <Franciman> because I want the internal memory of the interpreter to be managed differently from the language GC
2021-12-01 11:37:19 +0100 <arahael> Franciman: There is a *ton* of papers about GC's, some quite good ones out tehre.
2021-12-01 11:37:31 +0100 <merijn> GHC's GC is optimised for lots of garbage and high throughput (small percentage of GC time compared to compute)
2021-12-01 11:37:37 +0100 <Franciman> yes I understand
2021-12-01 11:37:50 +0100 <Franciman> basically my problem was: let me see if memory management affects my interpreter, but it doesn't lol
2021-12-01 11:37:51 +0100 <merijn> It is not good for large live sets or for low latency (i.e. minimising the longest possible GC pause)
2021-12-01 11:38:12 +0100 <Franciman> so I can't get any more speed out of it
2021-12-01 11:38:15 +0100 <Franciman> yes I understand it
2021-12-01 11:38:51 +0100 <Hecate> arahael: can you tell me if setting LC_ALL has fixed your issues?
2021-12-01 11:39:04 +0100 <arahael> Hecate: It did not.
2021-12-01 11:39:08 +0100 <Franciman> well ty all
2021-12-01 11:39:28 +0100 <Franciman> back to humiliating my haskell interpreter to hope and find out something about its performances
2021-12-01 11:39:40 +0100 <Hecate> arahael: ok thanks :)
2021-12-01 11:40:04 +0100 <arahael> Hecate: No worries :)
2021-12-01 11:42:26 +0100 <sm> Franciman, have you tried profiling yet ?
2021-12-01 11:42:33 +0100 <Franciman> I did
2021-12-01 11:43:28 +0100 <sm> sounds like you're finding out lots
2021-12-01 11:44:47 +0100 <Hecate> arahael: what's your GH username?
2021-12-01 11:45:42 +0100 <Franciman> sm: I got some numbers out, but can't quite make sense of them
2021-12-01 11:45:51 +0100 <arahael> Hecate: arafangion
2021-12-01 11:46:03 +0100 <Franciman> I mean the most used functions are of course what make the most of the time spent
2021-12-01 11:46:03 +0100 <arahael> Hecate: most of my repos are private, though.
2021-12-01 11:46:11 +0100 <Franciman> but I can't optimize them more than I do now
2021-12-01 11:46:11 +0100theproffesor(~theproffe@user/theproffesor) (Ping timeout: 245 seconds)
2021-12-01 11:46:38 +0100 <merijn> Franciman: Have you tried playing with speedscope?
2021-12-01 11:46:42 +0100 <merijn> https://www.speedscope.app/
2021-12-01 11:46:55 +0100 <Franciman> I didn't know about it, so many thanks
2021-12-01 11:46:57 +0100 <merijn> See also https://mpickering.github.io/posts/2019-11-07-hs-speedscope.html
2021-12-01 11:48:17 +0100theproffesor(~theproffe@user/theproffesor)
2021-12-01 11:49:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 11:50:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 11:50:18 +0100 <Hecate> arahael: yeah I just ping'd you on the ticket
2021-12-01 11:51:02 +0100cuz(~user@50.235.10.194)
2021-12-01 11:51:12 +0100 <Franciman> ty and nice font
2021-12-01 11:51:16 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving)
2021-12-01 11:51:26 +0100 <arahael> Hecate: Ah, very nice! I also want it on 'cabal build' as well, not just cabal install.
2021-12-01 11:51:49 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-01 11:52:16 +0100 <arahael> Hecate: I also use --ghc-options=-fdiagnostics-color=never which was suggested by someone else here, and it does disable colour for the most part, but still causes an invalid byte order for some reason.
2021-12-01 11:54:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 11:54:42 +0100 <arahael> Hecate: Other, possibly related links, which were also given to me in this channel are: https://gitlab.haskell.org/ghc/ghc/-/issues/13718
2021-12-01 11:54:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 11:55:21 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 11:56:02 +0100juhp(~juhp@128.106.188.82)
2021-12-01 11:56:03 +0100 <Hecate> hmm, not *that* related in the end
2021-12-01 11:58:02 +0100ouro_boros(~ouroboros@2804:14c:65e4:93f6:a589:7295:b475:5b03) (Ping timeout: 268 seconds)
2021-12-01 11:58:59 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-01 12:00:05 +0100__monty__(~toonn@user/toonn)
2021-12-01 12:00:36 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 12:02:11 +0100DNH(~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41)
2021-12-01 12:02:15 +0100DNH(~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41) (Client Quit)
2021-12-01 12:04:17 +0100Farzad(~FarzadBek@37.98.106.66)
2021-12-01 12:06:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 12:06:18 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 12:08:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 12:08:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 12:09:13 +0100kennyd(~bc8165b6@83.167.180.121) (Quit: CGI:IRC (Ping timeout))
2021-12-01 12:09:19 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-12-01 12:09:42 +0100kennyd(~bc8165b6@cerf.good1.com)
2021-12-01 12:12:00 +0100 <sm> Franciman: I guess next level down would be inspecting the core, there have been some how-tos on that
2021-12-01 12:14:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 12:15:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 12:16:54 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 12:17:12 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 12:18:52 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 12:19:10 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 12:20:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 12:21:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 12:22:24 +0100deadmarshal(~deadmarsh@95.38.115.243) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-01 12:23:32 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 12:23:41 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-12-01 12:24:39 +0100terrorjack(~terrorjac@static.3.200.12.49.clients.your-server.de)
2021-12-01 12:24:51 +0100mmhat(~mmh@55d4c042.access.ecotel.net)
2021-12-01 12:27:07 +0100kennyd(~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Error))
2021-12-01 12:27:20 +0100Lycurgus(~juan@98.4.112.204)
2021-12-01 12:27:59 +0100kennyd(~bc8165b6@83.167.180.121)
2021-12-01 12:28:49 +0100kennyd(~bc8165b6@83.167.180.121) (Client Quit)
2021-12-01 12:29:38 +0100kennyd(~bc8165b6@cerf.good1.com)
2021-12-01 12:29:47 +0100Guest42(~Guest42@50.39.205.155)
2021-12-01 12:32:42 +0100deadmarshal(~deadmarsh@95.38.115.243) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-01 12:33:15 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 12:33:43 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 12:34:26 +0100jmorris(uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 12:36:08 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-12-01 12:37:32 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 12:38:59 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds)
2021-12-01 12:41:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 12:41:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 12:42:17 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-01 12:44:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 12:45:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 12:46:21 +0100cuz(~user@50.235.10.194) (Ping timeout: 256 seconds)
2021-12-01 12:51:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 12:51:23 +0100Guest42(~Guest42@50.39.205.155) (Quit: Client closed)
2021-12-01 12:54:21 +0100 <geekosaur> arahael, have you tried LANG=C? ghc uses various Unicode characters in its errors even without color sequences
2021-12-01 12:56:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 12:57:50 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-01 12:59:48 +0100 <yin> @pl if x then a else b
2021-12-01 12:59:48 +0100 <lambdabot> if' x a b
2021-12-01 13:00:05 +0100 <yin> where is lambdabt getting this if' from?
2021-12-01 13:00:27 +0100 <kennyd> @hoogle if'
2021-12-01 13:00:28 +0100 <lambdabot> Data.Bool.HT if' :: Bool -> a -> a -> a
2021-12-01 13:00:28 +0100 <lambdabot> Control.Conditional if' :: ToBool bool => bool -> a -> a -> a
2021-12-01 13:00:28 +0100 <lambdabot> GHC.SourceGen.Expr if' :: HsExpr' -> HsExpr' -> HsExpr' -> HsExpr'
2021-12-01 13:01:16 +0100 <yin> eh. i did that and got nothing
2021-12-01 13:01:45 +0100 <geekosaur> it's just invented
2021-12-01 13:02:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 13:02:13 +0100 <geekosaur> since the @pl plugin was last updated we got bool, which is what it really should be using these days
2021-12-01 13:02:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 13:02:41 +0100 <kennyd> I kind of dislike the name, and reversed arguments
2021-12-01 13:02:45 +0100 <kennyd> (of bool)
2021-12-01 13:03:00 +0100 <geekosaur> the arguments match maybe and either
2021-12-01 13:03:25 +0100 <yin> what does HT stand for?
2021-12-01 13:03:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-01 13:04:15 +0100 <arahael> geekosaur: nope but i have gone to bed, will try to remember tomorrow!
2021-12-01 13:04:17 +0100 <kennyd> geekosaur. right. but if I'm using such a function I'm more likely to think in terms of if-then-else than maybe or either
2021-12-01 13:04:49 +0100 <byorgey> yin: I believe it stands for Henning Thielemann
2021-12-01 13:04:56 +0100 <byorgey> https://hackage.haskell.org/package/utility-ht-0.0.16
2021-12-01 13:05:05 +0100 <yin> kennyd: haskell having if...then...else is the original sin
2021-12-01 13:05:25 +0100 <kennyd> though bool might be nicer when partially implying it in some cases. so maybe there's place for both if' and bool
2021-12-01 13:05:33 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 13:05:39 +0100 <byorgey> kennyd: I use partially applied bool on a regular basis
2021-12-01 13:05:40 +0100 <kennyd> partially applying :P
2021-12-01 13:07:43 +0100 <yin> byorgey: thanks
2021-12-01 13:09:49 +0100narendra(~user@2a02:8109:b63f:ff7c::56c2)
2021-12-01 13:11:41 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 13:12:51 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-01 13:13:12 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-01 13:15:22 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-01 13:18:58 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-01 13:21:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 13:22:04 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-01 13:22:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 13:25:13 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 13:28:09 +0100arjun(~user@user/arjun)
2021-12-01 13:28:46 +0100 <arjun> soo, just got around reading the 3 layered haskell cake post from here (https://www.parsonsmatt.org/2018/03/22/three_layer_haskell_cake.html)
2021-12-01 13:29:13 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-01 13:29:21 +0100 <arjun> what do people think of it ?
2021-12-01 13:32:12 +0100 <dminuoso> Every time you have someone offer you a silver bullet on program design, reject it.
2021-12-01 13:33:26 +0100 <dminuoso> I've seen this particular blog post many times, and I dislike every bit of it. I think what this is, is a representation on how the author - at that time in the past - used to structure their programs.
2021-12-01 13:33:56 +0100 <[exa]> arjun: reminds me some of the more traditional OOP guidelines
2021-12-01 13:34:31 +0100 <arjun> it does, doesn't it
2021-12-01 13:35:10 +0100 <arjun> dminuoso: sure, i've seen this post several times, finally got around to reading it
2021-12-01 13:35:19 +0100 <[exa]> would be nice if it was published as "how and why we have our internal guidelines as such", but trying to apply this universally is a monstrous mistake
2021-12-01 13:35:55 +0100 <arjun> every place/one has/have their own tbh
2021-12-01 13:36:07 +0100 <[exa]> or perhaps if there was a tools ecosystem that benefited from having the internals similar
2021-12-01 13:36:12 +0100 <[exa]> yeah
2021-12-01 13:36:38 +0100 <arjun> i was just wondering if this is a popular approach, since the blog post is popular and thus amplified
2021-12-01 13:36:53 +0100 <dminuoso> Not given what I see around
2021-12-01 13:36:59 +0100 <dminuoso> Some bits of it, yes.
2021-12-01 13:37:05 +0100 <dminuoso> But the overall structure, no.
2021-12-01 13:38:16 +0100 <arjun> i liked the readerT pattern post (linked atop this post) from fpcomplete much better
2021-12-01 13:38:25 +0100 <dminuoso> For instance, for many of my executables I usually maintain some `newtype AppM a = AppM { runAppM :: ReaderT Env (LoggingT IO) a }`
2021-12-01 13:38:41 +0100 <dminuoso> So I avoid transformers that are not isomorphic to ReaderT
2021-12-01 13:39:09 +0100 <dminuoso> This I do because I want to be able to unlift IO actions without worrying about interactions between state and exceptions
2021-12-01 13:39:41 +0100 <[exa]> arjun: you can kinda see that the post degenerates to something like database-ish transactions & data stream handling specifics later... For that usecase I'd probably think about similar structure
2021-12-01 13:39:52 +0100 <arjun> i didn't get the last part dminuoso
2021-12-01 13:40:08 +0100 <maerwald> I somehow always disliked 'App' transformers, but I don't know why
2021-12-01 13:40:37 +0100 <arjun> \o
2021-12-01 13:40:49 +0100 <dminuoso> arjun: Imagine you have a `StateT IO Int` and you want to have bracket for that
2021-12-01 13:40:53 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-01 13:41:03 +0100 <dminuoso> Or `catch`
2021-12-01 13:42:23 +0100 <dminuoso> Do you want state in an exception handler to be preserved?
2021-12-01 13:42:34 +0100 <maerwald> hm, I think I've never seen StateT or MonadState as part of the general application architecture... people either use IORefs/TVars/etc in their ReaderT env or use StateT only locally
2021-12-01 13:43:02 +0100 <dminuoso> maerwald: servant forces it onto you in handlers unless you hoist yourself out of it
2021-12-01 13:43:47 +0100 <dminuoso> So far Ive seen more global StateT than IORefs in a ReaderT environment, sadly
2021-12-01 13:44:03 +0100 <arjun> maerwald: i think state isn't cool with concurrent stuff either (race / non-determinism)
2021-12-01 13:44:25 +0100 <dminuoso> arjun: Its perfectly cool, we have STM to deal with that.
2021-12-01 13:44:45 +0100 <dminuoso> Of course this is yet another reason why StateT is lacking, since you cant do concurrency with it
2021-12-01 13:44:47 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
2021-12-01 13:45:43 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds)
2021-12-01 13:46:33 +0100 <arjun> dminuoso: that's why we use IORefs/TVars instead of StateT ?
2021-12-01 13:47:01 +0100 <dminuoso> Like I said, I use it because I find it way simpler to reason about in the presence of exceptions
2021-12-01 13:47:36 +0100 <arjun> i see
2021-12-01 13:47:39 +0100 <dminuoso> It's a coping technique because I'm not a genius.
2021-12-01 13:47:54 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-01 13:48:38 +0100 <maerwald> IOHK since has shifted to freer-simple I think (in some parts of their stack)... which, amusingly, still has the same issues as any mocking: equivalence
2021-12-01 13:49:40 +0100 <arjun> that's an effect system, right maerwald? something like polysemy ?
2021-12-01 13:50:19 +0100 <maerwald> other parts use a configuration context (passed inte the reader env I hink) that defines functions
2021-12-01 13:50:31 +0100 <maerwald> so I'm not sure that three-layer cake is used anywhere there anymore
2021-12-01 13:50:54 +0100 <maerwald> arjun: yeah
2021-12-01 13:52:12 +0100 <dminuoso> arjun: And regarding tagless final. First this creates a hefty optimization barrier, if you employ this widely in your program, chances are you will miss a lot of inlining opportunities.
2021-12-01 13:52:32 +0100 <dminuoso> This is because writing typeclass polymorphic code ends up being represented as a function taking a dictionary
2021-12-01 13:52:55 +0100 <maerwald> I think using custom classes instead of explicit dictionaries is unpopular
2021-12-01 13:53:01 +0100 <dminuoso> So doing this out of a basic rudimentary design principle seems to be flawed in that you're tieng your compilers hands from the beginning.
2021-12-01 13:53:33 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-01 13:53:40 +0100 <merijn> dminuoso: I like tagless final for specific logic bits, but a specific stack for the majority of actual program code
2021-12-01 13:53:58 +0100 <arjun> hang on, let me google what this tagless final thingy is
2021-12-01 13:53:59 +0100 <maerwald> e.g. https://git.io/JMwdD
2021-12-01 13:54:04 +0100 <arjun> sounds like bad news : P
2021-12-01 13:54:20 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 252 seconds)
2021-12-01 13:54:41 +0100 <merijn> arjun: Basically "mtl style classes, but not the ones from mtl, because they're bad"
2021-12-01 13:55:03 +0100 <maerwald> isn't that just only one interpretation of tagless final?
2021-12-01 13:55:26 +0100 <merijn> What other interpretations exist?
2021-12-01 13:55:39 +0100 <maerwald> I don't remember... it was discussed here once, I probably won't find it
2021-12-01 13:55:59 +0100fr33domlover(~fr33@2.53.150.205) (Ping timeout: 252 seconds)
2021-12-01 13:56:13 +0100 <dminuoso> maerwald: I think you were missing a single word in that sentence somewhere.
2021-12-01 13:56:22 +0100 <dminuoso> Either a `dont` in the first half or a `not` in the second
2021-12-01 13:56:36 +0100 <dminuoso> Ops sorry. I meant merijn
2021-12-01 13:56:59 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
2021-12-01 13:57:07 +0100 <merijn> dminuoso: No?
2021-12-01 13:57:37 +0100 <dminuoso> You like tagless final for specific logic bits, *but* a specific stack for the majority of actual program code?
2021-12-01 13:57:44 +0100 <dminuoso> Im not sure how to understand that sentence then
2021-12-01 13:57:44 +0100 <merijn> yes
2021-12-01 13:58:09 +0100 <merijn> dminuoso: i.e. most of the program logic *isn't* typeclass polymorphic, avoiding the lack of inlining problem you mentioned
2021-12-01 13:58:32 +0100 <dminuoso> Ah.
2021-12-01 13:58:36 +0100 <merijn> dminuoso: But I tend to have 3-4 different stacks (command line UI, batch job, etc.)
2021-12-01 13:58:52 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-01 13:58:57 +0100 <merijn> dminuoso: And tagless final for *specific* tasks (logging, database accesses, etc.) means I can reuse those in all 3-4 stacks
2021-12-01 13:59:36 +0100 <dminuoso> Right
2021-12-01 14:00:02 +0100 <dminuoso> So if you do this out of code sharing, that's a very different mindset than what the three-layer cake envisions.
2021-12-01 14:00:07 +0100 <dminuoso> Which is mostly about mockability/testability
2021-12-01 14:00:16 +0100 <merijn> I don't believe in mockability, tbh
2021-12-01 14:00:20 +0100 <dminuoso> Yup, neither do I.
2021-12-01 14:00:32 +0100 <tomsmeding> maerwald: talking about this thing? https://www.foxhound.systems/blog/final-tagless/
2021-12-01 14:00:41 +0100 <dminuoso> Because now you have to guarantee that your mock behaves the same way
2021-12-01 14:00:42 +0100 <merijn> Mocks are a copout because you're either bad at engineering, bad at testing, or both
2021-12-01 14:00:43 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-01 14:00:52 +0100 <dminuoso> There's certainly some types where you must mock for some reason or another.
2021-12-01 14:01:06 +0100 <dminuoso> We had to mock an external API that was out of our control without access to a test API once
2021-12-01 14:01:42 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 14:02:34 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 14:02:38 +0100xkuru(~xkuru@user/xkuru)
2021-12-01 14:03:36 +0100 <maerwald> merijn: I think mocking is fine to test the logic that has little to do with the mocked stuff... but many times people use it in other ways
2021-12-01 14:03:53 +0100 <maerwald> then you'll end up constantly trying to figure out why your tests pass, but the real application fails
2021-12-01 14:06:06 +0100 <dminuoso> Plus, if all you did was to test business logic, perhaps keeping it separate and running a unit test would be better?
2021-12-01 14:06:39 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-12-01 14:06:48 +0100 <kuribas> Square: yes, put it in a let.
2021-12-01 14:07:00 +0100 <kuribas> let poly2 = poly1 "someArg"
2021-12-01 14:07:30 +0100 <maerwald> tomsmeding: yeah, the more I read about tagless final, the less I understand what they want from me, so I largely just ignore it
2021-12-01 14:07:43 +0100 <kuribas> Square: unless you have MonoLocalBinds.
2021-12-01 14:07:52 +0100 <kuribas> Square: in that case, give an explicit type signature.
2021-12-01 14:09:32 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 14:09:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 14:10:52 +0100 <kuribas> Square: "where" should work also
2021-12-01 14:11:21 +0100 <Square> kuribas, hmm. I seem to have no luck with that.
2021-12-01 14:11:33 +0100 <kuribas> Square: paste some code?
2021-12-01 14:11:47 +0100 <Square> ok, give me minute
2021-12-01 14:12:01 +0100 <kuribas> If you are using rank-n or other extensions, you may need an explicit signature.
2021-12-01 14:12:07 +0100 <arjun> merijn: this really does look like mtl but not mtl (https://dev.to/piq9117/haskell-look-ma-no-concrete-implementation-32p8)
2021-12-01 14:12:20 +0100 <kuribas> I believe GADTs enables monoLocalBinds.
2021-12-01 14:12:57 +0100 <merijn> arjun: That's because mtl are tagless final, it's just that abstraction level of mtl is bad
2021-12-01 14:13:46 +0100 <arjun> dminuoso: so if i understood about the inlining stuff, it's to do with writing typeclass polymorphic functions/code and not getting faster optimized code?
2021-12-01 14:14:38 +0100 <arjun> also, what are the alternatives so that we CAN get the compiler love AND write general code ?
2021-12-01 14:15:07 +0100 <arjun> merijn: i see
2021-12-01 14:15:26 +0100 <merijn> arjun: I the compiler knows the *exact* type (i.e. not typeclass polymorphic) it can just inline the implementation of the relevant class, instead of keeping the typeclass indirection
2021-12-01 14:16:03 +0100 <arjun> merijn: you mean *if* ?
2021-12-01 14:16:09 +0100 <merijn> eh, yeah
2021-12-01 14:16:11 +0100 <dminuoso> arjun: Something like `f :: Num t => t; f = 5` is internally not implemented as an actual value, but a function that takes a dictionary of Num, and then returns a value.,
2021-12-01 14:16:29 +0100 <dminuoso> arjun: Note how you have this sort of "function" indirection?
2021-12-01 14:16:50 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
2021-12-01 14:16:53 +0100 <dminuoso> Without knowing the dictionary choice/the type of t beforehand, we cannot inline its definition
2021-12-01 14:17:16 +0100 <dminuoso> its sort of how you cant inline the body of `\x -> x + 1` without having the argument to that function
2021-12-01 14:17:32 +0100 <arjun> dictionary of Num?
2021-12-01 14:17:35 +0100 <Square> kuribas, i feel theres too much context involved to produce a readable example in a short while when I *really* should focus on my job. Ill play with it and might ask again at later time.
2021-12-01 14:17:39 +0100 <arjun> what shape does that look like?
2021-12-01 14:17:45 +0100 <dminuoso> A record of values/functions
2021-12-01 14:17:53 +0100 <arjun> ah, i see
2021-12-01 14:18:10 +0100 <arjun> something like dynamic method dispatch in OO polymorphism
2021-12-01 14:18:14 +0100 <dminuoso> Yes, exactly
2021-12-01 14:18:34 +0100 <arjun> i always wondered how that worked
2021-12-01 14:18:49 +0100 <maerwald> arjun: see https://youtu.be/0jI-AlWEwYI
2021-12-01 14:19:05 +0100 <merijn> arjun: Note that that's an implementation detail of GHC, though :)
2021-12-01 14:19:14 +0100 <maerwald> there's some explanation of inlining wrt classes
2021-12-01 14:20:07 +0100 <arjun> maerwald: brownies,i've been dragging my feet on her content for so long, that video and the post "parse dont validate", i'll just carve out and afternoon for those
2021-12-01 14:21:21 +0100 <arjun> dminuoso: so, i get it for the values, does that works the same way for typeclass polymorphic functions too?
2021-12-01 14:21:51 +0100 <merijn> arjun: Yes
2021-12-01 14:21:51 +0100 <arjun> something like `f :: (MonadIO m, MonadFail m, etc..)`
2021-12-01 14:22:06 +0100 <merijn> arjun: Effectively they function as hidden arguments taking a dictionary of class functions
2021-12-01 14:22:34 +0100 <merijn> arjun: Except, that when GHC statically knows which *actualy* type you use, inlining those dictionaries straight into the code is trivial
2021-12-01 14:22:49 +0100 <merijn> So a lot of typeclass overhead/indirection can be trivially optimised away at compile time
2021-12-01 14:22:56 +0100 <arjun> so those values and functions are general, but that comes at an inlining cost?
2021-12-01 14:23:03 +0100 <maerwald> -fspecialize-aggressively to the rescue
2021-12-01 14:23:31 +0100 <dminuoso> It's not even enough
2021-12-01 14:23:35 +0100 <arjun> merijn: so if i write general code and not runtime call it, it's fine?
2021-12-01 14:23:40 +0100 <dminuoso> You usually need this in conjunction with -fexpose-all-unfoldings
2021-12-01 14:23:48 +0100 <dminuoso> and then watch compile time and memory usage skyrocket
2021-12-01 14:24:21 +0100kennyd(~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
2021-12-01 14:24:25 +0100 <merijn> arjun: So, suppose you write "2 + 2" normally all those things are typeclass polymorphic
2021-12-01 14:24:38 +0100 <arjun> sure
2021-12-01 14:24:42 +0100 <merijn> arjun: But as soon as it's "2 + 2 :: Int" (via type inference for some function argument, whatever)
2021-12-01 14:25:09 +0100 <merijn> arjun: GHC can trivially see "oh, this only uses the Int dictionary" and just inline all the dictionaries function calls straight into that removing all indirection
2021-12-01 14:25:35 +0100 <dminuoso> arjun: Yes. In fact, there's some other subtleties involved as well. If you have something polymorphic, it cant be shared. That is, if you have `let x :: Num; x = expensiveExpr in (x * 10, x * 20)`, this will unexpectedly evaluate the expression of `x` twice
2021-12-01 14:25:37 +0100 <arjun> so, fix the type either manually or via inference, win ?
2021-12-01 14:25:53 +0100 <merijn> Which actually applies to a large number of typeclass calls, since probably >50% of all calls deal with statically known types
2021-12-01 14:25:56 +0100 <merijn> arjun: basically
2021-12-01 14:26:20 +0100 <dminuoso> arjun: And because the Haskell authors antipicated this, we have the monomorphism restriction, which will try to monomorphize (make them non-polymorphic) bindings without type signatures in most situations, to avoid performance problems creeping up
2021-12-01 14:26:31 +0100 <merijn> arjun: And due to inference this can happen through large chunks of code at once via just 1 type signature somewhere
2021-12-01 14:26:44 +0100 <arjun> maerwald: this is what we do with the ghcup code right? there's all sort of poly functions, but they get inferred with main invocations?
2021-12-01 14:26:49 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-12-01 14:26:59 +0100 <maerwald> uhm
2021-12-01 14:27:23 +0100 <maerwald> you mean `runReaderT` probably
2021-12-01 14:27:25 +0100 <maerwald> etc
2021-12-01 14:27:30 +0100 <arjun> merijn: wouldn't the compiler need to know the types anyway for typechecking ?
2021-12-01 14:28:20 +0100 <merijn> arjun: the runtime invocation of any specific function can't always be statically known
2021-12-01 14:28:23 +0100 <arjun> maerwald: yea, those in the main function which fix the logger and envs etc
2021-12-01 14:28:42 +0100 <maerwald> yes, runE, runReaderT and runLogger mostly
2021-12-01 14:28:48 +0100 <arjun> merijn: i see
2021-12-01 14:28:49 +0100 <maerwald> and then there's LabelOptics tricks
2021-12-01 14:28:55 +0100 <merijn> (don't ask me to conjure up an example, because I can't think of an easy one right now :p)
2021-12-01 14:29:12 +0100 <arjun> HasDirs and stuff right?
2021-12-01 14:29:38 +0100 <maerwald> yeah that allows to re-use the same api across different environments
2021-12-01 14:30:04 +0100 <dminuoso> arjun: Consider that you can simply write a module that exposes a polymorphic function. GHC must be able to compile this module on its own, irrespective of whether something else uses it or not.
2021-12-01 14:30:21 +0100 <arjun> merijn: that's alright, you've been quite a help already; )
2021-12-01 14:30:21 +0100 <dminuoso> So you cant know the used type(s!) beforehand
2021-12-01 14:30:49 +0100 <dminuoso> And you cant know all possible typeclass instances either, because they might be defined somewhere else too
2021-12-01 14:31:33 +0100 <maerwald> whole program optimization to the rescue
2021-12-01 14:31:33 +0100 <arjun> dminuoso: THAT MAKES SO MUCH SENSE
2021-12-01 14:33:55 +0100 <dminuoso> Sigh
2021-12-01 14:33:57 +0100 <dminuoso> WARNING: /root/.cabal/: no matching files
2021-12-01 14:34:28 +0100 <dminuoso> Is there a way to have cabal tell me where the cabal store is?
2021-12-01 14:35:40 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-01 14:36:06 +0100sagax(~sagax_nb@user/sagax)
2021-12-01 14:36:13 +0100 <maerwald> https://hackage.haskell.org/package/cabal-install-parsers-0.4.3/docs/Cabal-Config.html
2021-12-01 14:36:28 +0100 <dminuoso> Mmm
2021-12-01 14:36:56 +0100 <dminuoso> Ah I think what happens is that gitlab ci cache can only operate on the current directory
2021-12-01 14:37:04 +0100 <dminuoso> That could explain it
2021-12-01 14:37:24 +0100 <dminuoso> Damn yes.
2021-12-01 14:37:42 +0100 <arjun> dminuoso: just to solidify if i understood, TC polymorphic functions and values are ALWAYS compiled to ditcs redirects, but if you fix a type a compile time, the compiliers walks the redirection for you and basically kisses you on the forehead and inlines that code ?
2021-12-01 14:38:08 +0100 <maerwald> whether something inlines or not depends on a lot more factors
2021-12-01 14:38:33 +0100 <arjun> : P
2021-12-01 14:38:39 +0100 <dminuoso> arjun: No.
2021-12-01 14:38:57 +0100 <dminuoso> arjun: Honestly this is a long story and GHC has mechanisms to still inline polymorphic things.
2021-12-01 14:40:02 +0100 <arjun> "long story" i bet, i sometimes forget haskell is older than the j word language
2021-12-01 14:40:14 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
2021-12-01 14:40:16 +0100 <dminuoso> But put it this way: If you make it polymorphic, you dont have a good guarantee it will get inlined. If you make it polymorphic and specialize, you have a better chance of inlining. If you make it polymorphic, specialized and inlinable, you *guarantee* that GHC *can* inline it on the oother side
2021-12-01 14:40:43 +0100 <maerwald> it also depends how you call the function
2021-12-01 14:41:00 +0100 <dminuoso> (specialization here means, that alongside the definition, GHC will embed a secondary definition that assumes the polymorphic code to be fixed to some type known beforehand)
2021-12-01 14:41:18 +0100 <dminuoso> (and then GHC can, on the other side, use the specialized implementation if in that spot it knows it to be that type)
2021-12-01 14:41:26 +0100 <maerwald> you have to supply all "arguments"
2021-12-01 14:41:39 +0100 <dminuoso> But really, this whole discussion can only go on with "read the GHC source code" at some point
2021-12-01 14:41:51 +0100 <maerwald> yes, until the next GHC version
2021-12-01 14:41:57 +0100 <dminuoso> It's very complicated and requires a lot of finesse, expertise and trial-and-error to control optimization
2021-12-01 14:42:11 +0100 <arjun> got it (pun)
2021-12-01 14:45:20 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-12-01 14:45:56 +0100max22-(~maxime@2a01cb088335980011d3732a3bb127e3.ipv6.abo.wanadoo.fr)
2021-12-01 14:48:00 +0100 <yin> is there a usual way of getting chunks between delimiters, like `f START END [0,1,2,START,3,4,END,5,START,6,7,8,END,9] => [[3,4],[6,7,8]]` ?
2021-12-01 14:48:12 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2021-12-01 14:48:19 +0100 <maerwald> arjun: https://github.com/quchen/articles/blob/master/fbut.md#f-x---is-not-f--x---
2021-12-01 14:49:42 +0100narendra(~user@2a02:8109:b63f:ff7c::56c2) (Remote host closed the connection)
2021-12-01 14:49:46 +0100 <arjun> maerwald: that was helpful
2021-12-01 14:51:17 +0100 <arjun> yin: some combination of, dropWhile Start, takeWhile (not End) perhaps ?
2021-12-01 14:51:36 +0100 <yin> yes that's what i have
2021-12-01 14:51:57 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-12-01 14:56:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 14:56:52 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 14:58:53 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-01 15:01:03 +0100Farzad(~FarzadBek@37.98.106.66) (Quit: Leaving)
2021-12-01 15:02:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 15:03:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 15:04:47 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 15:05:04 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 15:07:02 +0100max22-(~maxime@2a01cb088335980011d3732a3bb127e3.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2021-12-01 15:08:01 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-12-01 15:08:42 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-01 15:11:55 +0100acidjnk_new(~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2021-12-01 15:12:15 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-12-01 15:15:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 15:16:03 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-01 15:16:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 15:22:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 15:22:24 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 15:23:56 +0100 <merijn> hmmm
2021-12-01 15:24:10 +0100 <merijn> why does incomplete-uni-patterns trigger on an explicitly lazy pattern?
2021-12-01 15:25:21 +0100 <dminuoso> Curious, because they're even properly called irrefutable patterns.
2021-12-01 15:25:47 +0100 <dminuoso> But I guess, add them to the long list of incomplete/incomplete-uni-patterns bugs?
2021-12-01 15:26:24 +0100 <merijn> Well, the warning says it applies to lazy bindings too
2021-12-01 15:26:29 +0100 <merijn> I dunno why it's on, though
2021-12-01 15:28:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 15:28:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 15:30:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 15:30:34 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 15:31:27 +0100 <merijn> dminuoso: As far as I can tell it shouldn't be enabled by default (according to the docs) and it isn't on 8.0 through 9.0
2021-12-01 15:31:38 +0100 <merijn> So I'm confused why it is on in 9.2
2021-12-01 15:32:29 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-12-01 15:33:39 +0100Farzad(~FarzadBek@37.98.106.66)
2021-12-01 15:36:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 15:37:06 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 15:38:28 +0100dsrt^(~dsrt@68.101.58.90) (Remote host closed the connection)
2021-12-01 15:40:05 +0100 <yin> is there a flip (.) ?
2021-12-01 15:41:29 +0100 <geekosaur> @index (&)
2021-12-01 15:41:29 +0100 <lambdabot> Data.Function
2021-12-01 15:42:44 +0100 <yin> that's flip ($)
2021-12-01 15:43:48 +0100 <yushyin> (>>>)
2021-12-01 15:43:52 +0100 <boxscape> yin: Data.Category.>>>
2021-12-01 15:43:58 +0100 <boxscape> oh I'm too late
2021-12-01 15:44:23 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
2021-12-01 15:44:42 +0100 <yushyin> boxscape: only by a few seconds!
2021-12-01 15:45:39 +0100 <boxscape> I'm always a bit unsure how long the matrix bridge will take to actually send a message
2021-12-01 15:45:46 +0100 <boxscape> (I think there's some jitter, too)
2021-12-01 15:46:04 +0100 <yin> that was it! thank you
2021-12-01 15:46:19 +0100 <merijn> The answer is *drumroll* someone put in a proposal to enable incomplete-uni-patterns by default and didn't bother to update *any* of the docs! Yay!
2021-12-01 15:47:09 +0100 <yin> boxscape: a couple of weeks ago i was hitting 2 hours
2021-12-01 15:47:25 +0100 <boxscape> oh boy
2021-12-01 15:48:25 +0100 <yin> i'm used to 20 secs when it's good, 2 mins when it' bad and 20 min when it's really bad
2021-12-01 15:48:45 +0100 <yin> but many get lost
2021-12-01 15:48:48 +0100 <merijn> Well, that kinda renders irrefutable patterns useless
2021-12-01 15:49:20 +0100bsima(~bsima@2604:a880:400:d0::19f1:7001) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-01 15:49:48 +0100max22-(~maxime@2a01cb08833598008751b1889105ced7.ipv6.abo.wanadoo.fr)
2021-12-01 15:49:55 +0100bsima(~bsima@2604:a880:400:d0::19f1:7001)
2021-12-01 15:50:35 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-01 15:50:43 +0100 <boxscape> merijn: you can always turn off the warning
2021-12-01 15:50:53 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-01 15:50:54 +0100 <geekosaur> for the whole file, yes
2021-12-01 15:51:04 +0100 <merijn> boxscape: Yes, but you can never do that for an individual irrefutable pattern
2021-12-01 15:51:06 +0100 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/issues/20643
2021-12-01 15:51:19 +0100 <geekosaur> as merijn just pointed out in #ghc
2021-12-01 15:51:33 +0100 <merijn> Also, I'm just grumpy because once *again* nobody updated the GHC flag reference
2021-12-01 15:51:40 +0100 <boxscape> merijn: right, but it doesn't seem like adding it to -Wall made this part any worse
2021-12-01 15:51:56 +0100 <merijn> Literally *every* *single* *time* I interact with flags someone has fucked up and not updated shit
2021-12-01 15:52:20 +0100 <merijn> over 50% of my GHC issues are pointing out missing/undocumented flags >.>
2021-12-01 15:52:22 +0100 <yin> when do we replace irrefutable patterns for proofs to the compiler
2021-12-01 15:53:16 +0100 <merijn> boxscape: Well, I would've liked that problem to be solved before it got enabled unconditionally and I had to figure out how to selectively disable that flag for 1 compiler in my CI >.>
2021-12-01 15:53:47 +0100 <boxscape> that's fair
2021-12-01 15:54:02 +0100 <merijn> especially since I consider it a low value warning
2021-12-01 15:54:20 +0100shapr`(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-01 15:54:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 15:54:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 15:54:47 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 15:56:11 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-12-01 15:57:40 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com)
2021-12-01 16:00:17 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-12-01 16:05:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 16:06:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 16:06:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 16:06:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 16:08:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 16:08:35 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-12-01 16:08:35 +0100justache(~justache@user/justache) (Ping timeout: 256 seconds)
2021-12-01 16:09:27 +0100TranquilEcho(~grom@user/tranquilecho)
2021-12-01 16:12:55 +0100bliminse(~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving)
2021-12-01 16:16:14 +0100 <merijn> oh goodie
2021-12-01 16:16:25 +0100 <merijn> someone broke operator sections for $ too
2021-12-01 16:16:39 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-12-01 16:17:30 +0100 <boxscape> asking you if you want to enable template haskell?
2021-12-01 16:17:42 +0100[exa]. o O ((`id` function))
2021-12-01 16:18:06 +0100 <merijn> boxscape: That's a warning enabled by default now, so -Werror on CI breaks on that too
2021-12-01 16:18:17 +0100 <merijn> So far, not particularly happy with 9.2
2021-12-01 16:19:09 +0100 <merijn> Way too many default enabled warnings that trigger on completely benign and correct haskell
2021-12-01 16:19:37 +0100 <boxscape> I think the warning didn't exist at all before https://github.com/ghc-proposals/ghc-proposals/pull/229
2021-12-01 16:19:46 +0100justache(~justache@user/justache)
2021-12-01 16:19:48 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-01 16:19:49 +0100 <merijn> boxscape: It didn't no
2021-12-01 16:20:28 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
2021-12-01 16:21:15 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-01 16:22:08 +0100MaybeJustJames(~jacol@2001:981:4ea3:1:a8b4:6ac6:c93b:9bcf)
2021-12-01 16:23:01 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-01 16:24:30 +0100justache(~justache@user/justache) (Ping timeout: 256 seconds)
2021-12-01 16:24:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-01 16:24:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-01 16:24:39 +0100wroathe(~wroathe@user/wroathe)
2021-12-01 16:25:01 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 16:25:23 +0100sheb(~sheb@31.223.228.71) (Quit: Leaving)
2021-12-01 16:25:43 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 16:28:02 +0100bliminse(~bliminse@host86-162-147-196.range86-162.btcentralplus.com)
2021-12-01 16:29:08 +0100justache(~justache@user/justache)
2021-12-01 16:29:36 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-12-01 16:29:57 +0100Vajb(~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi)
2021-12-01 16:35:21 +0100dermato(~dermatobr@cpe-70-114-219-76.austin.res.rr.com) (Quit: WeeChat 3.1)
2021-12-01 16:39:35 +0100arjun(~user@user/arjun) (Remote host closed the connection)
2021-12-01 16:41:50 +0100justache(~justache@user/justache) (Read error: Connection reset by peer)
2021-12-01 16:42:01 +0100Farzad(~FarzadBek@37.98.106.66) (Ping timeout: 256 seconds)
2021-12-01 16:42:33 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Read error: Connection reset by peer)
2021-12-01 16:42:51 +0100justache(~justache@user/justache)
2021-12-01 16:43:06 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-01 16:44:09 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at)
2021-12-01 16:50:43 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-01 16:53:09 +0100Guest|27(~Guest|27@cpea456cc4b1ddd-cma456cc4b1ddb.cpe.net.cable.rogers.com)
2021-12-01 16:53:57 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi)
2021-12-01 16:54:31 +0100shapr`shapr
2021-12-01 17:02:34 +0100justachejustSleigh
2021-12-01 17:04:39 +0100 <eyJhb> I am not sure, if this is possible. But I am trying to play a little around with ghci, and I somewhat thought it was comman that if I wrote ie. `length`, that it would show me the definition of it, instead of an error ie. https://termbin.com/2f7i
2021-12-01 17:04:53 +0100nvmd(~nvmd@user/nvmd)
2021-12-01 17:05:25 +0100 <merijn> eyJhb: ghci runs expressions through "show" to print them
2021-12-01 17:05:35 +0100 <merijn> eyJhb: length is a function and there is no show isntance for functions
2021-12-01 17:05:56 +0100 <merijn> eyJhb: That error is complaining "[a] -> Int" (the function type of length) doesn't have a show instance
2021-12-01 17:05:59 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-01 17:06:43 +0100 <geekosaur> and at present there's no way for ghci to know the definition of a function. there is work on changing that via .hie files containing enough information to recover or find definitions, but it's not there yet nor does ghci know how to use it yet
2021-12-01 17:06:44 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at) (Quit: WeeChat 3.3)
2021-12-01 17:06:55 +0100gaff(~gaff@49.207.195.117)
2021-12-01 17:08:10 +0100 <gaff> if a package is listed as package id in the package environment file (default), how can i remove that package?
2021-12-01 17:08:13 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-01 17:08:14 +0100 <eyJhb> Okay :) Guess I just thought it wold return "the function", and show that it still accepts args, 1, 2, 3.
2021-12-01 17:08:51 +0100 <merijn> eyJhb: Did you maybe want ":type"?
2021-12-01 17:08:54 +0100 <merijn> :t length
2021-12-01 17:08:55 +0100 <lambdabot> Foldable t => t a -> Int
2021-12-01 17:09:01 +0100 <merijn> :t length []
2021-12-01 17:09:02 +0100 <lambdabot> Int
2021-12-01 17:09:18 +0100 <geekosaur> % :t length @[]
2021-12-01 17:09:18 +0100 <yahb> geekosaur: [a] -> Int
2021-12-01 17:09:22 +0100 <eyJhb> Hmm... Yeah, that's actually what I excected it to show! Thanks :)
2021-12-01 17:09:47 +0100 <geekosaur> > length
2021-12-01 17:09:49 +0100 <lambdabot> error:
2021-12-01 17:09:49 +0100 <lambdabot> • No instance for (Typeable a0)
2021-12-01 17:09:49 +0100 <lambdabot> arising from a use of ‘show_M78435480957096341498’
2021-12-01 17:09:50 +0100 <eyJhb> Trying to do some basic advent of code using Haskell. And sorting in the Haskell learning material that I got
2021-12-01 17:10:05 +0100 <merijn> Nice :)
2021-12-01 17:10:08 +0100 <geekosaur> didn't think that would work, polymorphism's a bit much for ghci's show-functions hack
2021-12-01 17:10:12 +0100 <merijn> See also the leaderboard in the topic :)
2021-12-01 17:10:55 +0100 <geekosaur> er, lambdabot's. I don't think it's packaged in a way you could use it with ghci
2021-12-01 17:11:14 +0100 <geekosaur> at least I couldn't find the lambdabot module when I went looking for it the other day
2021-12-01 17:11:24 +0100 <boxscape> > ord
2021-12-01 17:11:25 +0100 <lambdabot> <Char -> Int>
2021-12-01 17:12:23 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-01 17:12:58 +0100 <gaff> the package id is listed in the file named "default"
2021-12-01 17:13:25 +0100 <merijn> gaff: You used "cabal install --lib", I guess?
2021-12-01 17:13:33 +0100 <gaff> yeah
2021-12-01 17:13:42 +0100 <gaff> i did
2021-12-01 17:13:50 +0100 <merijn> I think you can just nuke the line from the file, tbh
2021-12-01 17:14:50 +0100 <tomsmeding> geekosaur: isn't it something like 'instance {-# OVERLAPPABLE #-} (Typeable a, Typeable b) => Show (a -> b) where ...'?
2021-12-01 17:14:52 +0100 <gaff> merijn: i tried that, but GHCi still finds the package, although it complains that it is now hidden
2021-12-01 17:15:04 +0100 <geekosaur> probably, yes
2021-12-01 17:15:08 +0100 <merijn> gaff: Is there a .ghc.environment in your working dir?
2021-12-01 17:15:18 +0100 <gaff> i want to get rid off the package altogether
2021-12-01 17:15:34 +0100 <gaff> no
2021-12-01 17:15:44 +0100 <geekosaur> but I was hoping to find the actual module and verify. sadly I could find the import in L.hs but not the module itself
2021-12-01 17:15:49 +0100 <gaff> this "default" file is in the global location
2021-12-01 17:16:19 +0100 <gaff> .ghc/.../environments/default
2021-12-01 17:16:21 +0100 <merijn> gaff: tbh, there's no real convenient way to "uninstall" specific packages atm, but you also shouldn't really need to in general
2021-12-01 17:16:45 +0100 <geekosaur> just edit the file
2021-12-01 17:17:01 +0100 <geekosaur> or better yet, nuke it and let cabal or stack manage packages for you
2021-12-01 17:17:01 +0100 <eyJhb> merijn: I think I have been invited to 3x leaderboards so far :D Nix community, and some from University :D
2021-12-01 17:17:06 +0100 <gaff> ok ... i am kind of surprised
2021-12-01 17:17:10 +0100 <merijn> geekosaur: I already said that
2021-12-01 17:17:56 +0100 <merijn> gaff: There's some tools for "GCing" the global store, but it's surprisingly tricky to do properly
2021-12-01 17:18:05 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2b1a:1927:b5c5:1912) (Quit: WeeChat 2.8)
2021-12-01 17:18:09 +0100 <gaff> merijn: where exactly would this package be? i tried a ghc-pkg find-module, but it didn't find it anywhere
2021-12-01 17:18:23 +0100 <gaff> but strangely, GHCi, finds it
2021-12-01 17:18:26 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-01 17:18:32 +0100 <merijn> tbh, I haven't used the global package db since 2016 so I kinda forgot
2021-12-01 17:18:41 +0100 <gaff> merijn:
2021-12-01 17:19:02 +0100 <merijn> The global store is under .cabal/store, but I don't think global installs (i.e. with --lib) use the store
2021-12-01 17:19:15 +0100 <gaff> i don't want to use the global db either, but i was just experimenting with something
2021-12-01 17:19:19 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
2021-12-01 17:19:26 +0100 <geekosaur> last I checked, they did and the environment file points into the store
2021-12-01 17:20:08 +0100 <geekosaur> last time I read through and nuked the env, which was while I was experimenting with updating cabal installation for xmonad
2021-12-01 17:20:15 +0100 <gaff> geekosaur: you mean the "default" file where the package ids are listed?
2021-12-01 17:20:20 +0100 <geekosaur> yes
2021-12-01 17:20:30 +0100 <gaff> nuke the "default" file?
2021-12-01 17:20:46 +0100zebrag(~chris@user/zebrag)
2021-12-01 17:21:31 +0100 <geekosaur> well. go through it and figure out what packages you'll need in the future. but cabal should already have them in its store, so yoou'll just have to update how you're using them to use the v2-* commands instead of v1-*
2021-12-01 17:21:41 +0100 <geekosaur> then nuke it because it just causes pain
2021-12-01 17:22:07 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-12-01 17:22:17 +0100 <geekosaur> also, you'll want a cabal file and cabal repl because things will stop working in plain ghci. if you really need plain ghci to work then edit the environment to remove the package(s) you don't want
2021-12-01 17:22:35 +0100 <geekosaur> but I'd really recommend moving away from that because environment files are such a pain
2021-12-01 17:23:01 +0100TranquilEcho(~grom@user/tranquilecho) (Ping timeout: 268 seconds)
2021-12-01 17:23:11 +0100ec_(~ec@gateway/tor-sasl/ec)
2021-12-01 17:23:12 +0100 <sclv> to answer the specific question you can literally delete the line from the package env file to remove the package
2021-12-01 17:23:33 +0100 <merijn> sclv: But already said that, and that supposedly didn't work?
2021-12-01 17:23:34 +0100 <gaff> geekosaur: yeah, i don't want to fiddle around with global stuff, i was just experimenting with something
2021-12-01 17:23:39 +0100MaybeJustJames(~jacol@2001:981:4ea3:1:a8b4:6ac6:c93b:9bcf) (Remote host closed the connection)
2021-12-01 17:23:46 +0100TranquilEcho(~grom@user/tranquilecho)
2021-12-01 17:23:52 +0100 <sclv> oh i see
2021-12-01 17:24:03 +0100 <sclv> ok, i imagine that would be because there's something else that's a transitive dep on it?
2021-12-01 17:24:15 +0100 <geekosaur> or because they didn't restart ghci afterward
2021-12-01 17:24:25 +0100 <geekosaur> maybe
2021-12-01 17:24:44 +0100 <gaff> sclv: even if delete the line from the denv file, GHCi still finds the package, although now it complains that the package is hidden.
2021-12-01 17:24:56 +0100 <sclv> gaff: is there any other package that has that package as a dep?
2021-12-01 17:24:59 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds)
2021-12-01 17:25:05 +0100 <gaff> no
2021-12-01 17:25:15 +0100 <sclv> well, then that shouldn't happen
2021-12-01 17:26:03 +0100 <sclv> if you want to pastebin the error that could be useufl
2021-12-01 17:26:19 +0100 <geekosaur> could it be in the old user package db, perhaps?
2021-12-01 17:26:22 +0100 <gaff> also, GHCi suggests `:set` command to make the package visible as well
2021-12-01 17:26:36 +0100 <geekosaur> @where paste
2021-12-01 17:26:36 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2021-12-01 17:27:11 +0100reumeth(~reumeth@user/reumeth)
2021-12-01 17:27:18 +0100 <gaff> Could not load module ‘QuickCheck1’, It is a member of the hidden package ‘qcheck-original-0.1.0.0’. You can run ‘:set -package qcheck-original’ to expose it.
2021-12-01 17:27:56 +0100 <gaff> that's the error message from GHCi
2021-12-01 17:28:12 +0100Farzad(~FarzadBek@5.234.246.252)
2021-12-01 17:28:35 +0100 <gaff> now in the code that GHCi runs, there is an "import QuickCheck1" statement
2021-12-01 17:28:37 +0100 <sclv> so you're trying to load a module from a package you don't have in your env file
2021-12-01 17:28:43 +0100 <sclv> and you get an error
2021-12-01 17:28:47 +0100 <gaff> yeah
2021-12-01 17:28:47 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-12-01 17:28:56 +0100 <sclv> that seems like expected behavior, except the wording in the error may confuse you?
2021-12-01 17:28:57 +0100siers(~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-01 17:29:03 +0100alzgh(~alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-12-01 17:29:12 +0100 <sclv> like... if you try to load the module, but the package isn't in the env, you _should_ get some error
2021-12-01 17:29:31 +0100 <EvanR> I just noticed in the ghc manual it says "If you think an error message is especially terrible, report it as a bug" xD
2021-12-01 17:29:45 +0100kennyd(~bc8165b6@cerf.good1.com)
2021-12-01 17:30:46 +0100 <gaff> sclv: the problem here is that even though i deleted the package id from the env file, if i do the `:set` command suggested by GHCi, the package loads and things work fine. what i wanted was to delete the package completely.
2021-12-01 17:31:00 +0100 <sclv> why
2021-12-01 17:31:39 +0100 <gaff> because that package is installed globally by me (as an experiment) and i wanted to remove it
2021-12-01 17:31:48 +0100 <sclv> ok well in an important sense you can't
2021-12-01 17:31:56 +0100 <sclv> because you can't delete individual packages from the store
2021-12-01 17:31:56 +0100 <gaff> sclv: i see
2021-12-01 17:32:04 +0100 <sclv> you can just expose them or not in a package environment
2021-12-01 17:32:23 +0100 <gaff> sclv: is that by design?
2021-12-01 17:32:28 +0100 <sclv> yes, ish
2021-12-01 17:32:31 +0100 <sclv> the store is just a cache
2021-12-01 17:32:44 +0100 <sclv> ideally we'd have a garbage-collect for it
2021-12-01 17:32:52 +0100 <sclv> but it would need to have gc roots and chase transitive deps, etc
2021-12-01 17:32:52 +0100 <gaff> ok
2021-12-01 17:33:00 +0100 <sclv> and nobody's written that
2021-12-01 17:33:05 +0100 <gaff> i see
2021-12-01 17:33:14 +0100 <sclv> so the store just accumulates stuff, and eventually if people really want to they nuke it on occasion
2021-12-01 17:33:22 +0100 <sclv> but since its a cache, thats fine and it fills up again
2021-12-01 17:33:23 +0100 <merijn> You'd also somehow have to find all packages on someone's filesystem to determine what is needed or not
2021-12-01 17:33:40 +0100 <merijn> gaff: Personally I just nuke the global store once or twice a year (or if I upgrade GHC)
2021-12-01 17:33:53 +0100 <gaff> sclv: another weird thing is that if i do a serach using `find-module`, ghc-pkg is unable to find that package anywhere!
2021-12-01 17:33:54 +0100 <sclv> this is not qualitatively different from v1-build i will note
2021-12-01 17:34:17 +0100pfurla(~pfurla@201.17.118.230)
2021-12-01 17:34:23 +0100 <sclv> ghc's never had robust support for deleting a package from a db, just for hiding it
2021-12-01 17:34:36 +0100 <merijn> gaff: The "worst case" of nuking the global store is "every time you go to a new project after nuking the store, you will have to recompile your dependencies"
2021-12-01 17:34:49 +0100 <merijn> But that's a pretty minor issue if you only do it once or twice a year
2021-12-01 17:34:53 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-12-01 17:35:03 +0100 <geekosaur> gaff, ghc-pkg is unaware of environment files. I wonder if you have another one somewhere
2021-12-01 17:35:12 +0100 <gaff> merijn: yeah, i know ... i am not going there ... trust me. this was just an experiment
2021-12-01 17:35:26 +0100 <merijn> gaff: So, ghc-pkg interfaces with a static "package database", but that's kinda...limiting and let to lots of issues
2021-12-01 17:35:31 +0100 <geekosaur> (there's a ghc bug open about that iirc)
2021-12-01 17:35:57 +0100 <merijn> gaff: In the v2-world order, there is no longer a package database for ghc-pkg, instead cabal (dynamically) generates a unique package database for each project
2021-12-01 17:36:26 +0100 <merijn> gaff: So each project can only see the packages relevant to that specific project (allowing you to have conflicting versions, configurations, etc.) of packages installed at the same time
2021-12-01 17:36:51 +0100 <gaff> merijn: when you say global store, the ~.cabal/store?
2021-12-01 17:37:14 +0100 <merijn> yes
2021-12-01 17:37:17 +0100 <gaff> ok
2021-12-01 17:38:10 +0100 <gaff> merijn: yeah, currently i am working using cabal v2-builds on every project. not using global store at all
2021-12-01 17:39:45 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 17:39:56 +0100 <merijn> Eh, v2 uses the global store rather heavily. There was no global store pre-v2 :p The global store, however, is different from the global package db (which was used pre-v2 and now mostly obsolete)
2021-12-01 17:39:59 +0100 <gaff> merijn: one point ... using the nix style, it does cache the packages so that they can be shared between projects if needed. but you are right -- no conflicts whatsoever
2021-12-01 17:40:28 +0100chele(~chele@user/chele) (Remote host closed the connection)
2021-12-01 17:41:54 +0100 <gaff> merijn: so the experiment i tried where i have a package id listed in the global environment file -- that is a legacy from the old style of global package db?
2021-12-01 17:42:44 +0100alzgh(alzgh@user/alzgh)
2021-12-01 17:42:53 +0100 <merijn> gaff: That tries to mimic the global package db by having an environment that points to a few specific things in the store. Which is why nuking things in the environment file "gets rid off them"
2021-12-01 17:43:07 +0100 <gaff> ok
2021-12-01 17:43:26 +0100 <merijn> but because the global environment affects everything, it now messes with every individual project, iirc
2021-12-01 17:43:36 +0100 <gaff> yeah
2021-12-01 17:44:42 +0100 <gaff> so nuking the line in the file is enough? or do i need to nuke the entire file? or nuke the entire global store, ~/.cabal/store?
2021-12-01 17:44:54 +0100 <merijn> just nuking the line in the file is enough
2021-12-01 17:45:02 +0100 <gaff> merijn: cool
2021-12-01 17:45:09 +0100 <gaff> merijn: thanks much
2021-12-01 17:45:12 +0100 <merijn> You'll still have the package in the store, but besides a bit of disk space that shouldn't affect anything
2021-12-01 17:45:49 +0100 <gaff> yeah, i need to remember to work using cabal projects
2021-12-01 17:45:58 +0100nvmd(~nvmd@user/nvmd) (Quit: Later, nerds.)
2021-12-01 17:46:50 +0100 <monochrom> I think that saying "store" is less confusing than saying "global store".
2021-12-01 17:48:26 +0100 <monochrom> This is a consideration based on Hamming distance and the human mind always trying to "auto-correct" words and phrases.
2021-12-01 17:49:08 +0100 <c_wraith> Also, "global" used to mean "for all users of the system" in some cases.
2021-12-01 17:49:09 +0100 <monochrom> "store" is very far from "global db", but "global store" is closer.
2021-12-01 17:50:08 +0100 <monochrom> When the human mind reckons "eh I haven't seen the word 'store' used like this", it goes "ah but I have seen 'db', so let me just pretend you said 'db'".
2021-12-01 17:51:29 +0100 <davean> monochrom: Some people's mind do that - I tend to dislike those people
2021-12-01 17:51:43 +0100 <davean> This seems to very much be a personality thing
2021-12-01 17:52:04 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2021-12-01 17:53:47 +0100 <monochrom> But it also has its value. There are a large class of typos that I can make and you can auto-correct on, and your auto-correction is correct.
2021-12-01 17:54:39 +0100 <monochrom> There are acronyms like "kthxbye" "weg" that you can guess correctly without being taught.
2021-12-01 17:55:11 +0100 <gaff> monochrom: also the human mind can be made to believe anything ... one thing now, another thing next ... which is why you see so many contradictory views. anyway, what i am saying is unrelated to haskell ... just something general.
2021-12-01 17:55:21 +0100 <monochrom> When comprehending a large code base, there are large chunks of code you don't carefully read but you correct guess what they're doing and you quickly move on.
2021-12-01 17:55:53 +0100 <davean> only one of thsoe was an acronym BTW
2021-12-01 17:56:24 +0100 <EvanR> the generalities have gone beyond haskell now
2021-12-01 17:56:49 +0100 <EvanR> did we figure out the #haskell AoC leaderboard yet?
2021-12-01 17:57:10 +0100 <gaff> thanks much for the help
2021-12-01 17:57:15 +0100gaff(~gaff@49.207.195.117) ()
2021-12-01 17:57:27 +0100 <geekosaur> see the /topic
2021-12-01 17:58:05 +0100 <geekosaur> I saw the topic change but nothing else so I assume The Guy caught the earlier discussion and updated it
2021-12-01 17:58:46 +0100 <EvanR> oh nice, I'm already there!
2021-12-01 17:58:58 +0100 <merijn> It's the same as the last 2 years, yeah
2021-12-01 18:00:41 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-12-01 18:02:39 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
2021-12-01 18:02:42 +0100 <EvanR> to get a high score on the leaderboard, you not only have to be quick, but you have to be awake at midnight? xD
2021-12-01 18:03:16 +0100 <monochrom> Or move to a more advantageous time zone.
2021-12-01 18:03:21 +0100 <EvanR> oh yeah
2021-12-01 18:04:24 +0100 <merijn> They open at 6 AM here
2021-12-01 18:04:27 +0100 <merijn> and fuck that :p
2021-12-01 18:04:36 +0100 <EvanR> that's even worse
2021-12-01 18:04:53 +0100 <monochrom> "The best way to win is not to play"
2021-12-01 18:05:17 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-01 18:05:32 +0100td_(~td@muedsl-82-207-238-025.citykom.de) (Remote host closed the connection)
2021-12-01 18:06:25 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-12-01 18:09:29 +0100jncraton(~jncraton@199.8.13.16)
2021-12-01 18:10:16 +0100aman(~aman@user/aman)
2021-12-01 18:11:16 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-01 18:12:43 +0100Techcable_Techcable
2021-12-01 18:13:02 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-01 18:13:19 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-01 18:13:59 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net)
2021-12-01 18:17:18 +0100|beowulf|(1000@sourcemage/mage/beowulf)
2021-12-01 18:17:26 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 18:17:36 +0100lbseale(~ep1ctetus@user/ep1ctetus) (Quit: Leaving)
2021-12-01 18:19:37 +0100aman(~aman@user/aman) (Quit: aman)
2021-12-01 18:22:01 +0100srk(~sorki@user/srk) (Ping timeout: 245 seconds)
2021-12-01 18:22:11 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 252 seconds)
2021-12-01 18:24:31 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
2021-12-01 18:26:29 +0100kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-12-01 18:26:44 +0100kmein(~weechat@user/kmein)
2021-12-01 18:28:17 +0100 <EvanR> doing "quick one off" haskell "scripts" is the only time I encounter the no type signatures version of haskell, very cool
2021-12-01 18:28:38 +0100 <EvanR> and tricky, had to put (read :: String -> Int) in there
2021-12-01 18:29:59 +0100 <EvanR> I always put signatures on everything, so I don't know how to explain monomorphism restriction to someone who encountered it xD
2021-12-01 18:30:08 +0100 <boxscape> EvanR: shorter: read @Int
2021-12-01 18:31:02 +0100 <EvanR> ok... but you'd have to add a language pragma right, and anyone who sees that and doesn't know haskell will increase their weird syntax defcon level by 1
2021-12-01 18:31:49 +0100 <boxscape> possibly
2021-12-01 18:32:02 +0100 <boxscape> I think it's enabled by default in the newest version of ghc
2021-12-01 18:32:05 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-12-01 18:32:43 +0100 <EvanR> I only understand how @Int works by smashing my head on Idris so much
2021-12-01 18:32:49 +0100 <EvanR> with implicit params
2021-12-01 18:33:14 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-12-01 18:33:58 +0100 <yushyin> boxscape: TypeApplications is in GHC2021, yes.
2021-12-01 18:34:21 +0100 <tomsmeding> TIL GHC2021 is actually the default language in HEAD at this point
2021-12-01 18:35:00 +0100 <boxscape> tomsmeding: to be fair you might not even notice if you use cabal or stack since I think the default in the .cabal file is still Haskell2010
2021-12-01 18:35:44 +0100 <tomsmeding> yeah
2021-12-01 18:36:43 +0100FarzadBekran_(~FarzadBek@94.74.153.122)
2021-12-01 18:37:54 +0100 <pragma-> I concur.
2021-12-01 18:38:29 +0100 <merijn> boxscape: Haskell98 unless you use a recent cabal-version
2021-12-01 18:38:32 +0100barrucadu(~barrucadu@carcosa.barrucadu.co.uk) (Quit: Rebooting for OS update...)
2021-12-01 18:38:46 +0100 <boxscape> hm okay
2021-12-01 18:39:11 +0100 <geekosaur> tomsmeding, it's also the default in 9.2.1
2021-12-01 18:39:18 +0100mbuf(~Shakthi@27.58.139.230) (Quit: Leaving)
2021-12-01 18:39:18 +0100 <merijn> actually, the version doesn't mention any change, so looks like Haskell98 in all cabal versions
2021-12-01 18:39:37 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 18:39:53 +0100Farzad(~FarzadBek@5.234.246.252) (Ping timeout: 256 seconds)
2021-12-01 18:40:25 +0100 <merijn> ah, no, in 3.4 the default-language is optional and set to the compiler's default...so that's a terrible idea
2021-12-01 18:40:25 +0100 <sclv> right, i think that cabal init will tend to add Haskell2010 when you init, however
2021-12-01 18:40:30 +0100 <sclv> oh wait, ugh
2021-12-01 18:40:39 +0100 <merijn> Who thought that was a good idea
2021-12-01 18:40:40 +0100 <tomsmeding> "default in cabal files" for me is "whatever is in the last project that I happen to copy the .cabal file from" :p
2021-12-01 18:40:43 +0100 <sclv> well, both can be true :-)
2021-12-01 18:41:01 +0100 <sclv> (i.e. that cabal init gives it explicitly, and also the spec has this silly floating default)
2021-12-01 18:41:37 +0100 <davean> merijn: Not true?
2021-12-01 18:41:39 +0100 <boxscape> cabal init sets it to Haskell2010 in cabal 3.6 for me
2021-12-01 18:41:45 +0100 <merijn> davean: What is not true?
2021-12-01 18:41:46 +0100 <boxscape> oh sclv said as much
2021-12-01 18:41:51 +0100 <davean> merijn: Your claim about 3.4
2021-12-01 18:42:07 +0100 <merijn> davean: https://cabal.readthedocs.io/en/latest/file-format-changelog.html#cabal-version-3-4
2021-12-01 18:42:14 +0100 <merijn> davean: Well, the docs disagree with you there :p
2021-12-01 18:42:37 +0100 <davean> Its just ... false. Thats not how cabal init behaves, it puts in default-language:
2021-12-01 18:42:40 +0100 <davean> Haskell2010
2021-12-01 18:42:44 +0100 <merijn> hold on
2021-12-01 18:42:51 +0100 <boxscape> I don't think the docs are talking about cabal init
2021-12-01 18:43:00 +0100 <merijn> cabal init and the version of your cabal executable are entirely unrelated to what I'm saying
2021-12-01 18:43:03 +0100 <boxscape> they're talking about what the value is if your cabal file doesn't have default-language
2021-12-01 18:43:12 +0100 <merijn> davean: Neither was I?
2021-12-01 18:43:12 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 18:43:20 +0100 <davean> ok
2021-12-01 18:43:22 +0100 <merijn> Also, cabal init default to 2.4, iirc
2021-12-01 18:43:30 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
2021-12-01 18:43:35 +0100 <merijn> In which version the default language is not optional
2021-12-01 18:44:11 +0100barrucadu(~barrucadu@carcosa.barrucadu.co.uk)
2021-12-01 18:44:30 +0100 <davean> merijn: sorry, I'd thought you were refering to the conversation around it, not making a seperate statement
2021-12-01 18:45:06 +0100 <davean> (Specificly you'd said 'cabal', not 'Cabal' right before it)
2021-12-01 18:47:21 +0100 <pragma-> So the cabal package manager can never be at the beginning of a sentence.
2021-12-01 18:47:48 +0100 <davean> pragma-: why is that?
2021-12-01 18:47:49 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-01 18:47:55 +0100 <merijn> davean: The capitalisation ;)
2021-12-01 18:48:09 +0100 <davean> merijn: you just don't capitalize it at the start of a sentance
2021-12-01 18:48:15 +0100 <geekosaur> well, you can stil refer to it as cabal-install
2021-12-01 18:48:16 +0100 <sclv> wow you're really capitalizing on this confusion here
2021-12-01 18:48:29 +0100 <monochrom> I violate the capitalization convention when in this kind of situations.
2021-12-01 18:48:47 +0100 <EvanR> does Haskell2010 enable new things by default like this new "standard" does?
2021-12-01 18:48:49 +0100 <monochrom> "t is a type variable" rather than "T is a type variable"
2021-12-01 18:49:10 +0100 <monochrom> Also not bothering with the trick of "The t there is a type variable".
2021-12-01 18:49:33 +0100 <EvanR> to be super proper should t be in quotes or another font xD
2021-12-01 18:49:41 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds)
2021-12-01 18:49:42 +0100 <monochrom> But I know that there are English grammatists who go out of their way to do rewording like that.
2021-12-01 18:49:52 +0100 <davean> The only language standard I know to get the start of a sentance wrong is APA, and I don't even think they'd agree with their own rules if they thought about them
2021-12-01 18:50:06 +0100 <Hecate> perl is also something like this
2021-12-01 18:50:16 +0100 <Hecate> perl -> the cli tool (so really perl(1))
2021-12-01 18:50:19 +0100 <Hecate> Perl -> the language
2021-12-01 18:50:25 +0100 <monochrom> And sclv: haha
2021-12-01 18:50:29 +0100 <boxscape> EvanR: differences to Haskell98: FFI, Hierarchical module names, Pattern guards, no n+k patterns. Though I believe ghc lets you use pattern guards even with Haskell98
2021-12-01 18:50:42 +0100 <EvanR> Haskell the language, haskell the cli tool, wait that would be cool
2021-12-01 18:50:56 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-01 18:51:26 +0100 <EvanR> what about FFI?
2021-12-01 18:51:30 +0100srk(~sorki@user/srk)
2021-12-01 18:51:53 +0100 <EvanR> how does that pertain to the language
2021-12-01 18:51:59 +0100 <monochrom> Well, "runhaskell" comes close.
2021-12-01 18:52:16 +0100 <EvanR> runHaskell xD
2021-12-01 18:52:21 +0100 <monochrom> haha
2021-12-01 18:52:30 +0100 <monochrom> I hate camel case too.
2021-12-01 18:52:35 +0100 <Franciman> run_haskell
2021-12-01 18:52:35 +0100 <sclv> FFI was an appendix to haskell98, but incorporated in 2010
2021-12-01 18:52:37 +0100 <Franciman> ?
2021-12-01 18:52:47 +0100 <EvanR> caps lock everything was a simpler time
2021-12-01 18:52:48 +0100 <boxscape> EvanR: you can write things like "foreign import" in a Haskell source file
2021-12-01 18:52:54 +0100 <sclv> that said in GHC, h98 and h2010 both have the ffi enabled
2021-12-01 18:52:59 +0100 <EvanR> boxscape, oooh ok
2021-12-01 18:53:09 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-12-01 18:53:16 +0100td_(~td@muedsl-82-207-238-021.citykom.de)
2021-12-01 18:53:55 +0100 <EvanR> there are too many conventions for writing multiple words as one. Obviously we can fix it all by inventing new tech that lets you just use spaces
2021-12-01 18:54:24 +0100 <EvanR> (or reviving old old tech that had this)
2021-12-01 18:54:30 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-12-01 18:54:30 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-12-01 18:54:33 +0100allbery_bgeekosaur
2021-12-01 18:54:33 +0100 <boxscape> that tech is called "not using ASCII files to represent ASTs"
2021-12-01 18:54:41 +0100 <davean> EvanR: Just out in non-breaking spaces
2021-12-01 18:54:45 +0100 <EvanR> lol
2021-12-01 18:54:58 +0100 <monochrom> "Space, the final frontier"
2021-12-01 18:55:00 +0100 <EvanR> not using text files is one way I guess but no
2021-12-01 18:55:11 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-12-01 18:55:45 +0100 <monochrom> Can Programming Be Liberated from The Plain Text File
2021-12-01 18:56:13 +0100 <EvanR> I didn't want to open that can
2021-12-01 18:57:14 +0100 <pragma-> monochrom: certainly! https://www.dangermouse.net/esoteric/piet/samples.html
2021-12-01 18:59:38 +0100 <monochrom> The Cödel Incompleteness Theorem
2021-12-01 19:03:03 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 19:04:51 +0100jncraton(~jncraton@199.8.13.16) (Quit: leaving)
2021-12-01 19:05:05 +0100vysn(~vysn@user/vysn) (Ping timeout: 252 seconds)
2021-12-01 19:06:50 +0100 <EvanR> is there a Piet on a Parasail (webframework)
2021-12-01 19:07:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Ping timeout: 252 seconds)
2021-12-01 19:08:27 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
2021-12-01 19:09:21 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 19:13:04 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-01 19:13:43 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-01 19:13:53 +0100td_(~td@muedsl-82-207-238-021.citykom.de) (Ping timeout: 256 seconds)
2021-12-01 19:13:57 +0100gabriel(~gabriel@188-167-229-200.dynamic.chello.sk)
2021-12-01 19:14:07 +0100gabrielgabriel_sevecek
2021-12-01 19:15:30 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-12-01 19:15:43 +0100td_(~td@94.134.91.22)
2021-12-01 19:15:48 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-01 19:23:07 +0100Guest1723(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-01 19:27:36 +0100alx741(~alx741@181.196.69.156) (Quit: alx741)
2021-12-01 19:30:02 +0100alzgh(alzgh@user/alzgh) (Remote host closed the connection)
2021-12-01 19:30:22 +0100alzgh(alzgh@user/alzgh)
2021-12-01 19:31:11 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-01 19:31:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 19:33:07 +0100pfurla(~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…)
2021-12-01 19:36:34 +0100alx741(~alx741@181.196.68.155)
2021-12-01 19:36:57 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection)
2021-12-01 19:37:21 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-01 19:39:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 19:41:46 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 19:43:26 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 19:43:44 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 19:44:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 19:44:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 19:45:14 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-12-01 19:45:47 +0100cheater(~Username@user/cheater)
2021-12-01 19:46:50 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
2021-12-01 19:48:43 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
2021-12-01 19:50:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 19:50:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 19:52:05 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Read error: Connection reset by peer)
2021-12-01 19:52:36 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-01 19:53:51 +0100econo(uid147250@user/econo)
2021-12-01 19:55:15 +0100Guest1723(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
2021-12-01 19:55:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 19:56:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 19:57:34 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 19:57:49 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 19:57:52 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 19:59:32 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 19:59:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 20:01:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 20:01:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 20:01:46 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 20:01:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:03:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 20:03:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 20:04:10 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-01 20:04:36 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-12-01 20:04:49 +0100nvmd(~nvmd@user/nvmd)
2021-12-01 20:05:13 +0100rkrishnan(~user@122.171.76.46) (Ping timeout: 252 seconds)
2021-12-01 20:06:06 +0100ec_(~ec@gateway/tor-sasl/ec)
2021-12-01 20:07:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 20:07:36 +0100alzgh(alzgh@user/alzgh) (Remote host closed the connection)
2021-12-01 20:07:51 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-12-01 20:07:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:07:57 +0100alzgh(alzgh@user/alzgh)
2021-12-01 20:08:09 +0100zuserm(~mz@71.161.92.216) ()
2021-12-01 20:08:21 +0100hololeap(~hololeap@user/hololeap)
2021-12-01 20:09:43 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-01 20:09:43 +0100Vajb(~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-12-01 20:10:09 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-01 20:10:30 +0100fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-12-01 20:12:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 20:12:30 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 20:12:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 20:13:19 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-12-01 20:13:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:14:56 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds)
2021-12-01 20:15:59 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
2021-12-01 20:17:24 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-01 20:18:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 20:19:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:19:24 +0100jncraton(~jncraton@199.8.13.16)
2021-12-01 20:19:39 +0100WatermelonStory(~Watermelo@199.8.13.237)
2021-12-01 20:21:24 +0100WatermelonStory(~Watermelo@199.8.13.237) ()
2021-12-01 20:22:05 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 252 seconds)
2021-12-01 20:24:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 20:24:43 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-12-01 20:24:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:27:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 20:27:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 20:28:21 +0100 <maerwald> is `arch` command available on macOS by default or only if you install coreutils via brew?
2021-12-01 20:28:27 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 20:29:09 +0100 <dsal> I don't use homebrew, but I have /usr/bin/arch
2021-12-01 20:29:38 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 20:30:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 20:30:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:34:25 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 20:34:44 +0100 <maerwald> it seems uname -m behaves very different from arch under rosetta
2021-12-01 20:36:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 20:36:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:38:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 20:38:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 20:41:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 20:41:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:42:35 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
2021-12-01 20:43:36 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
2021-12-01 20:47:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 20:47:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:48:02 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
2021-12-01 20:48:39 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 20:52:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 20:53:08 +0100fef(~thedawn@user/thedawn)
2021-12-01 20:53:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 20:53:15 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-01 20:55:19 +0100alzgh(alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-12-01 20:59:48 +0100alzgh(~alzgh@user/alzgh)
2021-12-01 20:59:54 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-01 21:00:53 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
2021-12-01 21:02:30 +0100fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-12-01 21:03:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 21:03:16 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-01 21:03:31 +0100shriekingnoise(~shrieking@186.137.144.80) (Ping timeout: 252 seconds)
2021-12-01 21:04:12 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
2021-12-01 21:04:32 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-12-01 21:04:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 21:05:09 +0100deadmarshal(~deadmarsh@95.38.115.243)
2021-12-01 21:05:21 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 252 seconds)
2021-12-01 21:05:32 +0100jncraton(~jncraton@199.8.13.16) (Quit: leaving)
2021-12-01 21:05:40 +0100Feuermagier_(~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8)
2021-12-01 21:07:20 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:07:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:07:38 +0100juhp(~juhp@128.106.188.82)
2021-12-01 21:08:27 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
2021-12-01 21:08:33 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702)
2021-12-01 21:10:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 21:10:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 21:11:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
2021-12-01 21:11:36 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-12-01 21:13:48 +0100Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2021-12-01 21:13:56 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-12-01 21:15:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 21:16:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 21:18:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:18:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:20:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:20:46 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:21:05 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-01 21:21:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 21:21:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 21:22:02 +0100nschoe(~quassel@2a01:e0a:8e:a190:8ef1:d1b1:96b4:f9df) (Ping timeout: 252 seconds)
2021-12-01 21:23:26 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-01 21:26:16 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-12-01 21:26:31 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-01 21:26:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 21:27:15 +0100aweinstock(~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (Ping timeout: 250 seconds)
2021-12-01 21:27:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 21:31:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:31:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:32:09 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-12-01 21:32:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 21:32:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 21:36:31 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-12-01 21:37:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-01 21:38:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 21:40:17 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
2021-12-01 21:43:06 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-01 21:44:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 21:44:07 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-12-01 21:47:17 +0100bliminse(~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving)
2021-12-01 21:49:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:49:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:51:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:51:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:53:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:53:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:57:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 21:57:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 21:58:01 +0100pavonia(~user@user/siracusa)
2021-12-01 22:01:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 22:01:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 22:02:25 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f)
2021-12-01 22:03:21 +0100narendraj9(~user@2a02:8109:b63f:ff7c::57b2)
2021-12-01 22:05:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 22:05:18 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 22:06:41 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net)
2021-12-01 22:07:03 +0100Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2021-12-01 22:08:20 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-12-01 22:09:26 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-12-01 22:11:19 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
2021-12-01 22:12:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-01 22:13:56 +0100Codaraxis__(~Codaraxis@user/codaraxis)
2021-12-01 22:15:19 +0100michalz(~michalz@185.246.204.43) (Remote host closed the connection)
2021-12-01 22:16:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-01 22:17:02 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 252 seconds)
2021-12-01 22:17:35 +0100Codaraxis_(~Codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
2021-12-01 22:19:47 +0100xff0x(~xff0x@2001:1a81:530d:ee00:fdea:9bb5:abe4:a159) (Ping timeout: 252 seconds)
2021-12-01 22:20:52 +0100Feuermagier_(~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) (Ping timeout: 268 seconds)
2021-12-01 22:21:20 +0100acidjnk_new(~acidjnk@p200300d0c7271e31dccc5136b6b31647.dip0.t-ipconnect.de)
2021-12-01 22:21:31 +0100xff0x(~xff0x@2001:1a81:5339:b000:22b1:7654:f125:7b04)
2021-12-01 22:22:13 +0100Feuermagier_(~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8)
2021-12-01 22:22:27 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
2021-12-01 22:24:48 +0100FarzadBekran_(~FarzadBek@94.74.153.122) (Quit: Leaving)
2021-12-01 22:25:50 +0100reumeth(~reumeth@user/reumeth) (Ping timeout: 252 seconds)
2021-12-01 22:27:07 +0100stefan-_(~cri@42dots.de) (Ping timeout: 252 seconds)
2021-12-01 22:27:22 +0100narendraj9(~user@2a02:8109:b63f:ff7c::57b2) (Remote host closed the connection)
2021-12-01 22:28:40 +0100ph88(~ph88@2a02:8109:9e00:71d0:54ac:14f0:5fcb:286d)
2021-12-01 22:31:07 +0100stefan-_(~cri@42dots.de)
2021-12-01 22:31:07 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
2021-12-01 22:33:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 22:34:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 22:36:07 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-01 22:40:02 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
2021-12-01 22:41:07 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-12-01 22:42:47 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 22:42:53 +0100Megant(~kaitsu@user/megant) (Ping timeout: 252 seconds)
2021-12-01 22:43:04 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 22:44:51 +0100Megant(megant@user/megant)
2021-12-01 22:45:56 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-01 22:46:11 +0100mestre(~mestre@191.177.175.57)
2021-12-01 22:46:27 +0100deadmarshal(~deadmarsh@95.38.115.243) (Ping timeout: 256 seconds)
2021-12-01 22:49:06 +0100Guest|27(~Guest|27@cpea456cc4b1ddd-cma456cc4b1ddb.cpe.net.cable.rogers.com) (Quit: Connection closed)
2021-12-01 22:50:22 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-01 22:52:02 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 22:52:07 +0100 <hololeap> is there a good reference where I can see what version of e.g. filepath comes bundled with GHC-x.y.z
2021-12-01 22:52:20 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 22:53:30 +0100 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history ?
2021-12-01 22:53:31 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds)
2021-12-01 22:54:43 +0100 <hololeap> perfect, thank you
2021-12-01 22:54:53 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-01 22:55:36 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1))
2021-12-01 22:56:51 +0100 <monochrom> If you just need one x.y.z, the GHC user's guide has it in release notes.
2021-12-01 22:57:23 +0100 <monochrom> If you have the GHC version installed, "ghc-pkg list"
2021-12-01 22:59:04 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-12-01 23:01:16 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net)
2021-12-01 23:01:33 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
2021-12-01 23:02:17 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-12-01 23:03:00 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-01 23:03:58 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
2021-12-01 23:04:14 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.3)
2021-12-01 23:04:29 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-01 23:04:49 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
2021-12-01 23:05:41 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk)
2021-12-01 23:06:04 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Client Quit)
2021-12-01 23:06:21 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-01 23:06:47 +0100Guest1731(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-01 23:09:45 +0100kennyd(~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
2021-12-01 23:11:31 +0100 <dmj`> anyone know what this is about https://hackage.haskell.org/package/hermes "legal reasons"
2021-12-01 23:12:14 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
2021-12-01 23:14:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 23:14:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 23:14:55 +0100 <monochrom> I don't really know, but I guess license issues. Also, take a look at https://hackage.haskell.org/packages/search?terms=hermes
2021-12-01 23:15:53 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-12-01 23:16:22 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-01 23:18:42 +0100 <hpc> ooh, it's even a 451 status
2021-12-01 23:20:05 +0100Alleria(~textual@user/alleria)
2021-12-01 23:20:23 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
2021-12-01 23:24:37 +0100mikail(~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303)
2021-12-01 23:24:43 +0100mikail_(~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303)
2021-12-01 23:24:50 +0100mikail_(~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Remote host closed the connection)
2021-12-01 23:24:50 +0100mikail(~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Remote host closed the connection)
2021-12-01 23:25:06 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (Remote host closed the connection)
2021-12-01 23:25:09 +0100mikail(~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303)
2021-12-01 23:27:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-01 23:27:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-01 23:27:52 +0100Lycurgus(~juan@98.4.112.204)
2021-12-01 23:28:06 +0100 <hololeap> does System.IO.withFile apply `hSetEncoding h localeEncoding` by default?
2021-12-01 23:28:36 +0100 <hololeap> on the handle it passes to the continuation
2021-12-01 23:30:13 +0100 <boxscape> > 1 `2` 3
2021-12-01 23:30:13 +0100 <boxscape> I feel like this should work
2021-12-01 23:30:14 +0100 <lambdabot> <hint>:1:4: error: parse error on input ‘2’
2021-12-01 23:30:20 +0100 <hololeap> I'm looking at how to reproduce the withTextFile function from the (deprecated) system-fileio package
2021-12-01 23:30:21 +0100 <boxscape> what if I want to use 2 as a binary operator
2021-12-01 23:30:23 +0100 <hololeap> https://hackage.haskell.org/package/system-fileio-0.3.16.4/docs/Filesystem.html#v:withTextFile
2021-12-01 23:30:33 +0100Alleria(~textual@user/alleria) (Quit: Textual IRC Client: www.textualapp.com)
2021-12-01 23:31:30 +0100 <hololeap> boxscape: that's the stinkiest code I've seen in a while
2021-12-01 23:31:34 +0100 <monochrom> I don't know, but I know that withFile sets the same modes as openFile, which is at least text mode.
2021-12-01 23:31:54 +0100 <boxscape> 😊
2021-12-01 23:32:06 +0100 <geekosaur> `` wants an identifier, and 2 isn't one
2021-12-01 23:32:12 +0100 <monochrom> withFile is literally doing a bracket over openFile and hClose
2021-12-01 23:32:23 +0100 <boxscape_> yes, I understand *why* it doesn't work, I just think it should
2021-12-01 23:32:36 +0100 <geekosaur> moreover I suspect you'd be bitten by the implicit fromInteger if it did
2021-12-01 23:32:41 +0100 <int-e> dmj`: There's a Hermes package, maybe that's what you wanted? hermes had exactly one upload, https://paste.debian.net/1221574/ is the .cabal file (which is maintained in the append-only index); maybe an accidental 'cabal upload' with misconfigured upstream hackage server?
2021-12-01 23:33:19 +0100 <boxscape_> geekosaur I want fromInteger - let's say I have a Num instance for `String -> String -> String` and I write "hello" `2` "world"
2021-12-01 23:33:49 +0100 <monochrom> I do guess that locale encoding is the default. You have to say like openBinaryFile or withBInaryFile to get verbatim bytes.
2021-12-01 23:34:06 +0100 <geekosaur> and I find the whole notion of wanting a number to behave as an infix weird
2021-12-01 23:34:19 +0100 <boxscape_> (to be fair at that point the desugaring would be strange, I admit)
2021-12-01 23:34:43 +0100 <dmj`> int-e: hmm, since there is pending legal action is this package dead in the water? Is it possible the existing lowercase "hermes" package could be removed and allow for a different package to be uploaded? Or is any use of hermes on hackage not permitted whatsoever
2021-12-01 23:35:07 +0100 <int-e> dmj`: https://hackage.haskell.org/package/Hermes
2021-12-01 23:35:36 +0100 <int-e> hackage is case-sensitive (even though it tries not to be these days, but that happened as an afterthought)
2021-12-01 23:37:15 +0100 <int-e> dmj`: I don't really know anything about it, I'm just looking at links and history and hackage's index
2021-12-01 23:38:08 +0100 <monochrom> Well, Hermes is deprecated too, if you use it you will have tech debt.
2021-12-01 23:38:24 +0100 <monochrom> Not to say that I know what hermes is about in the first place.
2021-12-01 23:38:27 +0100 <dmj`> int-e: Okay, maybe I'll ask on #hackage, I'd like to remove the lowercase hermes if possible.
2021-12-01 23:38:30 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-01 23:38:44 +0100 <int-e> Oh sure, but that's a much more common situation than the suggestion of legal action
2021-12-01 23:39:08 +0100 <monochrom> Legal drama on Hackage...
2021-12-01 23:39:18 +0100 <dmj`> Didn't realize there was an uppercase Hermes :) the legal action notice on https://hackage.haskell.org/package/hermes is concerning.
2021-12-01 23:39:38 +0100 <int-e> (There doesn't need to be any legal action; if it was an accidental upload, surely hackage maintainers would just erase the upload and block the index page when asked nicely.)
2021-12-01 23:40:04 +0100 <dmj`> monochrom: billions in settlements happening I'm sure
2021-12-01 23:40:07 +0100 <int-e> it just says "legal reasons"
2021-12-01 23:40:55 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-12-01 23:41:04 +0100alzgh(~alzgh@user/alzgh)
2021-12-01 23:41:36 +0100 <geekosaur> and legal reasons might just be the OtherLicense
2021-12-01 23:41:37 +0100 <dmj`> int-e: since it hasn't been touched in almost 7 years I had hoped the lawsuit was settled by now :)
2021-12-01 23:41:59 +0100 <maerwald> still waiting for supreme court ruling
2021-12-01 23:42:14 +0100 <monochrom> Judge Kattis is my most favourite judge. kattis.com Plus it is a lovely cat. <3
2021-12-01 23:42:21 +0100 <int-e> (I'm basing the idea that it was an accidental upload mainly on the fact that only a single version was ever uploaded.)
2021-12-01 23:43:33 +0100 <monochrom> On April 1st, all GHC error messages are amended to say "for legal reasons" >:)
2021-12-01 23:43:45 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-12-01 23:44:20 +0100 <monochrom> Could match Int with Bool for legal reasons.
2021-12-01 23:44:25 +0100 <monochrom> err, Couldn't!
2021-12-01 23:44:44 +0100 <hpc> on april 1st, errors on lines containing "::" should say T_PAAMAYIM_NEKUDOTAYIM
2021-12-01 23:44:51 +0100 <monochrom> heh
2021-12-01 23:44:51 +0100 <Hecate> monochrom: LOL
2021-12-01 23:44:55 +0100 <Hecate> hpc: hahahaahah
2021-12-01 23:45:06 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-12-01 23:45:06 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-12-01 23:45:16 +0100 <boxscape> Illegal type family synonym family application in instance for legal reasons
2021-12-01 23:45:29 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-01 23:45:36 +0100 <int-e> dmj`: It's a different package.
2021-12-01 23:46:35 +0100 <int-e> But whatever, I shouldn't care.
2021-12-01 23:48:20 +0100nvmd(~nvmd@user/nvmd) (Ping timeout: 252 seconds)
2021-12-01 23:49:06 +0100 <dmj`> int-e: I think you're right though, probably just uploaded AllRightsReserved accidentally.
2021-12-01 23:49:15 +0100 <dmj`> int-e: Different package, but different author too, so probably wasn't just a fat finger on the capitalization.
2021-12-01 23:50:03 +0100nvmd(~nvmd@user/nvmd)
2021-12-01 23:50:47 +0100 <dmj`> I'll ask in #hackage
2021-12-01 23:51:46 +0100 <dmj`> "typeclass action lawsuit pending"
2021-12-01 23:52:07 +0100 <monochrom> :)
2021-12-01 23:52:14 +0100 <dsal> This whole thing about `2` sent me down a strange rabbit hole where I was trying to make a type called `Family` where `2 Fast 2 Furious` is a valid expression. I got it working, but it's pretty stupid.
2021-12-01 23:52:32 +0100 <monochrom> Illegal instance Num [Char] for legal reasons >:)
2021-12-01 23:52:53 +0100Guest1731(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-12-01 23:53:07 +0100 <monochrom> Err, would be more funny with Illegal instance Monad ZipList for legal reasons!
2021-12-01 23:54:37 +0100deadmarshal(~deadmarsh@95.38.119.167)
2021-12-01 23:54:48 +0100 <monochrom> dsal: Does it also cover "Fast & Furious 6", especially the & and the 6?
2021-12-01 23:55:33 +0100 <dsal> Not even type families have strong enough bonds.
2021-12-01 23:56:05 +0100 <dsal> This is one of those things I think I could do, but every character I enter seems more stupid than the last.
2021-12-01 23:56:12 +0100 <hpc> sysadmins prefer nfs://underground
2021-12-01 23:56:33 +0100 <monochrom> That's just because family movies are not Bond movies. >:)
2021-12-01 23:56:42 +0100 <dsal> ha
2021-12-01 23:56:57 +0100 <int-e> . o O ( NFT is the successor of NFS )
2021-12-01 23:57:21 +0100 <dsal> oh no
2021-12-01 23:57:49 +0100 <hpc> i wonder what it would take to design a language around the principle of "you only die twice"
2021-12-01 23:57:54 +0100 <sclv> for the record: the status is the resolution to this
2021-12-01 23:57:56 +0100 <int-e> it's okay, they're both terrible :P
2021-12-01 23:57:59 +0100 <sclv> there's no reason to chage or remove it
2021-12-01 23:58:01 +0100 <sclv> its fine
2021-12-01 23:58:10 +0100 <hpc> some kind of weird linear type system maybe?
2021-12-01 23:58:24 +0100 <dsal> Could not impement "Die, Die, Die, my Darling"
2021-12-01 23:58:51 +0100 <sclv> in _theory_ we could do a full rewrite and reset of the immutable index to clean out that package and one other like it, and a few spam packages
2021-12-01 23:59:01 +0100 <sclv> in practice there's not enough reason to at this point, or really indefinitely
2021-12-01 23:59:09 +0100 <monochrom> I think CPU hardware exceptions are designed around "you only die twice". CPUs have this notion of "double fault" when that happens and basically gives up.
2021-12-01 23:59:09 +0100deadmarshal(~deadmarsh@95.38.119.167) (Ping timeout: 252 seconds)
2021-12-01 23:59:12 +0100 <hpc> /usr/bin/goldfinger