2022-11-13 00:00:19 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-11-13 00:01:15 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-11-13 00:01:18 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 00:06:05 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds) |
2022-11-13 00:09:30 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) (Ping timeout: 240 seconds) |
2022-11-13 00:12:19 +0100 | InstX1 | (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
2022-11-13 00:13:33 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-13 00:14:43 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-13 00:16:36 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-11-13 00:18:27 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-11-13 00:21:11 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) (Ping timeout: 268 seconds) |
2022-11-13 00:22:35 +0100 | sammelweis | (~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Quit: No Ping reply in 180 seconds.) |
2022-11-13 00:25:42 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 00:26:41 +0100 | zeenk | (~zeenk@2a02:2f04:a009:2a00::7fe) (Quit: Konversation terminated!) |
2022-11-13 00:31:01 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-11-13 00:33:49 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 00:34:17 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) |
2022-11-13 00:35:26 +0100 | nil | (~user@2001:da8:d800:611:9159:fcb2:7a41:10d) |
2022-11-13 00:37:36 +0100 | acidjnk | (~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-11-13 00:38:31 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-11-13 00:47:32 +0100 | nil | (~user@2001:da8:d800:611:9159:fcb2:7a41:10d) (Remote host closed the connection) |
2022-11-13 00:50:53 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-11-13 00:50:54 +0100 | Sauvin | (~sauvin@user/Sauvin) (Quit: Leaving) |
2022-11-13 00:52:44 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-11-13 00:52:44 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-11-13 00:52:44 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-11-13 00:54:12 +0100 | Sauvin | (~sauvin@user/Sauvin) |
2022-11-13 00:55:48 +0100 | Guest75 | (~Guest75@178.141.177.81) (Ping timeout: 260 seconds) |
2022-11-13 01:01:56 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 01:08:38 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-194.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-11-13 01:11:03 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
2022-11-13 01:11:08 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) (Ping timeout: 268 seconds) |
2022-11-13 01:15:43 +0100 | <arahael> | Can't believe how much haskell I've forgotten. What's the syntax called for #foo? |
2022-11-13 01:15:48 +0100 | <arahael> | Specifically that hash, and what does it mean? |
2022-11-13 01:16:47 +0100 | <dsal> | overloaded labels |
2022-11-13 01:18:13 +0100 | <arahael> | Thanks. |
2022-11-13 01:23:40 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) |
2022-11-13 01:29:34 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-11-13 01:41:48 +0100 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:dcc0:82ac:c37f:ed70) (Quit: caryhartline) |
2022-11-13 01:42:30 +0100 | InstX1 | (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-11-13 01:53:11 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 256 seconds) |
2022-11-13 02:01:43 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-11-13 02:02:55 +0100 | califax | (~califax@user/califx) |
2022-11-13 02:02:59 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2022-11-13 02:06:38 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
2022-11-13 02:07:02 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-11-13 02:10:15 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-11-13 02:10:42 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 02:12:09 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 02:12:42 +0100 | <zzz> | does `product` shortcircuit on 0? |
2022-11-13 02:13:10 +0100 | <EvanR> | :t product |
2022-11-13 02:13:11 +0100 | <lambdabot> | (Foldable t, Num a) => t a -> a |
2022-11-13 02:13:48 +0100 | <probie> | > product [0..] |
2022-11-13 02:13:58 +0100 | <lambdabot> | mueval-core: Time limit exceeded |
2022-11-13 02:14:02 +0100 | <zzz> | shame |
2022-11-13 02:15:06 +0100 | <EvanR> | it actually a method of the Num class |
2022-11-13 02:15:34 +0100 | <EvanR> | wait |
2022-11-13 02:15:46 +0100 | Thony | (~Thony@2600:4040:7409:aa00:21ab:b81e:6840:3e94) |
2022-11-13 02:15:50 +0100 | <EvanR> | Foldable class |
2022-11-13 02:16:22 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-11-13 02:16:30 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) (Ping timeout: 268 seconds) |
2022-11-13 02:16:31 +0100 | <EvanR> | so in any case it would have to attempt to test zeroness for all Nums |
2022-11-13 02:17:44 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
2022-11-13 02:17:46 +0100 | <zzz> | if signum == 0 then 0 else ... |
2022-11-13 02:17:59 +0100 | <probie> | Num doesn't imply Eq |
2022-11-13 02:18:10 +0100 | <zzz> | touche |
2022-11-13 02:18:38 +0100 | <zzz> | no, wait |
2022-11-13 02:18:57 +0100 | <zzz> | :t signum |
2022-11-13 02:18:58 +0100 | <lambdabot> | Num a => a -> a |
2022-11-13 02:20:10 +0100 | <probie> | That said, if the Num you're using has a definition of (*) which short circuits, and the Foldable you're using implements a "bad" `foldMap'` which is not strict it might short circuit |
2022-11-13 02:21:35 +0100 | <EvanR> | sounds like a job for foldr (*) |
2022-11-13 02:22:13 +0100 | <EvanR> | which will suck for strict numbers but could shortcircuit properly |
2022-11-13 02:23:01 +0100 | <EvanR> | given lazy numbers or something |
2022-11-13 02:27:26 +0100 | <probie> | For example, something like https://paste.tomsmeding.com/NZGFAOtg is a call to product which shortcircuits |
2022-11-13 02:27:45 +0100 | bilegeek | (~bilegeek@2600:1008:b06e:a41f:5618:be6c:e24b:9832) |
2022-11-13 02:27:58 +0100 | <probie> | s/LazyFold/LazyFolds/ on the last line |
2022-11-13 02:28:05 +0100 | bilegeek | (~bilegeek@2600:1008:b06e:a41f:5618:be6c:e24b:9832) (Remote host closed the connection) |
2022-11-13 02:28:24 +0100 | bilegeek | (~bilegeek@2600:1008:b06e:a41f:5618:be6c:e24b:9832) |
2022-11-13 02:28:34 +0100 | <probie> | Actually https://paste.tomsmeding.com/4pP8DcYC (cycle and LazyFolds are backwards) |
2022-11-13 02:29:34 +0100 | <probie> | if I could spell cycle correctly... maybe I should actually run the code first |
2022-11-13 02:30:39 +0100 | <zzz> | `product' = product . takeUntil isZero` |
2022-11-13 02:31:16 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-13 02:31:37 +0100 | <EvanR> | brilliant |
2022-11-13 02:31:44 +0100 | <zzz> | something like this could be optimized by the compiler right? |
2022-11-13 02:32:24 +0100 | <EvanR> | > takeWhile (/= 0) [4,6,2,0,4,6,7] |
2022-11-13 02:32:26 +0100 | <lambdabot> | [4,6,2] |
2022-11-13 02:32:30 +0100 | <EvanR> | wait, not brilliant |
2022-11-13 02:32:47 +0100 | <zzz> | that's why i invented `takeUntil` |
2022-11-13 02:32:47 +0100 | <probie> | Having isZero would still require changing the type of product |
2022-11-13 02:33:20 +0100 | <EvanR> | it sounds like zzz knows what particular type they are dealing with |
2022-11-13 02:33:33 +0100 | razetime | (~quassel@117.254.34.151) |
2022-11-13 02:33:58 +0100 | <zzz> | i don't |
2022-11-13 02:34:29 +0100 | <zzz> | i'm just thinking out loud about nothing in particular |
2022-11-13 02:34:39 +0100 | <EvanR> | then yeah "is zero" is questionable |
2022-11-13 02:34:57 +0100 | <probie> | Does lambdabot have `instance Num a => Num (a -> a)`? |
2022-11-13 02:35:07 +0100 | <arahael> | Is it just me, or is Amazonka difficult to build? (It's probably just me, I seem to have a project.cabal specifying a particular sha1). |
2022-11-13 02:35:15 +0100 | <EvanR> | > id + id |
2022-11-13 02:35:17 +0100 | <lambdabot> | error: |
2022-11-13 02:35:17 +0100 | <lambdabot> | • No instance for (Typeable a0) |
2022-11-13 02:35:17 +0100 | <lambdabot> | arising from a use of ‘show_M26164909427285913018’ |
2022-11-13 02:35:34 +0100 | <EvanR> | > id + id :: Int -> Int |
2022-11-13 02:35:35 +0100 | <lambdabot> | error: |
2022-11-13 02:35:35 +0100 | <lambdabot> | • No instance for (Num (Int -> Int)) arising from a use of ‘+’ |
2022-11-13 02:35:36 +0100 | <lambdabot> | (maybe you haven't applied a function to enough arguments?) |
2022-11-13 02:35:37 +0100 | <probie> | > product [(+ (2 :: Int)), (* 3), abs] $ 42 |
2022-11-13 02:35:39 +0100 | <lambdabot> | error: |
2022-11-13 02:35:39 +0100 | <lambdabot> | • No instance for (Num (Int -> Int)) |
2022-11-13 02:35:39 +0100 | <lambdabot> | arising from a use of ‘product’ |
2022-11-13 02:36:31 +0100 | <arahael> | In particular, I don't seem to be able to build amazonka-cloudfront-2.0, due to issues with Core.Service which apparently doesn't have the required strict fields. |
2022-11-13 02:36:57 +0100 | <arahael> | (Which is an error in gen/Amazonka/STS/Types.hs:66:3) |
2022-11-13 02:38:04 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2022-11-13 02:38:11 +0100 | <geekosaur> | probie, it doesn't have that instance normally |
2022-11-13 02:38:33 +0100 | <EvanR> | zzz, usually while and until are the same except for a not thrown in |
2022-11-13 02:38:40 +0100 | euandreh | (~Thunderbi@179.214.113.107) (Quit: euandreh) |
2022-11-13 02:39:24 +0100 | euandreh | (~Thunderbi@179.214.113.107) |
2022-11-13 02:39:32 +0100 | <probie> | geekosaur: no, but I have vague memories of it having them ~6 so years ago. But it might just be my imagination |
2022-11-13 02:39:32 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer) |
2022-11-13 02:39:42 +0100 | <geekosaur> | "Caleskell" |
2022-11-13 02:40:20 +0100 | <EvanR> | in haskell anything can be +ed potentially, so we can compete with javascript |
2022-11-13 02:40:54 +0100 | <geekosaur> | not everyone appreciated it |
2022-11-13 02:41:18 +0100 | <geekosaur> | I was just digging for the Applicatives definition but I don't seem to have it in my logs |
2022-11-13 02:43:09 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-11-13 02:43:16 +0100 | <geekosaur> | @let instance Num a => Num (b -> a) where (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*); negate = fmap negate; abs = fmap abs; signum = fmap signum; fromInteger = pure . fromInteger |
2022-11-13 02:43:18 +0100 | <lambdabot> | Defined. |
2022-11-13 02:43:20 +0100 | <zzz> | is there a class for Monoid + annihilator? |
2022-11-13 02:43:29 +0100 | <dsal> | arahael: amazonka2 has been imminent for about a year. It's pretty good, but delayed for reasons that the rest of us find a bit frustrating. |
2022-11-13 02:43:37 +0100 | <probie> | > product [(+ (2 :: Int)), (* 3), abs] $ 42 |
2022-11-13 02:43:38 +0100 | <lambdabot> | 232848 |
2022-11-13 02:43:56 +0100 | <arahael> | dsal: So the failure to build it is probably just me given I'm using the latest master. |
2022-11-13 02:44:13 +0100 | <probie> | for a silly example where there's no way to define isZero |
2022-11-13 02:44:38 +0100 | <dsal> | arahael: It should still work, but I've not built it in a bit. |
2022-11-13 02:44:41 +0100 | <dsal> | I think there's A Process. |
2022-11-13 02:45:29 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-13 02:45:47 +0100 | Batzy | (~quassel@user/batzy) (Ping timeout: 248 seconds) |
2022-11-13 02:45:56 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-41-127.nycap.res.rr.com) |
2022-11-13 02:46:09 +0100 | <geekosaur> | @undefine |
2022-11-13 02:46:09 +0100 | <lambdabot> | Undefined. |
2022-11-13 02:46:10 +0100 | <geekosaur> | @let instance (Applicative f, Num a) => Num (f a) where (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*); negate = fmap negate; abs = fmap abs; signum = fmap signum; fromInteger = pure . fromInteger |
2022-11-13 02:46:11 +0100 | <lambdabot> | Defined. |
2022-11-13 02:46:37 +0100 | <arahael> | dsal: Not sure what you mean by that 'Process'. I'll put up my build failure in a moment when it's up again. |
2022-11-13 02:46:44 +0100 | <geekosaur> | > [2] + [3] |
2022-11-13 02:46:46 +0100 | <lambdabot> | [5] |
2022-11-13 02:47:00 +0100 | <geekosaur> | > product [(+ (2 :: Int)), (* 3), abs] $ 42 |
2022-11-13 02:47:02 +0100 | <lambdabot> | 232848 |
2022-11-13 02:47:17 +0100 | <arahael> | dsal: I'm getting this sort of error: https://paste.debian.net/1260522/ |
2022-11-13 02:47:56 +0100 | <arahael> | dsal: (Note: I'm using commit a05b95ef35609fbf4f7c734318ea705b35675cae of https://github.com/endgame/amazonka, which is master) |
2022-11-13 02:48:33 +0100 | <arahael> | Oh, d'oh. That might be the issue. |
2022-11-13 02:48:34 +0100 | <dsal> | Not sure… I've not looked at it in a bit. It could be broken, but I remember there being things that needed to happen to get the build started. |
2022-11-13 02:48:42 +0100 | <dsal> | But there are also reasons they've not released. |
2022-11-13 02:48:51 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 02:49:17 +0100 | <arahael> | I think I'm on entirely teh wrong commit. |
2022-11-13 02:49:43 +0100 | Thony | (~Thony@2600:4040:7409:aa00:21ab:b81e:6840:3e94) (Quit: Leaving) |
2022-11-13 02:52:07 +0100 | <arahael> | dsal: I always wonder when it comes to these huge dependencies - are they good or bad. I generally try to avoid huge libraries that seem to have a ton of moving parts... But Amazon's API si also huge and with moving parts so it's an awkward situation. I'm leaning towards the "at least if Amazon breaks stuff, I'll know". |
2022-11-13 02:52:28 +0100 | <arahael> | Which is only possible due to the design of Amazonka. |
2022-11-13 02:53:02 +0100 | <dsal> | I've had good luck with amazonka2, but I'll have better luck once it's released. :) |
2022-11-13 02:54:27 +0100 | <zzz> | wouldn't a class for Monoid + annihilator be useful? |
2022-11-13 02:54:39 +0100 | Batzy | (~quassel@user/batzy) |
2022-11-13 02:55:10 +0100 | <arahael> | dsal: Using the wrong commit seems to have been the issue! But now I'm having issues with lines such as: |
2022-11-13 02:55:14 +0100 | <zzz> | class Monoid a => Whatever a where annihilator :: a |
2022-11-13 02:55:18 +0100 | <arahael> | 211 | env <- newEnv Discover <&> set #_envLogger lgr . set #_envRegion NorthVirginia |
2022-11-13 02:55:56 +0100 | <arahael> | (Where lgr is just the result from 'newLogger Trace stdout' so I'm not sure why haskell thinks lgr has too few arguments) |
2022-11-13 02:56:44 +0100 | <zzz> | a <<>> annihilator = annihilator |
2022-11-13 02:56:59 +0100 | <dsal> | arahael: Because you're using . function composition. I think you want something like & there. |
2022-11-13 02:58:10 +0100 | <zzz> | i have no idea what category theory calls this |
2022-11-13 02:58:22 +0100 | <arahael> | dsal: I'm trying to write and use this line: https://github.com/brendanhay/amazonka/blob/2.0.0-rc1/examples/src/S3.hs#L73 |
2022-11-13 02:58:47 +0100 | <arahael> | Tried that line as-is, even, but I get this error: No instance for ‘GHC.Generics.Generic (b0 -> s0 -> t0)’ |
2022-11-13 02:59:39 +0100 | <dsal> | I just don't typically write lenses like this… Sec |
2022-11-13 03:00:47 +0100 | <arahael> | dsal: I'm not sure I typically write lenses at all. ;) |
2022-11-13 03:01:03 +0100 | <arahael> | I haven't done haskell in a year I think, actually. |
2022-11-13 03:01:16 +0100 | arahael | misses haskell. |
2022-11-13 03:01:35 +0100 | <dsal> | arahael: Can you show some more context and error? I don't see an obvious problem. |
2022-11-13 03:02:22 +0100 | <geekosaur> | zzz, https://hackage.haskell.org/package/boolean-like-0.1.1.0/docs/Combinator-Booly.html ? (there's also an annihilators package but it's deprecated in favor of this. see andMappend and andMconcat in particular |
2022-11-13 03:02:35 +0100 | <arahael> | dsal: https://paste.debian.net/1260523/ |
2022-11-13 03:02:58 +0100 | <arahael> | dsal: It's quite possibly a missing extension or import. |
2022-11-13 03:03:21 +0100 | <dsal> | I'm not familiar with this logger. |
2022-11-13 03:03:41 +0100 | <arahael> | dsal: Do you have to be? I mean, I'm hoping this is just a typing thing. |
2022-11-13 03:04:08 +0100 | Guest31 | (~Guest31@p200300ef970b9cda31eab7f863c986c6.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-11-13 03:04:51 +0100 | <dsal> | Well, sure, but if it's complaining about the logger. |
2022-11-13 03:04:54 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-11-13 03:05:04 +0100 | <arahael> | dsal: I think it's some sort of logger for the amazon environment. And the examples surely compile... |
2022-11-13 03:05:18 +0100 | <dsal> | Do they? :) |
2022-11-13 03:05:42 +0100 | <arahael> | dsal: They _surely_ do! |
2022-11-13 03:05:47 +0100 | arahael | screams at the thought they don't! :) |
2022-11-13 03:06:55 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-41-127.nycap.res.rr.com) (Ping timeout: 260 seconds) |
2022-11-13 03:06:57 +0100 | <arahael> | dsal: I've seen #envLogger instead of (field @"_envLogger"), however I don't seem to have envLogger, I do have _envLogger, though, but honestly... I don't think I even care about envLogger at all. Maybe I could just not set that field... |
2022-11-13 03:08:08 +0100 | <geekosaur> | wouldn't #envlogger be field @"envlogger"? |
2022-11-13 03:08:14 +0100 | <arahael> | dsal: Oh, seems my error was further down, this line works: env <- newEnv Discover <&> set (field @"_envLogger") lgr . set (field @"_envRegion") NorthVirginia |
2022-11-13 03:08:38 +0100 | <arahael> | geekosaur: I'm not sure what the difference is. |
2022-11-13 03:08:49 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-11-13 03:08:58 +0100 | <geekosaur> | the underscore. #field is short for that @"field" thing |
2022-11-13 03:09:39 +0100 | <geekosaur> | "overloaded labels", which can also be done with a proxy with a TypeApplication of the appropriate Symbol |
2022-11-13 03:10:04 +0100 | <arahael> | geekosaur: Before today I didn't even realise what a label was... |
2022-11-13 03:10:11 +0100 | <arahael> | Let alone overloaded ones. |
2022-11-13 03:13:53 +0100 | <geekosaur> | and part of the problem here might be that if OverloadedLabels extension is missing, the # will be taken as a previously unseen binary operator and the whole line will be mis-parsed |
2022-11-13 03:14:23 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds) |
2022-11-13 03:14:32 +0100 | <arahael> | geekosaur: It's indeed missing. |
2022-11-13 03:15:09 +0100 | <arahael> | So that explaisn that part. |
2022-11-13 03:15:29 +0100 | <arahael> | It's building now at least - thanks for your help dsal! |
2022-11-13 03:15:54 +0100 | <dsal> | Yeah, sorry I don't know exactly what's going on there. I looked at my usages and they're slightly more simple than that. |
2022-11-13 03:16:04 +0100 | <dsal> | i.e., I don't use the lgoger |
2022-11-13 03:16:10 +0100 | dsal | can't even spell lager |
2022-11-13 03:20:25 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-11-13 03:20:26 +0100 | califax | (~califax@user/califx) (Ping timeout: 255 seconds) |
2022-11-13 03:20:59 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) |
2022-11-13 03:21:24 +0100 | califax | (~califax@user/califx) |
2022-11-13 03:22:24 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-13 03:22:39 +0100 | bilegeek_ | (~bilegeek@25.sub-174-209-48.myvzw.com) |
2022-11-13 03:24:05 +0100 | <arahael> | dsal: No worries. :D It's working, and talking to you helped me resolve the issue! |
2022-11-13 03:25:07 +0100 | bilegeek | (~bilegeek@2600:1008:b06e:a41f:5618:be6c:e24b:9832) (Ping timeout: 260 seconds) |
2022-11-13 03:31:30 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-11-13 03:33:14 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-11-13 03:34:03 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) (Ping timeout: 256 seconds) |
2022-11-13 03:38:07 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-11-13 03:40:51 +0100 | razetime | (~quassel@117.254.34.151) (Ping timeout: 256 seconds) |
2022-11-13 03:41:56 +0100 | ropwareJB | (~ropwareJB@180-150-36-243.b49624.bne.nbn.aussiebb.net) |
2022-11-13 03:43:11 +0100 | <ropwareJB> | Why can't I `printf` to Text? According to the docs all `PrintfArgs` are `PrintfType` instances (https://hackage.haskell.org/package/base-4.17.0.0/docs/Text-Printf.html#g:6:~:text=All%20PrintfArg…) but I still get error `Could not deduce (PrintfType Text) arising from a use of ‘printf’` |
2022-11-13 03:43:41 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-11-13 03:57:38 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
2022-11-13 03:58:41 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 03:59:19 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2022-11-13 04:02:18 +0100 | notzmv | (~zmv@user/notzmv) |
2022-11-13 04:05:41 +0100 | <probie> | Are they? I see that `String` is an instance, `IO ()` is an instance and `a -> r` is an instance where a is a PrintfArg and r is a PrintfType |
2022-11-13 04:07:29 +0100 | crns | (~netcrns@user/crns) (Ping timeout: 260 seconds) |
2022-11-13 04:09:11 +0100 | crns | (~netcrns@p4ff5e521.dip0.t-ipconnect.de) |
2022-11-13 04:09:12 +0100 | crns | (~netcrns@p4ff5e521.dip0.t-ipconnect.de) (Changing host) |
2022-11-13 04:09:12 +0100 | crns | (~netcrns@user/crns) |
2022-11-13 04:13:05 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) |
2022-11-13 04:13:19 +0100 | johnw | (~johnw@2600:1700:cf00:db0:8ded:5d2b:1bf3:1aca) (Quit: ZNC - http://znc.in) |
2022-11-13 04:13:54 +0100 | td_ | (~td@83.135.9.7) (Ping timeout: 260 seconds) |
2022-11-13 04:14:11 +0100 | ropwareJB | (~ropwareJB@180-150-36-243.b49624.bne.nbn.aussiebb.net) (Quit: Client closed) |
2022-11-13 04:15:25 +0100 | td_ | (~td@83.135.9.56) |
2022-11-13 04:18:00 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-13 04:19:13 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 268 seconds) |
2022-11-13 04:19:53 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 04:19:56 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
2022-11-13 04:22:24 +0100 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-11-13 04:24:23 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
2022-11-13 04:24:34 +0100 | rembo10 | (~rembo10@main.remulis.com) |
2022-11-13 04:25:03 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 04:39:40 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) |
2022-11-13 04:41:04 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 252 seconds) |
2022-11-13 04:41:15 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 04:45:00 +0100 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-11-13 04:46:21 +0100 | poscat | (~poscat@114.245.106.84) (Ping timeout: 268 seconds) |
2022-11-13 04:46:56 +0100 | poscat | (~poscat@2408:8206:4823:fd6f:98ab:5c38:136c:5932) |
2022-11-13 04:48:21 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-11-13 04:49:42 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-11-13 04:54:48 +0100 | Batzy | (~quassel@user/batzy) (Read error: Connection reset by peer) |
2022-11-13 04:55:18 +0100 | Batzy | (~quassel@user/batzy) |
2022-11-13 05:01:39 +0100 | ropwareJB | (~ropwareJB@180-150-36-243.b49624.bne.nbn.aussiebb.net) |
2022-11-13 05:10:05 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-11-13 05:10:51 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-13 05:11:31 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds) |
2022-11-13 05:12:05 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 05:16:39 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-13 05:17:14 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2022-11-13 05:18:31 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-11-13 05:20:36 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2022-11-13 05:21:09 +0100 | Xeroine | (~Xeroine@user/xeroine) (Ping timeout: 256 seconds) |
2022-11-13 05:22:51 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
2022-11-13 05:23:42 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-11-13 05:28:54 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
2022-11-13 05:31:06 +0100 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.7.1) |
2022-11-13 05:32:27 +0100 | Me-me | (~me-me@v.working.name) (Remote host closed the connection) |
2022-11-13 05:33:20 +0100 | Me-me | (~me-me@v.working.name) |
2022-11-13 05:37:50 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2022-11-13 05:41:16 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 05:43:42 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 268 seconds) |
2022-11-13 05:44:27 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-11-13 05:45:35 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-11-13 05:52:15 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-11-13 05:53:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-13 05:54:55 +0100 | bjourne | (~bjorn@94.191.136.12.mobile.tre.se) (Ping timeout: 260 seconds) |
2022-11-13 05:55:28 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 05:56:10 +0100 | sayola | (~sayola@dslb-088-064-186-217.088.064.pools.vodafone-ip.de) |
2022-11-13 06:14:56 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 06:16:03 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-13 06:20:39 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
2022-11-13 06:22:57 +0100 | Me-me | (~me-me@v.working.name) (Changing host) |
2022-11-13 06:22:58 +0100 | Me-me | (~me-me@user/me-me) |
2022-11-13 06:23:47 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 268 seconds) |
2022-11-13 06:28:47 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-11-13 06:29:57 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2022-11-13 06:30:02 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-11-13 06:30:09 +0100 | michalz | (~michalz@185.246.207.200) (Remote host closed the connection) |
2022-11-13 06:47:26 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-11-13 06:51:31 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-13 06:53:02 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-11-13 06:53:30 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-11-13 06:55:58 +0100 | <InstX1> | question |
2022-11-13 06:56:04 +0100 | <InstX1> | i'm benchmarking fibs, with some help from FP discord |
2022-11-13 06:56:09 +0100 | <InstX1> | the order of fibs runs: |
2022-11-13 06:56:43 +0100 | <InstX1> | slowest to fastest: |
2022-11-13 06:57:12 +0100 | <InstX1> | Iterate -> Zipwith -> STRef -> Accumulating Parameter -> Dynamic Programming Inline C |
2022-11-13 06:57:15 +0100 | <InstX1> | does this look right to you? |
2022-11-13 06:58:08 +0100 | <InstX1> | i'm surprised by two things, first, accumulating parameter is faster than STRef, and second, Dynamic Programming Inline C is substantially faster than Accumulating Parameter |
2022-11-13 07:00:19 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-11-13 07:00:52 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-13 07:04:38 +0100 | <davean> | Why wouldn't you EXPECT an accumulating parameter to be faster? |
2022-11-13 07:04:43 +0100 | <davean> | it doesn't have to do ref work |
2022-11-13 07:04:52 +0100 | <davean> | You're not incuring a dependency |
2022-11-13 07:05:49 +0100 | <davean> | It also sounds like you don't have a dynamic programming Haskell option |
2022-11-13 07:06:20 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 07:12:42 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 07:13:30 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2022-11-13 07:17:20 +0100 | <probie> | InstX1: out of curiosity, how does something like https://paste.tomsmeding.com/Tf4p3xry compare? |
2022-11-13 07:17:31 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-13 07:18:56 +0100 | <probie> | (or a more sane https://paste.tomsmeding.com/8ePeH5pL) |
2022-11-13 07:19:35 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds) |
2022-11-13 07:21:05 +0100 | <davean> | probie: Thats just manually unboxed - mostly the compiler does that automaticly. |
2022-11-13 07:21:27 +0100 | <davean> | Of then that should perform identically |
2022-11-13 07:22:41 +0100 | <InstX1> | it's via criterion |
2022-11-13 07:23:26 +0100 | <davean> | InstX1: I don't see anything that that is responsive to |
2022-11-13 07:24:19 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-11-13 07:24:19 +0100 | <probie> | davean: that's what I'd expect, but given that the C is much faster for what I'd expect to generate almost the same assembly, I suspect that "accumulating parameter" is not generating that (perhaps a strictness issue?) |
2022-11-13 07:24:39 +0100 | <InstX1> | rebuilding |
2022-11-13 07:25:08 +0100 | <davean> | probie: the C is a fundimentally different alg, since it is dynamic. |
2022-11-13 07:25:15 +0100 | <InstX1> | my accum code looks like this, ummm |
2022-11-13 07:25:32 +0100 | <InstX1> | https://paste.tomsmeding.com/efv1uZBX |
2022-11-13 07:25:59 +0100 | <probie> | Oh. Are you calling GMP directly in the inline c? |
2022-11-13 07:26:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-11-13 07:26:30 +0100 | <probie> | or how are you simulating Integer in C? |
2022-11-13 07:28:02 +0100 | <InstX1> | i'm doing it completely as a noob |
2022-11-13 07:28:08 +0100 | <InstX1> | it's simple CInt / IO Cint |
2022-11-13 07:28:09 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-13 07:28:25 +0100 | <InstX1> | my accum should be dynamic, no? |
2022-11-13 07:29:06 +0100 | <InstX1> | this is my ziplist implementation |
2022-11-13 07:29:07 +0100 | <InstX1> | https://paste.tomsmeding.com/OzckY5X4 |
2022-11-13 07:32:27 +0100 | <probie> | InstX1: Right, so your C implementation is likely the fastest because it's not using `Integer`. How does https://paste.tomsmeding.com/cIzD59Mc compare as an accumulating solution? |
2022-11-13 07:34:32 +0100 | <InstX1> | yeah, okay, i'll try that |
2022-11-13 07:34:37 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
2022-11-13 07:34:40 +0100 | <InstX1> | i just got into criterion and i'm playing around with algorithms |
2022-11-13 07:34:47 +0100 | <InstX1> | i'm trying to figure out why my sieve of erastothenes isn't working |
2022-11-13 07:51:28 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 07:52:48 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-13 07:56:50 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-11-13 08:04:22 +0100 | traxex | (traxex@user/traxex) |
2022-11-13 08:06:46 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds) |
2022-11-13 08:10:41 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2022-11-13 08:11:20 +0100 | ropwareJB | (~ropwareJB@180-150-36-243.b49624.bne.nbn.aussiebb.net) (Quit: Client closed) |
2022-11-13 08:11:55 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-13 08:12:17 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-11-13 08:24:49 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) |
2022-11-13 08:26:43 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-11-13 08:29:17 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Ping timeout: 256 seconds) |
2022-11-13 08:30:52 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2022-11-13 08:36:59 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-11-13 08:38:49 +0100 | zeenk | (~zeenk@2a02:2f04:a20e:aa00::7fe) |
2022-11-13 08:44:55 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-11-13 08:45:56 +0100 | <probie> | InstX1: by not working do you meaning given the wrong results, or just slow? |
2022-11-13 08:48:12 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) |
2022-11-13 08:48:22 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-13 08:50:12 +0100 | <InstX1> | not working at all |
2022-11-13 08:50:24 +0100 | <InstX1> | i'm reading genuine sieve of erastothenes and looking for other ways to implement |
2022-11-13 08:50:30 +0100 | <InstX1> | primesMySieve :: [Integer] |
2022-11-13 08:50:30 +0100 | <InstX1> | primesMySieve = sieve [2..] |
2022-11-13 08:50:30 +0100 | <InstX1> | where |
2022-11-13 08:50:30 +0100 | <InstX1> | sieve (x:xs) = x: sieve (filter (\u -> u `notElem` takeWhile (u>=) [x,x+x..]) xs) |
2022-11-13 08:50:36 +0100 | <InstX1> | sorry for copy paste, but this is sort |
2022-11-13 08:50:40 +0100 | <InstX1> | you can see why this is obviously slow |
2022-11-13 08:50:57 +0100 | <InstX1> | it's slower than the trial division version |
2022-11-13 08:52:06 +0100 | <InstX1> | there'd be a cute version, tbh |
2022-11-13 08:52:20 +0100 | <InstX1> | if you could say, remove every nth element, starting with the 0th (by array index) |
2022-11-13 08:52:39 +0100 | <InstX1> | but the problem is, i can't figure out how to reconstruct it |
2022-11-13 08:55:30 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 240 seconds) |
2022-11-13 08:57:20 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-11-13 08:57:57 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) (Ping timeout: 268 seconds) |
2022-11-13 08:59:48 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 268 seconds) |
2022-11-13 09:00:03 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 09:02:26 +0100 | califax | (~califax@user/califx) (Ping timeout: 255 seconds) |
2022-11-13 09:02:27 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-11-13 09:04:04 +0100 | califax | (~califax@user/califx) |
2022-11-13 09:07:08 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-13 09:08:22 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 09:10:38 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 09:11:10 +0100 | gmg | (~user@user/gehmehgeh) |
2022-11-13 09:15:13 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
2022-11-13 09:18:24 +0100 | potash | (~foghorn@user/foghorn) (Ping timeout: 260 seconds) |
2022-11-13 09:22:45 +0100 | notzmv | (~zmv@user/notzmv) |
2022-11-13 09:25:42 +0100 | Techcable | (~Techcable@user/Techcable) (Ping timeout: 268 seconds) |
2022-11-13 09:30:01 +0100 | potash | (~foghorn@user/foghorn) |
2022-11-13 09:34:33 +0100 | acidjnk | (~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) |
2022-11-13 09:42:36 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 09:47:19 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-11-13 09:48:50 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
2022-11-13 09:54:14 +0100 | michalz | (~michalz@185.246.207.197) |
2022-11-13 09:59:46 +0100 | bilegeek_ | (~bilegeek@25.sub-174-209-48.myvzw.com) (Quit: Leaving) |
2022-11-13 10:00:57 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 10:01:25 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 10:02:58 +0100 | <InstX1> | also |
2022-11-13 10:03:01 +0100 | <InstX1> | @probie |
2022-11-13 10:03:01 +0100 | <lambdabot> | Unknown command, try @list |
2022-11-13 10:03:14 +0100 | <InstX1> | i benchmarked your stuff |
2022-11-13 10:03:18 +0100 | cyphase | (~cyphase@user/cyphase) |
2022-11-13 10:04:37 +0100 | Heyting | (~Heyting@193.198.16.217) |
2022-11-13 10:05:00 +0100 | Heyting | (~Heyting@193.198.16.217) (Remote host closed the connection) |
2022-11-13 10:05:12 +0100 | <InstX1> | first result shows that your code is faster than the C version |
2022-11-13 10:10:34 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-13 10:12:41 +0100 | <zzz> | geekosaur: thanks! |
2022-11-13 10:14:10 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-11-13 10:15:39 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-11-13 10:24:54 +0100 | ub | (~Thunderbi@77.119.171.26.wireless.dyn.drei.com) |
2022-11-13 10:25:02 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-194.elisa-laajakaista.fi) |
2022-11-13 10:25:27 +0100 | ubert | (~Thunderbi@178.165.179.202.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
2022-11-13 10:25:27 +0100 | ub | ubert |
2022-11-13 10:26:51 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) |
2022-11-13 10:26:59 +0100 | razetime | (~quassel@117.254.34.151) |
2022-11-13 10:31:06 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-13 10:31:10 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Ping timeout: 240 seconds) |
2022-11-13 10:35:51 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-13 10:42:07 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 10:42:28 +0100 | Dominik[m]1 | (~dschrempf@2001:470:69fc:105::2:bbb6) |
2022-11-13 10:47:43 +0100 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds) |
2022-11-13 10:50:51 +0100 | razetime | (~quassel@117.254.34.151) (Remote host closed the connection) |
2022-11-13 10:53:18 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-13 10:56:17 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds) |
2022-11-13 10:58:21 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-13 10:59:47 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-11-13 11:00:19 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-13 11:02:35 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-11-13 11:05:03 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-13 11:05:30 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 240 seconds) |
2022-11-13 11:09:02 +0100 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-11-13 11:09:15 +0100 | Techcable | (~Techcable@user/Techcable) |
2022-11-13 11:11:58 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-11-13 11:15:29 +0100 | gurkenglas | (~gurkengla@212.36.32.212) |
2022-11-13 11:20:05 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-11-13 11:22:17 +0100 | shapr | (~user@68.54.166.125) (Ping timeout: 255 seconds) |
2022-11-13 11:26:50 +0100 | acidjnk | (~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-11-13 11:31:47 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-11-13 11:34:42 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-13 11:45:16 +0100 | ubert | (~Thunderbi@77.119.171.26.wireless.dyn.drei.com) (Quit: ubert) |
2022-11-13 11:46:18 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-13 11:46:22 +0100 | ubert | (~Thunderbi@77.119.171.26.wireless.dyn.drei.com) |
2022-11-13 11:47:02 +0100 | teddyc | (theodorc@cassarossa.samfundet.no) (Ping timeout: 255 seconds) |
2022-11-13 11:47:55 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-13 11:48:21 +0100 | Guest|40 | (~Guest|40@121-200-4-145.79c804.syd.nbn.aussiebb.net) |
2022-11-13 11:49:43 +0100 | Guest|40 | (~Guest|40@121-200-4-145.79c804.syd.nbn.aussiebb.net) (Client Quit) |
2022-11-13 11:53:10 +0100 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-11-13 11:56:50 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-11-13 12:01:14 +0100 | teddyc | (theodorc@cassarossa.samfundet.no) |
2022-11-13 12:01:59 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 12:03:01 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 12:10:50 +0100 | bjourne | (~bjorn@94.191.136.12.mobile.tre.se) |
2022-11-13 12:17:01 +0100 | yosef` | (~yosef`@user/yosef/x-2947716) |
2022-11-13 12:18:17 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-11-13 12:19:05 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-13 12:25:09 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds) |
2022-11-13 12:29:17 +0100 | zer0bitz | (~zer0bitz@196.244.192.56) (Read error: Connection reset by peer) |
2022-11-13 12:31:53 +0100 | fserucas|eod | (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-11-13 12:32:05 +0100 | fserucas|eod | (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
2022-11-13 12:34:51 +0100 | euandreh | (~Thunderbi@179.214.113.107) (Ping timeout: 260 seconds) |
2022-11-13 12:38:08 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-11-13 12:40:53 +0100 | teddyc | (theodorc@cassarossa.samfundet.no) (Ping timeout: 256 seconds) |
2022-11-13 12:41:33 +0100 | euandreh | (~Thunderbi@179.214.113.107) |
2022-11-13 12:45:25 +0100 | zer0bitz | (~zer0bitz@196.244.192.56) |
2022-11-13 12:45:38 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-11-13 12:50:38 +0100 | euandreh | (~Thunderbi@179.214.113.107) (Remote host closed the connection) |
2022-11-13 12:51:40 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 268 seconds) |
2022-11-13 12:53:37 +0100 | teddyc | (theodorc@cassarossa.samfundet.no) |
2022-11-13 12:54:58 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 12:56:27 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 13:00:01 +0100 | euandreh | (~Thunderbi@179.214.113.107) |
2022-11-13 13:00:24 +0100 | res0nat0r084490 | (~Fletch@fenrir.whatbox.ca) |
2022-11-13 13:03:31 +0100 | acidjnk | (~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) |
2022-11-13 13:03:59 +0100 | pyrex_ | (~pyrex@2601:645:8781:1c90:58b0:27e1:b6a0:1451) |
2022-11-13 13:05:20 +0100 | chomwitt | (~chomwitt@2a02:587:7a0a:c00:1ac0:4dff:fedb:a3f1) |
2022-11-13 13:08:19 +0100 | pyrex | (~pyrex@user/pyrex) (Ping timeout: 268 seconds) |
2022-11-13 13:09:15 +0100 | dpratt | (sid193493@id-193493.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-11-13 13:15:58 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-11-13 13:16:35 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-11-13 13:16:46 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-11-13 13:17:35 +0100 | califax | (~califax@user/califx) |
2022-11-13 13:18:22 +0100 | euandreh | (~Thunderbi@179.214.113.107) (Quit: euandreh) |
2022-11-13 13:19:07 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-11-13 13:19:56 +0100 | euandreh | (~Thunderbi@179.214.113.107) |
2022-11-13 13:22:59 +0100 | euandreh | (~Thunderbi@179.214.113.107) (Remote host closed the connection) |
2022-11-13 13:25:00 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2022-11-13 13:26:20 +0100 | euandreh | (~Thunderbi@179.214.113.107) |
2022-11-13 13:26:30 +0100 | yosef` | (~yosef`@user/yosef/x-2947716) (Quit: Client closed) |
2022-11-13 13:28:29 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-13 13:30:00 +0100 | __monty__ | (~toonn@user/toonn) |
2022-11-13 13:31:08 +0100 | titibandit | (~titibandi@xdsl-87-78-8-6.nc.de) |
2022-11-13 13:32:55 +0100 | titibandit | (~titibandi@xdsl-87-78-8-6.nc.de) (Client Quit) |
2022-11-13 13:37:00 +0100 | <InstX1> | a question about C vs Haskell |
2022-11-13 13:37:04 +0100 | <InstX1> | I don't have a benchmark set-up for C |
2022-11-13 13:37:32 +0100 | <InstX1> | but, say, if Haskell is performing 440% faster than the inline-C, it's the FFI's fault, isn't it? |
2022-11-13 13:37:49 +0100 | Guest75 | (~Guest75@178.141.177.81) |
2022-11-13 13:37:52 +0100 | <Franciman> | in this form it's difficult to understand if that's the case |
2022-11-13 13:38:05 +0100 | <Franciman> | if you call the ffi to do 1+1 |
2022-11-13 13:38:19 +0100 | <Franciman> | then the cost of the ffi is dominating, but is it the case? |
2022-11-13 13:38:24 +0100 | <Franciman> | or is the code different? |
2022-11-13 13:38:38 +0100 | <Franciman> | what are you testing? |
2022-11-13 13:40:00 +0100 | <InstX1> | dynamic programming fib |
2022-11-13 13:40:40 +0100 | <InstX1> | to get the xth fibonacci number, we cycle through (f-2,f-1) repeatedly |
2022-11-13 13:42:09 +0100 | <traxex> | why not share the code if you want help? |
2022-11-13 13:46:32 +0100 | titibandit | (~titibandi@xdsl-87-78-8-6.nc.de) |
2022-11-13 13:47:55 +0100 | ygsjg | (~quassel@189.124.224.160) |
2022-11-13 13:50:17 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 13:51:01 +0100 | <InstX1> | https://paste.tomsmeding.com/if0WIJeK |
2022-11-13 13:52:30 +0100 | xff0x | (~xff0x@2405:6580:b080:900:d135:3c26:3e1:534d) (Ping timeout: 240 seconds) |
2022-11-13 13:53:37 +0100 | money | polo |
2022-11-13 13:55:43 +0100 | <tomsmeding> | InstX1: your code run 100000000 times on input n=1000000000 takes 252ms on my machine |
2022-11-13 13:55:46 +0100 | <tomsmeding> | C code |
2022-11-13 13:56:07 +0100 | <InstX1> | it's wrong |
2022-11-13 13:56:18 +0100 | <InstX1> | because on long long the integer will overflow |
2022-11-13 13:56:23 +0100 | <tomsmeding> | well, yes |
2022-11-13 13:56:48 +0100 | <tomsmeding> | correction compiler was too smart |
2022-11-13 13:57:33 +0100 | <tomsmeding> | it didn't run that many times |
2022-11-13 13:57:44 +0100 | <tomsmeding> | okay run 10000 times on n=100000 takes 255ms |
2022-11-13 13:57:45 +0100 | <InstX1> | what about the Haskell code? Accumulator is the best performer |
2022-11-13 13:57:54 +0100 | <InstX1> | n 75 is within the boundaries |
2022-11-13 14:02:18 +0100 | <tomsmeding> | InstX1: criterion says that fibAccum takes 37.78ns on n=75 here |
2022-11-13 14:03:03 +0100 | <InstX1> | implies 25.5 microseconds |
2022-11-13 14:03:09 +0100 | <tomsmeding> | C took 266ms on n=75 repeated 1e7 times, so 26.6ns |
2022-11-13 14:04:00 +0100 | <tomsmeding> | InstX1: what is 25.5us? |
2022-11-13 14:04:05 +0100 | <tomsmeding> | oh the C code |
2022-11-13 14:04:08 +0100 | <tomsmeding> | yeah for larger n |
2022-11-13 14:04:24 +0100 | <InstX1> | thanks |
2022-11-13 14:04:31 +0100 | <InstX1> | so it's still Haskell C FFI overhead |
2022-11-13 14:04:40 +0100 | <tomsmeding> | makes sense for a call of <30ns :p |
2022-11-13 14:04:49 +0100 | <tomsmeding> | that's not many instructions |
2022-11-13 14:06:39 +0100 | <InstX1> | my benchmark of inline C is |
2022-11-13 14:07:31 +0100 | <InstX1> | 326.6 ns vs 930.75 ns |
2022-11-13 14:07:59 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds) |
2022-11-13 14:08:44 +0100 | <tomsmeding> | haskell vs inline C for n=75? |
2022-11-13 14:09:03 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-13 14:09:10 +0100 | <tomsmeding> | is my CPU really >8x faster |
2022-11-13 14:09:33 +0100 | <InstX1> | i'm on a computer from 2017, that's intended to be an ultraportable |
2022-11-13 14:09:35 +0100 | <tomsmeding> | did you compile haskell with -O2? (Not sure if it matters vs -O1, just checking possible confounding factors) |
2022-11-13 14:09:50 +0100 | <tomsmeding> | what ghc version |
2022-11-13 14:10:00 +0100 | <InstX1> | the cabal file is o2, but the installation claims o1 |
2022-11-13 14:10:05 +0100 | <InstX1> | 9.4.2 |
2022-11-13 14:10:13 +0100 | <InstX1> | the only annoying thing about the benchmarks? |
2022-11-13 14:10:17 +0100 | <InstX1> | until loop is immensely slow |
2022-11-13 14:10:25 +0100 | <tomsmeding> | cabal file ghc-options wins, I believe the "-O1" that 'cabal build' reports is juts the default |
2022-11-13 14:10:37 +0100 | <tomsmeding> | ghc 9.2.4 here, so that can hardly be it then |
2022-11-13 14:10:42 +0100 | <InstX1> | 2767 ns |
2022-11-13 14:10:55 +0100 | <InstX1> | i had some debate / discussion / whining |
2022-11-13 14:10:59 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds) |
2022-11-13 14:11:03 +0100 | <InstX1> | about the fact that accumulating parameter Haskell is too efficient |
2022-11-13 14:11:22 +0100 | <InstX1> | when accumulating parameter is basically simulating a for loop |
2022-11-13 14:11:44 +0100 | <InstX1> | and the complaint about until is that until is supposed to automate the accumulating parameter |
2022-11-13 14:12:05 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-13 14:17:13 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
2022-11-13 14:20:19 +0100 | acidjnk | (~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-11-13 14:22:04 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-11-13 14:27:41 +0100 | xff0x | (~xff0x@2405:6580:b080:900:dd4a:69df:2709:8d37) |
2022-11-13 14:28:42 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2022-11-13 14:29:41 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 256 seconds) |
2022-11-13 14:36:54 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 14:51:22 +0100 | ft | (~ft@p508dbd59.dip0.t-ipconnect.de) (Remote host closed the connection) |
2022-11-13 14:53:00 +0100 | ft | (~ft@p508dbd59.dip0.t-ipconnect.de) |
2022-11-13 14:54:03 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 256 seconds) |
2022-11-13 14:59:20 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 15:01:28 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-11-13 15:02:16 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-11-13 15:08:12 +0100 | Heyting | (~Heyting@193.198.16.217) |
2022-11-13 15:11:53 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
2022-11-13 15:13:16 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 15:16:27 +0100 | CiaoSen | (~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-11-13 15:19:06 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-11-13 15:20:11 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-11-13 15:20:58 +0100 | califax | (~califax@user/califx) |
2022-11-13 15:21:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 15:25:07 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 15:27:31 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-11-13 15:27:41 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 268 seconds) |
2022-11-13 15:27:43 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-11-13 15:28:11 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-13 15:29:28 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 15:31:56 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 15:34:17 +0100 | acidjnk | (~acidjnk@p200300d6e7137a0180b232014ce81ac1.dip0.t-ipconnect.de) |
2022-11-13 15:36:57 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-11-13 15:39:07 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 248 seconds) |
2022-11-13 15:39:24 +0100 | cheater | (~Username@user/cheater) |
2022-11-13 15:41:01 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-13 15:42:09 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 15:42:21 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-11-13 15:42:56 +0100 | califax | (~califax@user/califx) |
2022-11-13 15:46:16 +0100 | Heyting | (~Heyting@193.198.16.217) (Remote host closed the connection) |
2022-11-13 15:55:15 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds) |
2022-11-13 15:56:09 +0100 | nosferandu | (uid576473@user/nosferandu) |
2022-11-13 15:59:45 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-13 16:01:07 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Ping timeout: 252 seconds) |
2022-11-13 16:01:36 +0100 | gurkenglas | (~gurkengla@212.36.32.212) (Ping timeout: 268 seconds) |
2022-11-13 16:02:03 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 256 seconds) |
2022-11-13 16:04:19 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 256 seconds) |
2022-11-13 16:06:39 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 16:11:00 +0100 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) |
2022-11-13 16:11:50 +0100 | thyriaen_ | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) |
2022-11-13 16:12:40 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) |
2022-11-13 16:13:26 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 16:14:56 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 16:14:56 +0100 | bjourne | (~bjorn@94.191.136.12.mobile.tre.se) (Read error: Connection reset by peer) |
2022-11-13 16:19:37 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-13 16:20:45 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds) |
2022-11-13 16:20:55 +0100 | zmt01 | (~zmt00@user/zmt00) |
2022-11-13 16:21:27 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-11-13 16:21:46 +0100 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 252 seconds) |
2022-11-13 16:23:11 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 16:28:50 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
2022-11-13 16:29:49 +0100 | ygsjg | (~quassel@189.124.224.160) (Ping timeout: 256 seconds) |
2022-11-13 16:30:59 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-13 16:31:53 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) |
2022-11-13 16:33:10 +0100 | acidjnk | (~acidjnk@p200300d6e7137a0180b232014ce81ac1.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-11-13 16:33:10 +0100 | zmt00 | (~zmt00@user/zmt00) |
2022-11-13 16:33:23 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 16:34:03 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 16:34:55 +0100 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 256 seconds) |
2022-11-13 16:36:10 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Ping timeout: 240 seconds) |
2022-11-13 16:36:19 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-13 16:37:01 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-11-13 16:40:10 +0100 | acidjnk | (~acidjnk@p200300d6e7137a01d51ae5a61bc192b5.dip0.t-ipconnect.de) |
2022-11-13 16:41:25 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Quit: Client closed) |
2022-11-13 16:45:31 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) |
2022-11-13 16:46:13 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 16:51:33 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-13 16:52:28 +0100 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Quit: Leaving) |
2022-11-13 16:52:32 +0100 | thyriaen_ | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Quit: Leaving) |
2022-11-13 16:54:45 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 256 seconds) |
2022-11-13 16:54:47 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-13 16:54:51 +0100 | kaskal- | (~kaskal@089144200035.atnat0009.highway.a1.net) (Ping timeout: 248 seconds) |
2022-11-13 16:55:35 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 16:56:26 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 16:57:38 +0100 | mvk | (~mvk@2607:fea8:5ce3:8500::4b68) |
2022-11-13 16:59:29 +0100 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) |
2022-11-13 17:01:58 +0100 | gurkenglas | (~gurkengla@212.36.32.212) |
2022-11-13 17:03:49 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-11-13 17:08:33 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 17:22:47 +0100 | gurkenglas | (~gurkengla@212.36.32.212) (Ping timeout: 260 seconds) |
2022-11-13 17:23:04 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-11-13 17:27:44 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) |
2022-11-13 17:28:31 +0100 | kenran | (~user@user/kenran) |
2022-11-13 17:28:34 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-11-13 17:31:35 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 256 seconds) |
2022-11-13 17:33:46 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-11-13 17:36:07 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds) |
2022-11-13 17:40:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 17:42:21 +0100 | InstX1 | (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
2022-11-13 17:42:23 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 17:44:30 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection) |
2022-11-13 17:44:48 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) |
2022-11-13 17:45:36 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2022-11-13 17:45:45 +0100 | acidjnk | (~acidjnk@p200300d6e7137a01d51ae5a61bc192b5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-11-13 17:49:50 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
2022-11-13 17:51:10 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-11-13 18:05:39 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 18:06:36 +0100 | <dsal> | I've been thinking about how to handle commandline flags *and* a config file. I was considering barbies and some magic, but I think I finally figured out that because there are commandline things that will never be in the config file, maybe I should just have two separate things. |
2022-11-13 18:09:33 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-13 18:10:23 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-11-13 18:10:44 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-11-13 18:11:15 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds) |
2022-11-13 18:11:23 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 18:11:35 +0100 | pyrex_ | (~pyrex@2601:645:8781:1c90:58b0:27e1:b6a0:1451) () |
2022-11-13 18:11:51 +0100 | <Dominik[m]1> | you could also use precedence or raise an exception if both are provided |
2022-11-13 18:11:51 +0100 | pyrex | (~pyrex@user/pyrex) |
2022-11-13 18:13:36 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-13 18:15:21 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Quit: Client closed) |
2022-11-13 18:15:58 +0100 | <dsal> | Yeah, I think I'd have that anyway, but I wouldn't put argv in the config file. I think a natural way to do this would be to have defaults -> config file -> argv parsing. That also solves the problem of dealing with figuring out whether an option has been supplied and/or printing out "defaults" (which would be whatever you've configured). |
2022-11-13 18:16:10 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 240 seconds) |
2022-11-13 18:16:26 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-11-13 18:17:18 +0100 | <dsal> | It might be nice to have the ability to specify a config file with a commandline flag, but I don't actually need that. I could also just have two config file passes where the first is ~/.config and the second is in the local directory. |
2022-11-13 18:18:37 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
2022-11-13 18:20:19 +0100 | drdo | (~drdo@overlord.drdo.eu) (Quit: The Lounge - https://thelounge.chat) |
2022-11-13 18:23:02 +0100 | <tomsmeding> | dsal: sounds like more work but a more robust approach in the long term |
2022-11-13 18:23:42 +0100 | <apache2> | libfuse just looks at argv. it's a terrible api. |
2022-11-13 18:23:58 +0100 | <mrianbloom> | Is there a way to ask ghc to show you how it's deciding which instances to use? |
2022-11-13 18:24:19 +0100 | <tomsmeding> | due to one wanting precedence anyway (commandline flags should take precedence over config file IMO), the possibility of specifying the config file location in argv, wanting explicit defaults, possibly origin reporting to the user, ... |
2022-11-13 18:24:57 +0100 | <tomsmeding> | mrianbloom: are you using OVERLAPPING pragmas, that this is unclear from inspection? |
2022-11-13 18:25:17 +0100 | <tomsmeding> | (not that I know of) |
2022-11-13 18:25:39 +0100 | <tomsmeding> | hm, mrianbloom -fprint-potential-instances, not sure what that does |
2022-11-13 18:25:50 +0100 | <mrianbloom> | Somehow my OVERLAPPING instance isn't being selected and I'm just trying to figure out why it doesn't match. |
2022-11-13 18:26:27 +0100 | <tomsmeding> | ah no, that flag is for error messages |
2022-11-13 18:26:33 +0100 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 256 seconds) |
2022-11-13 18:26:36 +0100 | <dsal> | tomsmeding: Yeah, I'm just not going to bother with a flag to specify a config file. Though I could actually do that with what I've started. I'm using optparse-applicative and I've just changed my `options :: Parser Options` to be `options :: Options -> Parser Options`. Theoretically, I could just run the parser, pull out a config file path. Merge those, and then run the parser again. So many Options. |
2022-11-13 18:26:42 +0100 | <dsal> | But I'm just going to do the "works for me" simple thing first. |
2022-11-13 18:27:11 +0100 | <tomsmeding> | mrianbloom: perhaps a hack, pass -fprint-potential-instances and give the instance that ghc picks (and you don't want) a GHC.TypeLits.TypeError superclass |
2022-11-13 18:27:38 +0100 | <tomsmeding> | dsal: heh |
2022-11-13 18:27:40 +0100 | <mrianbloom> | I'll try that. |
2022-11-13 18:27:49 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-13 18:28:08 +0100 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-11-13 18:28:12 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 18:29:11 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 18:29:45 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-11-13 18:30:30 +0100 | ec_ | (~ec@gateway/tor-sasl/ec) |
2022-11-13 18:32:47 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds) |
2022-11-13 18:35:22 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 18:39:32 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 18:39:47 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-13 18:39:53 +0100 | <dsal> | What's the least awful config file format these days? I'm trying to resist writing a config file format. |
2022-11-13 18:40:09 +0100 | <c_wraith> | maybe toml? |
2022-11-13 18:40:26 +0100 | <dsal> | That's the first thing that came to mind, so I'll give it a go. Thanks. |
2022-11-13 18:41:17 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 18:41:44 +0100 | bjourne | (~bjorn@94.191.136.12.mobile.tre.se) |
2022-11-13 18:42:05 +0100 | <yushyin> | maybe also dhall, if you like it |
2022-11-13 18:42:13 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 18:43:00 +0100 | <dsal> | I've used dhall once and thought it had some good theory (with terrible formatting). This particular project is closer to "put a couple commandline flags in a file" so nothing magic. |
2022-11-13 18:43:44 +0100 | <dsal> | The time I used dhall, I actually needed a little scripting in my config (given a list of things, make a couple other lists of things). |
2022-11-13 18:43:45 +0100 | <yushyin> | then I would also use TOML or even just INI |
2022-11-13 18:50:00 +0100 | titibandit | (~titibandi@xdsl-87-78-8-6.nc.de) (Remote host closed the connection) |
2022-11-13 18:51:13 +0100 | dsrt^ | (~dsrt@76.145.185.103) (Remote host closed the connection) |
2022-11-13 18:51:27 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 260 seconds) |
2022-11-13 19:01:27 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-11-13 19:01:32 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-11-13 19:02:31 +0100 | <monochrom> | I wonder if I should form the unpopular opinion that cabal's file format is the least awful. :) |
2022-11-13 19:03:08 +0100 | shapr | (~user@68.54.166.125) |
2022-11-13 19:03:34 +0100 | <monochrom> | But toml and dhall do benefit from hindsight. |
2022-11-13 19:03:47 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) |
2022-11-13 19:04:02 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) |
2022-11-13 19:05:51 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-13 19:08:46 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-13 19:09:10 +0100 | <sclv> | imho toml is a sweet spot for “generic config” |
2022-11-13 19:09:53 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 19:10:11 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-13 19:10:20 +0100 | <sclv> | any further features would over complicate it without necessarily making it cover a ton more cases |
2022-11-13 19:11:45 +0100 | michalz | (~michalz@185.246.207.197) (Remote host closed the connection) |
2022-11-13 19:12:39 +0100 | econo | (uid147250@user/econo) |
2022-11-13 19:12:55 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 260 seconds) |
2022-11-13 19:16:10 +0100 | phma_ | (phma@2001:5b0:210f:1678:6fe2:e8ab:3dd5:da93) (Read error: Connection reset by peer) |
2022-11-13 19:17:01 +0100 | ddellacosta | (~ddellacos@89.45.224.170) |
2022-11-13 19:17:17 +0100 | phma_ | (~phma@host-67-44-208-73.hnremote.net) |
2022-11-13 19:17:20 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 19:18:19 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection) |
2022-11-13 19:20:45 +0100 | beteigeuze1 | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-11-13 19:20:57 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 256 seconds) |
2022-11-13 19:20:57 +0100 | beteigeuze1 | beteigeuze |
2022-11-13 19:23:52 +0100 | ddellacosta | (~ddellacos@89.45.224.170) (Ping timeout: 268 seconds) |
2022-11-13 19:24:01 +0100 | merijn | (~merijn@86.86.29.250) |
2022-11-13 19:24:12 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) |
2022-11-13 19:24:35 +0100 | phma_ | phma |
2022-11-13 19:25:23 +0100 | ddellacosta | (~ddellacos@89.45.224.59) |
2022-11-13 19:25:24 +0100 | <dsal> | dhall has moved over to the "this is almost a scripting language, but super hard to do something that is adjacent to something that's super easy" |
2022-11-13 19:25:48 +0100 | polo | money |
2022-11-13 19:26:27 +0100 | AlexNoo_ | (~AlexNoo@94.233.241.222) |
2022-11-13 19:27:16 +0100 | beteigeuze1 | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-11-13 19:28:10 +0100 | Alex_test | (~al_test@178.34.160.122) (Ping timeout: 240 seconds) |
2022-11-13 19:28:30 +0100 | merijn | (~merijn@86.86.29.250) (Ping timeout: 240 seconds) |
2022-11-13 19:28:30 +0100 | AlexZenon | (~alzenon@178.34.160.122) (Ping timeout: 240 seconds) |
2022-11-13 19:30:01 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 256 seconds) |
2022-11-13 19:30:01 +0100 | AlexNoo | (~AlexNoo@178.34.160.122) (Ping timeout: 256 seconds) |
2022-11-13 19:30:01 +0100 | beteigeuze1 | beteigeuze |
2022-11-13 19:30:49 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Quit: Client closed) |
2022-11-13 19:31:26 +0100 | drdo | (~drdo@overlord.drdo.eu) |
2022-11-13 19:35:58 +0100 | Alex_test | (~al_test@94.233.241.222) |
2022-11-13 19:36:33 +0100 | AlexZenon | (~alzenon@94.233.241.222) |
2022-11-13 19:38:39 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-11-13 19:39:41 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 19:41:21 +0100 | zeenk | (~zeenk@2a02:2f04:a20e:aa00::7fe) (Ping timeout: 256 seconds) |
2022-11-13 19:42:51 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 19:45:07 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-11-13 19:46:55 +0100 | lechner | (~lechner@debian/lechner) (Remote host closed the connection) |
2022-11-13 19:47:38 +0100 | AlexNoo_ | AlexNoo |
2022-11-13 19:49:13 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 19:51:25 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Remote host closed the connection) |
2022-11-13 19:51:50 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) |
2022-11-13 19:52:54 +0100 | beteigeuze | (~Thunderbi@85.247.81.220) |
2022-11-13 19:53:25 +0100 | <LemanR> | so I am working in xmonad but this is a general haskell question. so in this xmonad file I import files which ghc seems to know where these imports are located, how can I find these? I want to go through some to see how some work starting with finding where "myTerminal" is defined (it is in one of the imports i imagine) |
2022-11-13 19:54:15 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 19:54:23 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-13 19:55:11 +0100 | <LemanR> | I did find /usr/lib64/xmonad-contrib/ghc/XMonad/ which may be correct but I think they are only binaries I can't read, unless there is a way to do that which I am unaware of |
2022-11-13 19:55:22 +0100 | brettgilio | (~brettgili@x-irc.gq) |
2022-11-13 19:57:13 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 256 seconds) |
2022-11-13 19:59:38 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 268 seconds) |
2022-11-13 19:59:43 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Ping timeout: 260 seconds) |
2022-11-13 20:00:25 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) |
2022-11-13 20:01:14 +0100 | lechner | (~lechner@2604:21c0:125:10f0::d35) |
2022-11-13 20:01:20 +0100 | lechner | (~lechner@2604:21c0:125:10f0::d35) (Changing host) |
2022-11-13 20:01:20 +0100 | lechner | (~lechner@debian/lechner) |
2022-11-13 20:01:25 +0100 | <c_wraith> | LemanR: you can always check hackage for a particular library and see if the value is defined in it |
2022-11-13 20:01:35 +0100 | <dsal> | @hoogle myTerminal |
2022-11-13 20:01:36 +0100 | <lambdabot> | No results found |
2022-11-13 20:01:53 +0100 | <dsal> | Oh. Hoogle is helpful if it's a symbol provided by the library. Not if it's your own. |
2022-11-13 20:02:13 +0100 | <c_wraith> | lambdabot's hoogle is also only a small number of common packages |
2022-11-13 20:02:23 +0100 | <c_wraith> | xmonad-contribute has a mytab, but not myTerminal |
2022-11-13 20:02:56 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 20:04:46 +0100 | <LemanR> | I am beginning in haskell so xmonad is a cool first project. So because I am doing this to learn and I see tutorials saying just to set values to predefined startup hooks that doesn't tell me how the hook for terminal knows I am setting a terminal, or is that just a variable name an I am over thinking these hooks? |
2022-11-13 20:04:53 +0100 | <LemanR> | ill find an example |
2022-11-13 20:05:37 +0100 | <davean> | LemanR: seeing the code would help, I have suspicions though you're copying a config and this is a thing related to https://hackage.haskell.org/package/xmonad-0.17.1/docs/XMonad-Core.html#t:XConfig |
2022-11-13 20:06:44 +0100 | <LemanR> | https://gitlab.com/dwt1/dotfiles/-/blob/70f70a9e132254dec83c8c20588f949886ad9254/.xmonad/xmonad.hs |
2022-11-13 20:06:45 +0100 | <LemanR> | so on line 71 you see a bunch of "myTerminal" "myFont" etc etc. Are these just regular variables? I read they are 'hooks' but now when I look at this it just seems like a variable |
2022-11-13 20:07:18 +0100 | <davean> | no that IS THEM BEING CREATED |
2022-11-13 20:07:25 +0100 | <davean> | Thats their definition |
2022-11-13 20:07:39 +0100 | <davean> | the hooks are what I linked above, https://hackage.haskell.org/package/xmonad-0.17.1/docs/XMonad-Core.html#t:XConfig |
2022-11-13 20:07:47 +0100 | <davean> | You'll see they're referenced for that below |
2022-11-13 20:08:15 +0100 | <davean> | They've just moved some config, but not other parts, to the top |
2022-11-13 20:08:32 +0100 | <davean> | probably because they think they're the ones people wnat to change and they want people to not look at the rest of the file for the "standard" changes? |
2022-11-13 20:10:29 +0100 | TonyStone31 | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) |
2022-11-13 20:11:14 +0100 | johnw | (~johnw@2600:1700:cf00:db0:99a3:483a:651:9bf1) |
2022-11-13 20:13:07 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 20:13:12 +0100 | <LemanR> | oh ok, well seems like I was focusing on a problem that didn't exist lol |
2022-11-13 20:13:48 +0100 | <davean> | LemanR: "good style" would involve them having a type specified, like |
2022-11-13 20:14:03 +0100 | <davean> | myFont, myTerminal, myTextEditor :: String |
2022-11-13 20:14:12 +0100 | <davean> | and similar, which might make it more clear they're definitions |
2022-11-13 20:14:18 +0100 | <davean> | but any bare name at the top level is a definition |
2022-11-13 20:14:27 +0100 | <monochrom> | Line 75 defines myTerminal. At that point it's just any variable without significance. Line 101 uses myTerminal. That's part of "xmonad $ ..." which gives myTerminal relevance. You don't have to call it myTerminal. You don't even have to call it anything, you can just directly say terminal = "alacritty". |
2022-11-13 20:14:30 +0100 | <davean> | (Really the only other thing at the top level is like imports) |
2022-11-13 20:14:55 +0100 | <davean> | Also on this note, I'm confused by alacritty |
2022-11-13 20:14:59 +0100 | <c_wraith> | davean: .... well, that's not exactly true since they (IMO bad) change to allow top-level TH without an explicit splice |
2022-11-13 20:15:07 +0100 | <davean> | Isn't its entire thing it is supposed to be fast? I tested it and its slower than urxvt |
2022-11-13 20:15:10 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds) |
2022-11-13 20:15:23 +0100 | <davean> | c_wraith: ugh what, when? |
2022-11-13 20:15:39 +0100 | <davean> | also, TH isn't haskell, its an extension, and not a well done one at that |
2022-11-13 20:15:41 +0100 | <c_wraith> | early in 8.x or late in 7.x. It was a whilea go now |
2022-11-13 20:15:50 +0100 | <c_wraith> | *while ago |
2022-11-13 20:15:59 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) |
2022-11-13 20:16:33 +0100 | <c_wraith> | but if GHC encounters a top-level expression in a file, it assumes it is supposed to be TH |
2022-11-13 20:16:44 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 20:16:58 +0100 | <davean> | That is litterly horrific |
2022-11-13 20:17:06 +0100 | <EvanR> | today I learned |
2022-11-13 20:17:35 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 20:17:47 +0100 | <LemanR> | today I learned, where these imports come from....I guess that might be valuable later *shrugs* back to customizing |
2022-11-13 20:17:50 +0100 | <davean> | c_wraith: Where is the justification for that? |
2022-11-13 20:18:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 20:18:06 +0100 | <c_wraith> | davean: I haven't got a clue |
2022-11-13 20:18:31 +0100 | <davean> | I mean TH is just full of horrible engenering too - have you seen its Q monad? |
2022-11-13 20:18:43 +0100 | beteigeuze | (~Thunderbi@85.247.81.220) (Ping timeout: 260 seconds) |
2022-11-13 20:18:57 +0100 | <c_wraith> | Q is confusing because it's nothing wrapping nothing wrapping an actual implementation |
2022-11-13 20:19:13 +0100 | <johnw> | the Q monad flung me into the delta quadrant once |
2022-11-13 20:19:17 +0100 | <davean> | c_wraith: Yah, but there is no implimentation of it that is valid |
2022-11-13 20:19:27 +0100 | <davean> | you have to treat every impliemtation seperately |
2022-11-13 20:19:39 +0100 | <davean> | EVERY SINGLE ONE has some part of Q that is undefined. |
2022-11-13 20:19:44 +0100 | <EvanR> | @quote johnw the Q monad flung me into the delta quadrant once |
2022-11-13 20:19:44 +0100 | <lambdabot> | No quotes match. The more you drive -- the dumber you get. |
2022-11-13 20:19:51 +0100 | <davean> | like WTF is with that completely false abstraction? |
2022-11-13 20:19:52 +0100 | <EvanR> | @remember johnw the Q monad flung me into the delta quadrant once |
2022-11-13 20:19:52 +0100 | <lambdabot> | It is stored. |
2022-11-13 20:20:03 +0100 | <monochrom> | The Q monad gave me the abs I've always dreamed of, so I'm not complaining. :) |
2022-11-13 20:20:05 +0100 | <c_wraith> | I think that's less true now, since they split it into multiple classes |
2022-11-13 20:20:22 +0100 | <johnw> | monochrom: and with those abs, all your problems with negativity disappeared? |
2022-11-13 20:20:50 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 240 seconds) |
2022-11-13 20:21:02 +0100 | <monochrom> | No, but I'm happy for every little bonus. |
2022-11-13 20:21:15 +0100 | <johnw> | (forall x. abs (-x)....) |
2022-11-13 20:21:22 +0100 | <monochrom> | Oh haha that. |
2022-11-13 20:21:25 +0100 | <johnw> | ;-) |
2022-11-13 20:22:13 +0100 | <monochrom> | Then yeah, actually both that and all my imaginary numbers become real again too. |
2022-11-13 20:22:14 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 20:23:00 +0100 | <johnw> | in the voice of John Lennon: "Imagine there are no square roots of negative numbers..." |
2022-11-13 20:23:06 +0100 | <davean> | I do wish more research would be put into TH to make it ... good. Its a very hard problem with little reward though. |
2022-11-13 20:23:17 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds) |
2022-11-13 20:23:53 +0100 | <johnw> | davean: agreed |
2022-11-13 20:24:00 +0100 | wroathe | (~wroathe@50.205.197.50) |
2022-11-13 20:24:00 +0100 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2022-11-13 20:24:00 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-11-13 20:24:03 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 20:25:23 +0100 | <johnw> | I can see why meta-programming isn't too exciting academically; you don't get much from it that you couldn't get inefficiently by other means. So it's mainly just an implementation strategy |
2022-11-13 20:25:45 +0100 | <davean> | Right, very little reward fo0r researchers, a lot for industry |
2022-11-13 20:26:11 +0100 | <davean> | And TH isn't even solving enough of the problem to make it exciting yet I think |
2022-11-13 20:26:19 +0100 | <davean> | TH is very limited in its scope and capabilities |
2022-11-13 20:26:37 +0100 | <johnw> | it does make me long for Lisp though |
2022-11-13 20:26:43 +0100 | <EvanR> | sometimes the haskell code should just be really dumb and repetitive, but I guess there's other ways to generate it |
2022-11-13 20:26:48 +0100 | <johnw> | it's really good at that |
2022-11-13 20:27:22 +0100 | <davean> | johnw: Yah well, uh, someday maybe you'll sit down and solve it. I think its out of my abilities though. |
2022-11-13 20:27:23 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
2022-11-13 20:27:41 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-11-13 20:28:06 +0100 | <EvanR> | like bindings generators, how do they work. </icp> |
2022-11-13 20:28:16 +0100 | <ozkutuk[m]> | Any package suggestion for generating normally distributed random values? Just trying to generate more realistic values for my benchmarks |
2022-11-13 20:28:55 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit) |
2022-11-13 20:29:03 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 20:30:01 +0100 | <monochrom> | random-fu |
2022-11-13 20:30:21 +0100 | <davean> | Second random-fu, mostly. |
2022-11-13 20:30:38 +0100 | <monochrom> | I haven't used it. I saw it somewhere and bookmarked it. |
2022-11-13 20:31:37 +0100 | <davean> | I've used it extensively. |
2022-11-13 20:31:45 +0100 | <davean> | I ahve some problems with it, but it is pretty good |
2022-11-13 20:31:56 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 20:31:57 +0100 | <ozkutuk[m]> | Looks like what I need, if a little overkill for my usecase |
2022-11-13 20:32:02 +0100 | <ozkutuk[m]> | Thanks! |
2022-11-13 20:36:16 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-11-13 20:39:36 +0100 | zer0bitz_ | (~zer0bitz@196.244.192.54) |
2022-11-13 20:40:51 +0100 | zer0bitz | (~zer0bitz@196.244.192.56) (Ping timeout: 256 seconds) |
2022-11-13 20:44:26 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 20:48:38 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-11-13 20:50:58 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) |
2022-11-13 20:51:26 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-11-13 20:51:29 +0100 | stef204 | (~stef204@user/stef204) |
2022-11-13 20:51:38 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-11-13 20:54:35 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-11-13 20:57:13 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-11-13 21:00:04 +0100 | zeenk | (~zeenk@188.25.233.172) |
2022-11-13 21:01:41 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection) |
2022-11-13 21:02:11 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze) |
2022-11-13 21:05:00 +0100 | zeenk | (~zeenk@188.25.233.172) (Ping timeout: 268 seconds) |
2022-11-13 21:05:47 +0100 | CiaoSen | (~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-11-13 21:05:48 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 21:08:24 +0100 | acidjnk | (~acidjnk@p200300d6e7137a015d19df638f338baf.dip0.t-ipconnect.de) |
2022-11-13 21:09:00 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-11-13 21:09:18 +0100 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:3d51:c8c8:3b5:2cac) |
2022-11-13 21:10:53 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-11-13 21:13:18 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) |
2022-11-13 21:21:11 +0100 | ygsjg | (~quassel@189.124.224.160) |
2022-11-13 21:35:44 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-11-13 21:37:44 +0100 | titibandit | (~titibandi@xdsl-87-78-8-6.nc.de) |
2022-11-13 21:38:44 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-13 21:41:31 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) (Quit: leaving) |
2022-11-13 21:41:43 +0100 | LemanR | (~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Quit: Client closed) |
2022-11-13 21:42:18 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) |
2022-11-13 21:44:19 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-11-13 21:44:21 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) (Client Quit) |
2022-11-13 21:45:16 +0100 | machinedgod | (~machinedg@clnet-b05-118.ikbnet.co.at) |
2022-11-13 21:46:01 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds) |
2022-11-13 21:48:00 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 21:48:48 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-11-13 21:49:41 +0100 | <juri_> | dumb question: i have a typeclass, and two instances that conform to it. can i create a type that has any type implementing that typeclass as a field? |
2022-11-13 21:50:40 +0100 | ygsjg | (~quassel@189.124.224.160) (Ping timeout: 260 seconds) |
2022-11-13 21:50:54 +0100 | <geekosaur> | with an existential, which has shortcomings |
2022-11-13 21:52:08 +0100 | <geekosaur> | GADTs may help |
2022-11-13 21:53:55 +0100 | <juri_> | oh. that looks exactly like what i'm looking for. thanks. |
2022-11-13 21:54:02 +0100 | <juri_> | *aims gun at foot* |
2022-11-13 21:54:07 +0100 | <davean> | GADTs can have the same limitations, there are two real shortcomings. The first being syntax, the second being carrying an extra reference. |
2022-11-13 21:55:43 +0100 | <geekosaur> | as usual, it's usually better t [put the constraint on functions consuming the type, rather than on/in the type itself |
2022-11-13 21:55:55 +0100 | ephemient | (uid407513@id-407513.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-11-13 21:57:27 +0100 | <juri_> | i only have one function that takes that type, so that's feasable. just experimenting with what 'looks' nicest. |
2022-11-13 21:57:52 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-11-13 21:59:09 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 21:59:40 +0100 | <davean> | Generally I'd make the type you match the class on a parameter to the type holding it |
2022-11-13 21:59:50 +0100 | <davean> | juri_: it isn't just what looks nicest, it is also what performs best |
2022-11-13 22:00:04 +0100 | <davean> | There are *technical* implications to this choice |
2022-11-13 22:00:09 +0100 | <geekosaur> | and doesn't leave you a tangled mess on a later refactor |
2022-11-13 22:00:25 +0100 | <geekosaur> | but yes, the technical issue can matter quite a bit |
2022-11-13 22:00:42 +0100 | <davean> | There are reasons to take the technical hit, but seriously, its a decision, not what "looks nicest" |
2022-11-13 22:01:06 +0100 | dfee | (~dfee@2600:1010:b029:52ce:259d:4cf9:3d51:d746) |
2022-11-13 22:02:03 +0100 | <davean> | I use existentials all the time, but I use it for reasons. |
2022-11-13 22:02:15 +0100 | <davean> | It has a different MEANING |
2022-11-13 22:03:32 +0100 | <juri_> | interesting. |
2022-11-13 22:03:58 +0100 | <juri_> | yeah, i think i'll just mutate the caller, and the callee. seems uglier, but more sane. |
2022-11-13 22:05:56 +0100 | pavonia | (~user@user/siracusa) |
2022-11-13 22:06:58 +0100 | <EvanR> | mutate the caller?! |
2022-11-13 22:07:04 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
2022-11-13 22:07:10 +0100 | <EvanR> | is this C programming or |
2022-11-13 22:07:19 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-11-13 22:07:28 +0100 | <davean> | EvanR: no, no, its assembly patching, clearly. |
2022-11-13 22:07:51 +0100 | <juri_> | 8 years of haskell, and i still can't clean the C off of me. :) |
2022-11-13 22:08:20 +0100 | <davean> | juri_: BTW is the difference in meaning clear to you out of curiosity? |
2022-11-13 22:08:37 +0100 | <davean> | and why putting it on the caller allows more performant implimentations? |
2022-11-13 22:08:41 +0100 | <davean> | er |
2022-11-13 22:08:43 +0100 | <davean> | on the function |
2022-11-13 22:09:55 +0100 | <juri_> | no, i expected this to desugar during compilation. i try to treat haskell not-like-C, but i'm bad at it. |
2022-11-13 22:10:31 +0100 | <davean> | Well, if it is on the function, the class dictionary is passed as a parameter and you can inline that and specialize it. |
2022-11-13 22:10:33 +0100 | <juri_> | i write "C with thunks and no state, but backwards". it's still not haskell. |
2022-11-13 22:11:12 +0100 | <davean> | if you use an existential, it is the data type that carries that dictionary |
2022-11-13 22:11:35 +0100 | <juri_> | oh. ok, that makes sense. |
2022-11-13 22:11:37 +0100 | <davean> | which changes what is knowable and deterministic |
2022-11-13 22:11:49 +0100 | <davean> | so they dispatch differentl |
2022-11-13 22:12:02 +0100 | <davean> | (Because they HAVE to dispatch differently) |
2022-11-13 22:12:37 +0100 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
2022-11-13 22:12:54 +0100 | <davean> | which also means the existential version is a larger datastructure in memory |
2022-11-13 22:13:10 +0100 | chromoblob | (~user@37.113.164.122) |
2022-11-13 22:13:19 +0100 | <davean> | you could recover some of the function level constraint dispatch with a JIT but we don't have a JIT implimentaiton for Haskell |
2022-11-13 22:13:31 +0100 | <davean> | the existential moves the dispatch to runtime from compile time |
2022-11-13 22:13:52 +0100 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) |
2022-11-13 22:14:22 +0100 | <davean> | Ok, I feel thats a bad explanation |
2022-11-13 22:14:25 +0100 | <davean> | well I tried |
2022-11-13 22:14:52 +0100 | <juri_> | I'm abusing two types, in order to model the property of normalization. i have a geometric algebra library in which some functions require normalization, some don't. the ones that require it, just use a call to normalize that is implemented for the un-normalized type, and a no-op for the normalized type. |
2022-11-13 22:15:05 +0100 | nate4 | (~nate@98.45.169.16) |
2022-11-13 22:15:45 +0100 | <davean> | That seems ... fine? |
2022-11-13 22:15:51 +0100 | <davean> | Where is the abuse in that? :-p |
2022-11-13 22:15:56 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 22:16:14 +0100 | <davean> | Though, I might use laziness for it myself ... |
2022-11-13 22:16:19 +0100 | <juri_> | it's weird to be using a type like this. <I_AM_A_C_PROGRAMMER.GIF> |
2022-11-13 22:17:14 +0100 | <juri_> | I had a place where i can take either a value that is one of the normalized/un-normalized, or the thing i convert into that value. now i can't fill one side of the either with a typeclass. |
2022-11-13 22:17:32 +0100 | <davean> | at the top level if you call "normalize my_non_normalized_thing" you just get a thunk to the normalized version, and if you make normalize lazy you just normalize the parts you need to as you go. |
2022-11-13 22:17:34 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 22:17:36 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection) |
2022-11-13 22:17:43 +0100 | <EvanR> | well, to vary the behavior of something it's not always best to use a type class |
2022-11-13 22:17:55 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2022-11-13 22:18:10 +0100 | <davean> | I'd generally lean towards the lazy type conversion approach when you can personally. |
2022-11-13 22:18:10 +0100 | <EvanR> | practically it seems like type classes are good when you don't want to pass the dictionary around |
2022-11-13 22:18:20 +0100 | <juri_> | I'm three years into developing a geometry library. "best" is not what i'm going for. i want working, first. :) |
2022-11-13 22:18:37 +0100 | cheater | (~Username@user/cheater) (Quit: BitchX: use only under adult supervision) |
2022-11-13 22:18:40 +0100 | <EvanR> | if you use existentials it's kind of like passing the dictionary around |
2022-11-13 22:18:53 +0100 | <davean> | EvanR: its LITTERALLY passing the dictionary around |
2022-11-13 22:18:59 +0100 | <davean> | the relation is identity |
2022-11-13 22:19:44 +0100 | cheater | (~Username@user/cheater) |
2022-11-13 22:20:12 +0100 | <juri_> | in an earlier form of this engine, un-normalized and normalized were constructors of the same type. now the type has become the typeclass, and the constructors are separate types. makes my return types a lot more factual. |
2022-11-13 22:20:14 +0100 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-11-13 22:20:16 +0100 | <EvanR> | in which case maybe think about, actually passing an explicit "dictionary" (record of functions, single function, or even single value) around |
2022-11-13 22:20:18 +0100 | <davean> | juri_: is there a particular reason you don't define the translation to make the call like I just discussed? |
2022-11-13 22:20:51 +0100 | <juri_> | davean: i'd have to understand what you just discussed. :) |
2022-11-13 22:21:30 +0100 | <davean> | juri_: make the type that has to work with both only work on one type, and wrap the unnormalized type with a normalizer to call that function |
2022-11-13 22:21:37 +0100 | <davean> | er |
2022-11-13 22:21:39 +0100 | <davean> | make the FUNCTION |
2022-11-13 22:22:08 +0100 | <davean> | f :: (Normalizable g, Geometry g) => g -> r |
2022-11-13 22:22:10 +0100 | <davean> | to |
2022-11-13 22:22:22 +0100 | <juri_> | https://github.com/Haskell-Things/HSlice/blob/tip/Graphics/Slicer/Math/PGAPrimitives.hs |
2022-11-13 22:22:22 +0100 | <davean> | f :: NomralizedGeometryType -> r |
2022-11-13 22:22:30 +0100 | <EvanR> | otoh it sounds like taking any advice whatever from us will cause the nth rewrite xD |
2022-11-13 22:22:36 +0100 | <davean> | and when you have "f nonNormalized" |
2022-11-13 22:22:45 +0100 | <davean> | call "f (normalize nonNormalized) |
2022-11-13 22:22:51 +0100 | <juri_> | EvanR: i'm up to at least the fourth. :) |
2022-11-13 22:22:51 +0100 | chromoblob | (~user@37.113.164.122) (Ping timeout: 260 seconds) |
2022-11-13 22:23:46 +0100 | <davean> | juri_: that looks like it does work, but if it is lazy it only does work *as it is required by the called function* |
2022-11-13 22:23:48 +0100 | <juri_> | i think i've put the burden on the caller, rather than the callee. that way callees can work with values that are un-normalized. |
2022-11-13 22:24:26 +0100 | <davean> | I have no idea where in that file I should look and I have 3 minutes left |
2022-11-13 22:24:34 +0100 | <davean> | So I'm just gonna not. |
2022-11-13 22:24:44 +0100 | <juri_> | er. exactly the opposite of what i just said. if a function requires normalized inputs, it accepts a member of the typeclass, calls normalize, which is id essentially for normalized values. |
2022-11-13 22:24:49 +0100 | <juri_> | :) |
2022-11-13 22:24:58 +0100 | <juri_> | s'ok. |
2022-11-13 22:25:32 +0100 | <EvanR> | another wild tangent is having 1 type which is either normalized or not, and tracking the fact that it is normalized, or not, or unknown in a phantom type param |
2022-11-13 22:26:52 +0100 | <juri_> | oh, sorry, wrong branch: https://github.com/Haskell-Things/HSlice/blob/ProjectiveLine2/Graphics/Slicer/Math/PGAPrimitives.h… |
2022-11-13 22:28:06 +0100 | <juri_> | note the normalize member, which is id, with a mempty in a tuple, representing the error that occured during the calculation (none, becauase it's id). |
2022-11-13 22:28:30 +0100 | <juri_> | where the next function has a call to a normalization function instead. |
2022-11-13 22:29:15 +0100 | <juri_> | ... no, i don't write very good haskell. |
2022-11-13 22:31:53 +0100 | titibandit | (~titibandi@xdsl-87-78-8-6.nc.de) (Remote host closed the connection) |
2022-11-13 22:32:50 +0100 | <davean> | I'm no longer here, but can we help you to write good haskell? |
2022-11-13 22:33:17 +0100 | lagash | (lagash@lagash.shelltalk.net) (Ping timeout: 246 seconds) |
2022-11-13 22:34:03 +0100 | <EvanR> | this message was never sent |
2022-11-13 22:35:18 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-11-13 22:36:46 +0100 | <juri_> | the conversation started with me looking at https://github.com/Haskell-Things/HSlice/blob/ProjectiveLine2/Graphics/Slicer/Math/PGA.hs#L278 , and wondering if i could prevent having to cast to use this bit of sugar, and causing a double normalization. sounds like i should rip it out in both places, and just use "(ProjectiveLine2 a) => Either LineSeg a" everywhere. |
2022-11-13 22:37:22 +0100 | <juri_> | hmm. thinking about it, i don't know if that will work, either. |
2022-11-13 22:37:39 +0100 | <juri_> | such a simple case (sugar-wise), but quite a mess. |
2022-11-13 22:37:54 +0100 | <juri_> | i think i'll just leave it aloone, and fight the next battle in my code. |
2022-11-13 22:39:02 +0100 | <EvanR> | yeah ProjectiveLine2 seems like a single abstract data type rather than a type class |
2022-11-13 22:39:59 +0100 | <juri_> | that's how i had it implemented, but it meant i couldn't at a glance tell which constructor i was returning values in. |
2022-11-13 22:40:00 +0100 | <EvanR> | but when type classes go rogue, there's always a way to deal with it |
2022-11-13 22:40:18 +0100 | <EvanR> | like existentials, reflection, |
2022-11-13 22:40:27 +0100 | <EvanR> | instead of rewriting it xD |
2022-11-13 22:40:38 +0100 | Heyting | (~Heyting@193.198.16.217) |
2022-11-13 22:41:51 +0100 | <EvanR> | if it was 1 data type you could see the constructors. And if it was an abstract type you can always define "views" of the ADT which return something with constructors relevant to the view |
2022-11-13 22:42:41 +0100 | <EvanR> | you could also add views to the type class |
2022-11-13 22:44:00 +0100 | <juri_> | when i was implementing functions with them being members of the same type, i kept having to pattern match, to know if i needed to normalize. this gets ugly when you're on your third case point of... |
2022-11-13 22:45:41 +0100 | <EvanR> | well, if the normalize function has type ProjectiveLine -> ProjectiveLine, you could just apply it |
2022-11-13 22:45:50 +0100 | <EvanR> | if would cost the same as checking if it needs to be normalized first |
2022-11-13 22:46:24 +0100 | <juri_> | yeah, it might be prudent to back off the over-typeclassification. |
2022-11-13 22:47:13 +0100 | <EvanR> | otoh, you could do like the Rational type and just always be normalized |
2022-11-13 22:47:43 +0100 | <juri_> | causes precision loss. every time i touch anything, it turns to.. something not nice. :) |
2022-11-13 22:47:48 +0100 | Heyting | (~Heyting@193.198.16.217) (Remote host closed the connection) |
2022-11-13 22:47:58 +0100 | <EvanR> | oh, we're using floats... |
2022-11-13 22:48:31 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-13 22:48:45 +0100 | <juri_> | very yes. |
2022-11-13 22:48:59 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
2022-11-13 22:49:08 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-11-13 22:49:08 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-11-13 22:49:08 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-11-13 22:49:12 +0100 | <juri_> | and trying to track error caused by each time we touch things. |
2022-11-13 22:49:22 +0100 | <juri_> | it's.. not going great, but is going. |
2022-11-13 22:49:34 +0100 | bjourne | (~bjorn@94.191.136.12.mobile.tre.se) (Quit: Konversation terminated!) |
2022-11-13 22:49:37 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-11-13 22:49:37 +0100 | <juri_> | i even have some things that actually work. |
2022-11-13 22:49:45 +0100 | <EvanR> | sounds handy, at the end when you have the result and the error, you can just add them to get the right answer xD |
2022-11-13 22:50:19 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-11-13 22:50:37 +0100 | <juri_> | no, but if i have the result, and the maximum amount of error, i can use that to reason about the shape of answers. |
2022-11-13 22:50:54 +0100 | <EvanR> | interval analysis? |
2022-11-13 22:51:07 +0100 | <juri_> | yep. my own, backwards form. |
2022-11-13 22:52:32 +0100 | <juri_> | it needs yet another rewrite, but some parts of it are actually working every time. property tests and floating point may have already driven me mad. :) |
2022-11-13 22:54:08 +0100 | stef204 | (~stef204@user/stef204) (Quit: WeeChat 3.7.1) |
2022-11-13 22:57:18 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-11-13 22:58:04 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-11-13 22:58:41 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-11-13 23:02:10 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-11-13 23:04:39 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-11-13 23:04:59 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-11-13 23:05:37 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2022-11-13 23:06:15 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-11-13 23:07:11 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-11-13 23:07:38 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-11-13 23:09:02 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-11-13 23:10:17 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-11-13 23:11:04 +0100 | mrianbloom | (uid350277@id-350277.ilkley.irccloud.com) () |
2022-11-13 23:11:59 +0100 | ygsjg | (~quassel@189.124.224.160) |
2022-11-13 23:12:10 +0100 | califax | (~califax@user/califx) |
2022-11-13 23:12:47 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-11-13 23:12:56 +0100 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-11-13 23:14:14 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-11-13 23:14:24 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-11-13 23:15:08 +0100 | dfee | (~dfee@2600:1010:b029:52ce:259d:4cf9:3d51:d746) (Quit: dfee) |
2022-11-13 23:21:46 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-11-13 23:25:04 +0100 | `2jt | (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) |
2022-11-13 23:26:47 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-11-13 23:33:46 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-11-13 23:39:04 +0100 | lechner | (~lechner@debian/lechner) (Remote host closed the connection) |
2022-11-13 23:39:43 +0100 | lechner | (~lechner@debian/lechner) |
2022-11-13 23:44:52 +0100 | michalz | (~michalz@185.246.207.221) |
2022-11-13 23:47:33 +0100 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-11-13 23:49:04 +0100 | kaskal | (~kaskal@089144207012.atnat0016.highway.bob.at) |
2022-11-13 23:52:23 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-11-13 23:52:40 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection) |
2022-11-13 23:53:23 +0100 | adium | (adium@user/adium) (Ping timeout: 252 seconds) |
2022-11-13 23:54:39 +0100 | vglfr | (~vglfr@145.224.100.100) (Remote host closed the connection) |
2022-11-13 23:54:54 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-11-13 23:55:23 +0100 | vglfr | (~vglfr@145.224.100.100) |
2022-11-13 23:57:22 +0100 | vglfr | (~vglfr@145.224.100.100) (Remote host closed the connection) |
2022-11-13 23:57:50 +0100 | biberu | (~biberu@user/biberu) |
2022-11-13 23:57:56 +0100 | vglfr | (~vglfr@145.224.100.100) |
2022-11-13 23:59:31 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |