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.