Logs: liberachat/#haskell
| 2021-08-09 17:10:42 | → | Atum_ joins (~IRC@user/atum/x-2392232) |
| 2021-08-09 17:11:01 | → | azeem joins (~azeem@dynamic-adsl-84-220-236-17.clienti.tiscali.it) |
| 2021-08-09 17:11:25 | <schuelermine[m]> | matrix is super cool |
| 2021-08-09 17:11:42 | × | schuelermine quits (~anselmsch@user/schuelermine) (Client Quit) |
| 2021-08-09 17:12:33 | × | Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 248 seconds) |
| 2021-08-09 17:12:36 | <dminuoso> | lechner: Which part of it confuses you? |
| 2021-08-09 17:12:48 | <dminuoso> | lechner: Try reading the error carefully, see if you can make out what the issue is. |
| 2021-08-09 17:12:58 | <dminuoso> | I think these errors are very verbose, explicit and obvious. |
| 2021-08-09 17:15:08 | → | fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
| 2021-08-09 17:16:16 | <Clint> | dminuoso: it may tell him what the issue is but it doesn't tell him which ones he should be hiding to get it to build |
| 2021-08-09 17:17:36 | × | nilweed quits (~nilweed@c-73-161-233-4.hsd1.mi.comcast.net) (Ping timeout: 272 seconds) |
| 2021-08-09 17:18:09 | <monochrom> | "is this why this package doesn't build on hackage?" meme |
| 2021-08-09 17:18:50 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 2021-08-09 17:19:20 | <dminuoso> | Clint: Maybe. Im just trying to get these details from lechner. |
| 2021-08-09 17:19:25 | Clint | nods. |
| 2021-08-09 17:20:01 | <lechner> | do i have any control over how the imported ema is built via just the cabal.project? |
| 2021-08-09 17:20:46 | <dminuoso> | lechner: Is `ema` listed under build-depends in one component of your cabal file? |
| 2021-08-09 17:21:18 | <lechner> | yes |
| 2021-08-09 17:21:40 | <dminuoso> | Is this an external dependency? Or did you vendor that package? |
| 2021-08-09 17:21:59 | <lechner> | vendored https://dpaste.org/qExW |
| 2021-08-09 17:22:16 | <lechner> | more significantly, i do not understand how I can fix elementary symbol clashes between Relude and System.Environment with outside build instructions |
| 2021-08-09 17:22:55 | <dminuoso> | Mmm, there's likely a missing (or too relaxed) upper bound on relude |
| 2021-08-09 17:23:02 | <monochrom> | In most cases that's barking up the wrong tree. |
| 2021-08-09 17:23:13 | <dminuoso> | Inside the ema package |
| 2021-08-09 17:23:34 | <lechner> | dminuoso: maybe stackage lags? |
| 2021-08-09 17:23:35 | <dminuoso> | If that's the case, you can monkey patch it by introducing an appropriate constraint into your own cabal file. But it's better to fix the underlying issue upstream in the ema package. |
| 2021-08-09 17:23:41 | <monochrom> | In the minority, what dminuoso said, perhaps you need to be very selective about versions. |
| 2021-08-09 17:24:17 | → | jneira[m] joins (~jneira@99.red-176-87-53.dynamicip.rima-tde.net) |
| 2021-08-09 17:24:23 | <dminuoso> | lechner: Ah, presumably ema is originally from stackage? |
| 2021-08-09 17:24:30 | <dminuoso> | Or rather, a stack build package? |
| 2021-08-09 17:24:42 | <dminuoso> | No idea what kind of cabal file you get from hpack. |
| 2021-08-09 17:24:47 | <lechner> | dminuoso: the upstream author uses stack and nix while i would like to use only cabal |
| 2021-08-09 17:25:08 | <lechner> | https://github.com/srid/emanote |
| 2021-08-09 17:25:10 | <dminuoso> | https://github.com/srid/ema/blob/master/ema.cabal#L52 |
| 2021-08-09 17:25:12 | <dminuoso> | Ahh indeed. |
| 2021-08-09 17:25:54 | <dminuoso> | lechner: So ideally, you should add a tight bound to *every* package with the minor version on the correct stackage resolver this builds on. |
| 2021-08-09 17:26:03 | <monochrom> | Well, at this point I would sign it off as "unusable on cabal and hackage". |
| 2021-08-09 17:26:03 | <dminuoso> | For ema. |
| 2021-08-09 17:26:06 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds) |
| 2021-08-09 17:26:29 | <dminuoso> | lechner: You can also introduce these constraints in your own cabal file if you insisted. Id consider it bad style, but its an option nevertheless. |
| 2021-08-09 17:26:36 | <dminuoso> | Though, Id probably rather fork and fix the package. |
| 2021-08-09 17:27:26 | <lechner> | can i impose the upper bound via --constraint 'relude <= X' |
| 2021-08-09 17:27:35 | <dminuoso> | The idea being, stack build packages have implicit constraints by virtue of stackage resolvers only having cherry picked versions. It's a bit sad that hpack doesn't introduce these same constraints (such that cabal would build the same package that stack would) |
| 2021-08-09 17:27:51 | <dminuoso> | lechner: Yes. |
| 2021-08-09 17:28:01 | <lechner> | which X please? |
| 2021-08-09 17:28:14 | <dminuoso> | Check the stackage resolver this is guaranteed to build on |
| 2021-08-09 17:28:17 | <dminuoso> | And see what version it brings for relude |
| 2021-08-09 17:28:26 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
| 2021-08-09 17:28:29 | <lechner> | lts-19.5 |
| 2021-08-09 17:28:33 | <lechner> | 18.5 |
| 2021-08-09 17:29:10 | <dminuoso> | https://www.stackage.org/lts-18.5/package/relude-0.7.0.0 |
| 2021-08-09 17:29:17 | <dminuoso> | https://www.stackage.org/lts-18.5/hoogle?q=relude |
| 2021-08-09 17:29:30 | <dminuoso> | So you can see, the relude version on lts 18.5 is 0.7.0.0 |
| 2021-08-09 17:29:42 | <lechner> | yaah i just found it too |
| 2021-08-09 17:29:46 | <lechner> | yeah |
| 2021-08-09 17:29:57 | <lechner> | happy scream |
| 2021-08-09 17:30:07 | <dminuoso> | lechner: You should probably do this for *every* dependency |
| 2021-08-09 17:30:25 | <dminuoso> | Even if it stlil compiles, because there could be any number of lingering bugs due to untested compabilities |
| 2021-08-09 17:30:34 | <lechner> | it is not imposed globally? |
| 2021-08-09 17:30:40 | <dminuoso> | (these bugs could transcend into the transitive dependency tree) |
| 2021-08-09 17:30:48 | <dminuoso> | lechner: No I meant for every dependency of `ema` |
| 2021-08-09 17:31:25 | <dminuoso> | the author has clearly only tested it against dependencies in 18.5, but hackage likely has more recent *major* versions for every one of those. |
| 2021-08-09 17:31:41 | <dminuoso> | Idelaly you wouldnt use <= here either |
| 2021-08-09 17:31:52 | <lechner> | this is for an experimental wiki for now |
| 2021-08-09 17:32:33 | <dminuoso> | Your choice. I dont know what these libraries do, but if you depend on them, it would make sense that you want them to work right |
| 2021-08-09 17:32:50 | <dminuoso> | As opposed to doing "unexpected things", "deleting files accidentally", "having weird bugs", or something else |
| 2021-08-09 17:33:21 | → | skykanin joins (~skykanin@115.81-166-221.customer.lyse.net) |
| 2021-08-09 17:33:42 | <dminuoso> | 19:31:25 dminuoso | the author has clearly only tested it against dependencies in 18.5, but hackage likely has more recent *major* versions for every one of those. |
| 2021-08-09 17:34:27 | <dminuoso> | lechner: use ^>= as a version constraint, ideally :) |
| 2021-08-09 17:34:36 | <lechner> | dminuoso: https://www.quora.com/Why-is-that-some-people-say-that-if-a-Haskell-program-compiles-it-probably-works?share=1 |
| 2021-08-09 17:34:38 | <dminuoso> | so `relude ^>= 0.7.0.0` |
| 2021-08-09 17:35:06 | <lechner> | or more appropriately, https://wiki.haskell.org/Why_Haskell_just_works |
| 2021-08-09 17:35:22 | <dminuoso> | lechner: There's a lot of misconceptions around this "if it compiles it [probably] works" |
| 2021-08-09 17:35:29 | <dminuoso> | In particular this only holds true for smaller code regions. |
| 2021-08-09 17:35:40 | <dminuoso> | For entire transitive dependency graphs this quickly no longer holds. |
| 2021-08-09 17:35:51 | <dminuoso> | Consider something like `unix` |
| 2021-08-09 17:36:03 | <dminuoso> | Where perhaps the way a given FilePath is interpreted changes between major versions. |
| 2021-08-09 17:36:06 | <maerwald[m]> | heh |
| 2021-08-09 17:36:29 | <lechner> | maybe i should tighten up my prerequisites |
| 2021-08-09 17:36:29 | <maerwald[m]> | "if it compiles it work" is specifically untrue for PVP |
| 2021-08-09 17:36:50 | <lechner> | in other Haskell projects |
| 2021-08-09 17:36:55 | <dminuoso> | lechner: Yes, you should. :) |
| 2021-08-09 17:37:02 | <dminuoso> | `cabal gen-bounds` has your back |
| 2021-08-09 17:38:23 | <lechner> | Well, this is literally a first test run if emanote has any of the features to replace the existing Debian wiki. it will be sandboxed and probably also suffers from genuine bugs |
| 2021-08-09 17:38:29 | × | mikoto-chan quits (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Quit: mikoto-chan) |
| 2021-08-09 17:38:40 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 2021-08-09 17:39:05 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 2021-08-09 17:39:57 | <lechner> | dminuoso: i am still doing something wrong https://paste.debian.net/1207067/ |
| 2021-08-09 17:39:59 | <dminuoso> | In my experience, "if it compiles it [probably!] works" is mostly an effect during refactoring, that after some large code restructuring, the moment everything compiles again, there's a moderately high chance of the refactor being done. |
| 2021-08-09 17:40:04 | × | dka_ quits (~code-is-a@ns3059207.ip-193-70-33.eu) (Quit: My Ex-Girlfriend once told me: I'm not a slut, I'm just popular) |
| 2021-08-09 17:40:17 | <dminuoso> | I want to emphasize on the "moderaly high" portion here. It's by far not a guarantee. |
| 2021-08-09 17:40:36 | <lechner> | right now i can't even get this baby to build |
| 2021-08-09 17:40:51 | <lechner> | and i'm sure it's safer than what i do in Perl |
| 2021-08-09 17:40:56 | <lechner> | :) |
| 2021-08-09 17:41:10 | <maerwald[m]> | That's really the main selling point of haskell: refactoring. Most other things are done better by other languages. |
| 2021-08-09 17:41:22 | → | Guest7145 joins (~Guest71@217.156.31.64) |
| 2021-08-09 17:41:23 | <geekosaur> | strong types help but are not a panacea. and in particular IO is something of a weak type because it doesn't describe what *kind* of IO is happening |
| 2021-08-09 17:41:32 | <maerwald[m]> | But given that refactoring can and should be the biggest part of your daily work, this is a significant selling point |
| 2021-08-09 17:41:33 | × | jneira[m] quits (~jneira@99.red-176-87-53.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 2021-08-09 17:41:39 | <dminuoso> | 'relude ^>= 7.0.0' |
All times are in UTC.