Logs: liberachat/#haskell
| 2021-07-10 19:42:18 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 2021-07-10 19:46:08 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-07-10 19:46:58 | <davean> | yin[m]: BTW, it could be more subtle - fusion could be different too for example |
| 2021-07-10 19:47:05 | <davean> | (It doesn't seem to be) |
| 2021-07-10 19:48:53 | <dexterfoo> | how can i have "cabal v2-build" ignore "pkgconfig" section of a dependency? Right now it refuses to try to install it at all |
| 2021-07-10 19:50:35 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 255 seconds) |
| 2021-07-10 19:50:51 | → | chris-the-slurpa joins (~chris@148.252.35.9) |
| 2021-07-10 19:51:36 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 2021-07-10 19:51:56 | × | drd quits (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 255 seconds) |
| 2021-07-10 19:52:20 | × | qbt quits (~edun@user/edun) (Ping timeout: 265 seconds) |
| 2021-07-10 19:52:24 | × | chris-the-slurpa quits (~chris@148.252.35.9) (Remote host closed the connection) |
| 2021-07-10 19:52:27 | → | madjestic joins (~madjestic@88-159-247-120.fixed.kpn.net) |
| 2021-07-10 19:54:35 | → | chris-the-slurpa joins (~chris@148.252.35.9) |
| 2021-07-10 19:55:18 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 268 seconds) |
| 2021-07-10 19:55:24 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 2021-07-10 19:56:20 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 2021-07-10 19:56:58 | × | chris-the-slurpa quits (~chris@148.252.35.9) (Remote host closed the connection) |
| 2021-07-10 19:57:40 | <davean> | dexterfoo: why do you think it could if it ignored that? |
| 2021-07-10 19:58:16 | <davean> | That litterly lists requirements to perform an install |
| 2021-07-10 19:59:07 | → | chris-the-slurpa joins (~chris@148.252.35.9) |
| 2021-07-10 19:59:22 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 240 seconds) |
| 2021-07-10 20:01:06 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 2021-07-10 20:02:19 | <dexterfoo> | because i have the library installed in the system, but i don't use pkg-config on this system |
| 2021-07-10 20:03:15 | × | chris-the-slurpa quits (~chris@148.252.35.9) (Remote host closed the connection) |
| 2021-07-10 20:03:18 | <davean> | well, then it wouldn't be able to install that package, would it? |
| 2021-07-10 20:03:28 | <ahdyt> | https://gist.github.com/danclien/42e54b94498f941abfff |
| 2021-07-10 20:03:37 | <davean> | because pkg-config isn't a system for managing whats installed, its a system for accessing them |
| 2021-07-10 20:03:42 | <ahdyt> | nice explanation of what "plain old functions" are |
| 2021-07-10 20:03:42 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 2021-07-10 20:03:46 | <ahdyt> | lol |
| 2021-07-10 20:04:27 | <ahdyt> | yeah I think class instance thingy are more likely apporaching to OOP? |
| 2021-07-10 20:04:28 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-10 20:04:28 | <monochrom> | Without pkg-config you lose more than an "unnecessary" "protection". pkg-config is also positive in supplying -I paths and -l flags. You lose those too. |
| 2021-07-10 20:04:33 | <dexterfoo> | it will because i set LDFLAGS=-lthelib |
| 2021-07-10 20:04:34 | <davean> | if you want to not use pkg-config, you have to do the build by hand |
| 2021-07-10 20:04:42 | × | juhp quits (~juhp@128.106.188.66) (Ping timeout: 240 seconds) |
| 2021-07-10 20:05:01 | <davean> | ha |
| 2021-07-10 20:05:34 | <davean> | dexterfoo: if you think that'll work, great :) In a few edge cases it might even, a few |
| 2021-07-10 20:05:45 | <davean> | none of the ones I've dealt with mind you |
| 2021-07-10 20:06:00 | <Clint> | so you are volunteering to be a human pkg-config |
| 2021-07-10 20:06:35 | <davean> | Clint: I mean, thats a human VERY incomplete pkg-config |
| 2021-07-10 20:06:43 | <davean> | missing the important bits! |
| 2021-07-10 20:07:29 | <Clint> | well, by the time he manages to get things to work by hand he's covered all the important bits |
| 2021-07-10 20:07:45 | <davean> | I mean yes, when he does |
| 2021-07-10 20:07:51 | <davean> | he'll find out that theres a lot of parts to it! |
| 2021-07-10 20:08:01 | → | juhp joins (~juhp@128.106.188.66) |
| 2021-07-10 20:08:04 | <monochrom> | I can respect "I am aware of manual work in lieu of pkg-confg". Then "patches welcome". |
| 2021-07-10 20:08:09 | <davean> | dexterfoo: you can use Setup.hs |
| 2021-07-10 20:08:26 | <davean> | monochrom: I mean, I would do, if he wasn't showing direct evidence he's unaware of what pkg-config does |
| 2021-07-10 20:09:06 | <davean> | but I guess he'll learn |
| 2021-07-10 20:09:57 | <monochrom> | How many minutes before the discovery of "but Setup.hs doesn't automate Haskell package dependencies"? :) |
| 2021-07-10 20:10:44 | <monochrom> | Also, Setup.hs is emphatically v1, not v2. |
| 2021-07-10 20:11:30 | <mniip> | how would I write `pattern Q :: (a, b) -> (c, d) -> (a, b, c, d)` |
| 2021-07-10 20:12:32 | <monochrom> | I don't think pattern synonyms can be 2-ary. |
| 2021-07-10 20:12:51 | <mniip> | yes they can |
| 2021-07-10 20:12:55 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
| 2021-07-10 20:13:05 | <mniip> | the problem is the construction/deconstruction of (,) in the middle |
| 2021-07-10 20:13:11 | <mniip> | pattern Q m n <- (a, (a,) -> m, c, (c,) -> n) where Q (a, b) (c, d) = (a, b, c, d) |
| 2021-07-10 20:13:15 | <mniip> | but like I don't like this |
| 2021-07-10 20:14:52 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 2021-07-10 20:15:07 | <davean> | monochrom: I mean you can't pass a correct env variable to an automated build either - it would end up in the wrong places! |
| 2021-07-10 20:15:08 | <maerwald> | I'm not convinced that first-class support for pkg-config was a good idea in cabal |
| 2021-07-10 20:16:25 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 2021-07-10 20:16:43 | <davean> | maerwald: I'm not aware of any other idea that has a chance of working, what would you propose? |
| 2021-07-10 20:16:56 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds) |
| 2021-07-10 20:17:11 | × | madjestic quits (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 2021-07-10 20:17:47 | <maerwald> | davean: rust also makes more extensive use of build scripts... so the suggestion would be: clean up the mess that is Setups.hs APIs, make it usable and pkg-config support more robust (because the native one isn't robust) |
| 2021-07-10 20:18:10 | <maerwald> | so yes, if you need pkg-config, you extend Setup.hs |
| 2021-07-10 20:18:27 | <davean> | Ah right, you just want it in a different place |
| 2021-07-10 20:18:32 | <maerwald> | yes |
| 2021-07-10 20:18:35 | <davean> | Ok, that makes sense |
| 2021-07-10 20:18:54 | <maerwald> | Would fix https://github.com/haskell/cabal/issues/6771 |
| 2021-07-10 20:19:09 | <maerwald> | but atm, pkg-config db is used in the solver, so... |
| 2021-07-10 20:19:23 | <davean> | Sure, sure, this is a completely reasonable argument. I'm not sure which side I'm on but its a self-consistent possition which is what I really care about. |
| 2021-07-10 20:19:37 | <davean> | maerwald: I've certainly needed it in the solver! |
| 2021-07-10 20:21:03 | <maerwald> | So, what does it solve? It can't find the .pc file, then tries another version? |
| 2021-07-10 20:21:11 | → | jonathanx joins (~jonathan@94.234.33.210) |
| 2021-07-10 20:21:38 | × | azeem quits (~azeem@176.201.17.130) (Ping timeout: 255 seconds) |
| 2021-07-10 20:22:59 | <davean> | Yah, I've used it to solve for a high performance implimentation vs. a pure one before. Theres other ways to do it probably, but it worked without me changing other things |
| 2021-07-10 20:23:16 | <maerwald> | ah, so it switches flags too |
| 2021-07-10 20:23:33 | <maerwald> | well, I hate automagic flags to begin with |
| 2021-07-10 20:23:47 | <maerwald> | (there's a reason that's banned in e.g. gentoo) |
| 2021-07-10 20:23:51 | → | azeem joins (~azeem@176.201.11.118) |
| 2021-07-10 20:24:31 | <maerwald> | I'd argue the maintainer needs to put in more effort to make their sh*t buildable on all platforms |
| 2021-07-10 20:24:56 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
| 2021-07-10 20:25:49 | <davean> | I mean this is what *does* make it buildable on all platforms |
| 2021-07-10 20:25:57 | <davean> | This gets it the package it needs |
| 2021-07-10 20:26:27 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 2021-07-10 20:26:38 | <maerwald> | well, it may switch from high-performance to poor-performance without you noticing (bc it runs in CI and a new release of the C lib silently dropped pkg-config support, uh) |
| 2021-07-10 20:26:40 | <davean> | Not every package makes sense on every target |
| 2021-07-10 20:27:09 | <davean> | Right, so it still functions correctly then! |
| 2021-07-10 20:27:19 | <maerwald> | now you don't just have poor performance, but also a completely different codepath and classes of bugs |
| 2021-07-10 20:27:21 | <davean> | Thats exactly what it should do - work |
| 2021-07-10 20:28:34 | × | favonia quits (~favonia@user/favonia) (Ping timeout: 246 seconds) |
| 2021-07-10 20:28:42 | <maerwald> | or let's put it this way: if this happened in nix, it would be a huge bug. In cabal it's considered a feature... hmm |
| 2021-07-10 20:29:49 | <davean> | Yah, which is why I get working code out of cabal more than I get it out of nix ;) |
| 2021-07-10 20:29:58 | → | favonia joins (~favonia@user/favonia) |
| 2021-07-10 20:30:48 | <maerwald> | True, I'm mostly unimpressed with nix (the ecosystem), but I like to have predictable tools too, just not over-engineered ones |
| 2021-07-10 20:31:21 | <davean> | I mean then fix the build plan? |
| 2021-07-10 20:31:27 | <maerwald> | yeah |
All times are in UTC.