2022/11/13

2022-11-13 00:00:19 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-13 00:01:15 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-11-13 00:01:18 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 00:06:05 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds)
2022-11-13 00:09:30 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at) (Ping timeout: 240 seconds)
2022-11-13 00:12:19 +0100InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
2022-11-13 00:13:33 +0100nate4(~nate@98.45.169.16)
2022-11-13 00:14:43 +0100merijn(~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 +0100nate4(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-11-13 00:21:11 +0100TonyStone31(~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) (Ping timeout: 268 seconds)
2022-11-13 00:22:35 +0100sammelweis(~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Quit: No Ping reply in 180 seconds.)
2022-11-13 00:25:42 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 00:26:41 +0100zeenk(~zeenk@2a02:2f04:a009:2a00::7fe) (Quit: Konversation terminated!)
2022-11-13 00:31:01 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-11-13 00:33:49 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 00:34:17 +0100TonyStone31(~TonyStone@cpe-74-76-48-136.nycap.res.rr.com)
2022-11-13 00:35:26 +0100nil(~user@2001:da8:d800:611:9159:fcb2:7a41:10d)
2022-11-13 00:37:36 +0100acidjnk(~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-11-13 00:38:31 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-13 00:47:32 +0100nil(~user@2001:da8:d800:611:9159:fcb2:7a41:10d) (Remote host closed the connection)
2022-11-13 00:50:53 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-11-13 00:50:54 +0100Sauvin(~sauvin@user/Sauvin) (Quit: Leaving)
2022-11-13 00:52:44 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-11-13 00:52:44 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-11-13 00:52:44 +0100wroathe(~wroathe@user/wroathe)
2022-11-13 00:54:12 +0100Sauvin(~sauvin@user/Sauvin)
2022-11-13 00:55:48 +0100Guest75(~Guest75@178.141.177.81) (Ping timeout: 260 seconds)
2022-11-13 01:01:56 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 01:08:38 +0100Tuplanolla(~Tuplanoll@91-159-68-194.elisa-laajakaista.fi) (Quit: Leaving.)
2022-11-13 01:11:03 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-11-13 01:11:08 +0100TonyStone31(~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 +0100TonyStone31(~TonyStone@cpe-74-76-48-136.nycap.res.rr.com)
2022-11-13 01:29:34 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-13 01:41:48 +0100caryhartline(~caryhartl@2600:1700:2d0:8d30:dcc0:82ac:c37f:ed70) (Quit: caryhartline)
2022-11-13 01:42:30 +0100InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-11-13 01:53:11 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 256 seconds)
2022-11-13 02:01:43 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-13 02:02:55 +0100califax(~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 +0100freeside(~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 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-11-13 02:10:42 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 02:12:09 +0100freeside(~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 +0100Thony(~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 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-11-13 02:16:30 +0100TonyStone31(~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 +0100freeside(~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 +0100bilegeek(~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 +0100bilegeek(~bilegeek@2600:1008:b06e:a41f:5618:be6c:e24b:9832) (Remote host closed the connection)
2022-11-13 02:28:24 +0100bilegeek(~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 +0100azimut(~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 +0100razetime(~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 +0100wootehfoot(~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 +0100euandreh(~Thunderbi@179.214.113.107) (Quit: euandreh)
2022-11-13 02:39:24 +0100euandreh(~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 +0100FinnElija(~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 +0100FinnElija(~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 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-13 02:45:47 +0100Batzy(~quassel@user/batzy) (Ping timeout: 248 seconds)
2022-11-13 02:45:56 +0100TonyStone31(~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 +0100freeside(~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 +0100Thony(~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 +0100Batzy(~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 +0100arahaelmisses 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 +0100Guest31(~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 +0100eggplantade(~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 +0100arahaelscreams at the thought they don't! :)
2022-11-13 03:06:55 +0100TonyStone31(~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 +0100eggplantade(~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 +0100beteigeuze(~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 +0100dsalcan't even spell lager
2022-11-13 03:20:25 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-13 03:20:26 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-11-13 03:20:59 +0100TonyStone31(~TonyStone@cpe-74-76-48-136.nycap.res.rr.com)
2022-11-13 03:21:24 +0100califax(~califax@user/califx)
2022-11-13 03:22:24 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-13 03:22:39 +0100bilegeek_(~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 +0100bilegeek(~bilegeek@2600:1008:b06e:a41f:5618:be6c:e24b:9832) (Ping timeout: 260 seconds)
2022-11-13 03:31:30 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-11-13 03:33:14 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-11-13 03:34:03 +0100TonyStone31(~TonyStone@cpe-74-76-48-136.nycap.res.rr.com) (Ping timeout: 256 seconds)
2022-11-13 03:38:07 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-13 03:40:51 +0100razetime(~quassel@117.254.34.151) (Ping timeout: 256 seconds)
2022-11-13 03:41:56 +0100ropwareJB(~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 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-13 03:57:38 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-11-13 03:58:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-13 03:59:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2022-11-13 04:02:18 +0100notzmv(~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 +0100crns(~netcrns@user/crns) (Ping timeout: 260 seconds)
2022-11-13 04:09:11 +0100crns(~netcrns@p4ff5e521.dip0.t-ipconnect.de)
2022-11-13 04:09:12 +0100crns(~netcrns@p4ff5e521.dip0.t-ipconnect.de) (Changing host)
2022-11-13 04:09:12 +0100crns(~netcrns@user/crns)
2022-11-13 04:13:05 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2022-11-13 04:13:19 +0100johnw(~johnw@2600:1700:cf00:db0:8ded:5d2b:1bf3:1aca) (Quit: ZNC - http://znc.in)
2022-11-13 04:13:54 +0100td_(~td@83.135.9.7) (Ping timeout: 260 seconds)
2022-11-13 04:14:11 +0100ropwareJB(~ropwareJB@180-150-36-243.b49624.bne.nbn.aussiebb.net) (Quit: Client closed)
2022-11-13 04:15:25 +0100td_(~td@83.135.9.56)
2022-11-13 04:18:00 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-13 04:19:13 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 268 seconds)
2022-11-13 04:19:53 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 04:19:56 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-11-13 04:22:24 +0100rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-11-13 04:24:23 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-11-13 04:24:34 +0100rembo10(~rembo10@main.remulis.com)
2022-11-13 04:25:03 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 04:39:40 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2022-11-13 04:41:04 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 252 seconds)
2022-11-13 04:41:15 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 04:45:00 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-13 04:46:21 +0100poscat(~poscat@114.245.106.84) (Ping timeout: 268 seconds)
2022-11-13 04:46:56 +0100poscat(~poscat@2408:8206:4823:fd6f:98ab:5c38:136c:5932)
2022-11-13 04:48:21 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-11-13 04:49:42 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-11-13 04:54:48 +0100Batzy(~quassel@user/batzy) (Read error: Connection reset by peer)
2022-11-13 04:55:18 +0100Batzy(~quassel@user/batzy)
2022-11-13 05:01:39 +0100ropwareJB(~ropwareJB@180-150-36-243.b49624.bne.nbn.aussiebb.net)
2022-11-13 05:10:05 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-13 05:10:51 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-13 05:11:31 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds)
2022-11-13 05:12:05 +0100chromoblob(~user@37.113.164.122)
2022-11-13 05:16:39 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-11-13 05:17:14 +0100Raito_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 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-11-13 05:21:09 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 256 seconds)
2022-11-13 05:22:51 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
2022-11-13 05:23:42 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-13 05:28:54 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-11-13 05:31:06 +0100causal(~user@50.35.83.177) (Quit: WeeChat 3.7.1)
2022-11-13 05:32:27 +0100Me-me(~me-me@v.working.name) (Remote host closed the connection)
2022-11-13 05:33:20 +0100Me-me(~me-me@v.working.name)
2022-11-13 05:37:50 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-11-13 05:41:16 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 05:43:42 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-13 05:44:27 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-11-13 05:45:35 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-13 05:52:15 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-13 05:53:17 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-13 05:54:55 +0100bjourne(~bjorn@94.191.136.12.mobile.tre.se) (Ping timeout: 260 seconds)
2022-11-13 05:55:28 +0100chromoblob(~user@37.113.164.122)
2022-11-13 05:56:10 +0100sayola(~sayola@dslb-088-064-186-217.088.064.pools.vodafone-ip.de)
2022-11-13 06:14:56 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 06:16:03 +0100nate4(~nate@98.45.169.16)
2022-11-13 06:20:39 +0100nate4(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-11-13 06:22:57 +0100Me-me(~me-me@v.working.name) (Changing host)
2022-11-13 06:22:58 +0100Me-me(~me-me@user/me-me)
2022-11-13 06:23:47 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-13 06:28:47 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-11-13 06:29:57 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-11-13 06:30:02 +0100Lord_of_Life_Lord_of_Life
2022-11-13 06:30:09 +0100michalz(~michalz@185.246.207.200) (Remote host closed the connection)
2022-11-13 06:47:26 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-13 06:51:31 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-13 06:53:02 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-11-13 06:53:30 +0100chexum(~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 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-11-13 07:00:52 +0100ChaiTRex(~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 +0100chromoblob(~user@37.113.164.122)
2022-11-13 07:12:42 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 07:13:30 +0100notzmv(~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 +0100merijn(~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 +0100freeside(~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 +0100eggplantade(~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 +0100bitdex(~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 +0100bitdex(~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 +0100wroathe(~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 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 07:52:48 +0100nate4(~nate@98.45.169.16)
2022-11-13 07:56:50 +0100nate4(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-11-13 08:04:22 +0100traxex(traxex@user/traxex)
2022-11-13 08:06:46 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-11-13 08:10:41 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2022-11-13 08:11:20 +0100ropwareJB(~ropwareJB@180-150-36-243.b49624.bne.nbn.aussiebb.net) (Quit: Client closed)
2022-11-13 08:11:55 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-11-13 08:12:17 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-13 08:24:49 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28)
2022-11-13 08:26:43 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-13 08:29:17 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Ping timeout: 256 seconds)
2022-11-13 08:30:52 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2022-11-13 08:36:59 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-13 08:38:49 +0100zeenk(~zeenk@2a02:2f04:a20e:aa00::7fe)
2022-11-13 08:44:55 +0100jakalx(~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 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at)
2022-11-13 08:48:22 +0100jakalx(~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 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 240 seconds)
2022-11-13 08:57:20 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-11-13 08:57:57 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at) (Ping timeout: 268 seconds)
2022-11-13 08:59:48 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-13 09:00:03 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-13 09:02:26 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-11-13 09:02:27 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-11-13 09:04:04 +0100califax(~califax@user/califx)
2022-11-13 09:07:08 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-13 09:08:22 +0100chromoblob(~user@37.113.164.122)
2022-11-13 09:10:38 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 09:11:10 +0100gmg(~user@user/gehmehgeh)
2022-11-13 09:15:13 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-11-13 09:18:24 +0100potash(~foghorn@user/foghorn) (Ping timeout: 260 seconds)
2022-11-13 09:22:45 +0100notzmv(~zmv@user/notzmv)
2022-11-13 09:25:42 +0100Techcable(~Techcable@user/Techcable) (Ping timeout: 268 seconds)
2022-11-13 09:30:01 +0100potash(~foghorn@user/foghorn)
2022-11-13 09:34:33 +0100acidjnk(~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de)
2022-11-13 09:42:36 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 09:47:19 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-13 09:48:50 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 240 seconds)
2022-11-13 09:54:14 +0100michalz(~michalz@185.246.207.197)
2022-11-13 09:59:46 +0100bilegeek_(~bilegeek@25.sub-174-209-48.myvzw.com) (Quit: Leaving)
2022-11-13 10:00:57 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 10:01:25 +0100merijn(~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 +0100cyphase(~cyphase@user/cyphase)
2022-11-13 10:04:37 +0100Heyting(~Heyting@193.198.16.217)
2022-11-13 10:05:00 +0100Heyting(~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 +0100nate4(~nate@98.45.169.16)
2022-11-13 10:12:41 +0100 <zzz> geekosaur: thanks!
2022-11-13 10:14:10 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-11-13 10:15:39 +0100nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-11-13 10:24:54 +0100ub(~Thunderbi@77.119.171.26.wireless.dyn.drei.com)
2022-11-13 10:25:02 +0100Tuplanolla(~Tuplanoll@91-159-68-194.elisa-laajakaista.fi)
2022-11-13 10:25:27 +0100ubert(~Thunderbi@178.165.179.202.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2022-11-13 10:25:27 +0100ububert
2022-11-13 10:26:51 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28)
2022-11-13 10:26:59 +0100razetime(~quassel@117.254.34.151)
2022-11-13 10:31:06 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-13 10:31:10 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Ping timeout: 240 seconds)
2022-11-13 10:35:51 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-11-13 10:42:07 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 10:42:28 +0100Dominik[m]1(~dschrempf@2001:470:69fc:105::2:bbb6)
2022-11-13 10:47:43 +0100Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds)
2022-11-13 10:50:51 +0100razetime(~quassel@117.254.34.151) (Remote host closed the connection)
2022-11-13 10:53:18 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-13 10:56:17 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
2022-11-13 10:58:21 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-13 10:59:47 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-13 11:00:19 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-13 11:02:35 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-13 11:05:03 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-13 11:05:30 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 240 seconds)
2022-11-13 11:09:02 +0100shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-11-13 11:09:15 +0100Techcable(~Techcable@user/Techcable)
2022-11-13 11:11:58 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-11-13 11:15:29 +0100gurkenglas(~gurkengla@212.36.32.212)
2022-11-13 11:20:05 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-11-13 11:22:17 +0100shapr(~user@68.54.166.125) (Ping timeout: 255 seconds)
2022-11-13 11:26:50 +0100acidjnk(~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-11-13 11:31:47 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-13 11:34:42 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-13 11:45:16 +0100ubert(~Thunderbi@77.119.171.26.wireless.dyn.drei.com) (Quit: ubert)
2022-11-13 11:46:18 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-13 11:46:22 +0100ubert(~Thunderbi@77.119.171.26.wireless.dyn.drei.com)
2022-11-13 11:47:02 +0100teddyc(theodorc@cassarossa.samfundet.no) (Ping timeout: 255 seconds)
2022-11-13 11:47:55 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-13 11:48:21 +0100Guest|40(~Guest|40@121-200-4-145.79c804.syd.nbn.aussiebb.net)
2022-11-13 11:49:43 +0100Guest|40(~Guest|40@121-200-4-145.79c804.syd.nbn.aussiebb.net) (Client Quit)
2022-11-13 11:53:10 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-13 11:56:50 +0100mc47(~mc47@xmonad/TheMC47)
2022-11-13 12:01:14 +0100teddyc(theodorc@cassarossa.samfundet.no)
2022-11-13 12:01:59 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-13 12:03:01 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-13 12:10:50 +0100bjourne(~bjorn@94.191.136.12.mobile.tre.se)
2022-11-13 12:17:01 +0100yosef`(~yosef`@user/yosef/x-2947716)
2022-11-13 12:18:17 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-11-13 12:19:05 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-13 12:25:09 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
2022-11-13 12:29:17 +0100zer0bitz(~zer0bitz@196.244.192.56) (Read error: Connection reset by peer)
2022-11-13 12:31:53 +0100fserucas|eod(~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-11-13 12:32:05 +0100fserucas|eod(~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit)
2022-11-13 12:34:51 +0100euandreh(~Thunderbi@179.214.113.107) (Ping timeout: 260 seconds)
2022-11-13 12:38:08 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-13 12:40:53 +0100teddyc(theodorc@cassarossa.samfundet.no) (Ping timeout: 256 seconds)
2022-11-13 12:41:33 +0100euandreh(~Thunderbi@179.214.113.107)
2022-11-13 12:45:25 +0100zer0bitz(~zer0bitz@196.244.192.56)
2022-11-13 12:45:38 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-11-13 12:50:38 +0100euandreh(~Thunderbi@179.214.113.107) (Remote host closed the connection)
2022-11-13 12:51:40 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-13 12:53:37 +0100teddyc(theodorc@cassarossa.samfundet.no)
2022-11-13 12:54:58 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 12:56:27 +0100chromoblob(~user@37.113.164.122)
2022-11-13 13:00:01 +0100euandreh(~Thunderbi@179.214.113.107)
2022-11-13 13:00:24 +0100res0nat0r084490(~Fletch@fenrir.whatbox.ca)
2022-11-13 13:03:31 +0100acidjnk(~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de)
2022-11-13 13:03:59 +0100pyrex_(~pyrex@2601:645:8781:1c90:58b0:27e1:b6a0:1451)
2022-11-13 13:05:20 +0100chomwitt(~chomwitt@2a02:587:7a0a:c00:1ac0:4dff:fedb:a3f1)
2022-11-13 13:08:19 +0100pyrex(~pyrex@user/pyrex) (Ping timeout: 268 seconds)
2022-11-13 13:09:15 +0100dpratt(sid193493@id-193493.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-13 13:15:58 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-13 13:16:35 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-11-13 13:16:46 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-13 13:17:35 +0100califax(~califax@user/califx)
2022-11-13 13:18:22 +0100euandreh(~Thunderbi@179.214.113.107) (Quit: euandreh)
2022-11-13 13:19:07 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-13 13:19:56 +0100euandreh(~Thunderbi@179.214.113.107)
2022-11-13 13:22:59 +0100euandreh(~Thunderbi@179.214.113.107) (Remote host closed the connection)
2022-11-13 13:25:00 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-11-13 13:26:20 +0100euandreh(~Thunderbi@179.214.113.107)
2022-11-13 13:26:30 +0100yosef`(~yosef`@user/yosef/x-2947716) (Quit: Client closed)
2022-11-13 13:28:29 +0100merijn(~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 +0100titibandit(~titibandi@xdsl-87-78-8-6.nc.de)
2022-11-13 13:32:55 +0100titibandit(~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 +0100Guest75(~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 +0100titibandit(~titibandi@xdsl-87-78-8-6.nc.de)
2022-11-13 13:47:55 +0100ygsjg(~quassel@189.124.224.160)
2022-11-13 13:50:17 +0100tromp(~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 +0100xff0x(~xff0x@2405:6580:b080:900:d135:3c26:3e1:534d) (Ping timeout: 240 seconds)
2022-11-13 13:53:37 +0100moneypolo
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 +0100ChaiTRex(~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 +0100ChaiTRex(~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 +0100troydm(~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 +0100nate4(~nate@98.45.169.16)
2022-11-13 14:17:13 +0100nate4(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-11-13 14:20:19 +0100acidjnk(~acidjnk@p200300d6e7137a1930cde3464850e818.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-11-13 14:22:04 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-13 14:27:41 +0100xff0x(~xff0x@2405:6580:b080:900:dd4a:69df:2709:8d37)
2022-11-13 14:28:42 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-11-13 14:29:41 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 256 seconds)
2022-11-13 14:36:54 +0100chromoblob(~user@37.113.164.122)
2022-11-13 14:51:22 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de) (Remote host closed the connection)
2022-11-13 14:53:00 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de)
2022-11-13 14:54:03 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 256 seconds)
2022-11-13 14:59:20 +0100chromoblob(~user@37.113.164.122)
2022-11-13 15:01:28 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-11-13 15:02:16 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-13 15:08:12 +0100Heyting(~Heyting@193.198.16.217)
2022-11-13 15:11:53 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-11-13 15:13:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-13 15:16:27 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-13 15:19:06 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-13 15:20:11 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
2022-11-13 15:20:58 +0100califax(~califax@user/califx)
2022-11-13 15:21:48 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 15:25:07 +0100merijn(~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 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-13 15:27:43 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-13 15:28:11 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-13 15:29:28 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 15:31:56 +0100chromoblob(~user@37.113.164.122)
2022-11-13 15:34:17 +0100acidjnk(~acidjnk@p200300d6e7137a0180b232014ce81ac1.dip0.t-ipconnect.de)
2022-11-13 15:36:57 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-13 15:39:07 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2022-11-13 15:39:24 +0100cheater(~Username@user/cheater)
2022-11-13 15:41:01 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-13 15:42:09 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 15:42:21 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-13 15:42:56 +0100califax(~califax@user/califx)
2022-11-13 15:46:16 +0100Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-13 15:55:15 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds)
2022-11-13 15:56:09 +0100nosferandu(uid576473@user/nosferandu)
2022-11-13 15:59:45 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-13 16:01:07 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Ping timeout: 252 seconds)
2022-11-13 16:01:36 +0100gurkenglas(~gurkengla@212.36.32.212) (Ping timeout: 268 seconds)
2022-11-13 16:02:03 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 256 seconds)
2022-11-13 16:04:19 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 256 seconds)
2022-11-13 16:06:39 +0100chromoblob(~user@37.113.164.122)
2022-11-13 16:11:00 +0100thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
2022-11-13 16:11:50 +0100thyriaen_(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
2022-11-13 16:12:40 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net)
2022-11-13 16:13:26 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 16:14:56 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 16:14:56 +0100bjourne(~bjorn@94.191.136.12.mobile.tre.se) (Read error: Connection reset by peer)
2022-11-13 16:19:37 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-11-13 16:20:45 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds)
2022-11-13 16:20:55 +0100zmt01(~zmt00@user/zmt00)
2022-11-13 16:21:27 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2022-11-13 16:21:46 +0100zmt00(~zmt00@user/zmt00) (Ping timeout: 252 seconds)
2022-11-13 16:23:11 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-13 16:28:50 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2022-11-13 16:29:49 +0100ygsjg(~quassel@189.124.224.160) (Ping timeout: 256 seconds)
2022-11-13 16:30:59 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-11-13 16:31:53 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28)
2022-11-13 16:33:10 +0100acidjnk(~acidjnk@p200300d6e7137a0180b232014ce81ac1.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-11-13 16:33:10 +0100zmt00(~zmt00@user/zmt00)
2022-11-13 16:33:23 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 16:34:03 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-13 16:34:55 +0100zmt01(~zmt00@user/zmt00) (Ping timeout: 256 seconds)
2022-11-13 16:36:10 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Ping timeout: 240 seconds)
2022-11-13 16:36:19 +0100ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-11-13 16:37:01 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-11-13 16:40:10 +0100acidjnk(~acidjnk@p200300d6e7137a01d51ae5a61bc192b5.dip0.t-ipconnect.de)
2022-11-13 16:41:25 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Quit: Client closed)
2022-11-13 16:45:31 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net)
2022-11-13 16:46:13 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 16:51:33 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-13 16:52:28 +0100thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Quit: Leaving)
2022-11-13 16:52:32 +0100thyriaen_(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Quit: Leaving)
2022-11-13 16:54:45 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 256 seconds)
2022-11-13 16:54:47 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
2022-11-13 16:54:51 +0100kaskal-(~kaskal@089144200035.atnat0009.highway.a1.net) (Ping timeout: 248 seconds)
2022-11-13 16:55:35 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 16:56:26 +0100chromoblob(~user@37.113.164.122)
2022-11-13 16:57:38 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-13 16:59:29 +0100thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
2022-11-13 17:01:58 +0100gurkenglas(~gurkengla@212.36.32.212)
2022-11-13 17:03:49 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-13 17:08:33 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 17:22:47 +0100gurkenglas(~gurkengla@212.36.32.212) (Ping timeout: 260 seconds)
2022-11-13 17:23:04 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-11-13 17:27:44 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28)
2022-11-13 17:28:31 +0100kenran(~user@user/kenran)
2022-11-13 17:28:34 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2022-11-13 17:31:35 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 256 seconds)
2022-11-13 17:33:46 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-13 17:36:07 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds)
2022-11-13 17:40:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-13 17:42:21 +0100InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
2022-11-13 17:42:23 +0100chromoblob(~user@37.113.164.122)
2022-11-13 17:44:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection)
2022-11-13 17:44:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28)
2022-11-13 17:45:36 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2022-11-13 17:45:45 +0100acidjnk(~acidjnk@p200300d6e7137a01d51ae5a61bc192b5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-11-13 17:49:50 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-13 17:51:10 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-11-13 18:05:39 +0100freeside(~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 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-11-13 18:10:23 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-13 18:10:44 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-11-13 18:11:15 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds)
2022-11-13 18:11:23 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 18:11:35 +0100pyrex_(~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 +0100pyrex(~pyrex@user/pyrex)
2022-11-13 18:13:36 +0100nate4(~nate@98.45.169.16)
2022-11-13 18:15:21 +0100LemanR(~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 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 240 seconds)
2022-11-13 18:16:26 +0100waleee(~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 +0100nate4(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-11-13 18:20:19 +0100drdo(~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 +0100Kaipei(~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 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-13 18:28:08 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-13 18:28:12 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 18:29:11 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 18:29:45 +0100ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-11-13 18:30:30 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-11-13 18:32:47 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds)
2022-11-13 18:35:22 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 18:39:32 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 18:39:47 +0100sammelweis(~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 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-13 18:41:44 +0100bjourne(~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 +0100sammelweis(~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 +0100titibandit(~titibandi@xdsl-87-78-8-6.nc.de) (Remote host closed the connection)
2022-11-13 18:51:13 +0100dsrt^(~dsrt@76.145.185.103) (Remote host closed the connection)
2022-11-13 18:51:27 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 260 seconds)
2022-11-13 19:01:27 +0100random-jellyfish(~random-je@user/random-jellyfish)
2022-11-13 19:01:32 +0100tzh(~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 +0100shapr(~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 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net)
2022-11-13 19:04:02 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2022-11-13 19:05:51 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-13 19:08:46 +0100sammelweis(~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 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 19:10:11 +0100merijn(~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 +0100michalz(~michalz@185.246.207.197) (Remote host closed the connection)
2022-11-13 19:12:39 +0100econo(uid147250@user/econo)
2022-11-13 19:12:55 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 260 seconds)
2022-11-13 19:16:10 +0100phma_(phma@2001:5b0:210f:1678:6fe2:e8ab:3dd5:da93) (Read error: Connection reset by peer)
2022-11-13 19:17:01 +0100ddellacosta(~ddellacos@89.45.224.170)
2022-11-13 19:17:17 +0100phma_(~phma@host-67-44-208-73.hnremote.net)
2022-11-13 19:17:20 +0100chromoblob(~user@37.113.164.122)
2022-11-13 19:18:19 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection)
2022-11-13 19:20:45 +0100beteigeuze1(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-13 19:20:57 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 256 seconds)
2022-11-13 19:20:57 +0100beteigeuze1beteigeuze
2022-11-13 19:23:52 +0100ddellacosta(~ddellacos@89.45.224.170) (Ping timeout: 268 seconds)
2022-11-13 19:24:01 +0100merijn(~merijn@86.86.29.250)
2022-11-13 19:24:12 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2022-11-13 19:24:35 +0100phma_phma
2022-11-13 19:25:23 +0100ddellacosta(~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 +0100polomoney
2022-11-13 19:26:27 +0100AlexNoo_(~AlexNoo@94.233.241.222)
2022-11-13 19:27:16 +0100beteigeuze1(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-13 19:28:10 +0100Alex_test(~al_test@178.34.160.122) (Ping timeout: 240 seconds)
2022-11-13 19:28:30 +0100merijn(~merijn@86.86.29.250) (Ping timeout: 240 seconds)
2022-11-13 19:28:30 +0100AlexZenon(~alzenon@178.34.160.122) (Ping timeout: 240 seconds)
2022-11-13 19:30:01 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 256 seconds)
2022-11-13 19:30:01 +0100AlexNoo(~AlexNoo@178.34.160.122) (Ping timeout: 256 seconds)
2022-11-13 19:30:01 +0100beteigeuze1beteigeuze
2022-11-13 19:30:49 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Quit: Client closed)
2022-11-13 19:31:26 +0100drdo(~drdo@overlord.drdo.eu)
2022-11-13 19:35:58 +0100Alex_test(~al_test@94.233.241.222)
2022-11-13 19:36:33 +0100AlexZenon(~alzenon@94.233.241.222)
2022-11-13 19:38:39 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
2022-11-13 19:39:41 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 19:41:21 +0100zeenk(~zeenk@2a02:2f04:a20e:aa00::7fe) (Ping timeout: 256 seconds)
2022-11-13 19:42:51 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-13 19:45:07 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-13 19:46:55 +0100lechner(~lechner@debian/lechner) (Remote host closed the connection)
2022-11-13 19:47:38 +0100AlexNoo_AlexNoo
2022-11-13 19:49:13 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 19:51:25 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Remote host closed the connection)
2022-11-13 19:51:50 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net)
2022-11-13 19:52:54 +0100beteigeuze(~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 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 19:54:23 +0100merijn(~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 +0100brettgilio(~brettgili@x-irc.gq)
2022-11-13 19:57:13 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 256 seconds)
2022-11-13 19:59:38 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-13 19:59:43 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Ping timeout: 260 seconds)
2022-11-13 20:00:25 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net)
2022-11-13 20:01:14 +0100lechner(~lechner@2604:21c0:125:10f0::d35)
2022-11-13 20:01:20 +0100lechner(~lechner@2604:21c0:125:10f0::d35) (Changing host)
2022-11-13 20:01:20 +0100lechner(~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 +0100tromp(~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 +0100TonyStone31(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2022-11-13 20:11:14 +0100johnw(~johnw@2600:1700:cf00:db0:99a3:483a:651:9bf1)
2022-11-13 20:13:07 +0100tromp(~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 +0100sammelweis(~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 +0100eggplantade(~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 +0100sammelweis(~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 +0100merijn(~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 +0100tromp(~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 +0100beteigeuze(~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 +0100freeside(~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 +0100freeside(~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 +0100sammelweis(~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 +0100wroathe(~wroathe@50.205.197.50)
2022-11-13 20:24:00 +0100wroathe(~wroathe@50.205.197.50) (Changing host)
2022-11-13 20:24:00 +0100wroathe(~wroathe@user/wroathe)
2022-11-13 20:24:03 +0100sammelweis(~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 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-11-13 20:27:41 +0100Sgeo(~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 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit)
2022-11-13 20:29:03 +0100sammelweis(~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 +0100tromp(~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 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-13 20:39:36 +0100zer0bitz_(~zer0bitz@196.244.192.54)
2022-11-13 20:40:51 +0100zer0bitz(~zer0bitz@196.244.192.56) (Ping timeout: 256 seconds)
2022-11-13 20:44:26 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 20:48:38 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-13 20:50:58 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at)
2022-11-13 20:51:26 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-13 20:51:29 +0100stef204(~stef204@user/stef204)
2022-11-13 20:51:38 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-11-13 20:54:35 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-13 20:57:13 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-13 21:00:04 +0100zeenk(~zeenk@188.25.233.172)
2022-11-13 21:01:41 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection)
2022-11-13 21:02:11 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze)
2022-11-13 21:05:00 +0100zeenk(~zeenk@188.25.233.172) (Ping timeout: 268 seconds)
2022-11-13 21:05:47 +0100CiaoSen(~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-11-13 21:05:48 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 21:08:24 +0100acidjnk(~acidjnk@p200300d6e7137a015d19df638f338baf.dip0.t-ipconnect.de)
2022-11-13 21:09:00 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-11-13 21:09:18 +0100caryhartline(~caryhartl@2600:1700:2d0:8d30:3d51:c8c8:3b5:2cac)
2022-11-13 21:10:53 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-11-13 21:13:18 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28)
2022-11-13 21:21:11 +0100ygsjg(~quassel@189.124.224.160)
2022-11-13 21:35:44 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-13 21:37:44 +0100titibandit(~titibandi@xdsl-87-78-8-6.nc.de)
2022-11-13 21:38:44 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-13 21:41:31 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at) (Quit: leaving)
2022-11-13 21:41:43 +0100LemanR(~LemanR@pool-74-109-28-147.phlapa.fios.verizon.net) (Quit: Client closed)
2022-11-13 21:42:18 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at)
2022-11-13 21:44:19 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-11-13 21:44:21 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at) (Client Quit)
2022-11-13 21:45:16 +0100machinedgod(~machinedg@clnet-b05-118.ikbnet.co.at)
2022-11-13 21:46:01 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds)
2022-11-13 21:48:00 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-13 21:48:48 +0100freeside(~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 +0100ygsjg(~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 +0100ephemient(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 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-13 21:59:09 +0100sammelweis(~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 +0100dfee(~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 +0100pavonia(~user@user/siracusa)
2022-11-13 22:06:58 +0100 <EvanR> mutate the caller?!
2022-11-13 22:07:04 +0100random-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 +0100takuan(~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 +0100mtjm(~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 +0100chromoblob(~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 +0100mtjm(~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 +0100nate4(~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 +0100merijn(~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 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 22:17:36 +0100use-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 +0100use-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 +0100cheater(~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 +0100cheater(~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 +0100nate4(~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 +0100chromoblob(~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 +0100titibandit(~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 +0100lagash(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 +0100bitdex(~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 +0100Heyting(~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 +0100Heyting(~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 +0100merijn(~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 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
2022-11-13 22:49:08 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-11-13 22:49:08 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-11-13 22:49:08 +0100wroathe(~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 +0100bjourne(~bjorn@94.191.136.12.mobile.tre.se) (Quit: Konversation terminated!)
2022-11-13 22:49:37 +0100sammelweis(~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 +0100bgs(~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 +0100stef204(~stef204@user/stef204) (Quit: WeeChat 3.7.1)
2022-11-13 22:57:18 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-11-13 22:58:04 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-13 22:58:41 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-11-13 23:02:10 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-13 23:04:39 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-13 23:04:59 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-13 23:05:37 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2022-11-13 23:06:15 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-11-13 23:07:11 +0100merijn(~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 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-11-13 23:10:17 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-11-13 23:11:04 +0100mrianbloom(uid350277@id-350277.ilkley.irccloud.com) ()
2022-11-13 23:11:59 +0100ygsjg(~quassel@189.124.224.160)
2022-11-13 23:12:10 +0100califax(~califax@user/califx)
2022-11-13 23:12:47 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-11-13 23:12:56 +0100shriekingnoise(~shrieking@186.137.167.202)
2022-11-13 23:14:14 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-13 23:14:24 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2022-11-13 23:15:08 +0100dfee(~dfee@2600:1010:b029:52ce:259d:4cf9:3d51:d746) (Quit: dfee)
2022-11-13 23:21:46 +0100tromp(~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 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-13 23:33:46 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-13 23:39:04 +0100lechner(~lechner@debian/lechner) (Remote host closed the connection)
2022-11-13 23:39:43 +0100lechner(~lechner@debian/lechner)
2022-11-13 23:44:52 +0100michalz(~michalz@185.246.207.221)
2022-11-13 23:47:33 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-11-13 23:49:04 +0100kaskal(~kaskal@089144207012.atnat0016.highway.bob.at)
2022-11-13 23:52:23 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-11-13 23:52:40 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c87d:35ff:3ab7:8a28) (Remote host closed the connection)
2022-11-13 23:53:23 +0100adium(adium@user/adium) (Ping timeout: 252 seconds)
2022-11-13 23:54:39 +0100vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-11-13 23:54:54 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-13 23:55:23 +0100vglfr(~vglfr@145.224.100.100)
2022-11-13 23:57:22 +0100vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-11-13 23:57:50 +0100biberu(~biberu@user/biberu)
2022-11-13 23:57:56 +0100vglfr(~vglfr@145.224.100.100)
2022-11-13 23:59:31 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)