Newest at the top
2025-02-12 22:21:55 +0100 | <tomsmeding> | :3 |
2025-02-12 22:21:20 +0100 | <merijn> | welp, my session if figuring out where the arguments are processed has ended, due to cat blocking my laptop xD |
2025-02-12 22:21:19 +0100 | <EvanR> | inner fmap is the Maybe functor |
2025-02-12 22:20:51 +0100 | <EvanR> | er |
2025-02-12 22:20:36 +0100 | <EvanR> | two different instances |
2025-02-12 22:20:29 +0100 | <EvanR> | outer fmap is function functor |
2025-02-12 22:20:22 +0100 | <EvanR> | the inner fmap is using the list functor |
2025-02-12 22:20:05 +0100 | <merijn> | Because I manually audited a "known-safe to toss" subset of flags and anything not there is kept |
2025-02-12 22:20:03 +0100 | <justsomeguy> | tomsmeding: Why does the outer fmap get rewritten to (.) instead of the inner fmap? |
2025-02-12 22:19:22 +0100 | <merijn> | tomsmeding: yeah, GHC only |
2025-02-12 22:19:13 +0100 | <merijn> | tomsmeding: Maybe? I dunno :p |
2025-02-12 22:19:08 +0100 | <tomsmeding> | for "ghc" specifically, right? |
2025-02-12 22:19:04 +0100 | <merijn> | euouae: yeah .local is just a bunch of overrides merged into cabal.project |
2025-02-12 22:19:03 +0100 | <EvanR> | justsomeguy, what fmap does depends on the particular instance of Functor, it may not be obvious in isolation which one you're dealing with. In this case "function" Functor |
2025-02-12 22:19:02 +0100 | <tomsmeding> | merijn: and it should say that with --PROG-option(s)? |
2025-02-12 22:18:42 +0100 | <tomsmeding> | the same goes for cabal.project.freeze, actually |
2025-02-12 22:18:39 +0100 | <merijn> | tomsmeding: tbh it should probably just mentioned the tossed flags are the set of flags not affecting build artifacts, most notably warnings |
2025-02-12 22:18:29 +0100 | <euouae> | right okay |
2025-02-12 22:18:25 +0100 | <tomsmeding> | _conventionally_, it's your local configuration that you don't push |
2025-02-12 22:18:15 +0100 | <tomsmeding> | euouae: cabal.project.local is just the same thing as cabal.project, but with a different name |
2025-02-12 22:18:12 +0100 | <euouae> | It's not project versus dependencies -- it's programmer versus upstream |
2025-02-12 22:17:58 +0100 | <euouae> | tomsmeding: the .local is a different thing isn't it? I'm going by what I know from CMake |
2025-02-12 22:17:52 +0100 | <tomsmeding> | https://tomsmeding.com/vang/Qk3nO7/.psub.kWMobRelu5 |
2025-02-12 22:17:50 +0100 | <tomsmeding> | the only thing I changed is change "no longer" to "not", and change the "you should use" instruction to "--repl-options bypasses this tossing" :p |
2025-02-12 22:17:41 +0100 | <merijn> | xD |
2025-02-12 22:17:39 +0100 | <merijn> | tomsmeding: I think I closed that already |
2025-02-12 22:17:12 +0100 | <tomsmeding> | merijn: the thing I edited in my diff? |
2025-02-12 22:17:09 +0100 | <euouae> | justsomeguy: look up the Functor instances of Maybe and (->) |
2025-02-12 22:16:51 +0100 | <merijn> | tomsmeding: But not very well |
2025-02-12 22:16:46 +0100 | <tomsmeding> | justsomeguy: that outer fmap is (.), so it's `(fmap sum . Just) [1,2,3]` |
2025-02-12 22:16:45 +0100 | <merijn> | tomsmeding: It is mentioned here: https://cabal.readthedocs.io/en/stable/cabal-commands.html#cmdoption-repl-options |
2025-02-12 22:16:14 +0100 | <tomsmeding> | that solution is cabal.project.local, probably |
2025-02-12 22:16:13 +0100 | <justsomeguy> | How does fmap (fmap sum) Just [1,2,3] turn into fmap sum (Just [1,2,3])? What happens to the inner fmap? |
2025-02-12 22:15:59 +0100 | <merijn> | Is it very pretty? No, but I didn't (and still don't :p) know a better solution beyond "redesign the way every --PROG-opts work to correctly scope it to project or transitively) |
2025-02-12 22:15:57 +0100 | <tomsmeding> | merijn: is that tossing documented somewhere |
2025-02-12 22:15:51 +0100 | remedan | (~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan |
2025-02-12 22:15:20 +0100 | ljdarj1 | ljdarj |
2025-02-12 22:15:20 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2025-02-12 22:15:16 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2025-02-12 22:15:04 +0100 | <merijn> | (instead of globally transitive) |
2025-02-12 22:14:55 +0100 | <merijn> | euouae: Hence --repl-options bypass the flag tossing "for this project ONLY" |
2025-02-12 22:14:46 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) justsomeguy |
2025-02-12 22:14:38 +0100 | <merijn> | euouae: Then I quickly hit your problem "whoops, now I can't use warnings via cabal repl" |
2025-02-12 22:14:23 +0100 | <merijn> | euouae: So the compromise was: any *commandline* ghc-option that does *not* affect the resulting binary gets tossed (so no rebuilding the transitive dependencies) |
2025-02-12 22:14:01 +0100 | <euouae> | right, I'm following |
2025-02-12 22:13:47 +0100 | <merijn> | euouae: It has one, but not on the commandline |
2025-02-12 22:13:47 +0100 | <tomsmeding> | not on the command line; the `ghc-options` field in the .cabal file works fine |
2025-02-12 22:13:36 +0100 | <merijn> | euouae: Dependencies are tagged with a hash of their version, source *and flags* |
2025-02-12 22:13:34 +0100 | <euouae> | that's /bad/ lol :P |
2025-02-12 22:13:29 +0100 | <euouae> | okay right, you're saying cabal had no way to separate project from dep flags |