Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,804,074 events total
2021-08-14 19:50:38 <maerwald[m]> Also, trying to figure out how cabal invokes GHC is impossible, or know linking order etc etc
2021-08-14 19:50:52 <sclv> the linking order should be in the build plan
2021-08-14 19:50:58 <sclv> and the invocations are all printed with -v3
2021-08-14 19:51:18 <sclv> i agree that pkgconf story needs some tlc and a good design
2021-08-14 19:52:28 <maerwald[m]> sclv: https://gitlab.haskell.org/ghc/ghc/-/issues/19945
2021-08-14 19:53:14 <maerwald[m]> That's one instance where include dir order was totally random and impossible to control
2021-08-14 19:53:41 <maerwald[m]> Took more than an hour to debug
2021-08-14 19:53:58 <sclv> yeah that's a good issue -- not just a cabal problem though, relates to ghc design as well right?
2021-08-14 19:54:13 <maerwald[m]> The abstraction is thick, you get little to no access to the underlying details
2021-08-14 19:54:42 <maerwald[m]> I'm not sure if you had the same problem if you used shake or make with ghc
2021-08-14 19:56:09 × machined1od quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds)
2021-08-14 19:57:02 lbseale joins (~lbseale@user/ep1ctetus)
2021-08-14 19:57:16 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-08-14 19:58:09 alx741 joins (~alx741@186.178.108.32)
2021-08-14 19:58:13 × peterhil_ quits (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Quit: Must not waste too much time here...)
2021-08-14 19:58:30 <maerwald[m]> Here's some background about the oddities of cabals pkg-config story https://github.com/haskell/cabal/issues/6771
2021-08-14 19:59:56 <maerwald[m]> And it turned out there's no one left who understands what is going on :)
2021-08-14 20:00:26 <sclv> oh the solver's not that scary. and we do have the solver experts around to consult with, oleg was exaggerating
2021-08-14 20:00:42 <dminuoso> What knowledge does cabal solver use from pkgconfig exactly
2021-08-14 20:01:04 <sclv> i was just looking at related stuff the other day -- i didn't dig into that precise vein of stuff, but it looked straightforward
2021-08-14 20:01:06 <sclv> sec
2021-08-14 20:01:22 acidjnk joins (~acidjnk@p200300d0c72b9508a1e806c8914cbd0f.dip0.t-ipconnect.de)
2021-08-14 20:01:33 × Shaeto quits (~Shaeto@94.25.234.248) (Quit: WeeChat 3.1)
2021-08-14 20:01:34 <maerwald[m]> Which packages exist and it may switch flags depending on it
2021-08-14 20:01:38 peterhil joins (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-08-14 20:02:19 <maerwald[m]> But it doesn't seem clear how it works
2021-08-14 20:04:41 <maerwald[m]> From an implementation perspective, stack code is easier to understand than cabal-install imo. That, imo, also explains the lack of maintainers
2021-08-14 20:05:00 <sclv> this is really the full interaction: https://github.com/haskell/cabal/blob/00a2351789a460700a2567eb5ecc42cca0af913f/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Validate.hs#L410
2021-08-14 20:05:13 <sclv> its blindingly clear
2021-08-14 20:05:43 <sclv> if you're in a branch of the search tree that requires a package be available in pkgconfig and that fails, then fail the branch and backtrack
2021-08-14 20:05:54 <sclv> that's it
2021-08-14 20:06:01 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 268 seconds)
2021-08-14 20:06:12 <sclv> everything else is just plumbing
2021-08-14 20:06:31 <sclv> also what happened is cabal had some core maintainers step away, is all
2021-08-14 20:06:42 <sclv> at the moment it has some enthusiastic new ones, and there's plenty of contributing volunteers
2021-08-14 20:06:58 <sclv> this "x code is harder than y code to understand" stuff is usually bogus in my experience
2021-08-14 20:07:05 <sclv> the harder code to understand is the code you've worked with less
2021-08-14 20:07:39 juhp joins (~juhp@128.106.188.220)
2021-08-14 20:07:44 <maerwald[m]> I hacked on both and that's my experience
2021-08-14 20:08:20 <maerwald[m]> Definitely didn't work more on stack :)
2021-08-14 20:08:22 <sclv> in my experience, a few things in cabal are hard, like the flag/config passing is overcomplicated
2021-08-14 20:08:31 <sclv> plenty of other things are pretty modular and easy
2021-08-14 20:08:52 <sclv> the solver took a minute to get used to, but once i got it, i thought it was very well engineered
2021-08-14 20:09:47 <sclv> the general stuff with what level options act at and how they get threaded thru to different programs is as a whole a Big hard problem thats not fully there, and v2 made it even harder, because there's so many different variants
2021-08-14 20:10:04 <sclv> since at different parts of the plan, you can potentially have different options being used for the same package, etc
2021-08-14 20:10:54 × derelict quits (~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-08-14 20:10:55 <dsal> Is 'protofunctor' an actual thing? I'm looking and I find profunctor descriptions and what looks like might be typos or Mandela effects or something.
2021-08-14 20:11:30 <maerwald[m]> You seem to agree with my original statement that cabal is not simple :p
2021-08-14 20:11:34 amesgen[m] is now known as amesgen
2021-08-14 20:11:40 <sclv> Cabal the library is simple
2021-08-14 20:11:46 <sclv> cabal-install is not much harder than it needs to be, imho
2021-08-14 20:11:55 <maerwald[m]> Yes
2021-08-14 20:11:57 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-08-14 20:12:05 <maerwald[m]> Well, I think it is
2021-08-14 20:12:09 <sclv> with the exception of the args parsing, which is not so much complex, as just "stupidly verbose"
2021-08-14 20:13:05 <maerwald[m]> But I'm glad people are working on it
2021-08-14 20:13:10 <sclv> dsal: a protofunctor should be a morphism between protocategories
2021-08-14 20:13:15 <sclv> https://ncatlab.org/nlab/show/protocategory
2021-08-14 20:13:28 <sclv> but i think that's going to be obscure and almost never what someone means
2021-08-14 20:15:27 <dsal> That might be too deep in category theory for me. I'm going to assume people generally mean profunctor but want more syllables.
2021-08-14 20:15:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-14 20:15:41 <monochrom> :)
2021-08-14 20:16:03 amesgen is now known as amesgen[m]
2021-08-14 20:18:16 wonko joins (~wjc@62.115.229.50)
2021-08-14 20:18:37 <sm> supersubprotofunctorialoid
2021-08-14 20:21:12 <hpc> zygohistomorphic prepromorphism?
2021-08-14 20:23:18 <dsal> Now that one's just made up.
2021-08-14 20:23:46 × dcompoze quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Quit: WeeChat 3.2)
2021-08-14 20:25:35 <hpc> https://wiki.haskell.org/Zygohistomorphic_prepromorphisms
2021-08-14 20:25:55 <aarchi> tomsmeding: Good to know that ghcup has GHC 7. I've modified the Whitespace interpreter to build on latest GHC and that's been my testing version so far, but I want to test the version as intended by the Whitespace authors using the same GHC version
2021-08-14 20:27:16 <int-e> . o O ( "Most readers get as far as the zygohistomorphic prepromorphism giving up, and in fact in later editions of the book all the pages beyond this point have been left blank to save on printing costs." )
2021-08-14 20:27:26 <int-e> +before
2021-08-14 20:27:34 <hololeap> to be fair, I think edwardk made that up as a joke
2021-08-14 20:28:13 derelict joins (~derelict@user/derelict)
2021-08-14 20:28:59 <int-e> I've got to hand it to Douglas Adams though, "Future Semi-Conditionally Modified Subinverted Plagal Past Subjunctive Intentional" sounds more impressive than "zygohistomorphic prepromorphism".
2021-08-14 20:29:54 <hpc> it's definitely better than physics' "let's name it after me"
2021-08-14 20:30:27 <aarchi> Do any of you know when UTF-8 support was added to readFile, getLine, getChar, putChar, and putStr from System.IO?
2021-08-14 20:30:52 <Hecate> aarchi: no idea
2021-08-14 20:31:36 <hololeap> aarchi: are you trying to set a minimum bound on a "base" dependency?
2021-08-14 20:32:06 jgeerds joins (~jgeerds@55d45555.access.ecotel.net)
2021-08-14 20:32:06 burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk)
2021-08-14 20:32:45 <aarchi> No, I'm writing a spec for the Whitespace programming language, based on the reference interpreter that was written in Haskell in 2004. I want a scope for how different GHC 5.02 is from current GHC
2021-08-14 20:33:56 <Hecate> aarchi: utterly differenct
2021-08-14 20:33:56 <geekosaur> late 6.x but I couldn't tell you exactly when
2021-08-14 20:33:59 <Hecate> *-c
2021-08-14 20:34:00 <hololeap> my uneducated guess is that it will run just as well on modern GHC as it did back in 2004
2021-08-14 20:34:49 <int-e> https://downloads.haskell.org/~ghc/6.12.1/docs/html/users_guide/release-6-12-1.html " Handle IO now supports automatic character set encoding and newline translation. For more information, see the "Unicode encoding/decoding" and "Newline conversion" sections in the System.IO haddock docs."
2021-08-14 20:36:08 <aarchi> int-e: thanks
2021-08-14 20:36:10 × burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-14 20:36:38 <aarchi> Before 6.12.1, IO would only accept ASCII?
2021-08-14 20:36:44 burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk)
2021-08-14 20:36:55 <geekosaur> iso8859-1
2021-08-14 20:37:00 <int-e> it was byte-based (so basically ISO-8859-1)
2021-08-14 20:37:32 × fendor quits (~fendor@178.165.196.92.wireless.dyn.drei.com) (Remote host closed the connection)
2021-08-14 20:37:35 <int-e> good times ;-)
2021-08-14 20:37:36 <aarchi> I presume that nothing would have caused encoding errors then
2021-08-14 20:37:53 <int-e> (not really, but the transition period was pretty nasty)
2021-08-14 20:38:07 <int-e> aarchi: right
2021-08-14 20:38:33 <int-e> not even on writing, IIRC; codepoints would just be truncated to their least significant 8 bits
2021-08-14 20:39:23 <sm> ah! happy error-free days!

All times are in UTC.