2025-03-26 00:03:22 +0100 | <geekosaur> | keep it but require `import IEEE754Insanity` |
2025-03-26 00:05:23 +0100 | poscat | (~poscat@user/poscat) (Ping timeout: 245 seconds) |
2025-03-26 00:05:44 +0100 | poscat | (~poscat@user/poscat) poscat |
2025-03-26 00:05:56 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 00:06:04 +0100 | weary-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 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | byte | (~mu@user/byte) (Quit: Leaving) |
2025-03-26 00:25:48 +0100 | sarna | (~sarna@d192-22.icpnet.pl) (Ping timeout: 245 seconds) |
2025-03-26 00:26:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-26 00:27:21 +0100 | aetepe | (~aetepe@188.119.22.83) aetepe |
2025-03-26 00:30:26 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-03-26 00:33:37 +0100 | byte | (~mu@user/byte) byte |
2025-03-26 00:35:20 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 252 seconds) |
2025-03-26 00:35:45 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
2025-03-26 00:37:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 00:40:56 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 00:42:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 00:45:17 +0100 | sarna | (~sarna@d192-22.icpnet.pl) sarna |
2025-03-26 00:45:45 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-03-26 00:45:46 +0100 | sprotte24 | (~sprotte24@p5dd5d056.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-03-26 00:51:04 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-03-26 00:53:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 00:57:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 01:04:38 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) robobub |
2025-03-26 01:07:01 +0100 | sarna | (~sarna@d192-22.icpnet.pl) (Ping timeout: 265 seconds) |
2025-03-26 01:09:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 01:11:27 +0100 | weary-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 +0100 | merijn | (~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 +0100 | tomboy64 | (~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 +0100 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2025-03-26 01:21:39 +0100 | zungi | (~tory@user/andrewchawk) andrewchawk |
2025-03-26 01:24:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 01:26:00 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 01:26:09 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-26 01:29:06 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2025-03-26 01:29:06 +0100 | ljdarj1 | ljdarj |
2025-03-26 01:30:13 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-03-26 01:31:41 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 01:38:16 +0100 | sarna | (~sarna@d192-22.icpnet.pl) sarna |
2025-03-26 01:42:56 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 01:46:18 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 272 seconds) |
2025-03-26 01:47:01 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
2025-03-26 01:47:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 01:55:24 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) (Remote host closed the connection) |
2025-03-26 01:55:50 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) acidjnk |
2025-03-26 01:58:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:01:38 +0100 | xff0x | (~xff0x@2405:6580:b080:900:f588:30f2:ad44:5069) (Ping timeout: 245 seconds) |
2025-03-26 02:04:33 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2025-03-26 02:05:23 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-26 02:11:25 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 02:15:47 +0100 | otto_s | (~user@p5de2f2e9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-03-26 02:16:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-26 02:16:47 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:17:34 +0100 | otto_s | (~user@p4ff27de5.dip0.t-ipconnect.de) |
2025-03-26 02:21:33 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-03-26 02:21:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 02:24:10 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2025-03-26 02:26:21 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-03-26 02:26:47 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
2025-03-26 02:28:01 +0100 | Pixi` | (~Pixi@user/pixi) (Quit: Leaving) |
2025-03-26 02:32:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:34:59 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-03-26 02:36:58 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 272 seconds) |
2025-03-26 02:37:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 02:37:33 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 02:38:19 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 02:39:21 +0100 | todi1 | (~todi@p57803331.dip0.t-ipconnect.de) |
2025-03-26 02:39:30 +0100 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2025-03-26 02:40:23 +0100 | aetepe | (~aetepe@188.119.22.83) (Ping timeout: 245 seconds) |
2025-03-26 02:40:45 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-03-26 02:42:56 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 252 seconds) |
2025-03-26 02:43:34 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
2025-03-26 02:43:48 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 02:48:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:48:47 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 252 seconds) |
2025-03-26 02:52:50 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 02:53:16 +0100 | xff0x | (~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 +0100 | inca | (~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 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 02:57:02 +0100 | Tuplanolla | (~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 +0100 | notdabs | (~Owner@2600:1700:69cf:9000:5812:4103:61ba:7880) (Read error: Connection reset by peer) |
2025-03-26 02:59:25 +0100 | Square | (~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 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-26 03:03:40 +0100 | merijn | (~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 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 03:08:25 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-03-26 03:11:42 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-03-26 03:19:02 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 03:23:43 +0100 | merijn | (~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 +0100 | aforemny_ | (~aforemny@2001:9e8:6cde:a00:bd3b:75a2:c3bc:65be) (Ping timeout: 265 seconds) |
2025-03-26 03:26:32 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 03:27:35 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 03:28:11 +0100 | aforemny | (~aforemny@i59F4C69B.versanet.de) aforemny |
2025-03-26 03:34:50 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 03:36:30 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2025-03-26 03:36:53 +0100 | cyphase | (~cyphase@user/cyphase) cyphase |
2025-03-26 03:40:52 +0100 | cyphase | (~cyphase@user/cyphase) (Read error: Connection reset by peer) |
2025-03-26 03:41:55 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 03:41:59 +0100 | cyphase | (~cyphase@user/cyphase) cyphase |
2025-03-26 03:42:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-03-26 03:44:59 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds) |
2025-03-26 03:46:22 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-26 03:46:24 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-03-26 03:47:08 +0100 | Pixi | (~Pixi@user/pixi) Pixi |
2025-03-26 03:51:45 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2025-03-26 03:52:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 03:55:35 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 03:55:41 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 03:57:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 04:08:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 04:12:22 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2025-03-26 04:13:47 +0100 | merijn | (~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 +0100 | developer_ | (~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 +0100 | random-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 +0100 | merijn | (~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 +0100 | aetepe | (~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 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 04:28:43 +0100 | aetepe | (~aetepe@188.119.22.83) (Ping timeout: 245 seconds) |
2025-03-26 04:29:12 +0100 | merijn | (~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 +0100 | alfiee | (~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 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 04:34:38 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 04:35:45 +0100 | bitdex | (~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 +0100 | bitdex_ | (~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 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 04:37:36 +0100 | bitdex | (~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 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | Square2 | (~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 +0100 | merijn | (~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 +0100 | Square | (~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 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 05:15:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 05:17:46 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 05:19:50 +0100 | aforemny_ | (~aforemny@2001:9e8:6cfa:db00:13b6:4544:c45d:3975) aforemny |
2025-03-26 05:20:05 +0100 | aforemny | (~aforemny@i59F4C69B.versanet.de) (Ping timeout: 248 seconds) |
2025-03-26 05:22:30 +0100 | <meejah> | Aaaaa |
2025-03-26 05:22:50 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 05:26:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 05:27:38 +0100 | sp1ff | (~user@c-67-160-173-55.hsd1.wa.comcast.net) sp1ff |
2025-03-26 05:31:05 +0100 | michalz | (~michalz@185.246.207.221) |
2025-03-26 05:31:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-26 05:37:31 +0100 | monochrom | (trebla@216.138.220.146) (Quit: ZNC 1.9.1+deb1 - https://znc.in) |
2025-03-26 05:42:42 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 05:46:16 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2025-03-26 05:47:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 05:52:49 +0100 | michalz | (~michalz@185.246.207.221) (Quit: ZNC 1.9.1 - https://znc.in) |
2025-03-26 05:53:53 +0100 | monochrom | (trebla@216.138.220.146) |
2025-03-26 05:57:14 +0100 | michalz | (~michalz@185.246.207.218) |
2025-03-26 05:58:27 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 05:58:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:02:56 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 06:04:04 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.5.2) |
2025-03-26 06:05:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-03-26 06:12:43 +0100 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-03-26 06:13:56 +0100 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 265 seconds) |
2025-03-26 06:14:25 +0100 | Vajb | (~Vajb@n83sqe30rcw6481fyv6-1.v6.elisa-mobile.fi) (Remote host closed the connection) |
2025-03-26 06:14:48 +0100 | Vajb | (~Vajb@n83sqe30rcw6481fyv6-1.v6.elisa-mobile.fi) |
2025-03-26 06:16:11 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:21:01 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Ping timeout: 244 seconds) |
2025-03-26 06:21:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-03-26 06:23:06 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-03-26 06:26:25 +0100 | wil | (~wil@syn-035-148-093-061.res.spectrum.com) |
2025-03-26 06:30:27 +0100 | wil | (~wil@syn-035-148-093-061.res.spectrum.com) (Client Quit) |
2025-03-26 06:32:00 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:36:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-03-26 06:43:51 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 06:47:22 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:48:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
2025-03-26 06:53:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 06:59:18 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection) |
2025-03-26 07:00:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:05:14 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 07:06:24 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden |
2025-03-26 07:11:16 +0100 | takuan | (~takuan@d8D86B601.access.telenet.be) |
2025-03-26 07:14:16 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) ru0mad |
2025-03-26 07:16:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:20:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 07:29:15 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 07:31:46 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:34:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-03-26 07:36:16 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-03-26 07:36:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 07:47:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:51:55 +0100 | aetepe | (~aetepe@176.54.108.86) aetepe |
2025-03-26 07:52:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 07:58:18 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2025-03-26 08:00:02 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-03-26 08:00:58 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-03-26 08:03:20 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 08:03:21 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2025-03-26 08:03:48 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2025-03-26 08:03:59 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) (Ping timeout: 260 seconds) |
2025-03-26 08:06:13 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-03-26 08:07:57 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2025-03-26 08:08:09 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 08:08:16 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-03-26 08:14:19 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 08:15:01 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-03-26 08:16:08 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2025-03-26 08:16:23 +0100 | Lord_of_Life_ | Lord_of_Life |
2025-03-26 08:18:22 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) ru0mad |
2025-03-26 08:18:47 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-26 08:19:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 08:19:12 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 08:20:41 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-03-26 08:24:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-03-26 08:34:57 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 08:38:25 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) (Ping timeout: 248 seconds) |
2025-03-26 08:42:02 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-03-26 08:54:30 +0100 | storopoli | (m-h2v7u5@user/storopoli) storopoli |
2025-03-26 08:55:46 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-03-26 08:59:23 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 09:01:09 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f691c99ba8b65f3988d.dip0.t-ipconnect.de) acidjnk |
2025-03-26 09:02:53 +0100 | yahb2 | (~yahb2@user/tomsmeding/bot/yahb2) (Remote host closed the connection) |
2025-03-26 09:02:58 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-03-26 09:03:05 +0100 | yahb2 | (~yahb2@user/tomsmeding/bot/yahb2) yahb2 |
2025-03-26 09:03:05 +0100 | ChanServ | +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 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 09:04:26 +0100 | aetepe | (~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 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
2025-03-26 09:05:38 +0100 | aetepe | (~aetepe@188.119.22.83) aetepe |
2025-03-26 09:06:10 +0100 | <mauke> | classic central europe |
2025-03-26 09:06:32 +0100 | aman | (~aman@user/aman) aman |
2025-03-26 09:06:39 +0100 | peterbecich | (~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 +0100 | storopoli | (m-h2v7u5@user/storopoli) (Ping timeout: 244 seconds) |
2025-03-26 09:11:21 +0100 | lortabac | (~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 +0100 | ft | (~ft@p508db463.dip0.t-ipconnect.de) (Quit: leaving) |
2025-03-26 09:18:58 +0100 | storopoli | (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 +0100 | tomsmeding | . o O ( all of them ) |
2025-03-26 09:25:16 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 09:30:20 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Remote host closed the connection) |
2025-03-26 09:30:47 +0100 | hattckory | (~hattckory@70.27.118.207) |
2025-03-26 09:34:00 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) |
2025-03-26 09:34:50 +0100 | storopoli | (m-h2v7u5@user/storopoli) () |
2025-03-26 09:35:24 +0100 | hattckory | (~hattckory@70.27.118.207) (Ping timeout: 260 seconds) |
2025-03-26 09:39:36 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 09:43:40 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2025-03-26 09:45:00 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds) |
2025-03-26 09:45:06 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 09:49:08 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 245 seconds) |
2025-03-26 09:56:25 +0100 | chele | (~chele@user/chele) chele |
2025-03-26 09:57:58 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2025-03-26 09:59:03 +0100 | zungi | (~tory@user/andrewchawk) (Remote host closed the connection) |
2025-03-26 09:59:27 +0100 | zungi | (~tory@user/andrewchawk) andrewchawk |
2025-03-26 10:03:12 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Ping timeout: 276 seconds) |
2025-03-26 10:05:21 +0100 | akegalj | (~akegalj@89-172-183-68.adsl.net.t-com.hr) akegalj |
2025-03-26 10:18:10 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 244 seconds) |
2025-03-26 10:18:36 +0100 | Digit | (~user@user/digit) (Read error: Connection reset by peer) |
2025-03-26 10:19:27 +0100 | Digit | (~user@user/digit) Digit |
2025-03-26 10:21:30 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 10:25:08 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2025-03-26 10:27:46 +0100 | Digit | (~user@user/digit) (Ping timeout: 244 seconds) |
2025-03-26 10:30:51 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 10:30:51 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2025-03-26 10:32:16 +0100 | Digitteknohippie | Digit |
2025-03-26 10:35:11 +0100 | alfiee | (~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 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-03-26 10:39:30 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) |
2025-03-26 10:40:14 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-03-26 10:46:54 +0100 | hattckory | (~hattckory@70.27.118.207) |
2025-03-26 10:51:49 +0100 | hattckory | (~hattckory@70.27.118.207) (Ping timeout: 260 seconds) |
2025-03-26 10:53:48 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2) |
2025-03-26 11:04:09 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2025-03-26 11:05:37 +0100 | dsrt^ | (dsrt@c-71-199-187-173.hsd1.ga.comcast.net) (Ping timeout: 252 seconds) |
2025-03-26 11:05:53 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 11:06:48 +0100 | orslon^ | (dehsou@c-71-199-187-173.hsd1.ga.comcast.net) (Ping timeout: 272 seconds) |
2025-03-26 11:16:15 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 11:20:44 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-03-26 11:23:30 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 11:30:23 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 268 seconds) |
2025-03-26 11:33:24 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 11:33:33 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds) |
2025-03-26 11:33:45 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 11:37:04 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 11:39:44 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Quit: ash3en) |
2025-03-26 11:42:22 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 11:45:40 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 11:46:20 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Remote host closed the connection) |
2025-03-26 11:48:15 +0100 | coldtom8 | (~coldtom@coldrick.cc) coldtom |
2025-03-26 11:48:49 +0100 | coldtom8 | (~coldtom@coldrick.cc) () |
2025-03-26 11:49:53 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds) |
2025-03-26 11:56:21 +0100 | dhil | (~dhil@2a0c:b381:52e:3600:79cd:9b5b:3ea2:beda) dhil |
2025-03-26 11:57:03 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | xff0x | (~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 +0100 | alfiee | (~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 +0100 | fp | (~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 +0100 | infinity0 | (~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 +0100 | merijn | (~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 +0100 | alfiee | (~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 +0100 | haskellbridge | Man 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 +0100 | merijn | (~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 +0100 | infinity0 | (~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 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 12:29:24 +0100 | xff0x | (~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 +0100 | alp | (~alp@2001:861:8ca0:4940:dd1f:b4e6:4fbb:e5d8) |
2025-03-26 12:31:31 +0100 | haritz | (~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 +0100 | saimazoon | (~hrtz@user/haritz) (Ping timeout: 272 seconds) |
2025-03-26 12:33:22 +0100 | haritz | (~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737) (Changing host) |
2025-03-26 12:33:22 +0100 | haritz | (~hrtz@user/haritz) haritz |
2025-03-26 12:39:39 +0100 | notdabs | (~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 +0100 | machinedgod | (~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 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 12:46:44 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 12:47:29 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-03-26 12:50:53 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 12:55:03 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-03-26 12:55:27 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds) |
2025-03-26 13:01:57 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 13:02:38 +0100 | cross | (~cross@spitfire.i.gajendra.net) cross |
2025-03-26 13:05:21 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 268 seconds) |
2025-03-26 13:05:34 +0100 | ethantwardy | (user@user/ethantwardy) (Quit: WeeChat 4.4.2) |
2025-03-26 13:06:09 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2025-03-26 13:07:20 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 13:07:31 +0100 | ethantwardy | (user@user/ethantwardy) ethantwardy |
2025-03-26 13:12:24 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 260 seconds) |
2025-03-26 13:13:58 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Ping timeout: 252 seconds) |
2025-03-26 13:14:51 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 13:17:39 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 260 seconds) |
2025-03-26 13:18:03 +0100 | inca | (~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 +0100 | xff0x | (~xff0x@2405:6580:b080:900:d2df:bcfa:d5c3:4ebd) |
2025-03-26 13:22:13 +0100 | alp | (~alp@2001:861:8ca0:4940:dd1f:b4e6:4fbb:e5d8) (Ping timeout: 248 seconds) |
2025-03-26 13:23:30 +0100 | Shsl-Junko-POSER | (~Shsl-Junk@50.235.208.178) |
2025-03-26 13:26:39 +0100 | CiaoSen | (~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 +0100 | alfiee | (~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 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
2025-03-26 13:36:48 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 268 seconds) |
2025-03-26 13:37:01 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 13:38:53 +0100 | Shsl-Junko-POSER | (~Shsl-Junk@50.235.208.178) (Quit: Client closed) |
2025-03-26 13:39:04 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 13:40:00 +0100 | Shsl-Junko-POSER | (~Shsl-Junk@50.235.208.178) |
2025-03-26 13:41:46 +0100 | Shsl-Junko-POSER | (~Shsl-Junk@50.235.208.178) (Client Quit) |
2025-03-26 13:41:54 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds) |
2025-03-26 13:42:33 +0100 | Putonlalla | (~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 252 seconds) |
2025-03-26 13:43:02 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 13:44:10 +0100 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |
2025-03-26 13:45:12 +0100 | zungi | (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
2025-03-26 13:52:09 +0100 | zungi | (~tory@user/andrewchawk) andrewchawk |
2025-03-26 13:56:53 +0100 | akegalj | (~akegalj@89-172-183-68.adsl.net.t-com.hr) (Ping timeout: 248 seconds) |
2025-03-26 13:59:30 +0100 | Square | (~Square@user/square) Square |
2025-03-26 14:01:15 +0100 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-03-26 14:02:08 +0100 | yangby | (~secret@115.205.72.232) (Quit: Go out for a walk and buy a drink.) |
2025-03-26 14:02:11 +0100 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
2025-03-26 14:04:08 +0100 | Square | (~Square@user/square) (Ping timeout: 245 seconds) |
2025-03-26 14:04:20 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-26 14:05:46 +0100 | jespada | (~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 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 14:23:40 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-26 14:30:20 +0100 | ethantwardy | (user@user/ethantwardy) (Remote host closed the connection) |
2025-03-26 14:30:45 +0100 | ethantwardy | (user@user/ethantwardy) ethantwardy |
2025-03-26 14:30:48 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
2025-03-26 14:32:18 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 14:35:45 +0100 | haritz | saimazoon |
2025-03-26 14:36:01 +0100 | j0lol | (~j0lol@132.145.17.236) (Remote host closed the connection) |
2025-03-26 14:36:15 +0100 | j0lol | (~j0lol@132.145.17.236) j0lol |
2025-03-26 14:41:09 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2025-03-26 14:44:17 +0100 | Chai-T-Rex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2025-03-26 14:44:36 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Ping timeout: 264 seconds) |
2025-03-26 14:45:12 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 264 seconds) |
2025-03-26 14:45:46 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) chiselfuse |
2025-03-26 14:50:22 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 14:50:33 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 14:54:29 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 14:54:54 +0100 | akegalj | (~akegalj@89-172-183-68.adsl.net.t-com.hr) |
2025-03-26 14:55:54 +0100 | j0lol | (~j0lol@132.145.17.236) (Remote host closed the connection) |
2025-03-26 14:56:56 +0100 | j0lol | (~j0lol@132.145.17.236) j0lol |
2025-03-26 15:03:43 +0100 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 245 seconds) |
2025-03-26 15:04:36 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 15:08:44 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-26 15:10:00 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-03-26 15:20:10 +0100 | Putonlalla | (~Putonlall@it-cyan.it.jyu.fi) Tuplanolla |
2025-03-26 15:20:25 +0100 | jespada | (~jespada@2800:a4:2211:7600:7570:cffe:6554:643e) (Ping timeout: 244 seconds) |
2025-03-26 15:24:16 +0100 | jespada | (~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) jespada |
2025-03-26 15:24:33 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
2025-03-26 15:45:26 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en |
2025-03-26 15:46:18 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 268 seconds) |
2025-03-26 15:50:20 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 15:52:23 +0100 | tjbc | (~tjbc@user/fliife) (Quit: ZNC - https://znc.in) |
2025-03-26 15:54:21 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
2025-03-26 15:55:06 +0100 | tjbc | (~tjbc@user/fliife) fliife |
2025-03-26 15:55:19 +0100 | fp | (~Thunderbi@130.233.70.95) fp |
2025-03-26 15:59:01 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2025-03-26 16:02:19 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-03-26 16:08:36 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 16:12:00 +0100 | Guest52 | (~Guest52@pool1.cscotesud.qc.ca) |
2025-03-26 16:14:34 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
2025-03-26 16:14:36 +0100 | califax | (~califax@user/califx) (Ping timeout: 264 seconds) |
2025-03-26 16:14:48 +0100 | califax_ | (~califax@user/califx) califx |
2025-03-26 16:16:00 +0100 | califax_ | califax |
2025-03-26 16:16:23 +0100 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
2025-03-26 16:20:34 +0100 | Guest52 | (~Guest52@pool1.cscotesud.qc.ca) (Quit: Client closed) |
2025-03-26 16:25:25 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 16:29:02 +0100 | aforemny | (~aforemny@2001:9e8:6cc1:be00:edce:fe13:a80e:d4b5) aforemny |
2025-03-26 16:29:10 +0100 | aforemny_ | (~aforemny@2001:9e8:6cfa:db00:13b6:4544:c45d:3975) (Ping timeout: 272 seconds) |
2025-03-26 16:36:04 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 16:40:17 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 16:40:44 +0100 | jespada | (~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-03-26 16:50:08 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-03-26 16:53:36 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
2025-03-26 16:56:00 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2025-03-26 17:00:14 +0100 | ash3en1 | (~Thunderbi@185.209.196.192) ash3en |
2025-03-26 17:01:33 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
2025-03-26 17:01:33 +0100 | ash3en1 | ash3en |
2025-03-26 17:01:55 +0100 | ubert | (~Thunderbi@2a02:8109:ab8a:5a00:aafc:8aeb:2c4:160b) ubert |
2025-03-26 17:05:17 +0100 | lortabac | (~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 +0100 | ljdarj | (~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 +0100 | alfiee | (~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 +0100 | bitdex | (~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 +0100 | alfiee | (~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 +0100 | chexum | (~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 +0100 | fp | (~Thunderbi@130.233.70.95) (Ping timeout: 252 seconds) |
2025-03-26 17:48:59 +0100 | Googulator | (~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-26 17:49:14 +0100 | Googulator | (~Googulato@85-238-67-46.pool.digikabel.hu) |
2025-03-26 17:52:21 +0100 | jespada | (~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 +0100 | Googulator | (~Googulato@85-238-67-46.pool.digikabel.hu) (Quit: Client closed) |
2025-03-26 18:00:24 +0100 | Googulator | (~Googulato@85-238-67-46.pool.digikabel.hu) |