2025/03/26

2025-03-26 00:03:22 +0100 <geekosaur> keep it but require `import IEEE754Insanity`
2025-03-26 00:05:23 +0100poscat(~poscat@user/poscat) (Ping timeout: 245 seconds)
2025-03-26 00:05:44 +0100poscat(~poscat@user/poscat) poscat
2025-03-26 00:05:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 00:06:04 +0100weary-traveler(~user@user/user363627) user363627
2025-03-26 00:06:16 +0100 <otto_s> Is there a reason, why the imaginary party of -1 :: Complex Double *should* be -0 ?
2025-03-26 00:08:54 +0100 <otto_s> Oh, I see, mauke answered that already.
2025-03-26 00:10:41 +0100 <otto_s> Floats are evil. *g*
2025-03-26 00:10:43 +0100 <geekosaur> I think the full answer involves complex numbers as being on a plane, and having trig on them produce results in the correct quadrant?
2025-03-26 00:11:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-26 00:12:26 +0100 <otto_s> No, I think the culprit is just:
2025-03-26 00:12:29 +0100 <otto_s> > isNegativeZero $ negate 0
2025-03-26 00:12:31 +0100 <lambdabot> True
2025-03-26 00:13:12 +0100 <geekosaur> right, but what I said is why the whole "negative zero" thing exists in the first place. see also atan2
2025-03-26 00:13:17 +0100 <otto_s> (and then late, of course, how log decides where to go)
2025-03-26 00:14:11 +0100 <otto_s> Yes.
2025-03-26 00:15:39 +0100 <geekosaur> sadly it's been a looong time since I last did this stuff so it's all become kinda fuzzy ("use it or lose it")
2025-03-26 00:16:25 +0100 <geekosaur> last time I touched it was 1985
2025-03-26 00:21:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 00:23:08 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-03-26 00:25:18 +0100byte(~mu@user/byte) (Quit: Leaving)
2025-03-26 00:25:48 +0100sarna(~sarna@d192-22.icpnet.pl) (Ping timeout: 245 seconds)
2025-03-26 00:26:38 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-26 00:27:21 +0100aetepe(~aetepe@188.119.22.83) aetepe
2025-03-26 00:30:26 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-03-26 00:33:37 +0100byte(~mu@user/byte) byte
2025-03-26 00:35:20 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 252 seconds)
2025-03-26 00:35:45 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2025-03-26 00:37:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 00:40:56 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 00:42:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 00:45:17 +0100sarna(~sarna@d192-22.icpnet.pl) sarna
2025-03-26 00:45:45 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 265 seconds)
2025-03-26 00:45:46 +0100sprotte24(~sprotte24@p5dd5d056.dip0.t-ipconnect.de) (Quit: Leaving)
2025-03-26 00:51:04 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-03-26 00:53:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 00:57:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 01:04:38 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) robobub
2025-03-26 01:07:01 +0100sarna(~sarna@d192-22.icpnet.pl) (Ping timeout: 265 seconds)
2025-03-26 01:09:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 01:11:27 +0100weary-traveler(~user@user/user363627) user363627
2025-03-26 01:12:06 +0100 <EvanR> > atan (recip 0)
2025-03-26 01:12:07 +0100 <lambdabot> 1.5707963267948966
2025-03-26 01:12:12 +0100 <EvanR> > atan (recip (-0))
2025-03-26 01:12:14 +0100 <lambdabot> -1.5707963267948966
2025-03-26 01:13:21 +0100 <EvanR> also the way I do decode float in another universe is return (sign, mantissa, exponent)
2025-03-26 01:14:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-03-26 01:16:00 +0100 <Leary> otto_s: May I introduce you to your lord and saviour `LexicalNegation`? It will ensure that `-1` means `fromInteger -1`, not `negate (fromInteger 1)`, hence `-1 = -1 :+ 0`.
2025-03-26 01:16:29 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 244 seconds)
2025-03-26 01:16:50 +0100 <Leary> I would like to demonstrate with yahb2, but it's being weird:
2025-03-26 01:16:57 +0100 <Leary> % import Data.Complex
2025-03-26 01:16:57 +0100 <yahb2> <no location info>: error: [GHC-88719] ; Could not load module ‘Data.Complex’. ; Perhaps you haven't installed the "dyn" libraries for package ‘base-4.21.0.0’? ; Use :set -v to see a li...
2025-03-26 01:17:02 +0100 <Leary> tomsmeding: ^ halp
2025-03-26 01:17:28 +0100 <geekosaur> think he's in bed by now, sadly
2025-03-26 01:17:45 +0100 <geekosaur> utc-2 iirc so it's like 2am
2025-03-26 01:18:25 +0100 <EvanR> indeed it's only 54 dotbeats
2025-03-26 01:20:50 +0100tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-03-26 01:21:39 +0100zungi(~tory@user/andrewchawk) andrewchawk
2025-03-26 01:24:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 01:26:00 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 01:26:09 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-03-26 01:29:06 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-03-26 01:29:06 +0100ljdarj1ljdarj
2025-03-26 01:30:13 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-03-26 01:31:41 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 01:38:16 +0100sarna(~sarna@d192-22.icpnet.pl) sarna
2025-03-26 01:42:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 01:46:18 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 272 seconds)
2025-03-26 01:47:01 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds)
2025-03-26 01:47:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 01:55:24 +0100acidjnk(~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) (Remote host closed the connection)
2025-03-26 01:55:50 +0100acidjnk(~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) acidjnk
2025-03-26 01:58:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 02:01:38 +0100xff0x(~xff0x@2405:6580:b080:900:f588:30f2:ad44:5069) (Ping timeout: 245 seconds)
2025-03-26 02:04:33 +0100acidjnk(~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2025-03-26 02:05:23 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-26 02:11:25 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 02:15:47 +0100otto_s(~user@p5de2f2e9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-03-26 02:16:00 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-03-26 02:16:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 02:17:34 +0100otto_s(~user@p4ff27de5.dip0.t-ipconnect.de)
2025-03-26 02:21:33 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-03-26 02:21:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 02:24:10 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
2025-03-26 02:26:21 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-03-26 02:26:47 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
2025-03-26 02:28:01 +0100Pixi`(~Pixi@user/pixi) (Quit: Leaving)
2025-03-26 02:32:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 02:34:59 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-03-26 02:36:58 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 272 seconds)
2025-03-26 02:37:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 02:37:33 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 02:38:19 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com)
2025-03-26 02:39:21 +0100todi1(~todi@p57803331.dip0.t-ipconnect.de)
2025-03-26 02:39:30 +0100todi(~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2025-03-26 02:40:23 +0100aetepe(~aetepe@188.119.22.83) (Ping timeout: 245 seconds)
2025-03-26 02:40:45 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-03-26 02:42:56 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 252 seconds)
2025-03-26 02:43:34 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 260 seconds)
2025-03-26 02:43:48 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com)
2025-03-26 02:48:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 02:48:47 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 252 seconds)
2025-03-26 02:52:50 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-26 02:53:16 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-03-26 02:54:10 +0100 <monochrom> It looks like -1 :: Complex Double becomes - (1 :+ 0) so it is (-1) :+ (-0)
2025-03-26 02:55:13 +0100 <geekosaur> yes, that's because of how the Report specifies unary negation
2025-03-26 02:55:20 +0100 <monochrom> You could blame how there are +0 and -0, but numerical analysis people actually complain about how Java screws up everything by eliminating that.
2025-03-26 02:55:32 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com)
2025-03-26 02:55:51 +0100 <geekosaur> NegativeLiterals or LexicalNegation changes it
2025-03-26 02:56:30 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 02:57:02 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-03-26 02:57:39 +0100 <monochrom> https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html has a section on how having -0 is helpful for complex numbers.
2025-03-26 02:58:19 +0100notdabs(~Owner@2600:1700:69cf:9000:5812:4103:61ba:7880) (Read error: Connection reset by peer)
2025-03-26 02:59:25 +0100Square(~Square@user/square) Square
2025-03-26 02:59:37 +0100 <monochrom> I believe in the principle that the largest stakeholders should have the largest say. In this case physicists and numerical people who use floating point in anger should have a much larger say than us casual occasional users. And their verdict is clear, all the IEEE 754 "weirdness" is what they want.
2025-03-26 03:01:01 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-03-26 03:03:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 03:03:55 +0100 <haskellbridge> <Bowuigi> Posits may be better for the rest of us
2025-03-26 03:05:17 +0100 <c_wraith> Fixed point is better for my use cases
2025-03-26 03:06:46 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-26 03:08:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-26 03:11:42 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-03-26 03:19:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 03:23:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-26 03:26:12 +0100 <Axman6> @tell Liamzee https://github.com/the-benchmarker/web-frameworks/pull/8328
2025-03-26 03:26:12 +0100 <lambdabot> Consider it noted.
2025-03-26 03:26:13 +0100aforemny_(~aforemny@2001:9e8:6cde:a00:bd3b:75a2:c3bc:65be) (Ping timeout: 265 seconds)
2025-03-26 03:26:32 +0100bitdex_(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 03:27:35 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-03-26 03:28:11 +0100aforemny(~aforemny@i59F4C69B.versanet.de) aforemny
2025-03-26 03:34:50 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 03:36:30 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-03-26 03:36:53 +0100cyphase(~cyphase@user/cyphase) cyphase
2025-03-26 03:40:52 +0100cyphase(~cyphase@user/cyphase) (Read error: Connection reset by peer)
2025-03-26 03:41:55 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 03:41:59 +0100cyphase(~cyphase@user/cyphase) cyphase
2025-03-26 03:42:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-03-26 03:44:59 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
2025-03-26 03:46:22 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-26 03:46:24 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-03-26 03:47:08 +0100Pixi(~Pixi@user/pixi) Pixi
2025-03-26 03:51:45 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2025-03-26 03:52:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 03:55:35 +0100bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-03-26 03:55:41 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 03:57:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-26 04:08:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 04:12:22 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-03-26 04:13:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-26 04:15:48 +0100 <EvanR> > -1 :: Complex Double
2025-03-26 04:15:50 +0100 <lambdabot> (-1.0) :+ (-0.0)
2025-03-26 04:16:10 +0100 <EvanR> it Shows -0 in the imaginary part all along lol
2025-03-26 04:16:22 +0100 <geekosaur> % :set -XLexicalNegation
2025-03-26 04:16:22 +0100 <yahb2> <no output>
2025-03-26 04:16:35 +0100 <geekosaur> % -1 :: Complex Double
2025-03-26 04:16:35 +0100 <yahb2> <interactive>:377:7: error: [GHC-76037] ; Not in scope: type constructor or class ‘Complex’
2025-03-26 04:16:42 +0100 <EvanR> funny it took so long to "prove"
2025-03-26 04:16:54 +0100 <geekosaur> oh wait, someone tried to import that and it errored
2025-03-26 04:17:02 +0100 <geekosaur> % import Data.Complex
2025-03-26 04:17:03 +0100 <yahb2> <no location info>: error: [GHC-88719] ; Could not load module ‘Data.Complex’. ; Perhaps you haven't installed the "dyn" libraries for package ‘base-4.21.0.0’? ; Use :set -v to see a li...
2025-03-26 04:19:11 +0100developer_(~developer@85.50.149.196)
2025-03-26 04:19:52 +0100 <EvanR> that -0 compares equal to "just" 0, and there's no corresponding "plus zero" condition for the result of positive underflows says to me they considered negative zero to be a "bonus feature" which could usually be ignored, or utilized for more information in some cases
2025-03-26 04:20:15 +0100 <EvanR> when addition exactly cancels you get just zero, never negative
2025-03-26 04:20:19 +0100 <haskellbridge> <Liamzee> i hope this question isn't too dumb, but
2025-03-26 04:20:26 +0100 <geekosaur> ghci> -1 :: Complex Double
2025-03-26 04:20:26 +0100 <geekosaur> (-1.0) :+ 0.0
2025-03-26 04:20:29 +0100 <haskellbridge> <Liamzee> oh, chat is active, sorry
2025-03-26 04:20:34 +0100random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 260 seconds)
2025-03-26 04:20:38 +0100 <geekosaur> go ahead
2025-03-26 04:21:04 +0100 <haskellbridge> <Liamzee> i'm building a rust-based microservices router, with the initial microservices being in Haskell
2025-03-26 04:21:05 +0100 <geekosaur> EvanR, that behavior is specified by IEEE754
2025-03-26 04:21:18 +0100 <EvanR> I'm sure it is
2025-03-26 04:21:22 +0100 <haskellbridge> <Liamzee> if I want to pass the IP of the sender, how would I get warp / servant / twain to get the IP?
2025-03-26 04:21:45 +0100 <geekosaur> monochrom posted an Oracle doc explaining it, beyond that I think the specification itself is probably the best source
2025-03-26 04:21:56 +0100 <EvanR> just noting there's no corresponding plus zero
2025-03-26 04:22:03 +0100 <EvanR> so it's an asymmetric feature
2025-03-26 04:22:33 +0100 <geekosaur> yes, and it exists solely to put zeroes in the correct quadrant on a plane
2025-03-26 04:23:22 +0100 <EvanR> zeroes in a quadrant
2025-03-26 04:23:51 +0100 <geekosaur> (I would have to read the spec to see if Report-compliant behavior or the extension is the correct behavior)
2025-03-26 04:24:05 +0100 <geekosaur> yes. has to do with ranges
2025-03-26 04:24:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 04:24:33 +0100 <geekosaur> and trig
2025-03-26 04:24:34 +0100aetepe(~aetepe@188.119.22.83) aetepe
2025-03-26 04:24:55 +0100 <geekosaur> but as I said earlier, I haven't messed with this since 1985, so…
2025-03-26 04:27:59 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 04:28:43 +0100aetepe(~aetepe@188.119.22.83) (Ping timeout: 245 seconds)
2025-03-26 04:29:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-26 04:29:58 +0100 <EvanR> Liamzee, I see remoteHost :: SockAddr field in the Request type for wai
2025-03-26 04:30:17 +0100 <monochrom> I would interpret the two signed zeros to be -0 and +0, rather than -0 and "neutral" 0.
2025-03-26 04:30:27 +0100 <EvanR> sometimes it is exactly zero
2025-03-26 04:30:39 +0100 <EvanR> none this "every float is a random number around some point" crap xD
2025-03-26 04:30:43 +0100 <EvanR> none of*
2025-03-26 04:31:01 +0100 <monochrom> No, this is not about random or nondeterminism.
2025-03-26 04:31:30 +0100 <EvanR> if you add -0.5 and +0.5, it equals zero, not +zero
2025-03-26 04:31:40 +0100 <EvanR> (or -zero)
2025-03-26 04:32:21 +0100 <monochrom> Let me write very explicitly. (+1)/(+0) = +oo, (+1)/(-0) = -oo. That's btw another reason to keep a sign bit on zero.
2025-03-26 04:32:48 +0100 <geekosaur> go read that Oracle paper monochrom linked earlier
2025-03-26 04:32:50 +0100 <EvanR> also +1 / +infinity = zero
2025-03-26 04:32:50 +0100 <monochrom> > 1 / ((-0.5) + (+0.5))
2025-03-26 04:32:52 +0100 <lambdabot> error:
2025-03-26 04:32:52 +0100 <lambdabot> • No instance for (Fractional (Double -> Double))
2025-03-26 04:32:52 +0100 <lambdabot> arising from a use of ‘e_110505’
2025-03-26 04:32:52 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 272 seconds)
2025-03-26 04:33:08 +0100 <geekosaur> this is related to numeric analysis and complex trig, and predates computers
2025-03-26 04:33:09 +0100 <haskellbridge> <Liamzee> thanks EvanR
2025-03-26 04:33:24 +0100 <EvanR> if anything you just pointed out another (or instead of) asymmetry
2025-03-26 04:34:33 +0100 <geekosaur> the numerics folks demanded this behavior when IEEE floating point was being standardized
2025-03-26 04:34:36 +0100 <haskellbridge> <Liamzee> thanks Axman6 , but ultimately I'd love to see Haskell's web-interfaces using linear haskell to reduce memory consumption and allocation time
2025-03-26 04:34:37 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-03-26 04:34:38 +0100bitdex_(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 04:35:45 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 04:36:17 +0100 <monochrom> Sure, some asymmetry is inevitable.
2025-03-26 04:36:57 +0100bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-03-26 04:36:58 +0100 <monochrom> I interpret that asymmetry to mean "+0 is the default" not "there is no +0, instead a neutral 'exact' [sic] zero".
2025-03-26 04:37:03 +0100 <monochrom> -0 is as exact as +0.
2025-03-26 04:37:28 +0100bitdex_(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 04:37:36 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-03-26 04:38:45 +0100 <EvanR> the section on signed zero just notes trig functions and complex analysis functions, makes sense
2025-03-26 04:38:51 +0100 <monochrom> Because 1/("neutral exact" zero) has no reason to be either +oo or -oo. (At most a reason to be the Riemann sphere oo.) Whereas 1/(+0) does.
2025-03-26 04:39:21 +0100 <EvanR> though the interpretation of "zero minus" and "zero plus" breaks down for results that should be exactly zero
2025-03-26 04:39:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 04:39:53 +0100 <EvanR> I'm sure it's a sacrifice to be made instead of losing a bit of precision for 3 different signs
2025-03-26 04:39:57 +0100 <monochrom> It doesn't if a deterministic convention is set up for defaulting.
2025-03-26 04:40:34 +0100 <EvanR> yes recip of exactly zero wouldn't be either infinity
2025-03-26 04:40:47 +0100 <EvanR> it would be its own thing, similar to graphical linear algebra
2025-03-26 04:41:05 +0100 <EvanR> which also has infinities over infinity
2025-03-26 04:41:23 +0100 <EvanR> and zero over zero
2025-03-26 04:42:27 +0100 <EvanR> monochrom, I interpret the symmetry to mean there's a minor bias to the positive direction
2025-03-26 04:42:43 +0100 <EvanR> asymmetry
2025-03-26 04:42:45 +0100 <monochrom> Yes that's what I do.
2025-03-26 04:44:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-26 04:47:04 +0100 <EvanR> > 3.14 - 3.1400000000000006 -- I think it's impossible to get -0 through addition
2025-03-26 04:47:06 +0100 <lambdabot> -4.440892098500626e-16
2025-03-26 04:48:18 +0100 <EvanR> > 0 + (-0)
2025-03-26 04:48:19 +0100 <lambdabot> 0
2025-03-26 04:48:33 +0100 <EvanR> > (-0) + (-0)
2025-03-26 04:48:34 +0100 <lambdabot> 0
2025-03-26 04:48:38 +0100 <EvanR> lol
2025-03-26 04:48:51 +0100 <EvanR> positive bias is strong
2025-03-26 04:48:52 +0100 <monochrom> printf and most pretty printers drop the sign.
2025-03-26 04:49:00 +0100 <EvanR> > -0
2025-03-26 04:49:01 +0100 <lambdabot> 0
2025-03-26 04:49:12 +0100 <monochrom> what you see is never what you get. it's telephone games all the way down.
2025-03-26 04:49:12 +0100 <EvanR> Complex Double doesn't
2025-03-26 04:49:31 +0100 <EvanR> > (-0) + (-0) :: Complex Double
2025-03-26 04:49:33 +0100 <lambdabot> (-0.0) :+ (-0.0)
2025-03-26 04:49:43 +0100 <EvanR> > (0) + (-0) :: Complex Double
2025-03-26 04:49:44 +0100 <lambdabot> 0.0 :+ 0.0
2025-03-26 04:50:10 +0100 <EvanR> halfway sane
2025-03-26 04:50:18 +0100 <monochrom> Right. Just don't trust the Show instance for Double.
2025-03-26 04:51:16 +0100 <EvanR> or encodeFloat !
2025-03-26 04:51:23 +0100 <EvanR> er decode
2025-03-26 04:52:39 +0100 <Leary> The `Show` instance for `Double` is fine; it was just defaulting to `Integer` there.
2025-03-26 04:53:17 +0100Square2(~Square4@user/square) Square
2025-03-26 04:54:29 +0100 <EvanR> > -0.0
2025-03-26 04:54:31 +0100 <lambdabot> -0.0
2025-03-26 04:55:11 +0100 <monochrom> Oh oops right.
2025-03-26 04:55:13 +0100 <EvanR> rfc8259 for JSON has a grammar which seems to permit -0 to be in the json
2025-03-26 04:55:24 +0100 <EvanR> I wonder how many loaders load it wrong
2025-03-26 04:55:33 +0100 <EvanR> aeson? xD
2025-03-26 04:55:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 04:55:43 +0100 <EvanR> Scientific doesn't support minus zero does it
2025-03-26 04:56:21 +0100Square(~Square@user/square) (Ping timeout: 246 seconds)
2025-03-26 04:56:45 +0100 <EvanR> it does not
2025-03-26 04:57:26 +0100 <EvanR> the browser loads it right
2025-03-26 05:00:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-26 05:01:24 +0100 <EvanR> a large aeson issue from 2017 discusses the right way to represent numbers but doesn't mention negative zero
2025-03-26 05:11:08 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 05:12:52 +0100 <EvanR> Text.JSON meanwhile represents a number with a Bool and a Rational
2025-03-26 05:13:23 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 05:15:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 05:17:46 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-26 05:19:50 +0100aforemny_(~aforemny@2001:9e8:6cfa:db00:13b6:4544:c45d:3975) aforemny
2025-03-26 05:20:05 +0100aforemny(~aforemny@i59F4C69B.versanet.de) (Ping timeout: 248 seconds)
2025-03-26 05:22:30 +0100 <meejah> Aaaaa
2025-03-26 05:22:50 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-26 05:26:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 05:27:38 +0100sp1ff(~user@c-67-160-173-55.hsd1.wa.comcast.net) sp1ff
2025-03-26 05:31:05 +0100michalz(~michalz@185.246.207.221)
2025-03-26 05:31:38 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-26 05:37:31 +0100monochrom(trebla@216.138.220.146) (Quit: ZNC 1.9.1+deb1 - https://znc.in)
2025-03-26 05:42:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 05:46:16 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2025-03-26 05:47:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 05:52:49 +0100michalz(~michalz@185.246.207.221) (Quit: ZNC 1.9.1 - https://znc.in)
2025-03-26 05:53:53 +0100monochrom(trebla@216.138.220.146)
2025-03-26 05:57:14 +0100michalz(~michalz@185.246.207.218)
2025-03-26 05:58:27 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 05:58:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 06:02:56 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-26 06:04:04 +0100jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.5.2)
2025-03-26 06:05:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-26 06:12:43 +0100j1n37-(~j1n37@user/j1n37) j1n37
2025-03-26 06:13:56 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 265 seconds)
2025-03-26 06:14:25 +0100Vajb(~Vajb@n83sqe30rcw6481fyv6-1.v6.elisa-mobile.fi) (Remote host closed the connection)
2025-03-26 06:14:48 +0100Vajb(~Vajb@n83sqe30rcw6481fyv6-1.v6.elisa-mobile.fi)
2025-03-26 06:16:11 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 06:21:01 +0100sabathan(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Ping timeout: 244 seconds)
2025-03-26 06:21:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-26 06:23:06 +0100sabathan(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-03-26 06:26:25 +0100wil(~wil@syn-035-148-093-061.res.spectrum.com)
2025-03-26 06:30:27 +0100wil(~wil@syn-035-148-093-061.res.spectrum.com) (Client Quit)
2025-03-26 06:32:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 06:36:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-26 06:43:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 06:47:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 06:48:00 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-03-26 06:53:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 06:59:18 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
2025-03-26 07:00:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 07:05:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 07:06:24 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden
2025-03-26 07:11:16 +0100takuan(~takuan@d8D86B601.access.telenet.be)
2025-03-26 07:14:16 +0100ru0mad(~ru0mad@moon.ruomad.net) ru0mad
2025-03-26 07:16:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 07:20:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-26 07:29:15 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 07:31:46 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 07:34:00 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 272 seconds)
2025-03-26 07:36:16 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-03-26 07:36:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 07:47:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 07:51:55 +0100aetepe(~aetepe@176.54.108.86) aetepe
2025-03-26 07:52:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-26 07:58:18 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-03-26 08:00:02 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-03-26 08:00:58 +0100caconym(~caconym@user/caconym) caconym
2025-03-26 08:03:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 08:03:21 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2025-03-26 08:03:48 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-03-26 08:03:59 +0100ru0mad(~ru0mad@moon.ruomad.net) (Ping timeout: 260 seconds)
2025-03-26 08:06:13 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-03-26 08:07:57 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2025-03-26 08:08:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-26 08:08:16 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-03-26 08:14:19 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 08:15:01 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-03-26 08:16:08 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2025-03-26 08:16:23 +0100Lord_of_Life_Lord_of_Life
2025-03-26 08:18:22 +0100ru0mad(~ru0mad@moon.ruomad.net) ru0mad
2025-03-26 08:18:47 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-26 08:19:08 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 08:19:12 +0100ash3en(~Thunderbi@149.222.157.169) ash3en
2025-03-26 08:20:41 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-03-26 08:24:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-03-26 08:34:57 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-26 08:38:25 +0100ru0mad(~ru0mad@moon.ruomad.net) (Ping timeout: 248 seconds)
2025-03-26 08:42:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-26 08:54:30 +0100storopoli(m-h2v7u5@user/storopoli) storopoli
2025-03-26 08:55:46 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-03-26 08:59:23 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 09:01:09 +0100acidjnk(~acidjnk@p200300d6e71c4f691c99ba8b65f3988d.dip0.t-ipconnect.de) acidjnk
2025-03-26 09:02:53 +0100yahb2(~yahb2@user/tomsmeding/bot/yahb2) (Remote host closed the connection)
2025-03-26 09:02:58 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-03-26 09:03:05 +0100yahb2(~yahb2@user/tomsmeding/bot/yahb2) yahb2
2025-03-26 09:03:05 +0100ChanServ+v yahb2
2025-03-26 09:03:13 +0100 <tomsmeding> % import Data.Complex
2025-03-26 09:03:13 +0100 <yahb2> <no output>
2025-03-26 09:03:17 +0100 <tomsmeding> % :i Complex
2025-03-26 09:03:17 +0100 <yahb2> type Complex :: * -> * ; data Complex a = !a :+ !a ; -- Defined in ‘Data.Complex’ ; instance RealFloat a => Floating (Complex a) ; -- Defined in ‘Data.Complex’ ; instance Foldable Complex -- D...
2025-03-26 09:03:31 +0100 <tomsmeding> Leary: sowwy, I updated GHC but neglected to restart yahb2
2025-03-26 09:03:42 +0100 <tomsmeding> % :m
2025-03-26 09:03:42 +0100 <yahb2> <no output>
2025-03-26 09:03:46 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-26 09:04:26 +0100aetepe(~aetepe@176.54.108.86) (Read error: Connection reset by peer)
2025-03-26 09:04:46 +0100 <tomsmeding> and yes, I'm in UTC+1 in winter and in UTC+2 in summer
2025-03-26 09:05:37 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2025-03-26 09:05:38 +0100aetepe(~aetepe@188.119.22.83) aetepe
2025-03-26 09:06:10 +0100 <mauke> classic central europe
2025-03-26 09:06:32 +0100aman(~aman@user/aman) aman
2025-03-26 09:06:39 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-03-26 09:06:56 +0100 <tomsmeding> it's a gigantic time zone
2025-03-26 09:09:45 +0100storopoli(m-h2v7u5@user/storopoli) (Ping timeout: 244 seconds)
2025-03-26 09:11:21 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-03-26 09:14:35 +0100 <tomsmeding> Leary: if this happens again, I just realised that `% :q` should also have worked
2025-03-26 09:15:00 +0100 <tomsmeding> geekosaur: just pinging you here too in case you're interested
2025-03-26 09:17:36 +0100ft(~ft@p508db463.dip0.t-ipconnect.de) (Quit: leaving)
2025-03-26 09:18:58 +0100storopoli(m-h2v7u5@user/storopoli) storopoli
2025-03-26 09:20:57 +0100 <Leary> Yeah, I didn't think to try that---thanks for the fix anyway.
2025-03-26 09:23:35 +0100 <tomsmeding> (that begs the question in what timezone _you_ live)
2025-03-26 09:24:17 +0100tomsmeding. o O ( all of them )
2025-03-26 09:25:16 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 09:30:20 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Remote host closed the connection)
2025-03-26 09:30:47 +0100hattckory(~hattckory@70.27.118.207)
2025-03-26 09:34:00 +0100sprotte24(~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de)
2025-03-26 09:34:50 +0100storopoli(m-h2v7u5@user/storopoli) ()
2025-03-26 09:35:24 +0100hattckory(~hattckory@70.27.118.207) (Ping timeout: 260 seconds)
2025-03-26 09:39:36 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 09:43:40 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2025-03-26 09:45:00 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-26 09:45:06 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 09:49:08 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 245 seconds)
2025-03-26 09:56:25 +0100chele(~chele@user/chele) chele
2025-03-26 09:57:58 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-03-26 09:59:03 +0100zungi(~tory@user/andrewchawk) (Remote host closed the connection)
2025-03-26 09:59:27 +0100zungi(~tory@user/andrewchawk) andrewchawk
2025-03-26 10:03:12 +0100ash3en(~Thunderbi@149.222.157.169) (Ping timeout: 276 seconds)
2025-03-26 10:05:21 +0100akegalj(~akegalj@89-172-183-68.adsl.net.t-com.hr) akegalj
2025-03-26 10:18:10 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 244 seconds)
2025-03-26 10:18:36 +0100Digit(~user@user/digit) (Read error: Connection reset by peer)
2025-03-26 10:19:27 +0100Digit(~user@user/digit) Digit
2025-03-26 10:21:30 +0100ash3en(~Thunderbi@149.222.157.169) ash3en
2025-03-26 10:25:08 +0100Digitteknohippie(~user@user/digit) Digit
2025-03-26 10:27:46 +0100Digit(~user@user/digit) (Ping timeout: 244 seconds)
2025-03-26 10:30:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 10:30:51 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-03-26 10:32:16 +0100DigitteknohippieDigit
2025-03-26 10:35:11 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-26 10:36:35 +0100__monty__(~toonn@user/toonn) toonn
2025-03-26 10:39:14 +0100sprotte24(~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2025-03-26 10:39:30 +0100sprotte24(~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de)
2025-03-26 10:40:14 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2025-03-26 10:46:54 +0100hattckory(~hattckory@70.27.118.207)
2025-03-26 10:51:49 +0100hattckory(~hattckory@70.27.118.207) (Ping timeout: 260 seconds)
2025-03-26 10:53:48 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-03-26 11:04:09 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2025-03-26 11:05:37 +0100dsrt^(dsrt@c-71-199-187-173.hsd1.ga.comcast.net) (Ping timeout: 252 seconds)
2025-03-26 11:05:53 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 11:06:48 +0100orslon^(dehsou@c-71-199-187-173.hsd1.ga.comcast.net) (Ping timeout: 272 seconds)
2025-03-26 11:16:15 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 11:20:44 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 272 seconds)
2025-03-26 11:23:30 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 11:30:23 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 268 seconds)
2025-03-26 11:33:24 +0100bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-03-26 11:33:33 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-26 11:33:45 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 11:37:04 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 11:39:44 +0100ash3en(~Thunderbi@149.222.157.169) (Quit: ash3en)
2025-03-26 11:42:22 +0100ash3en(~Thunderbi@149.222.157.169) ash3en
2025-03-26 11:45:40 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 11:46:20 +0100ash3en(~Thunderbi@149.222.157.169) (Remote host closed the connection)
2025-03-26 11:48:15 +0100coldtom8(~coldtom@coldrick.cc) coldtom
2025-03-26 11:48:49 +0100coldtom8(~coldtom@coldrick.cc) ()
2025-03-26 11:49:53 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds)
2025-03-26 11:56:21 +0100dhil(~dhil@2a0c:b381:52e:3600:79cd:9b5b:3ea2:beda) dhil
2025-03-26 11:57:03 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 246 seconds)
2025-03-26 11:57:14 +0100 <Athas> tomsmeding: so when will horde-ad be ready? I have (re?)-read the paper and now I am excited.
2025-03-26 11:57:42 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 11:57:55 +0100 <tomsmeding> Athas: what paper?
2025-03-26 11:58:08 +0100 <tomsmeding> horde-ad is based on unpublished stuff :P
2025-03-26 11:58:33 +0100 <Athas> The horde-ad README says it's based on "Provably Correct, Asymptotically Efficient, Higher-Order Reverse-Mode Automatic Differentiation"!
2025-03-26 11:58:45 +0100 <Athas> But then that paper says that it's really just a different exposition of how 'ad' works, so who knows.
2025-03-26 11:58:49 +0100 <tomsmeding> oh, it is, at some point -- but that paper essentially just describes 'ad'
2025-03-26 11:58:51 +0100 <tomsmeding> yes, indeed
2025-03-26 11:58:57 +0100 <tomsmeding> the point of horde-ad is that it's an extension to that
2025-03-26 12:00:01 +0100 <tomsmeding> we're tried to write it up, and we have some kind of write-up, in fact, but we've been struggling to find a presentation that is compelling enough for a successful publication
2025-03-26 12:00:30 +0100 <tomsmeding> the possibility exists that it will just be a library and a "here's some text" on arXiv
2025-03-26 12:00:32 +0100 <Athas> "Number goes down" is not compelling? Or is it the actual explanation that is difficult to get right?
2025-03-26 12:00:41 +0100xff0x(~xff0x@2405:6580:b080:900:6185:acb4:363b:5fd3)
2025-03-26 12:01:04 +0100 <tomsmeding> number goes down as in what my ad-dual hack does is compelling as in: it's much faster than something that's very crap compared to the state of the art
2025-03-26 12:01:11 +0100 <tomsmeding> I'm not sure that's a paper.
2025-03-26 12:01:19 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 12:01:51 +0100 <tomsmeding> horde-ad tries to do quite a bit more than ad-dual, though, and there the tricky bit is that there are lots of parts where the algorithm has unfortunate limitations
2025-03-26 12:02:04 +0100fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-03-26 12:02:25 +0100 <tomsmeding> if it worked out just a little bit more, it would work just fine, but as it is, it's complex _and_ has annoying limitations
2025-03-26 12:02:51 +0100 <Athas> Mikolaj is doing almost ten commits per day, so I can't imagine it will be long before it works!
2025-03-26 12:03:11 +0100 <tomsmeding> there is probably a way to write this up properly so that it's publishable, but among us, we've spent enough hours on trying to write it down that we're likely to just shelve it.
2025-03-26 12:03:13 +0100 <tomsmeding> shelf?
2025-03-26 12:04:15 +0100 <tomsmeding> Athas: there's also a fun array library underneath horde-ad, actually, that I wrote as a big yak shave: https://git.tomsmeding.com/ox-arrays
2025-03-26 12:04:19 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 260 seconds)
2025-03-26 12:04:37 +0100 <tomsmeding> it's orthotope (on hackage), but with arithmetic operations that are actually fast
2025-03-26 12:04:46 +0100 <tomsmeding> so you get some form of simple runtime fusion
2025-03-26 12:04:54 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-03-26 12:05:08 +0100 <Athas> How does fast arithmetic imply fusion?
2025-03-26 12:05:20 +0100 <tomsmeding> it doesn't, the orthotope strided array representation does
2025-03-26 12:05:35 +0100 <tomsmeding> replicate and transpose are O(number of dimensions)
2025-03-26 12:05:55 +0100 <tomsmeding> and consumers of arrays can inspect what the actual strides are, to optimise their operation
2025-03-26 12:06:09 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-03-26 12:06:13 +0100 <Athas> What is that representation? Is it documented anywhere?
2025-03-26 12:06:37 +0100 <tomsmeding> it's this: https://hackage.haskell.org/package/orthotope-0.1.7.0/docs/Data-Array-Internal.html#t:T
2025-03-26 12:06:50 +0100 <tomsmeding> this probably has a name
2025-03-26 12:07:00 +0100 <Athas> Yeah, it's an LMAD. We use the exact same representation in Futhark.
2025-03-26 12:07:25 +0100 <tomsmeding> but you do it statically, right?
2025-03-26 12:07:42 +0100 <tomsmeding> there are no such stride vectors at runtime any more in Futhark, I presume
2025-03-26 12:07:45 +0100 <Athas> Yes, but that doesn't really make much of a difference.
2025-03-26 12:07:51 +0100 <Athas> There are, actually, in the runtime system!
2025-03-26 12:08:09 +0100 <tomsmeding> I can imagine that it doesn't matter much in practice
2025-03-26 12:08:40 +0100 <tomsmeding> in any case, this is a "normal" array library in haskell, not using a compilation pipeline, so it's more flexible for integrating into a haskell program
2025-03-26 12:08:46 +0100 <Athas> This function (well, the function generated by the macro) inspects the strides at runtime and uses that to pick a good way of copying an array: https://github.com/diku-dk/futhark/blob/master/rts/c/copy.h#L222-L249
2025-03-26 12:08:55 +0100 <haskellbridge> <Man of Letters> hello!
2025-03-26 12:09:03 +0100haskellbridgeMan of Letters is Mikolaj
2025-03-26 12:09:15 +0100 <Athas> We used to have a much more elaborate representation than this, but this LMAD/orthotope-strided turns out to be a lot of bang for the buck.
2025-03-26 12:09:17 +0100 <tomsmeding> Athas: cool!
2025-03-26 12:09:19 +0100 <Athas> Hello Man of Letters!
2025-03-26 12:09:37 +0100 <tomsmeding> I have some nice CPP-generated C code in ox-arrays too. :)
2025-03-26 12:09:46 +0100 <haskellbridge> <Man of Letters> oh yes, it rocks
2025-03-26 12:10:09 +0100 <Athas> One particularly nice property of this representation is that you can anti-unify representations as long as they have the same rank.
2025-03-26 12:10:30 +0100 <tomsmeding> "anti-unify"?
2025-03-26 12:10:44 +0100 <Athas> Yeah, lift out the components where they differ.
2025-03-26 12:10:47 +0100 <Athas> This means you can have a branch where one returns a row-major array and the other a column-major, without any copies being necessary.
2025-03-26 12:10:56 +0100 <tomsmeding> right
2025-03-26 12:11:06 +0100 <tomsmeding> oh so you're doing this dynamically too! I had no idea
2025-03-26 12:11:20 +0100 <Athas> Statically when possible, dynamically when necessary.
2025-03-26 12:11:24 +0100 <tomsmeding> I see
2025-03-26 12:12:57 +0100 <Athas> Actually, there is one difference. LMADs also contain the size of each dimension. How can you get away with not knowing the size of the array?
2025-03-26 12:13:02 +0100 <tomsmeding> Athas: horde-ad was originally built on orthotope directly, but it was rather crippled by the fact that orthotope is all-Haskell, and so the stuff that should be fast is actually disappointingly slow
2025-03-26 12:13:10 +0100 <tomsmeding> Athas: the size of the array is also there, one data type higher up
2025-03-26 12:13:19 +0100 <Athas> Ah, I see, so it's just a question of factorisation.
2025-03-26 12:13:30 +0100 <tomsmeding> yes; this is the data type that the user sees https://hackage.haskell.org/package/orthotope-0.1.7.0/docs/Data-Array-Internal-RankedS.html#t:Array
2025-03-26 12:13:52 +0100 <Athas> If you're curious, section 3.1 in https://futhark-lang.org/publications/ifl22.pdf describes how LMADs work in Futhark.
2025-03-26 12:14:08 +0100 <Athas> I always suspected they'd work fine as a run-time structure for an array library, so I'm happy to see that is the case.
2025-03-26 12:14:30 +0100 <Athas> tomsmeding: is 'n' a shape in the multidimensional case?
2025-03-26 12:14:57 +0100 <Athas> Oh wait, 'n' is the rank?
2025-03-26 12:15:23 +0100 <tomsmeding> orthotope has three copies of the array API: one for ranked arrays (multi-dim. arrays indexed by their rank), one for shaped arrays (~ indexed by their shape, a type-level [Nat]), and one for dynamic arrays (not indexed)
2025-03-26 12:15:28 +0100 <tomsmeding> I linked the ranked one
2025-03-26 12:16:01 +0100 <Athas> That's nice. I find fully shaped arrays a bit awkward in Haskell, but ranked should be a nice compromise.
2025-03-26 12:16:08 +0100 <tomsmeding> ox-arrays, my thing on top of orthotope, supports ranked arrays, shaped arrays, _and_ mixed arrays (indexed by [Maybe Nat]): the natural generalisation of the two
2025-03-26 12:17:09 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 12:17:15 +0100 <tomsmeding> the goal of that was to support nested arrays too: essentially the trick that Data.Vector.Unboxed does, but then also give a `data instance` for nested arrays. If you nest ranked inside shaped, or the other way round, you end up having to represent the result using an array with mixed type information
2025-03-26 12:17:20 +0100 <Athas> Mixed arrays sound interesting. Do they work out nicely in practice?
2025-03-26 12:17:52 +0100 <tomsmeding> the downside is that these nested arrays are not actually as flexible as you'd like: the whole thing still has to be rectangular, so it's not very different from a large multidimensional array.
2025-03-26 12:18:46 +0100 <tomsmeding> They can be used in user code too, of course; the idea there is that it sometimes makes sense to e.g. have a "batch dimension" in your computation that's any length, but then have the actual data dimensions be shape-typed because you're doing interesting things with them
2025-03-26 12:18:57 +0100 <tomsmeding> But this being embedded in haskell, it's clumsy and verbose all around
2025-03-26 12:19:20 +0100 <tomsmeding> Futhark has quite the advantage of having custom syntax and a custom type system. :)
2025-03-26 12:21:15 +0100 <Athas> Well, selective unknown sizes seems like it would go a long way towards avoiding the awkward cases.
2025-03-26 12:21:35 +0100 <Athas> Many applications can probably divide the sizes into constants and unknown, with no great loss of safety.
2025-03-26 12:21:52 +0100 <tomsmeding> perhaps, yes
2025-03-26 12:22:59 +0100 <tomsmeding> but shape values (i.e. the return type of the function that returns the shape of an array) are type-indexed by the type-level shape/rank/etc. too, and a shape value indexed by a partially-unknown type-level shape is annoyingly verbose
2025-03-26 12:23:39 +0100 <tomsmeding> you get `SKnown (SNat @3) :$$ SUnknown 5 :$$ SKnown (SNat @7) :$$ ZSS` as the shape of an array with type-level shape [Just 3, Nothing, Just 7]
2025-03-26 12:23:54 +0100 <tomsmeding> It works, technically. :P
2025-03-26 12:24:37 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-03-26 12:24:56 +0100 <tomsmeding> er, `SKnown (SNat @3) :$% SUnknown 5 :$% SKnown (SNat @7) :$% ZSX`
2025-03-26 12:25:08 +0100 <tomsmeding> the (:$$) and ZSS are for shaped shapes, not for mixed shapes
2025-03-26 12:25:17 +0100 <tomsmeding> I think you get the point. :)
2025-03-26 12:26:05 +0100 <tomsmeding> and yes, these things have IsList instances, but that's cheating
2025-03-26 12:28:49 +0100ash3en(~Thunderbi@149.222.157.169) ash3en
2025-03-26 12:29:24 +0100xff0x(~xff0x@2405:6580:b080:900:6185:acb4:363b:5fd3) (Ping timeout: 260 seconds)
2025-03-26 12:29:29 +0100 <tomsmeding> Athas: section 3.1 of the FunMem paper is very unsurprising to me, so I guess that's a good thing
2025-03-26 12:30:21 +0100alp(~alp@2001:861:8ca0:4940:dd1f:b4e6:4fbb:e5d8)
2025-03-26 12:31:31 +0100haritz(~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737)
2025-03-26 12:31:49 +0100 <Athas> tomsmeding: too bad everyone has their own name for this representation. LMAD is also somewhat of a misnomer; it's from autoparallelisation papers that try to analyse the intended multidimensional structure based on flat index arithmetic.
2025-03-26 12:32:09 +0100 <Athas> Someone needs to write a half page paper titled "this is what this thing is called".
2025-03-26 12:32:27 +0100 <tomsmeding> I don't think orthotope tries to give it _any_ name. I didn't know "LMAD" so I use "orthotope-style strides" in my code whenever it comes up.
2025-03-26 12:32:56 +0100saimazoon(~hrtz@user/haritz) (Ping timeout: 272 seconds)
2025-03-26 12:33:22 +0100haritz(~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737) (Changing host)
2025-03-26 12:33:22 +0100haritz(~hrtz@user/haritz) haritz
2025-03-26 12:39:39 +0100notdabs(~Owner@2600:1700:69cf:9000:586:19c0:87cb:b0ff)
2025-03-26 12:42:03 +0100 <tomsmeding> Athas: the title of that half-page paper has a chicken-and-egg problem though
2025-03-26 12:42:08 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-03-26 12:43:09 +0100 <tomsmeding> I guess you could put $o + \sum_{k=1}^n s_k * i_k$ in the title in lieu of a name, but that won't go over very well, I fear
2025-03-26 12:44:34 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 12:46:44 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 12:47:29 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-03-26 12:50:53 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-26 12:55:03 +0100sprotte24(~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2025-03-26 12:55:27 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-26 13:01:57 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 13:02:38 +0100cross(~cross@spitfire.i.gajendra.net) cross
2025-03-26 13:05:21 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 268 seconds)
2025-03-26 13:05:34 +0100ethantwardy(user@user/ethantwardy) (Quit: WeeChat 4.4.2)
2025-03-26 13:06:09 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2025-03-26 13:07:20 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com)
2025-03-26 13:07:31 +0100ethantwardy(user@user/ethantwardy) ethantwardy
2025-03-26 13:12:24 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 260 seconds)
2025-03-26 13:13:58 +0100ash3en(~Thunderbi@149.222.157.169) (Ping timeout: 252 seconds)
2025-03-26 13:14:51 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 13:17:39 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 260 seconds)
2025-03-26 13:18:03 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com)
2025-03-26 13:21:17 +0100 <haskellbridge> <Bowuigi> Do naperian functors help with shapes? https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/aplicative.pdf https://nickx.hu/Acc-nap.pdf
2025-03-26 13:22:01 +0100xff0x(~xff0x@2405:6580:b080:900:d2df:bcfa:d5c3:4ebd)
2025-03-26 13:22:13 +0100alp(~alp@2001:861:8ca0:4940:dd1f:b4e6:4fbb:e5d8) (Ping timeout: 248 seconds)
2025-03-26 13:23:30 +0100Shsl-Junko-POSER(~Shsl-Junk@50.235.208.178)
2025-03-26 13:26:39 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 276 seconds)
2025-03-26 13:31:26 +0100 <tomsmeding> Bowuigi: looking at that first link, and reading section 1.3 plus the definition of Naperian at the bottom of page 9, it seems to me that this is "just" saying "make your API nested single-dimensional arrays"?
2025-03-26 13:32:05 +0100 <tomsmeding> I guess it also allows putting tuples on the same footing as vectors
2025-03-26 13:32:28 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 13:33:08 +0100 <tomsmeding> but as we're talking about a user-facing API here, and I don't think users will ever need to be polymorphic over arrays and tuples in numeric code, I'm not sure that particular generality is very valuable here
2025-03-26 13:34:41 +0100 <tomsmeding> note that the Acc-nap.pdf link also cheats with OverloadedLists in section 3
2025-03-26 13:35:20 +0100 <Athas> Bowuigi: not directly, they are an orthogonal issue. And they certainly have somewhat bad error messages, even with the tricks Jeremy pulls in that paper.
2025-03-26 13:36:48 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-03-26 13:36:48 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 268 seconds)
2025-03-26 13:37:01 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 13:38:53 +0100Shsl-Junko-POSER(~Shsl-Junk@50.235.208.178) (Quit: Client closed)
2025-03-26 13:39:04 +0100inca(~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com)
2025-03-26 13:40:00 +0100Shsl-Junko-POSER(~Shsl-Junk@50.235.208.178)
2025-03-26 13:41:46 +0100Shsl-Junko-POSER(~Shsl-Junk@50.235.208.178) (Client Quit)
2025-03-26 13:41:54 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds)
2025-03-26 13:42:33 +0100Putonlalla(~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 252 seconds)
2025-03-26 13:43:02 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-26 13:44:10 +0100tabaqui(~tabaqui@167.71.80.236) tabaqui
2025-03-26 13:45:12 +0100zungi(~tory@user/andrewchawk) (Ping timeout: 264 seconds)
2025-03-26 13:52:09 +0100zungi(~tory@user/andrewchawk) andrewchawk
2025-03-26 13:56:53 +0100akegalj(~akegalj@89-172-183-68.adsl.net.t-com.hr) (Ping timeout: 248 seconds)
2025-03-26 13:59:30 +0100Square(~Square@user/square) Square
2025-03-26 14:01:15 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-03-26 14:02:08 +0100yangby(~secret@115.205.72.232) (Quit: Go out for a walk and buy a drink.)
2025-03-26 14:02:11 +0100j1n37-(~j1n37@user/j1n37) (Ping timeout: 244 seconds)
2025-03-26 14:04:08 +0100Square(~Square@user/square) (Ping timeout: 245 seconds)
2025-03-26 14:04:20 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-03-26 14:05:46 +0100jespada(~jespada@2800:a4:2211:7600:7570:cffe:6554:643e) jespada
2025-03-26 14:07:40 +0100 <haskellbridge> <Bowuigi> I see, those papers are more about the API I guess
2025-03-26 14:09:26 +0100 <haskellbridge> <Bowuigi> tomsmeding the actually useful generality is being able to operate on matrices/tensors of different dimensions APL-style, but I understand your point
2025-03-26 14:13:57 +0100 <tomsmeding> Bowuigi: do you have an example of such "APL-style"?
2025-03-26 14:14:18 +0100 <tomsmeding> Because I don't see now those Naperian functors help very much there, per se, but I'm probably missing something
2025-03-26 14:14:33 +0100 <tomsmeding> s/now/how/
2025-03-26 14:17:23 +0100 <Athas> tomsmeding: broadcasting/replication is the *only* thing Naperian functors provide.
2025-03-26 14:17:39 +0100 <tomsmeding> automatic broadcasting, in the style of Futhark AutoMap?
2025-03-26 14:17:51 +0100 <Athas> Yes.
2025-03-26 14:17:54 +0100 <tomsmeding> ah I see
2025-03-26 14:18:03 +0100 <tomsmeding> that's helpful, I guess, but indeed orthogonal
2025-03-26 14:18:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 14:23:40 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-03-26 14:30:20 +0100ethantwardy(user@user/ethantwardy) (Remote host closed the connection)
2025-03-26 14:30:45 +0100ethantwardy(user@user/ethantwardy) ethantwardy
2025-03-26 14:30:48 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2025-03-26 14:32:18 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 14:35:45 +0100haritzsaimazoon
2025-03-26 14:36:01 +0100j0lol(~j0lol@132.145.17.236) (Remote host closed the connection)
2025-03-26 14:36:15 +0100j0lol(~j0lol@132.145.17.236) j0lol
2025-03-26 14:41:09 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 244 seconds)
2025-03-26 14:44:17 +0100Chai-T-Rex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-03-26 14:44:36 +0100chiselfuse(~chiselfus@user/chiselfuse) (Ping timeout: 264 seconds)
2025-03-26 14:45:12 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 264 seconds)
2025-03-26 14:45:46 +0100chiselfuse(~chiselfus@user/chiselfuse) chiselfuse
2025-03-26 14:50:22 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-03-26 14:50:33 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 14:54:29 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 14:54:54 +0100akegalj(~akegalj@89-172-183-68.adsl.net.t-com.hr)
2025-03-26 14:55:54 +0100j0lol(~j0lol@132.145.17.236) (Remote host closed the connection)
2025-03-26 14:56:56 +0100j0lol(~j0lol@132.145.17.236) j0lol
2025-03-26 15:03:43 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 245 seconds)
2025-03-26 15:04:36 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 15:08:44 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-26 15:10:00 +0100weary-traveler(~user@user/user363627) user363627
2025-03-26 15:20:10 +0100Putonlalla(~Putonlall@it-cyan.it.jyu.fi) Tuplanolla
2025-03-26 15:20:25 +0100jespada(~jespada@2800:a4:2211:7600:7570:cffe:6554:643e) (Ping timeout: 244 seconds)
2025-03-26 15:24:16 +0100jespada(~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) jespada
2025-03-26 15:24:33 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-03-26 15:45:26 +0100ash3en(~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en
2025-03-26 15:46:18 +0100fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 268 seconds)
2025-03-26 15:50:20 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 15:52:23 +0100tjbc(~tjbc@user/fliife) (Quit: ZNC - https://znc.in)
2025-03-26 15:54:21 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-03-26 15:55:06 +0100tjbc(~tjbc@user/fliife) fliife
2025-03-26 15:55:19 +0100fp(~Thunderbi@130.233.70.95) fp
2025-03-26 15:59:01 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2025-03-26 16:02:19 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-03-26 16:08:36 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 16:12:00 +0100Guest52(~Guest52@pool1.cscotesud.qc.ca)
2025-03-26 16:14:34 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-03-26 16:14:36 +0100califax(~califax@user/califx) (Ping timeout: 264 seconds)
2025-03-26 16:14:48 +0100califax_(~califax@user/califx) califx
2025-03-26 16:16:00 +0100califax_califax
2025-03-26 16:16:23 +0100jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-03-26 16:20:34 +0100Guest52(~Guest52@pool1.cscotesud.qc.ca) (Quit: Client closed)
2025-03-26 16:25:25 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-26 16:29:02 +0100aforemny(~aforemny@2001:9e8:6cc1:be00:edce:fe13:a80e:d4b5) aforemny
2025-03-26 16:29:10 +0100aforemny_(~aforemny@2001:9e8:6cfa:db00:13b6:4544:c45d:3975) (Ping timeout: 272 seconds)
2025-03-26 16:36:04 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 16:40:17 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-26 16:40:44 +0100jespada(~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-03-26 16:50:08 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-03-26 16:53:36 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
2025-03-26 16:56:00 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-03-26 17:00:14 +0100ash3en1(~Thunderbi@185.209.196.192) ash3en
2025-03-26 17:01:33 +0100ash3en(~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2025-03-26 17:01:33 +0100ash3en1ash3en
2025-03-26 17:01:55 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:aafc:8aeb:2c4:160b) ubert
2025-03-26 17:05:17 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-03-26 17:11:03 +0100 <haskellbridge> <Morj> I've been thinking it would be nice to have a common viewer of docs a-la haddock or docs.rs, but for any language. With hyperlinks, structs, local search and stuff. What are the best already existing options?
2025-03-26 17:11:27 +0100 <haskellbridge> <Morj> I remember GNU folks did something like this to replace manpages
2025-03-26 17:11:56 +0100 <haskellbridge> <Morj> Also doxygen-generated web pages sort of fit since doxygen is polylingual
2025-03-26 17:14:15 +0100 <Athas> Yes, I think Doxygen is the closest.
2025-03-26 17:14:38 +0100 <Athas> GNU Texinfo is very general, but it has no source processor. You'd need to write a program that parses Haskell doc comments into Texinfo.
2025-03-26 17:14:57 +0100 <Athas> At that point you might almost just use HTML.
2025-03-26 17:15:10 +0100 <haskellbridge> <Morj> I was thinking of consuming haddock output instead of parsing haskell sources directly
2025-03-26 17:15:24 +0100 <haskellbridge> <Morj> I'm pretty sure it has a structured output instead of html?
2025-03-26 17:15:25 +0100 <haskellbridge> <Bowuigi> Texinfo (the GNU thing) is pretty good actually. It doesn't require a web browser (so it's fast), it is available on any Linux distro (run info) and can be exported to a lot of formats if required (windows compatibility/web view)
2025-03-26 17:16:21 +0100 <haskellbridge> <Morj> Hm hm, I'll look into texinfo more
2025-03-26 17:16:27 +0100 <haskellbridge> <Bowuigi> I assume texinfo can be installed on other OSs as well, but I never tried
2025-03-26 17:17:02 +0100 <haskellbridge> <Morj> Well I'm in an ambitious mood, why not write GUI a texinfo viewer for any platform (an excuse to use rust's slint)
2025-03-26 17:17:35 +0100 <EvanR> haddocks sometimes are missing information
2025-03-26 17:17:42 +0100 <Athas> Texinfo is a source format. You can turn Texinfo into other things (HTML, PDF).
2025-03-26 17:18:05 +0100 <haskellbridge> <Morj> Right, and when I run 'info', what format does it consume?
2025-03-26 17:18:06 +0100 <EvanR> Morj, why not write it in haskell!
2025-03-26 17:18:22 +0100 <Athas> I think the 'info' tool either reads Texinfo directly, or some very lightly processed form.
2025-03-26 17:18:25 +0100 <haskellbridge> <Morj> Because HsQML is dead :'(
2025-03-26 17:18:32 +0100 <Athas> It's been years since I last wrote Texinfo.
2025-03-26 17:18:53 +0100 <Athas> But I remember writing a fairly simple script that generated Haddock/Doxygen-like documentation from Common Lisp.
2025-03-26 17:19:08 +0100 <haskellbridge> <Bowuigi> Generating HTML directly is ok if it isn't too fancy. I don't want to launch a huge browser for quick references, but launching Netsurf or elinks is ok
2025-03-26 17:19:38 +0100 <haskellbridge> <Morj> Athas: You mean you consumed lisp source files and wrote out texinfo in haddock style?
2025-03-26 17:19:50 +0100 <haskellbridge> <Bowuigi> Texinfo has a guide on how to write it and how it works (IIRC), try 'info info'
2025-03-26 17:19:54 +0100 <Athas> It's easy to generate HTML that is very readable in CLI browsers.
2025-03-26 17:20:16 +0100 <haskellbridge> <Morj> I'm trying to think of ways to not use html (-:
2025-03-26 17:20:31 +0100 <haskellbridge> <Morj> Bowuigi: no info on my mac, huh
2025-03-26 17:20:34 +0100 <Athas> Morj: No, it was a Lisp program that read Lisp docstrings from a loaded Lisp image and wrote Texinfo files. Then those Texinfo files were included in another Texinfo document.
2025-03-26 17:20:38 +0100 <haskellbridge> <Morj> Damn gnu haters
2025-03-26 17:20:49 +0100 <Athas> Emacs has a builtin info reader!
2025-03-26 17:20:51 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-03-26 17:20:55 +0100 <haskellbridge> <Morj> I see, cool
2025-03-26 17:20:58 +0100 <haskellbridge> <Bowuigi> Another option is gemtext on gemini, but that might be too restricted (no inline links, only block-level elements)
2025-03-26 17:21:39 +0100 <haskellbridge> <Bowuigi> Gemini itself is too obscure but proxies exist
2025-03-26 17:21:57 +0100 <haskellbridge> <Morj> Gemtext might be too unstructured. Like I would like a doc document to have a section "data Foo", which has subsections with fields, and subsections with classes that it implements
2025-03-26 17:22:15 +0100 <Athas> Oh, the stuff I made is still online. This is the Texinfo converted to HTML: http://www.lichteblau.com/blubba/font-selector/mcclim/External-API.html#External-API
2025-03-26 17:22:25 +0100 <haskellbridge> <Morj> Oh, Bowuigi you misunderstood me, I'm thinking of a completely local doc
2025-03-26 17:22:37 +0100 <Athas> As you can see, no hyperlinking between concepts. I don't think Texinfo provides any convenience facilities for doing so.
2025-03-26 17:22:48 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 17:23:02 +0100 <haskellbridge> <Morj> Wait really? I thought hyperlinks was the whole point of upgrading from man to info
2025-03-26 17:23:03 +0100 <Athas> It would take a lot of effort to generate Texinfo that is as nice to use as Haddock. Maybe less effort if you use Haddock's intermediate data structures as your input.
2025-03-26 17:23:03 +0100 <haskellbridge> <Bowuigi> Morj any of the three formats works locally and has a way to be served on the internet
2025-03-26 17:23:15 +0100 <Athas> Morj: yes, but you have to put in the links explicitly.
2025-03-26 17:24:28 +0100 <haskellbridge> <Bowuigi> That's also the case with HTML tho
2025-03-26 17:24:45 +0100 <haskellbridge> <Bowuigi> And most wiki tools
2025-03-26 17:25:09 +0100 <Athas> Right, but the nice thing about Haddock is that it understands Haskell and will insert most links for you.
2025-03-26 17:25:47 +0100 <haskellbridge> <Morj> Yeah, so here's my current vision:
2025-03-26 17:25:47 +0100 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/TiTiKNqgsHwiSqLVUEQwdgNW/3LKPRGcYsZ0 (5 lines)
2025-03-26 17:26:12 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-03-26 17:26:27 +0100 <haskellbridge> <Morj> I'm currently inspired by having to find a constant in rust docs, and then ctrl-f-ing it on a bullshit-generated C documentation page
2025-03-26 17:26:29 +0100 <haskellbridge> <Bowuigi> The Guile docs are all on texinfo, GNU provides a web view. I think those are not autogenerated tho
2025-03-26 17:26:45 +0100 <Athas> Morj: I think the Texinfo part of your design is unnecessary. You might as well just generate simple HTML.
2025-03-26 17:26:47 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-26 17:27:00 +0100 <haskellbridge> <Morj> True
2025-03-26 17:27:06 +0100 <haskellbridge> <Morj> I'm biased against html (=
2025-03-26 17:27:13 +0100 <Athas> The original benefit of Texinfo was that it could be rendered in multiple ways, but it seems you do not need that. And Texinfo has some weird warts to enable that.
2025-03-26 17:27:27 +0100 <haskellbridge> <Morj> If it's texinfo, it's easier for people to view it in console or other alternate viewers
2025-03-26 17:27:47 +0100 <haskellbridge> <Morj> That's being ambitious that someone other than me would want to create those viewers
2025-03-26 17:28:36 +0100 <Athas> I am not convinced that elinks (or similar) showing well-written HTML is much less readable in a console than Texinfo.
2025-03-26 17:28:56 +0100 <haskellbridge> <Morj> Also, a side bonus: currently I have a special firefox window where the only tabs are hackage docs; why not move those to a special doc viewing app?
2025-03-26 17:29:14 +0100chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-03-26 17:29:47 +0100 <haskellbridge> <Morj> > I am not convinced that elinks
2025-03-26 17:29:47 +0100 <haskellbridge> You are 100% right, but my sense of beauty tells me that the whole html/web machinery is unnecessary here
2025-03-26 17:30:18 +0100 <Athas> I mean, knock yourself out, but Texinfo is not a particularly *nice* format. Not even compared to HTML.
2025-03-26 17:30:31 +0100 <Athas> I haven't used it for almost 20 years, but I remember being disappointed by it.
2025-03-26 17:30:41 +0100 <haskellbridge> <Morj> > a special firefox window
2025-03-26 17:30:41 +0100 <haskellbridge> A side bonus to a side bonus: not having to alt-tab to a browser gives me less distractions
2025-03-26 17:30:52 +0100 <haskellbridge> <Morj> > I remember being disappointed by it
2025-03-26 17:30:52 +0100 <haskellbridge> Ha-ha-ha
2025-03-26 17:30:57 +0100 <haskellbridge> <Morj> That's why I asked for alternatives!
2025-03-26 17:32:31 +0100 <EvanR> don't tell Morj that in the near future, the entire OS is running in a browser
2025-03-26 17:32:34 +0100 <Athas> What about roff?
2025-03-26 17:32:48 +0100 <Athas> That can be rendered in a console, and it is certainly simple.
2025-03-26 17:33:26 +0100 <haskellbridge> <Morj> Googling it rn
2025-03-26 17:33:43 +0100 <haskellbridge> <Morj> > the entire OS is running in a browser
2025-03-26 17:33:43 +0100 <haskellbridge> >_<
2025-03-26 17:34:22 +0100 <Athas> I wasn't really serious about roff. It's the language underlying manpages (and in principle other things, but only the grayest of graybears use it for anything else I think).
2025-03-26 17:34:47 +0100 <haskellbridge> <Morj> Ah
2025-03-26 17:35:35 +0100 <haskellbridge> <Morj> Manpages (and markdown) don't have semantic sections. Like if I have a doc viewer that consumes files from a disc, it should have a search. If it has a search, I want to say "only search in functions"
2025-03-26 17:36:25 +0100 <haskellbridge> <Morj> Pages in html with search are sort of cheating since they use an additional index for those things
2025-03-26 17:39:04 +0100fp(~Thunderbi@130.233.70.95) (Ping timeout: 252 seconds)
2025-03-26 17:48:59 +0100Googulator(~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu) (Quit: Client closed)
2025-03-26 17:49:14 +0100Googulator(~Googulato@85-238-67-46.pool.digikabel.hu)
2025-03-26 17:52:21 +0100jespada(~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) jespada
2025-03-26 17:56:44 +0100 <haskellbridge> <Bowuigi> Roff/NRoff/TRoff is annoying lol, I tried writing homework on it some years ago and the only nice things it has are pic and eqn. Typst has versions of both and is way saner, pikchr is another pic replacement that's sane
2025-03-26 17:57:50 +0100 <haskellbridge> <Bowuigi> Try writing some sample output manually on texinfo and HTML and view it on various tools in order to get a better perspective Morj
2025-03-26 17:59:10 +0100 <haskellbridge> <Bowuigi> Elinks renders old HTML fairly nicely and even has some CSS support. Netsurf is way more capable but requires a GUI. Note that neither support JS nor the quadrillion modern extensions to HTML and CSS tho, but many pages look good on both browsers
2025-03-26 17:59:31 +0100 <haskellbridge> <Morj> If they don't support JS, how do I search in the HTML page then?
2025-03-26 17:59:46 +0100 <haskellbridge> <Morj> But yep, I was going to try something like that
2025-03-26 17:59:56 +0100 <haskellbridge> <Morj> Also comparing with vimdocs, because I find them nice
2025-03-26 18:00:07 +0100Googulator(~Googulato@85-238-67-46.pool.digikabel.hu) (Quit: Client closed)
2025-03-26 18:00:24 +0100Googulator(~Googulato@85-238-67-46.pool.digikabel.hu)
2025-03-26 18:00:47 +0100 <haskellbridge> <Morj> Vimdocs also has almost has hyperlinks, and almost has structured search, sooo
2025-03-26 18:00:54 +0100 <haskellbridge> <Bowuigi> Just make that search optional. Also searching on many pages is possible via a dynamic page, Hackage does it.
2025-03-26 18:01:15 +0100 <haskellbridge> <Bowuigi> Like, those browsers will ignore JS, they won't explode or something
2025-03-26 18:02:07 +0100 <haskellbridge> <Morj> Well but it's me who wants to view the docs in the terminal /and/ have the search at the same time :D
2025-03-26 18:02:17 +0100 <haskellbridge> <Morj> Do I also write a minimalistic HTML browser?
2025-03-26 18:02:24 +0100 <haskellbridge> <Morj> Sounds maybe fun
2025-03-26 18:02:52 +0100ft(~ft@p508db463.dip0.t-ipconnect.de) ft
2025-03-26 18:04:13 +0100 <haskellbridge> <Bowuigi> Oh and linking to specific parts to files is easy on HTML with the "#" thing on the URL, so technically searching on the same site can also be made via a dynamic page (actually a redirect would be enough for a single result, and a list of links would be enough for many results)
2025-03-26 18:04:52 +0100 <haskellbridge> <Bowuigi> Do not write a web browser unless you have 5 years or more of free time and do not care about your mental health
2025-03-26 18:05:16 +0100 <haskellbridge> <Morj> Well not a complete web browser, but a browser for the pages I myself generate. That sounds like something possible
2025-03-26 18:05:23 +0100 <haskellbridge> <Morj> I'm not completely crazy ;-)
2025-03-26 18:05:25 +0100 <haskellbridge> <Bowuigi> Unless you are wrapping the GTK/QT Webkits, that's not hard
2025-03-26 18:06:18 +0100 <haskellbridge> <Bowuigi> That could work then, specially if you ignore CSS
2025-03-26 18:06:42 +0100 <Athas> I wrote a programming language doc generator (in Haskell, actually) and generating HTML was not unpleasant. Blaze is good. I also did not find it challenging to make it console-friendly. It was much harder to make it look good in Firefox, actually...
2025-03-26 18:06:47 +0100juri_(~juri@implicitcad.org) (Ping timeout: 244 seconds)
2025-03-26 18:08:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-26 18:09:02 +0100 <haskellbridge> <Morj> Good idea with the '#' actually. Though now it's in a vimdoc situation where you have to use prefixes/sufixes to distinguish struct foo and func foo
2025-03-26 18:09:27 +0100 <haskellbridge> <Morj> > It was much harder to make it look good
2025-03-26 18:09:27 +0100 <haskellbridge> Same with my personal blog >_>
2025-03-26 18:10:08 +0100 <Athas> The solution is to reject bitmap displays and use CSS to make it look like a terminal no matter what.
2025-03-26 18:10:36 +0100 <haskellbridge> <Morj> Yeah well making things look good in a terminal is also not trivial :D
2025-03-26 18:10:47 +0100 <haskellbridge> <Morj> Compare vimdocs by Bram and lua docs by neovim team
2025-03-26 18:11:22 +0100 <haskellbridge> <Morj> Also different gemini browsers, some of them actually look pretty somehow
2025-03-26 18:12:51 +0100 <Athas> Just make it look like this: https://sigkill.dk/ Terminals ought to come in two colours: amber and green, and the latter is still available.
2025-03-26 18:13:34 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 260 seconds)
2025-03-26 18:14:12 +0100 <haskellbridge> <Morj> You know how all infosec researchers use the exact same terminal-style black and white theme for their blogs? (=
2025-03-26 18:14:15 +0100 <haskellbridge> <Morj> I quit infosec some years ago
2025-03-26 18:14:58 +0100 <haskellbridge> <Morj> Some I tried to style mine like a newspaper (and only 25% succeeded) https://blog.morj.men/
2025-03-26 18:15:16 +0100 <Athas> You need columnar layout.
2025-03-26 18:15:49 +0100 <haskellbridge> <Morj> Yes!
2025-03-26 18:15:49 +0100 <haskellbridge> <Morj> But it's hard to do
2025-03-26 18:15:57 +0100 <haskellbridge> <Morj> Also I need better colors and bigger titles
2025-03-26 18:16:25 +0100 <Athas> Go for the tabloid look and make your titles clickbait. "What are monads? You'll never believe it!"
2025-03-26 18:17:17 +0100 <haskellbridge> <Morj> :D
2025-03-26 18:17:26 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:aafc:8aeb:2c4:160b) (Quit: ubert)
2025-03-26 18:19:29 +0100 <EvanR> "Are Monads really burritos? You can't handle the answer"
2025-03-26 18:19:45 +0100 <darkling> Ten Things You Should Know About Monads!
2025-03-26 18:21:54 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 272 seconds)
2025-03-26 18:24:22 +0100akegalj(~akegalj@89-172-183-68.adsl.net.t-com.hr) (Quit: leaving)
2025-03-26 18:24:58 +0100Square2(~Square4@user/square) (Ping timeout: 245 seconds)
2025-03-26 18:25:46 +0100Guest28(~Guest13@2405:201:3039:d02b:dde6:13b3:a1d9:197c)
2025-03-26 18:26:30 +0100Guest28(~Guest13@2405:201:3039:d02b:dde6:13b3:a1d9:197c) (Client Quit)
2025-03-26 18:28:14 +0100jespada_(~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) jespada
2025-03-26 18:29:05 +0100jespada(~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) (Ping timeout: 265 seconds)
2025-03-26 18:29:09 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
2025-03-26 18:31:29 +0100 <haskellbridge> <Morj> Athas: after reading your top article, I again start to wonder to thin air, why does GHC link your program to so many system libraries
2025-03-26 18:31:51 +0100 <haskellbridge> <Morj> I have bad memories of being young and trying to figure out what the hell is tinfo and how do I get it on opensuse
2025-03-26 18:33:26 +0100 <EvanR> a program can't do anything without support from the OS
2025-03-26 18:33:34 +0100 <EvanR> anything observable
2025-03-26 18:33:45 +0100 <EvanR> (give or take making the computer hotter)
2025-03-26 18:33:49 +0100 <haskellbridge> <Morj> On linux the only support you need is syscalls and maybe vdso
2025-03-26 18:34:01 +0100chele(~chele@user/chele) (Remote host closed the connection)
2025-03-26 18:34:02 +0100 <EvanR> you wouldn't do that
2025-03-26 18:34:06 +0100jespada_(~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-03-26 18:34:07 +0100 <EvanR> you would go through a userspace library
2025-03-26 18:34:17 +0100 <EvanR> so it's a stable interface
2025-03-26 18:34:40 +0100 <haskellbridge> <Morj> Linux syscalls are stable though. And also, golang does exactly that and it's a big joy
2025-03-26 18:34:44 +0100 <EvanR> they aren't
2025-03-26 18:34:52 +0100 <haskellbridge> <Morj> Yes they are?
2025-03-26 18:34:58 +0100 <EvanR> golang has a team of people to keep up to date
2025-03-26 18:35:00 +0100 <haskellbridge> <Morj> You're thinking of BSD and mac
2025-03-26 18:35:22 +0100 <haskellbridge> <Morj> I have pure nasm programs from 2010 that still work
2025-03-26 18:35:26 +0100 <haskellbridge> <Morj> No libc
2025-03-26 18:35:28 +0100 <EvanR> why exactly is golang using direct syscalls a joy
2025-03-26 18:35:37 +0100Googulator(~Googulato@85-238-67-46.pool.digikabel.hu) (Quit: Client closed)
2025-03-26 18:35:52 +0100Googulator(~Googulato@85-238-67-46.pool.digikabel.hu)
2025-03-26 18:35:54 +0100 <haskellbridge> <Morj> It's a joy to me since I don't need to install weird dependencies before compiling, or before using other people's compiled code
2025-03-26 18:35:55 +0100 <c_wraith> linux does try to keep syscalls a stable interface. But... they're still going through the OS.
2025-03-26 18:36:12 +0100 <c_wraith> They still need the OS's cooperation