Home liberachat/#haskell: Logs Calendar

Logs on 2022-08-25 (liberachat/#haskell)

00:00:16 × akegalj quits (~akegalj@135-40.dsl.iskon.hr) (Ping timeout: 260 seconds)
00:02:19 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
00:02:57 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
00:02:57 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:02:57 × motersen quits (~motersen@user/motersen) (Remote host closed the connection)
00:03:08 dcoutts_ joins (~duncan@host86-151-9-109.range86-151.btcentralplus.com)
00:04:37 matthewmosior joins (~matthewmo@173.170.253.91)
00:06:06 × dcoutts quits (~duncan@host86-153-135-25.range86-153.btcentralplus.com) (Ping timeout: 268 seconds)
00:09:36 nate4 joins (~nate@98.45.169.16)
00:10:30 <dmj`> type family SnocSymbol (c :: Char) (sym :: Symbol) where SnocSymbol c sym = sym `AppendSymbol` (c `ConsSymbol` "")
00:10:35 <dmj`> does this exist anywhere already
00:12:35 <dmj`> seems like a good candidate for GHC.TypeLits
00:13:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
00:14:13 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
00:14:36 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
00:15:29 causal joins (~user@50.35.83.177)
00:15:54 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Quit: Going elsewhere)
00:17:05 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
00:20:23 motersen joins (~motersen@user/motersen)
00:21:26 califax joins (~califax@user/califx)
00:21:54 ryanbooker joins (uid4340@id-4340.hampstead.irccloud.com)
00:22:36 <Axman6> feels like something Csongor Kiss would've written already - https://blog.csongor.co.uk/symbol-parsing-haskell/
00:25:07 jpds joins (~jpds@gateway/tor-sasl/jpds)
00:30:54 × codaraxis quits (~codaraxis@user/codaraxis) (Quit: Leaving)
00:30:57 stiell joins (~stiell@gateway/tor-sasl/stiell)
00:32:32 matthewmosior joins (~matthewmo@173.170.253.91)
00:36:51 <dmj`> yea I couldn't find it on his github
00:36:58 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
00:40:22 dsrt^ joins (~dsrt@96.70.11.181)
00:40:40 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
00:42:27 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
00:46:51 nate4 joins (~nate@98.45.169.16)
00:52:11 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 260 seconds)
00:55:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
00:55:38 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
00:57:47 × eikke quits (~NicolasT@88.126.78.98) (Ping timeout: 255 seconds)
00:59:01 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
00:59:49 azimut joins (~azimut@gateway/tor-sasl/azimut)
01:04:08 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
01:04:26 × mima quits (mmh@gateway/vpn/airvpn/mima) (Ping timeout: 260 seconds)
01:04:36 chexum joins (~quassel@gateway/tor-sasl/chexum)
01:13:42 dsrt^ joins (~dsrt@96.70.11.181)
01:18:11 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
01:20:43 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
01:22:52 stiell joins (~stiell@gateway/tor-sasl/stiell)
01:27:18 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
01:28:07 zxx7529 joins (~Thunderbi@user/zxx7529)
01:29:42 × zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection)
01:29:56 zxx7529 joins (~Thunderbi@user/zxx7529)
01:35:56 _73 joins (~user@pool-71-184-136-42.bstnma.fios.verizon.net)
01:38:33 × Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 252 seconds)
01:38:42 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
01:48:24 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
01:49:21 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
01:50:06 stiell joins (~stiell@gateway/tor-sasl/stiell)
01:51:06 × beteigeuze quits (~Thunderbi@bl11-28-222.dsl.telepac.pt) (Ping timeout: 260 seconds)
01:51:59 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
01:52:42 nilradical joins (~nilradica@user/naso)
01:53:32 matthewmosior joins (~matthewmo@173.170.253.91)
01:53:35 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
01:53:50 nilradical joins (~nilradica@user/naso)
01:53:54 Colere joins (~colere@about/linux/staff/sauvin)
01:54:01 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
01:56:51 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 248 seconds)
01:58:06 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
02:01:53 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
02:06:00 × bilegeek quits (~bilegeek@2600:1008:b068:5637:7ab9:a362:c68d:9416) (Quit: Leaving)
02:16:11 × td_ quits (~td@94.134.91.14) (Ping timeout: 260 seconds)
02:17:26 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
02:17:48 td_ joins (~td@94.134.91.83)
02:18:28 justsomeguy joins (~justsomeg@user/justsomeguy)
02:20:04 × zxx7529 quits (~Thunderbi@user/zxx7529) (Remote host closed the connection)
02:21:56 fef joins (~thedawn@user/thedawn)
02:23:42 dsrt^ joins (~dsrt@96.70.11.181)
02:25:21 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:28:24 nate4 joins (~nate@98.45.169.16)
02:28:32 × motersen quits (~motersen@user/motersen) (Remote host closed the connection)
02:28:32 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
02:28:32 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
02:28:59 motersen joins (~motersen@user/motersen)
02:29:15 fef joins (~thedawn@user/thedawn)
02:30:02 azimut joins (~azimut@gateway/tor-sasl/azimut)
02:35:49 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 268 seconds)
02:38:18 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds)
02:38:57 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
02:42:01 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:42:59 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:45:02 × mzan quits (~quassel@mail.asterisell.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
02:45:58 mzan joins (~quassel@mail.asterisell.com)
02:53:33 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
02:53:56 dos__^^ joins (~user@user/dos/x-1723657)
03:08:16 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
03:08:23 matthewmosior joins (~matthewmo@173.170.253.91)
03:10:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
03:11:23 matthewmosior joins (~matthewmo@173.170.253.91)
03:12:16 × fef quits (~thedawn@user/thedawn) (Ping timeout: 268 seconds)
03:17:57 famubu joins (~famubu@user/famubu)
03:18:00 <famubu> Suppose we got an `add2` function which adds two integers. Is there a way to make a function `addn` that returns a new function that can add n integers?
03:19:04 <famubu> As in `addn 3` will give a function `add3 :: Int -> Int -> Int -> Int`.
03:19:13 <famubu> Is that possible?
03:21:31 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
03:23:59 <qrpnxz> yes it is possible. One way is to create a stream of ((->) Int), i have a hack somewhere that uses delimited continuations. See also https://hackage.haskell.org/package/base-4.17.0.0/docs/Text-Printf.html#v:printf famubu
03:24:09 × Igloo quits (~ian@matrix.chaos.earth.li) (Ping timeout: 252 seconds)
03:24:16 Igloo joins (~ian@matrix.chaos.earth.li)
03:27:03 <famubu> qrpnxz: /clear
03:27:07 <famubu> Oops..
03:27:23 famubu meant that for the irc client
03:27:47 <dmj`> famubu: check out the sumOf answer here: https://stackoverflow.com/a/3467806
03:29:13 <qrpnxz> lmao
03:32:54 <famubu> qrpnxz: Thanks!
03:33:14 <famubu> dmj`: That SO post seems to have everything I need.
03:34:10 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Quit: WeeChat 3.5)
03:36:50 matthewmosior joins (~matthewmo@173.170.253.91)
03:38:26 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
03:38:52 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
03:39:28 <[Leary]> famubu: Note also the comments that this approach is not idiomatic Haskell. It makes some sense when the arguments have unrelated types as in `printf`, but uniform arguments should come in a list.
03:40:14 <dmj`> famubu: nice
03:40:41 <dmj`> famubu: there is also just `sum` :)
03:44:22 <Hash> Holy shit I just realized somethign
03:44:28 <Hash> Oh wow this is even the wrong window
03:44:30 <Hash> Ha.
03:44:44 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 255 seconds)
03:46:14 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:48:13 <famubu> Yeah saw in that SO post, what we probably need is just a list of args instead of a variadic arg function.
03:48:21 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
03:52:44 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
03:52:46 <Axman6> Hash: well now we have to know too!
03:54:46 <famubu> If we got a function like `add :: Int -> Int -> Int`, we can do `add 3 $ 2` where the `3` sort of 'attached' first and then `2`. `$` helps avoid parenthesis. Is there a similar way to avoid parenthesis where the second argument is attached first? Something like `add _ 2 $ 3`?
03:55:15 <Axman6> famubu: don;t do it though - you'll run into more problems than it helps with, particularly with type inference. Since type classes are open, you can't do things like (print $ sumOf 1 2 3) because there's no way to know which type you want to have printed - anyone could add an instance for SumRes (Maybe Bool)
03:55:36 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Quit: WeeChat 3.5)
03:55:38 <Axman6> flip add3
03:56:54 <famubu> Axman6: I need to keep that in mind.
03:57:14 <Axman6> "that" = variadic functions
03:57:21 <famubu> Yeah understood. :)
03:57:42 <famubu> Axman6: And flip works cool. Is it often used by people? Or is it something that is considered something fancy?
03:57:49 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
03:57:58 <Axman6> it's relatively common, yes
03:58:26 <famubu> Okay. +1
03:58:29 <Axman6> but if you need to do something more fancy, lambdas are always an option: (\x y -> foo y True 7 x)
03:59:15 <[Leary]> @pl \x y -> foo y True 7 x
03:59:15 <lambdabot> flip (flip (flip foo True) 7)
03:59:36 <[Leary]> Crucially, the lambda is a much better option than three flips.
04:00:05 <[Leary]> But one is fine.
04:00:11 <famubu> What pl ask lamdabot to do?
04:00:15 <famubu> *what does
04:00:34 <dolio> Eliminate variable bindings.
04:00:49 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
04:00:51 <famubu> Ah.. okay.
04:04:23 nate4 joins (~nate@98.45.169.16)
04:06:54 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
04:09:19 <Hash> Axman6: haskell without side effects is useless in any sense.
04:09:41 <dibblego> lies
04:11:15 × qrpnxz quits (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 248 seconds)
04:11:32 Sgeo_ joins (~Sgeo@user/sgeo)
04:13:07 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
04:13:14 qrpnxz joins (~qrpnxz@fsf/member/qrpnxz)
04:14:27 sympt joins (~sympt@user/sympt)
04:14:29 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
04:15:11 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
04:15:46 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 260 seconds)
04:18:53 Sgeo joins (~Sgeo@user/sgeo)
04:19:45 × nilradical quits (~nilradica@user/naso) ()
04:20:42 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
04:23:07 elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
04:31:32 × ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:32:06 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
04:33:48 × glguy quits (x@libera/staff/glguy) (Quit: rebirth)
04:35:39 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
04:37:16 Sgeo joins (~Sgeo@user/sgeo)
04:39:06 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
04:39:35 <johnw> Hash: ?
04:41:05 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
04:41:29 <Axman6> at the very least, it can be used to heat up my room - thanks entropy
04:43:51 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
04:44:58 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:45:10 <dmj`> Hash: Haskell has influenced a lot of languages
04:45:39 <Hash> Huh?
04:45:44 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
04:45:48 <Hash> Guy asked me wha I realized, I told him.
04:46:04 <Hash> Who wants to fight me?
04:46:15 Hash hands out free joints
04:46:52 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
04:49:21 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 244 seconds)
04:49:22 mbuf joins (~Shakthi@122.165.55.71)
04:49:30 nate4 joins (~nate@98.45.169.16)
04:52:14 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
04:52:31 matthewmosior joins (~matthewmo@173.170.253.91)
04:53:30 king_gs joins (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72)
04:53:52 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
04:54:35 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
04:55:31 motherfsck joins (~motherfsc@user/motherfsck)
04:56:53 <monochrom> Heating up your room is still a side effect.
05:05:14 Guest58 joins (~Guest58@2600:4040:b6b0:c100:e89c:a045:89de:d7a)
05:11:15 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:13:54 × king_gs quits (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72) (Remote host closed the connection)
05:14:13 king_gs joins (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72)
05:16:40 × Guest58 quits (~Guest58@2600:4040:b6b0:c100:e89c:a045:89de:d7a) (Quit: Ping timeout (120 seconds))
05:18:33 × famubu quits (~famubu@user/famubu) (Quit: leaving)
05:21:18 coot joins (~coot@213.134.176.158)
05:22:24 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
05:25:48 × coot quits (~coot@213.134.176.158) (Client Quit)
05:26:19 coot joins (~coot@213.134.176.158)
05:26:30 motherfs1 joins (~motherfsc@user/motherfsck)
05:26:31 × motherfsck quits (~motherfsc@user/motherfsck) (Read error: Connection reset by peer)
05:28:51 zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
05:31:01 coot_ joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
05:31:38 <jackdk> even putStrLn has no side-effects. It's what the runtime chooses to do with that `IO ()` that matters
05:32:19 × coot quits (~coot@213.134.176.158) (Ping timeout: 248 seconds)
05:34:17 × coot_ quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
05:37:03 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
05:38:06 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:40:59 odnes joins (~odnes@5-203-171-254.pat.nym.cosmote.net)
05:43:28 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
05:43:59 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:45:28 <dmj`> anyone know what's going on here? https://gist.github.com/dmjio/919cf935b7e365cc427ff90e30641d9f
05:46:16 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
05:47:17 <jackdk> My first thought is try turning off StarIsType
05:48:28 <[_________]> dmj`: does `natVal (Proxy :: Proxy 100)` compile ? I wonder if it fails due to expression. ;)
05:48:57 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
05:49:13 <dmj`> natVal (Proxy :: Proxy 100) -- compiles fine
05:49:45 <dmj`> jackdk: only have data & poly kinds, type families and undecidable instances on
05:49:53 <dmj`> ghc 9.2.2
05:50:10 <johnw> dmj`: can you evaluate 10 * 10 at the type level like that?
05:50:47 <Axman6> looks like it https://hackage.haskell.org/package/base-4.17.0.0/docs/GHC-TypeNats.html#t:-42-
05:50:54 <dmj`> johnw: addition works fine, but when I try multiplication its a type error
05:51:02 <dmj`> kind signatures are identical
05:51:44 <[Leary]> The fact that it puts * in brackets there shows that it's not being parsed as an infix operator, but as a special identifier, which explains the error and makes sense in light of StarIsType.
05:51:44 <jackdk> -XStarIsType is currently enabled by default https://www.irccloud.com/pastebin/sG58zSUJ/dmj%60
05:51:47 <Axman6> I reckon trying to use {-# LANGUAGE NoStarAsType #-} should help
05:51:55 <[Leary]> What they said.
05:52:54 <dmj`> wild, thanks guys, [Leary] , jackdk , Axman6
05:53:05 <dmj`> ghc is happy now
05:53:41 <jackdk> The eventual plan is to turn it off by default, in which case it will render as `Type`, as in `Data.Kind.Type`, because there are many more kinds than Haskell98 had
05:54:30 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
05:57:25 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
05:59:14 nilradical joins (~nilradica@user/naso)
05:59:32 dmj` clutches his stars
06:01:35 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
06:04:32 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:07:41 × nilradical quits (~nilradica@user/naso) (Read error: Connection reset by peer)
06:08:17 nilradical joins (~nilradica@user/naso)
06:08:31 <monochrom> The star-spangled kind signature >:)
06:09:38 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
06:10:22 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
06:10:34 Axman6 salutes the Type spangled banner
06:13:06 × nilradical quits (~nilradica@user/naso) (Read error: Connection reset by peer)
06:13:40 <monochrom> "I can't let you do that, Dave"
06:13:51 nilradical joins (~nilradica@user/naso)
06:14:36 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
06:14:47 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
06:17:45 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:19:02 × nilradical quits (~nilradica@user/naso) (Ping timeout: 268 seconds)
06:21:03 mima joins (mmh@gateway/vpn/airvpn/mima)
06:23:36 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
06:24:47 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
06:26:22 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:26:29 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
06:28:37 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:30:24 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:b753:993e:4a:e55)
06:33:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:33:27 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
06:35:20 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:b753:993e:4a:e55) (Remote host closed the connection)
06:35:27 mc47 joins (~mc47@xmonad/TheMC47)
06:35:39 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:4963:1d5e:3c4f:b4ac)
06:36:51 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 248 seconds)
06:39:45 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:44:40 <dminuoso> I think it was a mistake to allow non-colon type operator-constructors at all. :S
06:45:18 <dminuoso> Though Im not sure this would have solved in this particular situation at all
06:45:34 jonathanx joins (~jonathan@94.234.115.159)
06:48:13 lortabac joins (~lortabac@2a01:e0a:541:b8f0:10be:940f:4ae:d4c8)
06:48:16 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:48:22 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
06:50:29 × luffy quits (~chenqisu1@183.217.200.212) (Ping timeout: 268 seconds)
06:51:06 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:51:30 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:4963:1d5e:3c4f:b4ac) (Remote host closed the connection)
06:51:44 × king_gs quits (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72) (Remote host closed the connection)
06:51:48 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:2301:b332:9642:eb14)
06:52:22 nate4 joins (~nate@98.45.169.16)
06:53:03 king_gs joins (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72)
06:54:02 × jonathanx quits (~jonathan@94.234.115.159) (Remote host closed the connection)
06:54:19 jonathanx joins (~jonathan@c-5eea739f-74736162.cust.telenor.se)
06:57:21 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
06:57:43 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:58:03 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:01:44 <sm> yesod types are intense
07:04:53 × jonathanx quits (~jonathan@c-5eea739f-74736162.cust.telenor.se) (Ping timeout: 252 seconds)
07:05:02 jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
07:09:52 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:2301:b332:9642:eb14) (Remote host closed the connection)
07:10:10 yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:c3d5:9201:4422:1143)
07:16:17 michalz joins (~michalz@185.246.204.75)
07:21:00 cfricke joins (~cfricke@user/cfricke)
07:22:53 alternateved joins (~user@staticline-31-183-146-203.toya.net.pl)
07:23:38 × yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:c3d5:9201:4422:1143) (Ping timeout: 252 seconds)
07:26:27 × Batzy quits (~quassel@user/batzy) (Read error: Connection reset by peer)
07:28:22 nilradical joins (~nilradica@user/naso)
07:29:56 × odnes quits (~odnes@5-203-171-254.pat.nym.cosmote.net) (Quit: Leaving)
07:36:36 ardell joins (~ardell@user/ardell)
07:40:12 <dminuoso> For logging output, would you generally use a prettyprinter?
07:42:30 <sm> yes
07:42:48 acidjnk joins (~acidjnk@p200300d6e7137a4448390a2d4fdf592b.dip0.t-ipconnect.de)
07:42:57 <sm> ah no.. it depends.
07:43:35 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:45:25 <dminuoso> Im just mildly annoyed because I have `pretty` in my dependency tree, but Im used to using `prettyprinter` which has a bit more batteries included.
07:45:35 eikke joins (~NicolasT@88.126.78.98)
07:45:37 <dminuoso> And Im just questioning whether I should be using `pretty` at all now
07:50:20 fserucas joins (~fserucas@89.214.153.60)
07:53:26 `2jt joins (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net)
07:54:20 <sm> on another note, are there any yesod wizards about ? I'm wondering how to add a selectFieldList here:
07:54:20 <sm> cfc0554#diff-4f785631673350333a037eca53769f9320f8b8a2856371597ef0687f52f86849R72-R124
07:54:38 <sm> https://github.com/simonmichael/hledger/commit/cfc05540daad75a358a47741c16e7611fe42f54f#diff-4f785631673350333a037eca53769f9320f8b8a2856371597ef0687f52f86849R72-R124
07:54:50 × vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 244 seconds)
07:55:28 <sm> and why https://hackage.haskell.org/package/yesod-form-1.7.0/docs/Yesod-Form.html#v:selectFieldList has to run in the Handler
07:57:37 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:58:36 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
07:58:55 dsrt^ joins (~dsrt@96.70.11.181)
08:00:23 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:02:49 ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net)
08:05:49 Pickchea joins (~private@user/pickchea)
08:07:17 wonko joins (~wjc@2a0e:1c80:2::130)
08:12:21 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 252 seconds)
08:21:35 vglfr joins (~vglfr@37.73.8.134)
08:21:56 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
08:23:08 toeffel joins (~toeffel@user/toeffel)
08:24:37 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
08:27:11 × GoldsteinQ quits (~goldstein@goldstein.rs) (Ping timeout: 260 seconds)
08:32:44 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 255 seconds)
08:34:55 matthewmosior joins (~matthewmo@173.170.253.91)
08:38:13 chele joins (~chele@user/chele)
08:41:10 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
08:41:44 luffy joins (~chenqisu1@183.217.200.212)
08:44:08 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
08:45:01 ubert joins (~Thunderbi@77.119.217.249.wireless.dyn.drei.com)
08:48:46 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
08:48:55 akegalj joins (~akegalj@135-40.dsl.iskon.hr)
08:52:19 × vglfr quits (~vglfr@37.73.8.134) (Ping timeout: 252 seconds)
08:57:33 nschoe joins (~quassel@178.251.84.79)
09:00:48 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
09:03:06 kuribas joins (~user@silversquare.silversquare.eu)
09:05:09 × Benzi-Junior quits (~BenziJuni@dsl-149-67-162.hive.is) (Ping timeout: 252 seconds)
09:05:37 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
09:05:57 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
09:06:14 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
09:06:14 × motersen quits (~motersen@user/motersen) (Ping timeout: 268 seconds)
09:06:14 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
09:06:51 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
09:07:04 motersen joins (~motersen@user/motersen)
09:07:28 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
09:08:05 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
09:08:07 × king_gs quits (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72) (Remote host closed the connection)
09:08:26 king_gs joins (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72)
09:08:30 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
09:08:42 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
09:08:55 jpds joins (~jpds@gateway/tor-sasl/jpds)
09:09:05 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
09:09:33 ChaiTRex joins (~ChaiTRex@user/chaitrex)
09:09:35 nate4 joins (~nate@98.45.169.16)
09:14:18 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
09:15:57 azimut joins (~azimut@gateway/tor-sasl/azimut)
09:16:38 stiell joins (~stiell@gateway/tor-sasl/stiell)
09:17:24 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
09:23:35 × wonko quits (~wjc@2a0e:1c80:2::130) (Ping timeout: 255 seconds)
09:24:17 mc47 joins (~mc47@xmonad/TheMC47)
09:26:38 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
09:27:15 nilradical joins (~nilradica@user/naso)
09:32:30 × nilradical quits (~nilradica@user/naso) (Ping timeout: 264 seconds)
09:35:17 Benzi-Junior joins (~BenziJuni@88-149-67-162.du.xdsl.is)
09:37:01 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
09:38:44 beteigeuze joins (~Thunderbi@bl11-28-222.dsl.telepac.pt)
09:40:33 dminuoso wants SelectiveDo
09:47:05 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:47:36 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
09:48:21 azimut joins (~azimut@gateway/tor-sasl/azimut)
09:48:39 vglfr joins (~vglfr@145.224.94.75)
09:51:15 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
09:51:55 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
09:52:42 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
09:52:52 Chai-T-Rex joins (~ChaiTRex@user/chaitrex)
09:53:06 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
09:53:43 × califax quits (~califax@user/califx) (Ping timeout: 268 seconds)
09:54:24 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
09:55:34 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds)
09:55:34 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
09:56:03 califax joins (~califax@user/califx)
09:57:30 × jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
09:57:30 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:57:52 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
09:58:01 califax joins (~califax@user/califx)
10:00:31 nilradical joins (~nilradica@user/naso)
10:01:02 × euandreh quits (~euandreh@179.214.113.107) (Quit: WeeChat 3.6)
10:01:42 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
10:01:54 euandreh joins (~euandreh@179.214.113.107)
10:02:08 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
10:03:02 × euandreh quits (~euandreh@179.214.113.107) (Client Quit)
10:03:57 euandreh joins (~euandreh@179.214.113.107)
10:04:21 × euandreh quits (~euandreh@179.214.113.107) (Client Quit)
10:05:32 motersen parts (~motersen@user/motersen) ()
10:05:54 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
10:06:03 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
10:10:12 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
10:10:55 zaquest joins (~notzaques@5.130.79.72)
10:11:14 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
10:11:33 nilradical joins (~nilradica@user/naso)
10:15:32 Pickchea joins (~private@user/pickchea)
10:17:35 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 255 seconds)
10:18:08 <ardell> I've got some problems when reading from stdout (or stderr) https://paste.tomsmeding.com/sKbov0fp
10:18:26 <ardell> Maybe the pipe is "full"? Because I use waitForProcess
10:18:36 <ardell> But I have no idea how to handle this in Haskell
10:19:36 <_________> ardell: stdin is for reading
10:20:32 × eikke quits (~NicolasT@88.126.78.98) (Ping timeout: 244 seconds)
10:20:38 <_________> oh, you meant process output
10:20:54 <ardell> Right!
10:23:02 <ardell> I don't even want to wait for the process to finish. It would be best to flush the pipe more often and process the data segmentally.
10:25:44 <Maxdamantus> ardell: read the content before waiting for the process to exit.
10:26:25 <Maxdamantus> ardell: reading the pipe is what allows the process to complete its `write` calls.
10:27:44 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
10:27:53 themc47 joins (~mc47@xmonad/TheMC47)
10:28:29 <Maxdamantus> though now that I think of it, the laziness of `hGetContents` will also be a problem.
10:28:56 kuribas` joins (~user@silversquare.silversquare.eu)
10:30:51 × kuribas quits (~user@silversquare.silversquare.eu) (Ping timeout: 260 seconds)
10:30:51 <Maxdamantus> turns out there's `hGetContents'` which is strict, so that should work (again, as long as you do it before waiting the process)
10:32:07 <dminuoso> ardell: conduit-extras has some utilities for that.
10:33:16 <dminuoso> Though it is curious that this would block
10:33:32 gmg joins (~user@user/gehmehgeh)
10:33:38 liz joins (~liz@host86-157-124-38.range86-157.btcentralplus.com)
10:33:58 <Maxdamantus> Seems expected to me.
10:34:20 <dminuoso> Why?
10:34:22 <Maxdamantus> the process is trying to write to the stdout pipe, but nothing is reading from it.
10:34:58 <dminuoso> Ohh yes, you're right
10:35:04 <dminuoso> That's why readCreateProcess forks a process off
10:35:27 <dminuoso> ardell: You should use hGetContents *before* waitForProcess
10:35:46 <Maxdamantus> also, hGetContents'
10:35:47 <dminuoso> pipes are not infinitely sized
10:35:55 <Maxdamantus> (with an apostrophe)
10:35:58 <dminuoso> Otherwise `seq` will block on the filled stdout pipe
10:36:35 <dminuoso> Maxdamantus: That wouldnt matter here.
10:36:36 <ardell> Maxdamantus: Nice! This works now: https://paste.tomsmeding.com/3u6s0f0z
10:36:51 <ardell> I'll also try the strict version `hGetContents'`
10:36:54 <dminuoso> ardell: You forgot to waitForProcess though.
10:37:06 <dminuoso> Or you *must* use hGetContents'
10:37:16 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
10:37:25 <dminuoso> Otherwise you are deferring potential failure into pure code
10:37:26 <ardell> dminuoso: Because this does not work with lazy hGetContents it seems
10:37:38 <dminuoso> What do you mean?
10:37:49 <Maxdamantus> dminuoso: it should matter, assuming hGetContents is lazy.
10:37:52 nilradical joins (~nilradica@user/naso)
10:38:05 <dminuoso> Maxdamantus: No it actually has different semantics.
10:38:15 <Maxdamantus> dminuoso: since you need to iterate through the string to force the read.
10:38:32 <Maxdamantus> dminuoso: hm. different how?
10:40:07 × tcard quits (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection)
10:40:17 <ardell> dminuoso: https://paste.tomsmeding.com/YBnXpoNt
10:40:24 tcard joins (~tcard@114.164.44.242)
10:40:39 <dminuoso> Maxdamantus: So in the general sense, with hGetContents you conceptually spawn a thread with it because you can just move on.
10:40:50 <dminuoso> With hGetContents' you block
10:41:08 × king_gs quits (~Thunderbi@2806:103e:29:da7a:8cff:b135:3864:cc72) (Quit: king_gs)
10:41:21 king_gs joins (~Thunderbi@187.201.216.244)
10:41:23 <Maxdamantus> ardell: you should probably also wait for the process, otherwise it will be left as a zombie until your process exits.
10:41:29 <dminuoso> If you first `hGetContents` and then waitForProcess you get more options, as you can spawn stuff in between
10:42:19 <Maxdamantus> dminuoso: if "move on" is "wait for the child to exit", there isn't going to be anything causing the pipe to be read.
10:42:21 × themc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 268 seconds)
10:42:56 <Maxdamantus> ie, if you only read after the child exits, which never happens.
10:43:06 <dminuoso> Mmm
10:43:14 <dminuoso> `process` gives me headaches
10:43:16 dminuoso shrugs
10:43:22 × luffy quits (~chenqisu1@183.217.200.212) (Remote host closed the connection)
10:43:42 luffy joins (~chenqisu1@183.217.200.212)
10:43:54 <Maxdamantus> afk
10:45:12 <dminuoso> ardell: By the way, `readProcess` does this wrapping for you automatically
10:45:55 × toeffel quits (~toeffel@user/toeffel) (Quit: quit)
10:46:27 <dminuoso> ardell: After staring at its internals, I understand *why* it uses hGetContents. In addition it uses `evaluate` inside a withForkWait wrapper, as a way to ensure writing input and reading output in parallel
10:46:43 × nilradical quits (~nilradica@user/naso) (Ping timeout: 252 seconds)
10:46:59 <dminuoso> There's some very careful consideration with regards to async threads there as well *shrugs*
10:47:30 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
10:48:15 gmg joins (~user@user/gehmehgeh)
10:52:55 wonko joins (~wjc@2a0e:1c80:2::130)
10:53:03 <ardell> There's still a lot I don't understand. And I just realized that `hGetContents'` is new in base-4.15 so it's quite current.
10:53:39 <ardell> Would be nice to be as lazy as possible in the evaluation but still get the exitCode.
10:54:09 <dminuoso> ardell: Use conduit-extras then
10:54:10 <ardell> dminuoso: You read the source of `readProcess`? Maybe I should do the same first. :)
10:54:19 <dminuoso> Oh, conduit-extra even
10:54:24 <dminuoso> ardell: Yes.
10:54:47 <dminuoso> ardell: with conduit you can *stream* the output but also get the exit code at the right moment
10:55:03 <dminuoso> https://hackage.haskell.org/package/conduit-extra-1.3.6/docs/Data-Conduit-Process.html#v:sourceProcessWithConsumer
10:55:11 <dminuoso> Or if you want all streams
10:55:15 <dminuoso> tps://hackage.haskell.org/package/conduit-extra-1.3.6/docs/Data-Conduit-Process.html#v:sourceProcessWithStreams
10:55:18 <dminuoso> https://hackage.haskell.org/package/conduit-extra-1.3.6/docs/Data-Conduit-Process.html#v:sourceProcessWithStreams
10:56:12 eikke joins (~NicolasT@88.126.78.98)
10:58:42 Sinbad joins (~Sinbad@user/sinbad)
10:59:21 euandreh joins (~euandreh@179.214.113.107)
11:00:38 <ardell> dminuoso: thanks, I'll look into this. It's not really necessary for my current use case but for later I need to learn about stream processing in Haskell anyway.
11:07:52 × Sinbad quits (~Sinbad@user/sinbad) (Quit: WeeChat 3.6)
11:08:37 CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:09:33 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:13:17 nilradical joins (~nilradica@user/naso)
11:13:27 <merijn> What are we doing? parallel reading from subprocesses? :p
11:13:38 mc47 joins (~mc47@xmonad/TheMC47)
11:18:18 <Maxdamantus> ardell: if you're okay with it not being lazy, you could probably just do something like: exitCode <- length contents `seq` waitForProcess p
11:18:28 <Maxdamantus> (using `hGetContents`)
11:19:27 <merijn> Maxdamantus: That's not actually necessarily gonna work
11:20:47 <merijn> Length won't finish until the handle is closed, but if the handle is closed by process termination it won't be closed until after you finish waiting
11:21:01 <merijn> Additionally, the order of evaluation for seq is unspecified
11:21:32 <Maxdamantus> the pipe gets closed when the child process exits, not when the parent process finishes waiting.
11:21:41 <merijn> So your solution (at best) will *appear* to work non-deterministically
11:22:02 <Maxdamantus> the child process terminates *before* the parent process finishes (or potentially even starts) waiting.
11:23:19 <merijn> Maxdamantus: "It Depends"
11:23:32 <merijn> if the handle happens to be a socket, it may stay active while the process is a zombie
11:24:12 <merijn> (Although that means it's probably (maybe) fine with stdout)
11:24:23 × euandreh quits (~euandreh@179.214.113.107) (Quit: WeeChat 3.6)
11:24:43 <Maxdamantus> merijn: in this particular case, it's a pipe; `std_out = CreatePipe`. but actually, I'm fairly sure that won't even be true for sockets either.
11:25:04 <merijn> OTOH, if I've learned one lesson the painful way, repeatedly, it's: Never do the "quick" thing when it comes to multiprocessing, it *will* fuck you over eventually in the hardest to debug ways
11:25:19 <Maxdamantus> merijn: the other process will close their write end of the socket, causing `hGetContents` to reach EOF.
11:25:33 notzmv joins (~zmv@user/notzmv)
11:25:53 <merijn> Maxdamantus: TCP sockets only get closed after the socket timeout expires, which is (by default, on linux) a few minutes after the process is zombified
11:26:53 euandreh joins (~euandreh@179.214.113.107)
11:27:06 <Maxdamantus> merijn: you're probably thinking of cases where the other end disappears.
11:27:12 <Maxdamantus> merijn: eg, due to network error.
11:27:39 <merijn> Maxdamantus: No, when a process is zombified the socket is kept alive so the receiver can drain any data buffered at the OS
11:27:40 × euandreh quits (~euandreh@179.214.113.107) (Client Quit)
11:27:42 <Maxdamantus> merijn: if the OS running the other end of the socket is still alive, it should send some packet denoting that the socket is closed.
11:28:01 <Maxdamantus> merijn: that works the same way as pipes.
11:28:33 <Maxdamantus> Hmm.. Maybe I'll have to try this.
11:29:34 <Maxdamantus> I wouldn't expect there to be a distinction here between pipes and TCP sockets. In both cases, the fds should be effectively `close(2)d` when the process exits, regardless of whether it's in a zombie state.
11:30:10 <Maxdamantus> otherwise normal unix pipelines (eg, `cat file | cat`) wouldn't work.
11:30:21 × wonko quits (~wjc@2a0e:1c80:2::130) (Ping timeout: 260 seconds)
11:31:15 × Pickchea quits (~private@user/pickchea) (Ping timeout: 248 seconds)
11:31:32 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
11:31:48 nilradical joins (~nilradica@user/naso)
11:32:21 <dminuoso> Also, keep async exceptions in mind.
11:36:27 <merijn> dminuoso: I'd rather not xD
11:36:57 × luffy quits (~chenqisu1@183.217.200.212) (Remote host closed the connection)
11:37:22 luffy joins (~chenqisu1@183.217.200.212)
11:41:27 <maralorn> What the fuck! I just removed the Haskell spotlight extension from my firefox (which I wasn‘t using anyways) after noticing that it inserts a reference to google fonts into every page I was visiting.
11:42:05 <maralorn> I am not certain how much data that really leaked, maybe that font call was cached most of the time, but I don‘t like it at all.
11:42:50 <dminuoso> That extension is no longer available. :>
11:43:37 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
11:44:10 × luffy quits (~chenqisu1@183.217.200.212) (Ping timeout: 268 seconds)
11:44:45 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
11:46:09 <Maxdamantus> merijn: I just tried it and the socket closes after all the data is read, when the other side is a zombie.
11:46:23 <albet70> :t (|)
11:46:24 <lambdabot> error: parse error on input ‘)’
11:46:30 <Maxdamantus> Had to write some small C program because I couldn't convince bash to make a zombie process.
11:46:49 <merijn> Maxdamantus: After all the data is read, sure, but your solution doesn't guarantee that
11:47:18 <albet70> is '|' not a operator yet?
11:47:37 <merijn> albet70: It can't be, it's reserved syntax
11:47:38 <Maxdamantus> merijn: `length contents` will read all the data (until EOF)
11:47:41 <hpc> it's syntax, like '=' and 'where'
11:47:59 <merijn> Maxdamantus: No, because you rely on seq to do it, but you use seq wrong :)
11:47:59 <hpc> perhaps you want (||) or (.|.)
11:49:04 <albet70> could I make my own operator? does it need to change ghc parser?
11:49:18 <Maxdamantus> merijn: seq will force the length to be computed before it produces the `waitForProcess p` action.
11:49:31 <merijn> Maxdamantus: Seq does no such thing
11:49:34 × jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
11:49:51 <Maxdamantus> merijn: the goal is to prevent waiting before the contents are read to EOF.
11:50:35 <hpc> you can make your own operators, but they can't already be syntax
11:50:43 <hpc> so you can't make (|) or (--) for instance
11:50:49 <merijn> Maxdamantus: Right, but it is extremely unclear your use of seq has the semantics you want
11:50:56 <hpc> maybe you can define (|||)
11:51:27 <albet70> hpc , what about (/.\)
11:51:51 <Maxdamantus> merijn: maybe there's a more clear way of writing it, I don't know (tbh I don't really write a lot of Haskell nowadays—though I often deal with unix fd/process semantics). but I'm pretty sure it will reliably work.
11:52:38 <albet70> or (/_)
11:53:39 <hpc> :t (/.\)
11:53:40 <lambdabot> error: Variable not in scope: /.\
11:53:44 <hpc> should work
11:54:42 <hpc> i don't think (/_) will work though? '_' is a letter-y character so you can write identifiers_like_this
11:54:44 <hpc> :t (/_)
11:54:49 <lambdabot> error:
11:54:49 <lambdabot> • Found hole: _ :: a
11:54:49 <lambdabot> Where: ‘a’ is a rigid type variable bound by
11:54:54 <hpc> yeah :(
11:55:16 <albet70> _ doesn't exist in ghc?
11:56:36 <hpc> when ghc parses the identifier "_", that means a hole
11:57:11 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
11:57:14 <albet70> I thought that _ only existed in ghci
11:57:18 <hpc> iirc it also can't be the first character of a letter-y identifier
11:57:27 <merijn> hpc: It can
11:57:31 <hpc> ah
11:57:43 <merijn> > let _foo = 3 in _foo
11:57:45 <lambdabot> 3
11:57:47 <albet70> _a isn't an identifier?
11:57:50 <hpc> anyhoo, otherwise it's just part of the character set you can make letter-y identifiers out of
11:57:57 <hpc> merijn: oh, i was thinking of '
11:58:17 <hpc> > let _a = 3 in _a
11:58:18 <lambdabot> 3
12:05:34 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6)
12:05:35 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:11:19 matthewmosior joins (~matthewmo@173.170.253.91)
12:11:38 jonathanx joins (~jonathan@c-5eea739f-74736162.cust.telenor.se)
12:17:21 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 268 seconds)
12:18:31 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:18:42 <kuribas`> albet70: it's an identifier like another, however you don't get a warning if you don't use it.
12:20:12 <kuribas`> I believe you can make it into a hole with some extension.
12:20:24 <dminuoso> albet70: No, formally its called an "irrefutable pattern" that doesnt bind to a name.
12:21:08 <kuribas`> dminuoso: you are talking about '_'?
12:22:57 <dminuoso> kuribas`: Any identifier that starts with _
12:23:17 <kuribas`> > let _ = 3 in _
12:23:21 <dminuoso> Even `a` is an irrefutable pattern, that just happens to bind a matching value to a name
12:23:22 <lambdabot> error:
12:23:22 <lambdabot> • Found hole: _ :: t
12:23:22 <lambdabot> Where: ‘t’ is a rigid type variable bound by
12:23:33 <dminuoso> Oh.
12:23:42 <dminuoso> _s is actually bindable? TIL.
12:25:13 euandreh joins (~euandreh@179.214.113.107)
12:26:48 <kuribas`> dminuoso: yes, but you don't get a defined but not used error.
12:27:03 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
12:27:04 califax_ joins (~califax@user/califx)
12:27:38 × ix quits (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Ping timeout: 244 seconds)
12:28:16 califax_ is now known as califax
12:31:09 B-J joins (~BenziJuni@dsl-149-67-162.hive.is)
12:31:32 × Benzi-Junior quits (~BenziJuni@88-149-67-162.du.xdsl.is) (Ping timeout: 268 seconds)
12:33:01 <dminuoso> Is there something like `wither` or `traverse` that will stop on first Just?
12:33:02 jespada joins (~jespada@181.28.113.105)
12:33:32 <dminuoso> Some kind of: (a -> f (Maybe b)) -> [a] -> f (Maybe b)
12:33:34 <merijn> dminuoso: Sounds like you want Clowns to the left of me, Jokers to the right
12:34:10 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
12:34:17 matthewmosior joins (~matthewmo@173.170.253.91)
12:34:19 <merijn> dminuoso: Assuming I ever understood that paper correctly, it is McBride after all...
12:34:22 <merijn> https://www.cis.upenn.edu/~cis39903/static/clowns.pdf
12:35:22 <merijn> That's like a "gradual traverse" or some kinda "traverse zipper" or something
12:35:41 <dminuoso> Mmm, Im not gonna depend on `bifunctors` for this one
12:36:21 <jackdk> something foldMap-esque, using the `First` monoid?
12:37:16 <dminuoso> jackdk: not quite foldMap, I want Applicative/Monadic effects as well
12:37:26 × king_gs quits (~Thunderbi@187.201.216.244) (Ping timeout: 260 seconds)
12:41:03 <merijn> dminuoso: Wait, don't you want asum?
12:41:13 <merijn> > asum [Nothing, Just 2, Just 3, Nothing]
12:41:15 <lambdabot> Just 2
12:44:52 Pickchea joins (~private@user/pickchea)
12:45:09 <dminuoso> merijn: A sort of asumM, if you want
12:45:50 × ncf quits (~n@monade.li) (Ping timeout: 268 seconds)
12:46:28 ncf joins (~n@monade.li)
12:50:51 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
12:51:41 <lortabac> @hoogle (a -> f (Maybe b)) -> [a] -> f (Maybe b) -- dminuoso
12:51:42 <lambdabot> Control.Monad.Extra firstJustM :: Monad m => (a -> m (Maybe b)) -> [a] -> m (Maybe b)
12:51:42 <lambdabot> Extra firstJustM :: Monad m => (a -> m (Maybe b)) -> [a] -> m (Maybe b)
12:51:47 matthewmosior joins (~matthewmo@173.170.253.91)
12:52:10 <lortabac> apparently it's in 'extra'
12:52:50 mc47 joins (~mc47@xmonad/TheMC47)
12:53:04 <dminuoso> Mmm yeah that looks about right. Isnt there some way to combine First/Alt in some magical ways to get the same behavior?
12:53:14 <dminuoso> It feels like there's enough parts in base
12:55:01 × califax quits (~califax@user/califx) (Ping timeout: 268 seconds)
12:55:58 <lortabac> maybe the Alternative instance for MaybeT?
12:56:35 <dminuoso> Mmm, so then I could just `runMaybeT . asum`
12:56:40 <dminuoso> That looks about right. Thanks
13:01:36 <raehik> is there some common way to check approximate equality of floats? refactoring some tests that check things like (== 0.7)
13:02:09 toeffel joins (~toeffel@user/toeffel)
13:02:10 <raehik> does hspec have something? or do I just roll a function and remember to use it where there are floats
13:02:44 califax joins (~califax@user/califx)
13:04:09 <merijn> raehik: Yes, you compare if it's within a given epsilon
13:04:29 <merijn> raehik: So, "x >= 0.7 + epsilon && x <= 0.7 + epsilon"
13:04:34 <merijn> eh
13:04:45 <merijn> make one of the +s a -, obviously
13:05:19 × xff0x quits (~xff0x@ap007189.d.east.v6connect.net) (Ping timeout: 252 seconds)
13:05:28 <raehik> OK, and no pre-rolled stuff that chooses an epsilon and hands me a type class or w/e. cheers
13:06:28 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
13:07:03 <raehik> drives home that the Eq instance is more about structural equality
13:08:21 <merijn> There is no sensible universal epsilon
13:08:47 <merijn> It's heavily computation dependent
13:08:55 <merijn> not to mention dependent on your error tolerance
13:11:05 nate4 joins (~nate@98.45.169.16)
13:15:57 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
13:17:11 × toeffel quits (~toeffel@user/toeffel) (Quit: quit)
13:22:30 cfricke joins (~cfricke@user/cfricke)
13:23:21 <kuribas`> merijn: don't you need to scale the epsilon?
13:24:25 dsrt^ joins (~dsrt@96.70.11.181)
13:25:00 <merijn> Yes, no, maybe
13:25:11 <merijn> That's what I said: There is no sensible universal epsilon
13:25:13 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
13:26:52 toeffel joins (~toeffel@user/toeffel)
13:27:03 × ryantrinkle quits (~ryan@2607:f00:3:14c0:7c6b:7160:d1ff:3f7) (Ping timeout: 244 seconds)
13:27:58 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:28:47 matthewmosior joins (~matthewmo@173.170.253.91)
13:28:55 × jonathanx quits (~jonathan@c-5eea739f-74736162.cust.telenor.se) (Read error: Connection reset by peer)
13:29:18 mastarija joins (~mastarija@2a05:4f46:e03:6000:cf81:4038:e6c6:74b4)
13:30:08 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
13:30:14 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
13:31:11 king_gs joins (~Thunderbi@187.201.216.244)
13:33:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
13:33:36 matthewmosior joins (~matthewmo@173.170.253.91)
13:33:43 × akegalj quits (~akegalj@135-40.dsl.iskon.hr) (Quit: leaving)
13:34:18 × mncheckm quits (~mncheck@193.224.205.254) (Remote host closed the connection)
13:36:56 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
13:37:27 xff0x joins (~xff0x@2405:6580:b080:900:ae06:3e97:decd:45dd)
13:38:41 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 260 seconds)
13:41:00 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
13:47:15 × hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 248 seconds)
13:48:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:49:31 matthewmosior joins (~matthewmo@173.170.253.91)
13:50:08 ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
13:50:39 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
13:52:49 mncheck joins (~mncheck@193.224.205.254)
13:53:03 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
13:54:26 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
13:55:55 <merijn> bah...my carefully constructed race condition test doesn't work in one of my setups. RIP >.>
13:56:17 <merijn> I wish concurrency wasn't such a 2nd class citizen in Haskell
13:56:42 <merijn> Also, same, but for exceptions :p
13:59:07 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:59:40 hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net)
14:00:00 <carbolymer> merijn: how would you make concurrency 1st class citizen?
14:00:08 <carbolymer> tbh `async` is nice to work
14:00:11 <carbolymer> with
14:00:26 <merijn> carbolymer: the concurrency in async is implicit, though
14:00:32 <merijn> It's not something you can pass around as values
14:00:45 califax joins (~califax@user/califx)
14:00:47 <carbolymer> merijn: concurrency as value? elaborate pls
14:00:54 <merijn> carbolymer: there's also no real effective way to manage/control thread structures
14:01:04 Killy joins (~killy@2001:470:69fc:105::2:6ec1)
14:01:33 <carbolymer> merijn: there's version of `forConcurrentlyN` where you can controll the pool of threads, and I saw work stealing somewhere I think
14:01:35 <merijn> carbolymer: I can explicit, inspectable hierarchies of threads you can limit
14:01:54 <carbolymer> ah
14:02:04 <merijn> carbolymer: I have my own library for that, because async was insufficient for what I needed
14:02:40 <merijn> carbolymer: In fact, this observation that concurrency still kinda sucks in Haskell is derived directly from working on said library for doing thread pool concurrency
14:03:04 <carbolymer> having few drawbacks doesn't mean "sucks"
14:03:17 <merijn> carbolymer: Another example, why is everything spawned from a main thread? Why can't I have a program defined of multiple independent entry points
14:03:32 matthewmosior joins (~matthewmo@173.170.253.91)
14:03:39 <carbolymer> merijn: valid point
14:03:45 <merijn> carbolymer: You say "few drawbacks", I say "no mortal has any hope of ever constructing correct code with this"
14:03:59 <merijn> I mean, don't get me wrong, Haskell is still miles better than many other languages
14:04:38 <carbolymer> merijn: well if you're careful e.g. you build your multithreaded program in term of "tasks" and then throw them into pool of threads, it's fine; at least it worked for me in 90% of the cases
14:05:01 <merijn> But, having worked on distributed systems and concurrent runtimes for most of the past 1.5 decade, I'd consider myself fairly expert in writing this stuff. And I have very little faith in my ability to create actually correct stuff
14:05:15 <merijn> carbolymer: That's the entire problem with the current tools
14:05:19 <geekosaur> merijn, because only windows supports that concept and even that requires a hack
14:05:27 <merijn> carbolymer: They kinda, mostly work 90-95% of the time
14:05:36 <merijn> Which lulls you into a false sense of security
14:05:55 <merijn> geekosaur: Nonsense, you can easily support that in the runtime
14:06:00 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
14:06:06 <merijn> geekosaur: There's no reason the language/compiler couldn't handle that
14:06:23 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
14:06:31 <carbolymer> merijn: so you would like to have java-like ForkJoinPool?
14:06:44 <merijn> carbolymer: I don't know java's forkjoinpool, so I can't say
14:07:24 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:10be:940f:4ae:d4c8) (Quit: WeeChat 2.8)
14:07:32 <merijn> I don't think it'd even be TOO hard to make GHC/Haskell's support better, I just fear it can't be done backwards compatibly and therefore a doomed effort from the start :\
14:07:36 <carbolymer> merijn: a thread pool which can grow, then from the tasks in the thread pool you can push more tasks into the pool, and there was a way to collect everything afair
14:08:29 <merijn> carbolymer: The problem is that async exception make everything nearly infinitely hard and the compiler/runtime don't have any adequate tooling/support for managing that
14:09:09 ryantrinkle joins (~ryan@2607:fb90:cd1c:c620:bd17:cb61:34d1:12f)
14:09:28 shriekingnoise joins (~shrieking@186.137.167.202)
14:09:46 <merijn> carbolymer: Your "worked for me in 90% of the cases" is true, until you have to deal with async exceptions. And having wrapped my stuff into a library that I'm actually using (as are some others) you suddenly realise that you can't control the rest of the world and somehow have to handle that stuff properly 100% of the time, not 95%
14:10:46 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
14:10:52 <merijn> I end up basically manually auditing the transitive callgraphs of some functions to handle things reliably. Which sucks, because transitive callgraphs are notoriously unstable >.>
14:11:09 <merijn> I want better tools to cover this stuff without going through that effort
14:11:18 × ardell quits (~ardell@user/ardell) (Quit: Leaving)
14:11:21 <carbolymer> merijn: I prefer to avoid them as much as I can
14:11:54 <carbolymer> merijn: because it will confuse af next person looking at my code using async exceptions for communication
14:12:20 <merijn> carbolymer: the problem is that you have no other way of stopping running threads
14:12:39 <carbolymer> I know
14:12:43 <carbolymer> sadpikatchu.jpg
14:12:44 <merijn> carbolymer: And since there is no way to monitor "child" threads (or even a notion of child threads or thread groups) async exceptions are the only way
14:13:19 <carbolymer> merijn: would you rather not have them in GHC?
14:13:39 <merijn> carbolymer: I want things like hierarchies, monitors, "thread groups per library" so that libraries that use concurrency internally can expose control over that concurrency to their callers
14:13:53 <merijn> error handling/termination handling
14:14:35 <carbolymer> merijn: is there a language with those concurrency features out there?
14:14:47 <carbolymer> I'm curious how it would work in practice
14:15:38 × king_gs quits (~Thunderbi@187.201.216.244) (Ping timeout: 255 seconds)
14:16:08 <merijn> carbolymer: Erlang has some, but not all
14:16:39 <merijn> Oh, I'd also want a method of limiting who can async interrupt, that alone would simplify live drastically
14:19:21 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6)
14:21:49 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
14:22:18 matthewmosior joins (~matthewmo@173.170.253.91)
14:23:08 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
14:24:40 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
14:24:58 <merijn> Now I just need someone to pay for the time it takes to invent ;)
14:25:05 <carbolymer> invent
14:25:07 <carbolymer> or implement?
14:25:32 <merijn> both
14:25:36 <carbolymer> :)
14:25:51 <merijn> you'd have to figure out all the details on how to implement it
14:26:16 <merijn> Sadly there are fairly little jobs whose description is "hack on whatever pet compiler feature you like" :p
14:28:10 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
14:30:42 <carbolymer> well if it's not 50% of your job time, it shouldn't be a big problem
14:32:48 <carbolymer> merijn: do you have any good resources to read up about concurrency or its problems?
14:34:03 <merijn> Not really, same problem as when people ask me about computer performance, I learned most I know through osmosis of hanging around in environments where people work on that. Which isn't a very easily followed method of learning :p
14:34:39 <carbolymer> I feel that there's no good book about concurrency in general
14:35:03 <carbolymer> and most of my stuff I've learned from "Java Concurrency in Practice" which is quite good, even when you're not writing Java
14:35:33 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
14:35:47 <merijn> Simon Marlow's Parallel & Concurrent Haskell is a good book, but I'm not sure to what extent it helps understand the scope of problems
14:36:51 <carbolymer> I feel that "Parallel & Concurrent Haskell" is very haskell-related, and covers good practices; I'd love to read about the bad ones :)
14:37:50 × ryantrinkle quits (~ryan@2607:fb90:cd1c:c620:bd17:cb61:34d1:12f) (Ping timeout: 244 seconds)
14:37:53 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
14:37:53 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6)
14:41:00 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
14:41:23 shriekingnoise joins (~shrieking@186.137.167.202)
14:45:35 yvan-sraka joins (~yvan-srak@37.171.49.59)
14:49:42 × dos__^^ quits (~user@user/dos/x-1723657) (Remote host closed the connection)
14:52:10 dos__^^ joins (~user@user/dos/x-1723657)
14:55:00 zebrag joins (~chris@user/zebrag)
14:55:50 × yvan-sraka quits (~yvan-srak@37.171.49.59) (Remote host closed the connection)
14:56:09 yvan-sraka joins (~yvan-srak@37.171.49.59)
14:57:38 dsrt^ joins (~dsrt@96.70.11.181)
15:00:45 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:07:13 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
15:07:15 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds)
15:07:35 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
15:08:31 cfricke joins (~cfricke@user/cfricke)
15:09:06 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:09:45 × toeffel quits (~toeffel@user/toeffel) (Quit: quit)
15:10:00 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 268 seconds)
15:18:04 toeffel joins (~toeffel@user/toeffel)
15:21:27 ryantrinkle joins (~ryan@2607:f00:3:14c0:7c6b:7160:d1ff:3f7)
15:25:50 ober_ joins (~ober@c-24-61-80-64.hsd1.ma.comcast.net)
15:26:36 × eikke quits (~NicolasT@88.126.78.98) (Ping timeout: 260 seconds)
15:27:51 <ober_> What are the Paths_.* modules for and where are they documented?
15:28:10 × nilradical quits (~nilradica@user/naso) ()
15:28:21 <merijn> ober_: They're generated by cabal and used for accessing package metadata (and thus documented in the cabal docs)
15:28:32 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
15:28:35 <geekosaur> https://cabal.readthedocs.io/en/3.6/cabal-package.html?highlight=Paths_pkgname#accessing-data-files-from-package-code
15:29:24 <albet70> what's the benefit of do notation?
15:29:36 <merijn> albet70: It's easy to read and write?
15:29:46 <geekosaur> it lets you write imperative-ish code somewhat more naturally
15:29:51 <albet70> when to use >>= and when for do notation?
15:30:14 <geekosaur> I generally use >>= for short stuff and do notation for longer stuff
15:30:23 × toeffel quits (~toeffel@user/toeffel) (Quit: quit)
15:34:00 toeffel joins (~toeffel@user/toeffel)
15:34:40 <pareto-optimal-d> geekosaur: I do the same. Also use >>= a lot in ghci because if everything is one line it's more convenient history.
15:34:51 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
15:34:51 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
15:38:44 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
15:40:06 gentauro joins (~gentauro@user/gentauro)
15:45:58 × yvan-sraka quits (~yvan-srak@37.171.49.59) (Remote host closed the connection)
15:47:50 rik_tig joins (~rik_tig@user/rik-tig/x-5430394)
15:49:58 dsrt^ joins (~dsrt@96.70.11.181)
15:50:04 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
15:54:36 × toeffel quits (~toeffel@user/toeffel) (Quit: quit)
15:54:38 yvan-sraka joins (~yvan-srak@37.173.219.26)
15:57:34 matthewmosior joins (~matthewmo@173.170.253.91)
16:03:57 × kuribas` quits (~user@silversquare.silversquare.eu) (Remote host closed the connection)
16:05:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:06:46 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6)
16:08:12 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
16:11:20 eikke joins (~NicolasT@88.126.78.98)
16:11:33 <eikke> I have a package which uses an internal/named library next to the public one. The public library exports some definitions from modules in the internal one. When I render Haddocks locally, the documentation of those re-exported values shows up nicely. However, on Hackage (manually uploaded docs using --haddock-for-hackage), these re-exported values are listed but they don't have any documentation attached
16:11:39 <eikke> to them. Is this a known issue?
16:12:03 × yvan-sraka quits (~yvan-srak@37.173.219.26) (Remote host closed the connection)
16:13:16 × dsrt^ quits (~dsrt@96.70.11.181) (Ping timeout: 260 seconds)
16:13:28 × chele quits (~chele@user/chele) (Quit: Leaving)
16:14:49 <merijn> eikke: It is
16:15:08 <merijn> eikke: It's been there for at least 4 years, I think?
16:15:09 × eikke quits (~NicolasT@88.126.78.98) (Changing host)
16:15:09 eikke joins (~NicolasT@user/NicolasT)
16:15:14 <merijn> I should have an issue about it
16:15:52 toeffel joins (~toeffel@user/toeffel)
16:16:36 <eikke> Any known work-arounds?
16:16:40 <merijn> eikke: Does it work if you explicitly re-export symbols?
16:16:53 <merijn> Or where you already doing that?
16:17:16 <eikke> That's what I'm doing :) module M (foo) where import MInternal (foo) (etc)
16:19:08 <merijn> eikke: hmm, maybe a different issue then I was thinking off
16:19:49 <eikke> Maybe I should try with some newer version of cabal/haddock/...
16:20:38 × mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 240 seconds)
16:20:54 <merijn> eikke: Also might wanna look into the home module/visibility story of haddock https://haskell-haddock.readthedocs.io/en/latest/markup.html?#hyperlinking-and-re-exported-entities
16:22:39 ec joins (~ec@gateway/tor-sasl/ec)
16:25:00 cstml joins (~cstml@user/cstml)
16:28:28 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:29:18 × alternateved quits (~user@staticline-31-183-146-203.toya.net.pl) (Remote host closed the connection)
16:30:26 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
16:32:29 FragByte_ joins (~christian@user/fragbyte)
16:33:06 × fserucas quits (~fserucas@89.214.153.60) (Ping timeout: 260 seconds)
16:35:44 × FragByte quits (~christian@user/fragbyte) (Ping timeout: 268 seconds)
16:35:44 FragByte_ is now known as FragByte
16:36:00 × mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving)
16:36:02 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
16:36:25 zebrag joins (~chris@user/zebrag)
16:37:01 × cstml quits (~cstml@user/cstml) (Quit: WeeChat 3.5)
16:41:17 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
16:43:10 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:47:06 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
16:49:26 × nschoe quits (~quassel@178.251.84.79) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
16:49:39 × ubert quits (~Thunderbi@77.119.217.249.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
16:50:02 ubert joins (~Thunderbi@77.119.173.191.wireless.dyn.drei.com)
16:50:09 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:50:56 cstml joins (~cstml@user/cstml)
16:53:34 × cstml quits (~cstml@user/cstml) (Client Quit)
16:54:29 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
16:55:16 × CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
17:00:04 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:00:19 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
17:01:58 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:03:12 califax joins (~califax@user/califx)
17:10:32 ardell joins (~ardell@user/ardell)
17:12:36 nate4 joins (~nate@98.45.169.16)
17:13:36 × vglfr quits (~vglfr@145.224.94.75) (Read error: Connection reset by peer)
17:13:43 vglfr joins (~vglfr@145.224.94.75)
17:15:35 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
17:17:38 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
17:20:06 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
17:27:10 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:30:37 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
17:31:54 AlexNoo_ joins (~AlexNoo@178.34.163.186)
17:33:46 × AlexZenon quits (~alzenon@178.34.150.204) (Ping timeout: 260 seconds)
17:34:59 × Alex_test quits (~al_test@178.34.150.204) (Ping timeout: 248 seconds)
17:35:31 × AlexNoo quits (~AlexNoo@178.34.150.204) (Ping timeout: 268 seconds)
17:35:41 × ober_ quits (~ober@c-24-61-80-64.hsd1.ma.comcast.net) (Quit: Leaving)
17:36:17 × rik_tig quits (~rik_tig@user/rik-tig/x-5430394) (Ping timeout: 252 seconds)
17:37:37 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:39:03 Alex_test joins (~al_test@178.34.163.186)
17:39:04 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:39:16 AlexZenon joins (~alzenon@178.34.163.186)
17:41:25 × eikke quits (~NicolasT@user/NicolasT) (Ping timeout: 252 seconds)
17:42:03 eikke joins (~NicolasT@user/NicolasT)
17:46:36 × eikke quits (~NicolasT@user/NicolasT) (Ping timeout: 260 seconds)
17:47:58 × jespada quits (~jespada@181.28.113.105) (Quit: Textual IRC Client: www.textualapp.com)
17:48:38 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
17:49:28 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
17:51:56 Tuplanolla joins (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi)
17:52:50 × cheater quits (~Username@user/cheater) (Quit: BitchX: good to the last drop!)
17:53:03 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:53:26 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
17:53:26 rik_tig joins (~rik_tig@user/rik-tig/x-5430394)
17:53:30 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:54:11 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
17:56:45 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
17:58:36 econo joins (uid147250@user/econo)
17:59:07 Pickchea joins (~private@user/pickchea)
18:02:30 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:06:25 mhatta joins (~mhatta@www21123ui.sakura.ne.jp)
18:06:52 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
18:09:06 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
18:10:12 glguy joins (x@libera/staff-emeritus/glguy)
18:11:26 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
18:28:54 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
18:30:51 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds)
18:31:13 guest8080 joins (~guest8080@207.102.57.162)
18:33:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:34:44 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
18:35:48 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
18:38:24 kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net)
18:38:41 coot joins (~coot@213.134.176.158)
18:38:56 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
18:39:17 <guest8080> So, I'm thinking about doing a Haskell project to learn some more about it.  I have some functional programming understanding.  What I'm trying to decide on is what packages should I base my project on (json/yaml parser as an example say).  I've looked through hackage and I it looks like the entire history is there but no way to understand what
18:39:17 <guest8080> are the currently used packages vs older (dying?) packages.  What should someone starting out look for to make good package dependency decisions?
18:40:15 <Clint> guest8080: if they're in stackage, you can infer that they haven't completely bitrotted to the point of unbuildability
18:41:51 <guest8080> Ok, great.  I'll look there first or for confirmation.  Thanks!
18:42:29 azimut joins (~azimut@gateway/tor-sasl/azimut)
18:42:44 × kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
18:43:23 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
18:43:27 × guest8080 quits (~guest8080@207.102.57.162) (Quit: Client closed)
18:44:31 emad joins (~emad@156.214.65.212)
18:44:46 × emad quits (~emad@156.214.65.212) (Remote host closed the connection)
18:46:13 benin0 joins (~benin@183.82.205.66)
18:49:18 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
18:50:42 ardell_ joins (~ardell@user/ardell)
18:53:12 lortabac joins (~lortabac@2a01:e0a:541:b8f0:a028:dd7c:b36:1982)
18:53:50 × ardell quits (~ardell@user/ardell) (Ping timeout: 268 seconds)
18:57:46 × `2jt quits (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
19:00:31 × ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection)
19:01:38 AlexNoo_ is now known as AlexNoo
19:02:02 Midjak joins (~Midjak@82.66.147.146)
19:02:28 × td_ quits (~td@94.134.91.83) (Quit: waking up from the american dream ...)
19:05:20 darkstardev13 joins (~darkstard@50.53.212.60)
19:05:24 tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
19:05:27 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
19:05:28 × darkstarx quits (~darkstard@50.53.212.60) (Remote host closed the connection)
19:05:37 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Remote host closed the connection)
19:05:38 AlexZenon_2 joins (~alzenon@178.34.163.186)
19:06:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:07:13 × AlexZenon quits (~alzenon@178.34.163.186) (Ping timeout: 252 seconds)
19:09:01 Miliang joins (~Miliang@46.245.107.78)
19:11:46 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:13:05 × toeffel quits (~toeffel@user/toeffel) (Ping timeout: 252 seconds)
19:13:42 × Miliang quits (~Miliang@46.245.107.78) (Client Quit)
19:14:33 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
19:15:47 × AlexZenon_2 quits (~alzenon@178.34.163.186) (Read error: Connection reset by peer)
19:15:47 × Alex_test quits (~al_test@178.34.163.186) (Read error: Connection reset by peer)
19:15:51 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
19:16:05 Alex_test joins (~al_test@178.34.163.186)
19:16:05 AlexZenon joins (~alzenon@178.34.163.186)
19:18:44 <troydm> are monad calls like a >> b tail recursive?
19:19:07 <troydm> e.g. optimized by compiler during runtime to be tail recursive?
19:19:15 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:19:19 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
19:19:59 `2jt joins (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net)
19:21:00 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:26:32 <tdammers> I think you mean "tail *call*" - >> itself is not recursive, so it can't be tail recursive either
19:27:29 <tdammers> except that Haskell doesn't really have "calls", the execution model works somewhat differently
19:28:12 <tdammers> and: >> is a typeclass method, meaning that it's polymorphic, and its performance characteristics depend on the concrete implementation (i.e., which Monad instance you pick)
19:29:03 <tdammers> calling it a "monad call" is misleading, because the "monad" part isn't relevant to the evaluation semantics either
19:29:53 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
19:30:18 <tdammers> HOWEVER - in general, recursion is efficient in Haskell; tail recursion will generally run in constant space. It's not "tail call optimization" in the classic sense though, it's just a consequence of how Haskell evaluates expressions.
19:31:05 <tdammers> And because >> is just a regular typeclass method that resolves to a vanilla Haskell function, it is just as efficient
19:33:11 <tdammers> If you want to see for yourself, try something like this: foldl' (>>) (putStrLn "Let's go!") (map print ([0..] :: Integer))
19:33:22 × _73 quits (~user@pool-71-184-136-42.bstnma.fios.verizon.net) (Ping timeout: 268 seconds)
19:33:43 <tdammers> This will not overflow a call stack - it will happily churn along in mostly constant memory, until the integers get so big that they eat up all your RAM
19:34:21 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
19:34:35 × coot quits (~coot@213.134.176.158) (Remote host closed the connection)
19:34:49 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
19:37:07 <sm> guest8080: also just check the last upload date(s)
19:37:24 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
19:40:22 × myme1 quits (~myme@2a01:799:d5a:cd00:bb5a:372d:4d0c:faeb) (Quit: WeeChat 3.4.1)
19:42:07 slaydr joins (~slaydr@75.164.14.186)
19:43:16 themc47 joins (~mc47@xmonad/TheMC47)
19:43:55 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
19:44:44 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 244 seconds)
19:50:29 pavonia joins (~user@user/siracusa)
19:53:25 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
19:58:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
20:02:45 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
20:07:13 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
20:07:24 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-0cc7-7d4a-4464-7c91.res6.spectrum.com) (Remote host closed the connection)
20:11:40 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
20:12:05 azimut joins (~azimut@gateway/tor-sasl/azimut)
20:12:31 matthewmosior joins (~matthewmo@173.170.253.91)
20:21:35 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:24:15 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:a028:dd7c:b36:1982) (Quit: WeeChat 2.8)
20:26:25 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
20:26:26 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
20:28:59 sagax joins (~sagax_nb@user/sagax)
20:32:25 × themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:39:45 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
20:40:32 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
20:45:11 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds)
20:47:01 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:55:28 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
20:55:42 × mastarija quits (~mastarija@2a05:4f46:e03:6000:cf81:4038:e6c6:74b4) (Quit: WeeChat 3.5)
20:58:49 × Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving)
21:00:13 Midjak joins (~Midjak@82.66.147.146)
21:00:15 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
21:00:19 × euandreh quits (~euandreh@179.214.113.107) (Ping timeout: 248 seconds)
21:02:17 euandreh joins (~euandreh@179.214.113.107)
21:02:29 _73 joins (~user@pool-173-76-102-248.bstnma.fios.verizon.net)
21:03:28 mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec)
21:05:02 Kaipei joins (~Kaiepi@142.68.249.28)
21:06:17 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:06:34 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:07:51 × Kaiepi quits (~Kaiepi@142.68.249.28) (Ping timeout: 260 seconds)
21:10:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:12:26 <L29Ah> i have this code:
21:12:26 <L29Ah> data T = A | B | C | D
21:12:26 <L29Ah> type TLength = 4
21:12:46 <L29Ah> how do i put the T's length into TLength without hardcode or TH?
21:12:58 <geekosaur> uh
21:13:10 <geekosaur> do you really intend that to be a type level Natural?
21:13:13 <L29Ah> yes
21:13:27 <L29Ah> it will be an argument for a fixed length vector
21:13:50 <L29Ah> so i have a safe vector with named indexes
21:13:51 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:14:01 <geekosaur> I think you're stuck with TH since a type alias can't be built dynamically
21:14:07 nate4 joins (~nate@98.45.169.16)
21:14:11 <L29Ah> i don't strictly need a type alias
21:14:12 <geekosaur> singletons won't help you here
21:14:29 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
21:15:36 jpds1 is now known as jpds
21:15:40 <monochrom> There may be some way using GHC.Generics or Data.Data that I won't help with.
21:16:00 <geekosaur> well. if you can get by without the type alias then you might be able to promote `fromEnum (maxBound :: T)` to a `KnownNat`
21:16:17 monochrom follows the latest health recommendations and washes hands often >:)
21:16:46 <L29Ah> but i need to specify the length to mkN type signature somehow
21:16:52 <L29Ah> https://hackage.haskell.org/package/fixed-vector-1.2.1.0/docs/Data-Vector-Fixed.html
21:16:54 <geekosaur> (this relying on `deriving`-based `Enum` indexes starting from 0, and you will need `deriving Enum` to do it)
21:16:58 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
21:17:05 matthewmosior joins (~matthewmo@173.170.253.91)
21:18:18 <geekosaur> also this seems a lot of work to duplicate Array and Ix…
21:18:19 × slaydr quits (~slaydr@75.164.14.186) (Quit: Leaving)
21:18:56 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
21:19:07 <geekosaur> oh., sorry, `deriving (Enum, Bounded)`
21:20:07 <geekosaur> and add 1 🙂
21:20:25 <geekosaur> fromEnum (maxBound :: T) + 1
21:20:43 <monochrom> See, this is the kind of off-by-1 errors that type-level length tracking promised to eliminate!
21:20:50 <geekosaur> but you still need to use singletons to promote it
21:20:50 <L29Ah> not sure why isn't it Array, maybe has to do with the fact that Array n can't be constructed from Array (n-1) or smth
21:20:55 <monochrom> I mean >:)
21:21:27 <geekosaur> still, it has to reinvent Ix the hard way, from the sound of it
21:21:43 <geekosaur> granting that Ix isn't type level so it may not be "safe enough"
21:22:03 <monochrom> This is type-level Ix, yeah.
21:22:27 <monochrom> I might say "porting" instead of "reinventing" :)
21:22:28 <geekosaur> I don't know your threat model
21:22:50 <monochrom> But again I follow health recommendations and wash my hands off this :)
21:23:39 <monochrom> A little bit of abridged true story in the unix-and-c course I teach though.
21:23:47 <geekosaur> oh, I'm not altogether certain I want to be involved with it either. Ix might well be good enough, depending on threat model, and iirc there's a wrapper for Vector that supports Ix
21:24:16 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
21:24:36 <monochrom> In homework, I give my students a "char *p" as a parameter to their function. I guaranteed that p points to a C nul-terminated string.
21:24:52 <monochrom> Students have need of making a copy. So they go...
21:24:55 <geekosaur> I do know that type level is painful enough that it takes a lot to make me reach for it
21:25:00 <monochrom> char *q = malloc(sizeof(p))
21:25:02 <monochrom> <_<
21:25:45 <geekosaur> I'd roll my eyes but I've forgotten what it was like to be that level 😈
21:25:46 <monochrom> I only found out by compiling their code with "gcc -O2" which adds run-time guards against buffer overflow.
21:26:20 <monochrom> What is my threat model? Answer: I run their code in a docker container. :)
21:26:36 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
21:29:55 matthewmosior joins (~matthewmo@173.170.253.91)
21:31:55 <johnw> do you valgrind their code too?
21:32:03 × segfaultfizzbuzz quits (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
21:32:18 <monochrom> Yes for a few selected questions.
21:33:39 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Quit: Leaving)
21:34:31 <monochrom> They also know about valgrind. I gave them an exercise on it.
21:34:34 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:34:41 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
21:35:20 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
21:39:56 × acidjnk quits (~acidjnk@p200300d6e7137a4448390a2d4fdf592b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
21:42:47 <dolio> Do they ever learn that using C is a bad idea?
21:42:55 <monochrom> :)
21:43:02 <monochrom> But it's a unix syscall course.
21:43:32 <monochrom> But I think they hate C by now.
21:43:39 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Quit: Leaving)
21:43:48 <geekosaur> good
21:43:55 <ente`> I was gonna ask
21:43:58 <ente`> does that make you happy
21:44:23 hgolden joins (~Howard@cpe-172-251-233-141.socal.res.rr.com)
21:44:28 <ente`> cause we had various weird C assignments in college
21:44:35 × zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
21:44:51 td_ joins (~td@94.134.91.83)
21:44:57 <monochrom> I'm not happy. They hate C for the wrong reasons.
21:44:58 <geekosaur> C still has its place. but please write applications in something sane
21:45:25 <geekosaur> (this does not mean C++)
21:45:28 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.6)
21:45:31 <ente`> Vala
21:45:34 <ente`> :D
21:46:21 <ente`> ping me when it's the year of MirageOS on the desktop
21:47:02 <geekosaur> Vala's just the FSF's failed attempt to ride the coat-tails of Go, having missed the point of it completely because it's pretty much the opposite of the FSF's aims
21:47:25 <dolio> Doesn't vala predate go?
21:47:51 <ente`> yes
21:48:12 <geekosaur> does it? I recall Go coming out pretty early
21:48:19 <ente`> Vala is the FSF's failed attempt to recreate C# for GObject
21:48:45 <geekosaur> (shortly after Dart, which struck me as dumb)
21:49:23 <dolio> Go is before Dart.
21:49:50 <ente`> wikipedia dates Vala to 2006 and Go to 2009
21:50:32 <ente`> and Haskell to 1990 in case anyone didn't know it's older than both
21:51:07 <dolio> Which always made even less sense to me (making dart after go).
21:51:20 <monochrom> When I teach Haskell I ride the coat-tail of Java and Rust :)
21:51:36 gustik joins (~gustik@2a01:c844:2457:2220:475d:34f:d571:996f)
21:51:40 <geekosaur> it does seem at least one of them is redundant
21:52:06 <geekosaur> apparnetly everyone else agrees, since I seem to see very little take-up of dart
21:52:19 <dolio> Dart seems worse, though, so it makes less sense to build it after.
21:52:32 <ente`> I kind of ignore anything that's too new tbh
21:52:58 <geekosaur> (and I want my name back, dammit. I named an C-embedded report generator that in the 1980s)
21:53:00 <ente`> there's enough of old, stable programming languages I haven't yet bothered to learn
21:53:02 <dolio> I imagine the answer is that it's two completely different teams with no communication at google.
21:54:17 <geekosaur> https://www.google.com/search?q=dilbert+battling+business+units&oq=battling+business+units+&aqs=chrome.1.69i57j0i22i30j0i390l3.7012j1j1&sourceid=chrome&ie=UTF-8
21:54:59 jtomas joins (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net)
21:57:23 × `2jt quits (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Ping timeout: 248 seconds)
21:59:29 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:59:52 azimut joins (~azimut@gateway/tor-sasl/azimut)
22:02:09 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
22:03:43 matthewmosior joins (~matthewmo@173.170.253.91)
22:04:06 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:04:50 jinsun joins (~jinsun@user/jinsun)
22:10:31 waleee joins (~waleee@h-176-10-137-138.na.cust.bahnhof.se)
22:11:52 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
22:11:52 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
22:15:04 × Colere quits (~colere@about/linux/staff/sauvin) (Read error: Connection reset by peer)
22:16:11 Colere joins (~colere@about/linux/staff/sauvin)
22:16:56 × beteigeuze quits (~Thunderbi@bl11-28-222.dsl.telepac.pt) (Quit: beteigeuze)
22:17:13 beteigeuze joins (~Thunderbi@bl11-28-222.dsl.telepac.pt)
22:19:52 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
22:21:57 × rik_tig quits (~rik_tig@user/rik-tig/x-5430394) (Quit: Leaving)
22:22:05 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
22:22:11 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
22:23:32 qhong_ joins (~qhong@rescomp-21-400677.stanford.edu)
22:24:02 hometown joins (~blurb@96.45.2.121)
22:24:12 neightchan joins (~nate@98.45.169.16)
22:24:14 chimp_ joins (~Psybur@c-76-123-45-25.hsd1.va.comcast.net)
22:24:32 lambdap232 joins (~lambdap@static.167.190.119.168.clients.your-server.de)
22:24:48 ell9 joins (~ellie@user/ellie)
22:25:20 jmct_ joins (sid160793@id-160793.tinside.irccloud.com)
22:25:20 ysh___ joins (sid6017@id-6017.ilkley.irccloud.com)
22:25:21 gmc_ joins (sid58314@id-58314.ilkley.irccloud.com)
22:25:22 saolsen_ joins (sid26430@id-26430.lymington.irccloud.com)
22:25:22 tritlo_ joins (sid58727@user/tritlo)
22:25:23 christiaanb_ joins (sid84827@id-84827.lymington.irccloud.com)
22:25:25 nonzen joins (~nonzen@user/nonzen)
22:25:28 koz_ joins (~koz@121.99.240.58)
22:25:28 red-snail1 joins (~snail@static.151.210.203.116.clients.your-server.de)
22:25:32 jackdk_ joins (sid373013@cssa/jackdk)
22:25:33 acertain_ joins (sid470584@id-470584.hampstead.irccloud.com)
22:25:35 × jtomas quits (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
22:25:36 natto17 joins (~natto@140.238.225.67)
22:25:39 megeve_ joins (sid523379@id-523379.hampstead.irccloud.com)
22:25:42 hendi_ joins (sid489601@id-489601.lymington.irccloud.com)
22:25:45 pierrot joins (~pi@user/pierrot)
22:25:45 rush joins (~sloorush@52.187.184.81)
22:25:46 feliix42_ joins (~felix@gibbs.uberspace.de)
22:25:47 loonycyborg_ joins (loonycybor@chantal.wesnoth.org)
22:25:47 orcus joins (~orcus@user/brprice)
22:25:48 Philonous joins (~Philonous@user/philonous)
22:25:58 × micro_ quits (~micro@user/micro) (Ping timeout: 240 seconds)
22:26:08 × jocke-l quits (jocke-l@a.x0.is) (Ping timeout: 255 seconds)
22:26:08 × statusfailed quits (~statusfai@statusfailed.com) (Ping timeout: 255 seconds)
22:26:15 ProofTechnique_ joins (sid79547@id-79547.ilkley.irccloud.com)
22:26:17 RMSBach joins (~guygastin@137.184.131.156)
22:26:19 × dexter1 quits (~dexter@li655-253.members.linode.com) (Ping timeout: 252 seconds)
22:26:28 × Jon quits (jon@dow.land) (Ping timeout: 244 seconds)
22:26:31 PotatoGim_ joins (sid99505@id-99505.lymington.irccloud.com)
22:26:32 tom_ joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
22:26:36 jakesyl____ joins (sid56879@id-56879.hampstead.irccloud.com)
22:26:44 SrPx_ joins (sid108780@id-108780.uxbridge.irccloud.com)
22:27:21 × Rembane_ quits (~Rembane@li346-36.members.linode.com) (Ping timeout: 268 seconds)
22:27:21 × mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Ping timeout: 268 seconds)
22:27:21 × robertm quits (robertm@lattice.rojoma.com) (Ping timeout: 268 seconds)
22:27:25 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
22:27:44 peutri_ joins (~peutri@bobo.desast.re)
22:27:50 haasn` joins (~nand@haasn.dev)
22:27:52 nckx_ joins (~nckx@tobias.gr)
22:27:58 Patternm1ster joins (~georg@li1192-118.members.linode.com)
22:28:03 lisq joins (~quassel@lis.moe)
22:28:12 xnbya2 joins (~xnbya@2a01:4f8:c17:cbdd::1)
22:28:18 glider_ joins (~glider@user/glider)
22:28:18 bjobjo_ joins (~bjobjo@user/bjobjo)
22:28:25 kaol_ joins (~kaol@94-237-42-30.nl-ams1.upcloud.host)
22:28:27 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
22:28:29 Fischmiep joins (~Fischmiep@user/Fischmiep)
22:28:34 tristanC_ joins (~tristanC@user/tristanc)
22:28:45 juri__ joins (~juri@84-19-175-179.pool.ovpn.com)
22:28:51 oo_migue1 joins (~pi@77.252.47.226)
22:29:03 aforemny_ joins (~aforemny@static.248.158.34.188.clients.your-server.de)
22:29:28 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
22:29:39 dtman34_ joins (~dtman34@2601:446:4400:2ad9:9069:db35:869c:4723)
22:31:26 x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
22:31:48 TheCoffeMaker_ joins (~TheCoffeM@200.126.129.149)
22:31:52 × ubert quits (~Thunderbi@77.119.173.191.wireless.dyn.drei.com) (Remote host closed the connection)
22:33:04 × sagax quits (~sagax_nb@user/sagax) (*.net *.split)
22:33:04 × notzmv quits (~zmv@user/notzmv) (*.net *.split)
22:33:04 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (*.net *.split)
22:33:04 × aeka quits (~aeka@user/hiruji) (*.net *.split)
22:33:04 × tom__ quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (*.net *.split)
22:33:04 × nckx quits (~nckx@tobias.gr) (*.net *.split)
22:33:04 × sibnull[m] quits (~sibnullma@2001:470:69fc:105::1:1291) (*.net *.split)
22:33:04 × phuegrvs[m] quits (~phuegrvsm@2001:470:69fc:105::1:65e4) (*.net *.split)
22:33:04 × dtman34 quits (~dtman34@2601:446:4400:2ad9:e4dc:49f0:fa32:b190) (*.net *.split)
22:33:04 × feliix42 quits (~felix@gibbs.uberspace.de) (*.net *.split)
22:33:04 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (*.net *.split)
22:33:04 × natto quits (~natto@140.238.225.67) (*.net *.split)
22:33:04 × aveltras[m] quits (~aveltrasm@2001:470:69fc:105::3ef9) (*.net *.split)
22:33:04 × christiaanb quits (sid84827@2a03:5180:f:2::1:4b5b) (*.net *.split)
22:33:04 × SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (*.net *.split)
22:33:04 × jackdk quits (sid373013@cssa/jackdk) (*.net *.split)
22:33:04 × jakesyl___ quits (sid56879@id-56879.hampstead.irccloud.com) (*.net *.split)
22:33:04 × loonycyborg quits (loonycybor@wesnoth/developer/loonycyborg) (*.net *.split)
22:33:04 × peutri quits (~peutri@bobo.desast.re) (*.net *.split)
22:33:04 × bjobjo quits (~bjobjo@user/bjobjo) (*.net *.split)
22:33:04 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (*.net *.split)
22:33:04 × juri_ quits (~juri@84-19-175-179.pool.ovpn.com) (*.net *.split)
22:33:04 × Typedfern quits (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) (*.net *.split)
22:33:04 × Psybur quits (~Psybur@c-76-123-45-25.hsd1.va.comcast.net) (*.net *.split)
22:33:04 × xnbya quits (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
22:33:04 × haasn quits (~nand@haasn.dev) (*.net *.split)
22:33:04 × Patternmaster quits (~georg@user/Patternmaster) (*.net *.split)
22:33:04 × natechan quits (~nate@98.45.169.16) (*.net *.split)
22:33:04 × heartburn quits (~gass@2a00:d880:3:1::b1e4:b241) (*.net *.split)
22:33:04 × koz quits (~koz@121.99.240.58) (*.net *.split)
22:33:04 × tristanC quits (~tristanC@user/tristanc) (*.net *.split)
22:33:04 × oo_miguel quits (~pi@77.252.47.226) (*.net *.split)
22:33:04 × qhong quits (~qhong@rescomp-21-400677.stanford.edu) (*.net *.split)
22:33:04 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (*.net *.split)
22:33:04 × ell quits (~ellie@user/ellie) (*.net *.split)
22:33:04 × glider quits (~glider@user/glider) (*.net *.split)
22:33:04 × pierrot_ quits (~pi@user/pierrot) (*.net *.split)
22:33:04 × orcus- quits (~orcus@user/brprice) (*.net *.split)
22:33:04 × Fischmie1 quits (~Fischmiep@user/Fischmiep) (*.net *.split)
22:33:04 × Philonous_ quits (~Philonous@user/philonous) (*.net *.split)
22:33:04 × kaol quits (~kaol@94-237-42-30.nl-ams1.upcloud.host) (*.net *.split)
22:33:04 × red-snail quits (~snail@static.151.210.203.116.clients.your-server.de) (*.net *.split)
22:33:04 × sloorush quits (~sloorush@52.187.184.81) (*.net *.split)
22:33:04 × megeve quits (sid523379@id-523379.hampstead.irccloud.com) (*.net *.split)
22:33:04 × ysh__ quits (sid6017@id-6017.ilkley.irccloud.com) (*.net *.split)
22:33:04 × jmct quits (sid160793@id-160793.tinside.irccloud.com) (*.net *.split)
22:33:05 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (*.net *.split)
22:33:05 × ProofTechnique quits (sid79547@id-79547.ilkley.irccloud.com) (*.net *.split)
22:33:05 × tritlo quits (sid58727@user/tritlo) (*.net *.split)
22:33:05 × hendi quits (sid489601@id-489601.lymington.irccloud.com) (*.net *.split)
22:33:05 × kadoban1 quits (~kadoban@user/kadoban) (*.net *.split)
22:33:05 × guygastineau quits (~guygastin@137.184.131.156) (*.net *.split)
22:33:05 × acertain quits (sid470584@id-470584.hampstead.irccloud.com) (*.net *.split)
22:33:05 × x22x22x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (*.net *.split)
22:33:05 × gmc quits (sid58314@id-58314.ilkley.irccloud.com) (*.net *.split)
22:33:05 × PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (*.net *.split)
22:33:05 × lisq_ quits (~quassel@lis.moe) (*.net *.split)
22:33:05 × nonzen_ quits (~nonzen@user/nonzen) (*.net *.split)
22:33:05 × saolsen quits (sid26430@id-26430.lymington.irccloud.com) (*.net *.split)
22:33:05 × aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split)
22:33:05 × lambdap23 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (*.net *.split)
22:33:05 × offtherock quits (~blurb@96.45.2.121) (*.net *.split)
22:33:05 jmct_ is now known as jmct
22:33:05 jackdk_ is now known as jackdk
22:33:05 ProofTechnique_ is now known as ProofTechnique
22:33:05 saolsen_ is now known as saolsen
22:33:06 tritlo_ is now known as tritlo
22:33:06 nckx_ is now known as nckx
22:33:07 megeve_ is now known as megeve
22:33:08 ell9 is now known as ell
22:33:08 lambdap232 is now known as lambdap23
22:33:09 christiaanb_ is now known as christiaanb
22:33:10 SrPx_ is now known as SrPx
22:33:10 haasn` is now known as haasn
22:33:10 acertain_ is now known as acertain
22:33:10 hendi_ is now known as hendi
22:33:10 gmc_ is now known as gmc
22:33:10 PotatoGim_ is now known as PotatoGim
22:33:12 aeka` joins (~aeka@2606:6080:2001:9:2679:addd:655:8142)
22:33:36 aeka` is now known as aeka
22:33:53 heartburn joins (~gass@2a00:d880:3:1::b1e4:b241)
22:35:57 <jackdk> monochrom: what do you mean by "ride the coat-tail" here?
22:36:46 Sgeo joins (~Sgeo@user/sgeo)
22:39:13 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
22:39:52 Typedfern joins (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net)
22:39:56 × michalz quits (~michalz@185.246.204.75) (Remote host closed the connection)
22:39:57 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
22:42:16 merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
22:42:19 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
22:42:22 kadoban1 joins (~kadoban@user/kadoban)
22:43:58 × hgolden quits (~Howard@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
22:45:07 sibnull[m] joins (~sibnullma@2001:470:69fc:105::1:1291)
22:45:59 aveltras[m] joins (~aveltrasm@2001:470:69fc:105::3ef9)
22:46:24 phuegrvs[m] joins (~phuegrvsm@2001:470:69fc:105::1:65e4)
22:47:57 hgolden joins (~Howard@cpe-172-251-233-141.socal.res.rr.com)
22:50:08 matthewmosior joins (~matthewmo@173.170.253.91)
22:50:29 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:51:06 toeffel joins (~toeffel@user/toeffel)
22:53:43 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
22:54:17 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
22:54:36 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
22:54:39 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
22:55:48 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
22:56:13 Hayro joins (~vpn@91.93.236.226)
23:00:46 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
23:02:18 jinsun joins (~jinsun@user/jinsun)
23:03:02 × xff0x quits (~xff0x@2405:6580:b080:900:ae06:3e97:decd:45dd) (Ping timeout: 255 seconds)
23:03:22 × Hayro quits (~vpn@91.93.236.226) ()
23:03:39 Rembane joins (~Rembane@li346-36.members.linode.com)
23:04:32 Hash is now known as OpenSource
23:06:08 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
23:06:28 azimut joins (~azimut@gateway/tor-sasl/azimut)
23:07:04 matthewmosior joins (~matthewmo@173.170.253.91)
23:08:30 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
23:08:38 kimjetwav joins (~user@2607:fea8:235e:b600:7f88:edef:fe86:249f)
23:10:14 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
23:10:35 azimut joins (~azimut@gateway/tor-sasl/azimut)
23:12:32 matthewmosior joins (~matthewmo@173.170.253.91)
23:13:55 × matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection)
23:14:16 xff0x joins (~xff0x@2405:6580:b080:900:6f8a:e9c1:3bc4:a024)
23:15:03 matthewmosior joins (~matthewmo@173.170.253.91)
23:15:05 mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es)
23:15:18 × merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
23:15:44 Jon joins (jon@dow.land)
23:17:17 luffy joins (~chenqisu1@183.217.200.212)
23:18:03 micro joins (~micro@user/micro)
23:19:43 eikke joins (~NicolasT@user/NicolasT)
23:19:59 × PiDelport quits (uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity)
23:20:45 <eikke> The cabal.package docs say there can be `progname-options` options in package sections, like `ghc-options`. However, is there a list of valid `progname`s? `cc-options` (like in a cabal file) seem unsupported
23:21:51 dexter1 joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec)
23:24:03 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:24:20 robertm joins (robertm@lattice.rojoma.com)
23:26:14 <geekosaur> https://cabal.readthedocs.io/en/3.6/cabal-package.html#build-information shows the unpacked names; cc-options is listed as valid for library and executable build information
23:26:26 <geekosaur> but it probably won't be used unless you actually have C sources
23:27:18 <eikke> geekosaur: that's in the package's cabal file, I'm referring to cabal.project
23:27:19 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
23:29:08 <eikke> Turns out `gcc-options` in the `program-options` section does work. But that seems a bit weird when comparing to `cc-options` in the package config, and not all C compilers are GCC
23:30:01 segfaultfizzbuzz joins (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
23:30:58 × Tuplanolla quits (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.)
23:31:26 dsrt^ joins (~dsrt@96.70.11.181)
23:31:33 <geekosaur> odd
23:31:48 <geekosaur> looks to me like it should work. what cabal-install version?
23:32:49 jocke-l joins (jocke-l@a.x0.is)
23:32:49 × toeffel quits (~toeffel@user/toeffel) (Quit: quit)
23:33:43 statusfailed joins (~statusfai@statusfailed.com)
23:39:11 <eikke> 3.2.0.0
23:40:04 × finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer)
23:40:10 <geekosaur> that's a bit old. 3.8.1.0 just came out
23:40:20 <geekosaur> and I had several problems with 3.2
23:40:39 <eikke> It's what comes with Fedora 36 :)
23:41:54 <geekosaur> this is why most of us use ghcup instead of relying on outdated distro packages
23:42:14 <geekosaur> (I'm on Ubuntu, it's even older…)
23:46:41 × td_ quits (~td@94.134.91.83) (Quit: waking up from the american dream ...)
23:47:29 L29Ah joins (~L29Ah@wikipedia/L29Ah)
23:49:50 × matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
23:53:50 <troydm> tdammers: ic, thanks for explanation
23:57:26 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
23:57:47 <johnw> does anyone know of determinism problems using the Decimal library?
23:58:12 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)

All times are in UTC on 2022-08-25.