Logs: freenode/#haskell
| 2020-11-10 13:17:49 | <int-e> | (but that's an actual install plan) |
| 2020-11-10 13:17:58 | <hekkaidekapus> | You can build it locally and `cabal-plan dot-png`. |
| 2020-11-10 13:18:26 | <tomsmeding> | I was attempting to get a graph _without_ building the thing :p |
| 2020-11-10 13:18:35 | <int-e> | I don't find graphviz generated images all that useful at this scale |
| 2020-11-10 13:18:45 | <tomsmeding> | int-e: the image is completely useless |
| 2020-11-10 13:18:52 | <tomsmeding> | did I ever say it was useful? :) |
| 2020-11-10 13:18:59 | <int-e> | did I write "completely useless"? |
| 2020-11-10 13:19:16 | <int-e> | (two can play that game) |
| 2020-11-10 13:19:22 | <tomsmeding> | fair point :) |
| 2020-11-10 13:19:24 | <hekkaidekapus> | `cabal-plan dot` only then. And import the graph in any other former of your liking. |
| 2020-11-10 13:20:01 | → | texasmynsted joins (~texasmyns@097-085-244-180.biz.spectrum.com) |
| 2020-11-10 13:20:17 | <int-e> | tomsmeding: it's embarrassing how many edges end in ghc-prim at the bottom :P |
| 2020-11-10 13:20:40 | <tomsmeding> | lots of packages that perform hacks? :p |
| 2020-11-10 13:20:40 | <int-e> | Conclusion: Haskell sucks at abstraction. |
| 2020-11-10 13:20:47 | <maerwald> | lol |
| 2020-11-10 13:21:15 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:39bc:b0d6:4899:c2fa) |
| 2020-11-10 13:21:15 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:39bc:b0d6:4899:c2fa) (Client Quit) |
| 2020-11-10 13:21:24 | <tomsmeding> | 45 edges to be exact |
| 2020-11-10 13:21:41 | <tomsmeding> | aeson base ghc-prim integer-gmp integer-simple bytestring deepseq binary hashable text template-haskell pretty integer-logarithms transformers semigroups tagged transformers-compat generic-deriving th-abstraction bifunctors base-orphans distributive contravariant void data-fix strict these vector haskell-src-exts th-orphans th-lift ekg-core cryptonite basement memory data-default-class psqueues |
| 2020-11-10 13:21:41 | <tomsmeding> | zlib warp text-show http-client network-uri cereal clock QuickCheck |
| 2020-11-10 13:22:00 | <tomsmeding> | I guess most make sense? |
| 2020-11-10 13:22:22 | <maerwald> | are there any good resources on how to convert your haskell data appropriately for C? |
| 2020-11-10 13:22:35 | <maerwald> | despite primitive types |
| 2020-11-10 13:22:48 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@cm-171-98-91-242.revip7.asianet.co.th) (Ping timeout: 260 seconds) |
| 2020-11-10 13:22:50 | <bqv> | like storable or..? |
| 2020-11-10 13:22:56 | <maerwald> | I'm thinking just string and use json under the hood :p |
| 2020-11-10 13:23:16 | <bqv> | spicy modern marshalling |
| 2020-11-10 13:23:19 | <bqv> | web scale |
| 2020-11-10 13:23:30 | <maerwald> | yes, can also make it a microservice later |
| 2020-11-10 13:23:34 | <bqv> | :D |
| 2020-11-10 13:24:09 | <dminuoso> | tomsmeding: good lord |
| 2020-11-10 13:24:19 | → | Tops21 joins (~Tobias@dyndsl-095-033-017-206.ewe-ip-backbone.de) |
| 2020-11-10 13:24:19 | → | TekShifter[m] joins (tekshifter@gateway/shell/matrix.org/x-vmtswkcoigkpltha) |
| 2020-11-10 13:24:59 | <dminuoso> | tomsmeding: to be fair, you should probabl do transitive reduction. |
| 2020-11-10 13:25:32 | <tomsmeding> | meaning, if a->b->c and a->c, don't display a->c ? |
| 2020-11-10 13:25:40 | <dminuoso> | yeah, cabal-plan can do that for you with -tred |
| 2020-11-10 13:25:55 | <dminuoso> | (or rather, given those two a->b->c would be hidden) |
| 2020-11-10 13:26:15 | × | avdb quits (~avdb@ip-213-49-61-163.dsl.scarlet.be) (Quit: WeeChat 2.9) |
| 2020-11-10 13:26:20 | <tomsmeding> | with a->b->c I meant a->b and b->c |
| 2020-11-10 13:26:25 | <tomsmeding> | hiding those loses information, right? |
| 2020-11-10 13:26:34 | <tomsmeding> | can I use cabal-plan without actually building the thing? |
| 2020-11-10 13:26:40 | <dminuoso> | well, so assume you have `a->c`, `a->b` and `b->c` |
| 2020-11-10 13:26:48 | <dminuoso> | with transitive reductions the last would be gone |
| 2020-11-10 13:27:07 | <dminuoso> | tomsmeding: you can abort as soon as it starts building |
| 2020-11-10 13:27:10 | <dminuoso> | you just need the cabal plan |
| 2020-11-10 13:27:35 | → | britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
| 2020-11-10 13:27:56 | <int-e> | dminuoso: is that fair? you depend on a package explicitly if you use its functionality. with your suggestion, all the edges to ghc-prim would be gone... (I guess the question is what you want to express... for building plan purposes, transitive reduction is fine; for semantic dependencies, the transitive edges carry information) |
| 2020-11-10 13:28:02 | <tomsmeding> | interesting choice to remove b->c, I guess it makes sense if you're not interested in the dependencies' subtrees, just where everything comes from in relation to the top package |
| 2020-11-10 13:28:03 | × | Tops2 quits (~Tobias@dyndsl-095-033-017-206.ewe-ip-backbone.de) (Ping timeout: 260 seconds) |
| 2020-11-10 13:28:24 | <int-e> | (all -> all except the integer-gmp one, I'd guess) |
| 2020-11-10 13:28:55 | → | adm_ joins (~adm@43.229.89.44) |
| 2020-11-10 13:28:57 | <dminuoso> | int-e: it depends on what knowledge you hope to gain. tred is usually helpful with dependency graphs because you don't necessarily care which packages exactly depend on integer-gmp, because as soon as *any* depends on it, you have it. |
| 2020-11-10 13:29:13 | <dminuoso> | (so you might rather be interested which package "first" depends on it from top-to-bottom) |
| 2020-11-10 13:29:16 | → | AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl) |
| 2020-11-10 13:29:49 | <int-e> | so yeah, it depends on what you're trying to do |
| 2020-11-10 13:30:22 | → | christo joins (~chris@81.96.113.213) |
| 2020-11-10 13:31:03 | <tomsmeding> | interesting, I can't even seem to get a build plan |
| 2020-11-10 13:31:34 | <int-e> | I had to go back to ghc-8.6.5 |
| 2020-11-10 13:33:05 | <bqv> | goddammit, no wonder i've been getting cursed type errors |
| 2020-11-10 13:33:11 | <bqv> | i've been using two lens libraries by accident |
| 2020-11-10 13:33:35 | <bqv> | one of these optics is not like the other |
| 2020-11-10 13:33:50 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 2020-11-10 13:33:58 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:fe52:4567:a4e4:fc3a) (Quit: cosimone) |
| 2020-11-10 13:34:02 | × | adm_ quits (~adm@43.229.89.44) (Ping timeout: 258 seconds) |
| 2020-11-10 13:34:09 | <hekkaidekapus> | tomsmeding, int-e: give stack2cabal a try, otherwise the package is not in a good shape. <https://matrix.hackage.haskell.org/#/package/magicbane> |
| 2020-11-10 13:34:49 | <int-e> | meh |
| 2020-11-10 13:34:49 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds) |
| 2020-11-10 13:35:24 | × | shatriff_ quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 2020-11-10 13:35:49 | × | kish` quits (~oracle@unaffiliated/oracle) (Remote host closed the connection) |
| 2020-11-10 13:36:09 | → | adm_ joins (~adm@43.229.89.44) |
| 2020-11-10 13:36:19 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 2020-11-10 13:36:21 | <int-e> | though tbf I wasn't going to compile it anyway |
| 2020-11-10 13:36:23 | <dminuoso> | hekkaidekapus: what does stack2cabal do? |
| 2020-11-10 13:36:25 | × | kish quits (~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds) |
| 2020-11-10 13:36:46 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-bxfwtutsrfijbzma) (Quit: Connection closed for inactivity) |
| 2020-11-10 13:36:48 | <dminuoso> | I mean in order to find a build plan, it shouldnt be necessary |
| 2020-11-10 13:36:54 | <maerwald> | dminuoso: it creates a cabal.project and cabal.project.freeze based on stack.yaml |
| 2020-11-10 13:37:03 | <hekkaidekapus> | It converts a stack resolver into a cabal.freeze and creates a .cabal file. |
| 2020-11-10 13:37:03 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 2020-11-10 13:37:04 | <dminuoso> | For the above excercise, hpack should be fine |
| 2020-11-10 13:37:18 | <dminuoso> | (because losing constraints actually would help) |
| 2020-11-10 13:37:25 | <maerwald> | dminuoso: depends, if there are git repos defined in stack.yaml, hpack won't be enough |
| 2020-11-10 13:37:37 | <dminuoso> | ah |
| 2020-11-10 13:37:57 | <int-e> | mmm -- This file has been generated from package.yaml by hpack version 0.34.2. |
| 2020-11-10 13:38:14 | <int-e> | (that's from the package description on hackage) |
| 2020-11-10 13:39:27 | <hekkaidekapus> | int-e: Yeah, if you look at <https://github.com/myfreeweb/magicbane>, there is no magicbane.cabal. I guess it is generated as part of the upload process. |
| 2020-11-10 13:39:31 | × | Rudd0 quits (~Rudd0@185.189.115.98) (Ping timeout: 256 seconds) |
| 2020-11-10 13:40:39 | <tomsmeding> | fwiw dependency graph using cabal-plan: https://tomsmeding.com/vang/Wsf6Q2/deps.png; I thought I could improve my graph by making it left-to-right as well but it's a similar mess |
| 2020-11-10 13:41:18 | <tomsmeding> | (ghcup is cool) |
| 2020-11-10 13:41:40 | × | kuribas quits (~user@ptr-25vy0i8gy1ukj7bjvez.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 2020-11-10 13:42:14 | → | machinedgod joins (~machinedg@207.253.244.210) |
| 2020-11-10 13:42:27 | <hekkaidekapus> | (Went down from 20.9M to 5344k.) |
| 2020-11-10 13:43:12 | <dminuoso> | Mmm, I feel like there could be more transparency with regard to build plans and transitive dependencies. |
| 2020-11-10 13:43:23 | <dminuoso> | It's too easy to lose track of how much you pull in time after time |
| 2020-11-10 13:43:29 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 2020-11-10 13:43:47 | → | renzhi joins (~renzhi@2607:fa49:655f:e600::28da) |
| 2020-11-10 13:44:01 | <tomsmeding> | perhaps this kind of functionality should be more accessible? Confronting people with the transitive dep graph may be helpful |
| 2020-11-10 13:44:22 | <tomsmeding> | though it's probably hard because the build plan may be different for any particular base version and such |
| 2020-11-10 13:44:30 | hackage | morley 1.9 - Developer tools for the Michelson Language https://hackage.haskell.org/package/morley-1.9 (gromak) |
| 2020-11-10 13:44:51 | <dminuoso> | Well you cant do that on hackage, because transitive dependencies depend on a particular build plan |
All times are in UTC.