Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,803,982 events total
2021-08-03 19:07:53 <monochrom> Scheme's strength is "(+ 1 3 4 5 6)", "(+)", and "(apply + mylist)".
2021-08-03 19:07:56 <drakonis> davean: basically, you declare the channel pointing to the repository, be it local or online and it'll let you pull from it
2021-08-03 19:08:01 <drakonis> you realize you can chain them together, right?
2021-08-03 19:08:12 <drakonis> they don't need to be separate operations
2021-08-03 19:08:24 <drakonis> again, that's a weird thing to get hung up on
2021-08-03 19:08:28 <monochrom> But varargness is exactly why Scheme makes currying difficult.
2021-08-03 19:08:43 <drakonis> i don't see how that is a issue with the lisp family?
2021-08-03 19:09:08 <drakonis> http://people.cs.aau.dk/~normark/prog3-03/html/notes/higher-order-fu-note-curry-scheme.html
2021-08-03 19:09:09 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-03 19:09:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-03 19:10:09 <DigitalKiwi> monochrom: drakonis isn't here to defend scheme against haskell lol guix vs nix wrt to managing haskell ;p
2021-08-03 19:10:31 <drakonis> i'm here for explaining that guix is better at wrangling haskell than nix
2021-08-03 19:10:33 <monochrom> OK, s/Scheme/guix/
2021-08-03 19:11:04 <drakonis> guix is guile scheme but still not here to wrestle you over the merits of scheme vs haskell
2021-08-03 19:11:13 × Testtesttesz quits (~Testtestt@p5b05e91c.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-08-03 19:11:37 <davean> drakonis: Ok, so far this channel story seems identicalto nixos - but the problem I've encountered is inter-package references
2021-08-03 19:11:46 <drakonis> hmm
2021-08-03 19:11:50 <drakonis> do explain?
2021-08-03 19:12:26 <drakonis> inter-package references?
2021-08-03 19:12:41 <drakonis> you mean like importing dependencies?
2021-08-03 19:12:47 lavaman joins (~lavaman@98.38.249.169)
2021-08-03 19:12:55 <DigitalKiwi> sounded like some jailbreak usage in haskell4nix pulled in a version it shouldn't have
2021-08-03 19:12:57 <davean> if I have channel A, with package A.a which depends on b, it gets b from A.b but if I have channel B with package B.b, which provides that b that I need dealing with A.a referencing the wrong b ends up ... complicated.
2021-08-03 19:13:02 mattf_ joins (~matt@2600:1700:38c5:2100::37)
2021-08-03 19:13:03 <drakonis> oh
2021-08-03 19:13:17 <drakonis> that's because each channel normally has a specific module namespace
2021-08-03 19:13:22 <davean> So I end up not able to use A.a and have to duplicate A.a and quickly I have to run my own entire system
2021-08-03 19:13:32 <davean> so I end up not using channels and instead a clone of the origional channel
2021-08-03 19:13:33 <drakonis> define-module (gnu packages haskell-apps)
2021-08-03 19:13:36 <davean> because thats the only sane option
2021-08-03 19:14:00 <drakonis> basically, you can import (gnu packages haskell-apps) and gain access to any packages there
2021-08-03 19:14:10 <DigitalKiwi> does guix have ghcjs heh https://github.com/NixOS/nixpkgs/issues/130584
2021-08-03 19:14:52 <drakonis> it seems to have some things with dependencies here
2021-08-03 19:15:15 <drakonis> davean: that's not a problem really
2021-08-03 19:15:38 <drakonis> guile has a module system, so you have to explicitly bring them into scope
2021-08-03 19:15:55 × mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds)
2021-08-03 19:15:55 forell joins (~forell@user/forell)
2021-08-03 19:15:57 futty joins (~futty@c83-252-75-55.bredband.tele2.se)
2021-08-03 19:16:02 <davean> drakonis: right thats where the problem COMES from
2021-08-03 19:16:10 <drakonis> so A.a cannot reference the wrong package
2021-08-03 19:16:12 <davean> my overlays doen't end up compatible with the base systems stuff
2021-08-03 19:16:18 <davean> because I need newer stuff down in the stack
2021-08-03 19:16:22 <drakonis> okay
2021-08-03 19:16:24 <davean> drakonis: Right! Thats the problem!
2021-08-03 19:16:24 <drakonis> that's easy
2021-08-03 19:16:41 <drakonis> here's a fun bit you can do
2021-08-03 19:16:58 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-08-03 19:16:59 × Null_A quits (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) (Remote host closed the connection)
2021-08-03 19:17:12 <drakonis> you can redirect a package definition to point to a specific definition
2021-08-03 19:17:16 <drakonis> and have everything else inherit off it
2021-08-03 19:17:34 mousey joins (~skymouse@gateway/tor-sasl/mousey)
2021-08-03 19:17:34 Null_A joins (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba)
2021-08-03 19:17:38 <davean> and the inheriting works automaticly? I don't end up having to patch every package in the packet set?
2021-08-03 19:17:51 <drakonis> yes?
2021-08-03 19:18:00 <davean> That would be nice
2021-08-03 19:18:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-08-03 19:18:09 <drakonis> (define-public ghc ghc-8)
2021-08-03 19:18:12 × mattf_ quits (~matt@2600:1700:38c5:2100::37) (Quit: Leaving)
2021-08-03 19:18:17 <drakonis> this makes ghc point towards ghc-8
2021-08-03 19:18:39 × Null_A quits (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba) (Remote host closed the connection)
2021-08-03 19:18:50 <drakonis> then there's the ability to directly inherit all of the definition and modify where necessary using (inherit <package name>)
2021-08-03 19:18:53 Null_A joins (~null_a@2601:645:8700:2290:7da4:a1bb:6c20:daba)
2021-08-03 19:21:00 <drakonis> https://github.com/jsoo1/guix-channel someone's haskell heavy channel i found just now
2021-08-03 19:21:14 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-03 19:21:33 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-08-03 19:21:49 <davean> drakonis: So this looks like it needs to specificly have exactly one version of a package? How does multiple versions happen?
2021-08-03 19:24:28 <drakonis> by making the build system use a different ghc version i suppose?
2021-08-03 19:24:45 <drakonis> it otherwise targets whatever's the current highest ghc version
2021-08-03 19:24:56 <drakonis> whatever ghc points to
2021-08-03 19:24:58 <davean> I mean also cabal packages
2021-08-03 19:25:07 <drakonis> ah
2021-08-03 19:25:14 <davean> of course need different GHCs, and I need different dependencies
2021-08-03 19:26:18 <drakonis> the docs state that you can do this
2021-08-03 19:26:21 <drakonis> "Which Haskell compiler is used can be specified with the ‘#:haskell’ parameter which defaults to ‘ghc’."
2021-08-03 19:27:01 <davean> sure, thats the GHC, but the second half
2021-08-03 19:27:06 <drakonis> it builds using cabal
2021-08-03 19:27:08 <davean> how does it make those decisions and how are they handled?
2021-08-03 19:27:10 <drakonis> right
2021-08-03 19:27:13 <davean> Hum, it does?
2021-08-03 19:27:15 <drakonis> its cabal based
2021-08-03 19:27:19 forell_ joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
2021-08-03 19:27:20 <drakonis> also in the docs
2021-08-03 19:27:23 <davean> it looks like it specifies the Haskell pakcages its self
2021-08-03 19:27:23 × forell quits (~forell@user/forell) (Ping timeout: 258 seconds)
2021-08-03 19:27:32 <davean> and only one version each
2021-08-03 19:27:36 <drakonis> let me get you the docs
2021-08-03 19:28:18 <drakonis> a quick caveat
2021-08-03 19:28:26 <drakonis> people don't typically use guix for its haskell wrangling features
2021-08-03 19:28:33 × forell_ quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Changing host)
2021-08-03 19:28:33 forell_ joins (~forell@user/forell)
2021-08-03 19:28:45 <drakonis> so its not like it will cover every use case
2021-08-03 19:29:16 <drakonis> http://guix.gnu.org/en/manual/devel/en/guix.html#index-haskell_002dbuild_002dsystem
2021-08-03 19:29:20 <davean> sure I'm just talking about the basics of getting a consistent package set
2021-08-03 19:29:27 <drakonis> This variable is exported by (guix build-system haskell). It implements the Cabal build procedure used by Haskell packages
2021-08-03 19:29:34 forell_ is now known as forell
2021-08-03 19:29:42 × thyriaen quits (~thyriaen@dynamic-078-055-141-033.78.55.pool.telefonica.de) (Remote host closed the connection)
2021-08-03 19:29:51 <drakonis> let me point you to a haskell package definition real quick
2021-08-03 19:29:56 <davean> Thats HOW it builds them, not how it chooses WHAT to build
2021-08-03 19:30:00 <drakonis> okay
2021-08-03 19:30:15 <drakonis> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/haskell-xyz.scm#n751

All times are in UTC.