Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,804,036 events total
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.