Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
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.