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) |
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 +0100 | ft | (~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 +0100 | juri_ | (~juri@implicitcad.org) (Ping timeout: 244 seconds) |
2025-03-26 18:08:51 +0100 | alfiee | (~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 +0100 | alfiee | (~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 +0100 | ubert | (~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 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 272 seconds) |
2025-03-26 18:24:22 +0100 | akegalj | (~akegalj@89-172-183-68.adsl.net.t-com.hr) (Quit: leaving) |
2025-03-26 18:24:58 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 245 seconds) |
2025-03-26 18:25:46 +0100 | Guest28 | (~Guest13@2405:201:3039:d02b:dde6:13b3:a1d9:197c) |
2025-03-26 18:26:30 +0100 | Guest28 | (~Guest13@2405:201:3039:d02b:dde6:13b3:a1d9:197c) (Client Quit) |
2025-03-26 18:28:14 +0100 | jespada_ | (~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) jespada |
2025-03-26 18:29:05 +0100 | jespada | (~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) (Ping timeout: 265 seconds) |
2025-03-26 18:29:09 +0100 | kuribas | (~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 +0100 | chele | (~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 +0100 | jespada_ | (~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 +0100 | Googulator | (~Googulato@85-238-67-46.pool.digikabel.hu) (Quit: Client closed) |
2025-03-26 18:35:52 +0100 | Googulator | (~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 |
2025-03-26 18:36:30 +0100 | <EvanR> | libc is a weird dependency? |
2025-03-26 18:36:55 +0100 | <EvanR> | this seems to be taking "no dependencies" a bit far |
2025-03-26 18:37:13 +0100 | <haskellbridge> | <Morj> WDYM go through the OS? Which part of OS do syscalls go through if not the kernel? |
2025-03-26 18:38:23 +0100 | <haskellbridge> | <Morj> > libc is a weird dependency? |
2025-03-26 18:38:23 +0100 | <haskellbridge> | Libc is an ok dependency, curses/tinfo less so |
2025-03-26 18:39:22 +0100 | <haskellbridge> | <Morj> Ok ok, I've heard recently that it was different in the nineties, when terminals really didn't agree on ansi conventions, so you used curses to do basically anything |
2025-03-26 18:39:33 +0100 | <EvanR> | rewriting terminal interfacing code for each terminal for each OS sounds terrible |
2025-03-26 18:40:02 +0100 | <haskellbridge> | <Morj> I did both that and used ncurses, and let me tell you which one is worse :D |
2025-03-26 18:40:28 +0100 | <EvanR> | hold on, are you a rust guy |
2025-03-26 18:40:37 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 18:40:37 +0100 | <haskellbridge> | <Morj> Haskll and rust, why |
2025-03-26 18:40:48 +0100 | <haskellbridge> | <Morj> I mean, I'm not developing either language |
2025-03-26 18:41:04 +0100 | <EvanR> | delete and rewrite everything I don't know, checks out xD |
2025-03-26 18:41:09 +0100 | <haskellbridge> | <Morj> :D |
2025-03-26 18:41:21 +0100 | <EvanR> | then what is the haskell connection here |
2025-03-26 18:41:30 +0100 | <haskellbridge> | <Morj> I want to say, it's because of ncurses that 'less' is fucked up in my ghostty terminal, and because of not using ncurses neovim works fine |
2025-03-26 18:42:33 +0100 | <haskellbridge> | <Morj> I don't want to rewrite anything, just have less reliance on the C build system |
2025-03-26 18:42:40 +0100 | <haskellbridge> | <Morj> s/anything/everything/ |
2025-03-26 18:44:05 +0100 | <EvanR> | GHC is pretty reliant on C support I think |
2025-03-26 18:44:38 +0100 | <EvanR> | you see people using c preprocessor in their haskell code! |
2025-03-26 18:44:39 +0100 | <haskellbridge> | <Morj> > then what is the haskell connection here |
2025-03-26 18:44:39 +0100 | <haskellbridge> | I just don't want to install libtinfo and libdw when I want to compile haskell code |
2025-03-26 18:44:58 +0100 | <haskellbridge> | <Morj> > GHC is pretty reliant on C support I think |
2025-03-26 18:44:58 +0100 | <haskellbridge> | Yeah, but you could do it multiple ways |
2025-03-26 18:45:00 +0100 | <EvanR> | I don't recall doing that ... |
2025-03-26 18:45:19 +0100 | <EvanR> | sounds like a specific application that uses those |
2025-03-26 18:45:19 +0100 | <haskellbridge> | <Morj> Afaik ghc doesn't literally use cpp executable, it implements their own? |
2025-03-26 18:46:02 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
2025-03-26 18:46:06 +0100 | <haskellbridge> | <Morj> This application is called HRT >_< |
2025-03-26 18:46:11 +0100 | <haskellbridge> | <Morj> Uh haskell runtime |
2025-03-26 18:46:15 +0100 | <haskellbridge> | <Morj> What's the abbreviation |
2025-03-26 18:46:21 +0100 | <geekosaur> | ghc uses cc -E |
2025-03-26 18:46:24 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 18:46:43 +0100 | <EvanR> | you can choose which the particular program to run for C preprocessing |
2025-03-26 18:46:57 +0100 | <EvanR> | so you can pick the one rewritten in rust! |
2025-03-26 18:46:57 +0100 | <geekosaur> | haskell runtime is RTS, aka the `rts-1.0.x` package |
2025-03-26 18:47:13 +0100 | <haskellbridge> | <Morj> > ghc uses cc -E |
2025-03-26 18:47:13 +0100 | <haskellbridge> | Damn |
2025-03-26 18:47:31 +0100 | <haskellbridge> | <Morj> > so you can pick the one rewritten in rust! |
2025-03-26 18:47:31 +0100 | <haskellbridge> | I want to pick neither! I want it to be embedded! |
2025-03-26 18:47:35 +0100 | <EvanR> | why |
2025-03-26 18:47:51 +0100 | <haskellbridge> | <Morj> Because the more external parts you have, the more likely the breakage |
2025-03-26 18:48:00 +0100 | <haskellbridge> | <Morj> Yes, it gives flexibility, but who really uses it anyway? |
2025-03-26 18:48:23 +0100 | <haskellbridge> | <Morj> A bit hypocritic of me saying that when I advocate KDE over gnome for flexibility, I know |
2025-03-26 18:48:43 +0100 | <EvanR> | since a C preprocessor is ridiculously standard, it's would be a waste to rewrite it |
2025-03-26 18:49:15 +0100 | <haskellbridge> | <Morj> It also wouldn't be hard. Alright alright, maybe at least bundle it then and use it as default? |
2025-03-26 18:49:21 +0100 | <EvanR> | lol |
2025-03-26 18:49:29 +0100 | <EvanR> | you should get on that |
2025-03-26 18:49:35 +0100 | <haskellbridge> | <Morj> Yeah! |
2025-03-26 18:49:44 +0100 | <haskellbridge> | <Morj> See me in a week in ghc gitlab |
2025-03-26 18:50:05 +0100 | <haskellbridge> | <Morj> Well, bundling tinfo wouldn't work though, and my bigger problem is with it |
2025-03-26 18:50:36 +0100 | olivial | (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
2025-03-26 18:50:52 +0100 | olivial | (~benjaminl@user/benjaminl) benjaminl |
2025-03-26 18:50:52 +0100 | <haskellbridge> | <Morj> Or, hm, I think it would, aren't the terminfo databases also populated by tinfo creators, not distro maintainers? |
2025-03-26 18:51:18 +0100 | <geekosaur> | people often use `cpphs` on Macs because `clang -traditional` isn't, quite (see https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/SysTools/Cpp.hs?ref_type=heads#L49) |
2025-03-26 18:51:35 +0100 | <yin> | why would you assume that something is more prone to breakage my not being monolithic? |
2025-03-26 18:51:42 +0100 | <yin> | seems like a strong assumption |
2025-03-26 18:51:57 +0100 | <yin> | s/my/by |
2025-03-26 18:51:59 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2025-03-26 18:51:59 +0100 | <geekosaur> | as to "wouldn't be hard", ask the cpphs folks about that one 🙂 |
2025-03-26 18:52:50 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 248 seconds) |
2025-03-26 18:53:18 +0100 | <haskellbridge> | <Morj> > why would you assume that something is more prone to breakage my not being monolithic? |
2025-03-26 18:53:18 +0100 | <haskellbridge> | I'm thinking of two specific breakages: trying to use an external tool that doesn't exist in the environment, and using a tool from env which is not compatible with your usage with it. These breakages don't exist with internal/bundled tools |
2025-03-26 18:54:37 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 18:54:43 +0100 | <haskellbridge> | <Morj> > as to "wouldn't be hard", ask the cpphs folks about that one 🙂 |
2025-03-26 18:54:43 +0100 | <haskellbridge> | This one? https://github.com/malcolmwallace/cpphs - empty, but the issue tracker is still there |
2025-03-26 18:54:45 +0100 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
2025-03-26 18:55:20 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-03-26 18:55:41 +0100 | <yin> | Morj: i see what you mean now. the problem is not having dependencies then, it's how bad we are at managing them |
2025-03-26 18:56:30 +0100 | <haskellbridge> | <Morj> I agree |
2025-03-26 18:56:51 +0100 | <haskellbridge> | <Morj> Maybe I'm a bit too bought into the idea that the best way to manage dependencies is to get rid of the external ones |
2025-03-26 18:56:56 +0100 | <geekosaur> | https://github.com/hackage-trustees/malcolm-wallace-universe is the current repo, it seems |
2025-03-26 18:58:22 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2025-03-26 18:58:22 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 18:58:31 +0100 | <yin> | Morj: then I would argue that the solution is not to make programs bigger but the opposite: make them smaller and easier to manage |
2025-03-26 18:58:43 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 245 seconds) |
2025-03-26 18:58:47 +0100 | <EvanR> | I would rather depend on sqlite than rewrite it |
2025-03-26 18:59:00 +0100 | <EvanR> | solid stuff |
2025-03-26 18:59:06 +0100 | <EvanR> | also zlib |
2025-03-26 18:59:15 +0100 | <haskellbridge> | <Morj> Making programs and managing programs seems orthogonal to me. I have nothing against giant or small deps as long as they are on hackage and not in pkg-config |
2025-03-26 18:59:16 +0100 | <geekosaur> | IMO the real problem isn't how we get CPP, it's that we use it at all. it's intended for C, after all, and it's a pretty bad fit for Haskell |
2025-03-26 18:59:42 +0100 | <haskellbridge> | <Morj> > I would rather depend on sqlite than rewrite it |
2025-03-26 18:59:42 +0100 | <haskellbridge> | I agree! I disagree with blindly setting '--link-options=-lsqlite' and praying |
2025-03-26 18:59:51 +0100 | <geekosaur> | doesn't like ticked identifiers, doesn't like MagicHash, doesn't like string gaps (granting that a large chunk of the userbase agrees with it there), etc. |
2025-03-26 18:59:51 +0100 | <EvanR> | every time you rewrite a thing there is costs and risks |
2025-03-26 19:00:15 +0100 | <haskellbridge> | <Morj> That's why in my software I bundle both zlib and sqlite |
2025-03-26 19:00:21 +0100 | <EvanR> | blindly setting --link-options=-lsqlite what are you even talking about |
2025-03-26 19:00:34 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-03-26 19:00:37 +0100 | Chai-T-Rex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2025-03-26 19:01:02 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2025-03-26 19:01:23 +0100 | <haskellbridge> | <Morj> > what are you even talking about |
2025-03-26 19:01:23 +0100 | <haskellbridge> | There are many projects in git forges where build instructions start with "Install libthis and libthat. You need to figure out how they are named in your distro yourself". This is suboptimal |
2025-03-26 19:01:24 +0100 | ash3en | (~Thunderbi@185.209.196.192) (Ping timeout: 260 seconds) |
2025-03-26 19:01:29 +0100 | <EvanR> | but you seemed to shift from being against third party deps to being for bundling |
2025-03-26 19:02:14 +0100 | <yin> | geekosaur: what are string gaps? |
2025-03-26 19:02:28 +0100 | <haskellbridge> | <Morj> Yeah, I guess my argument got mangled by my hatred of ncurses |
2025-03-26 19:02:40 +0100 | <EvanR> | I'm surprised that CPP even works on haskell |
2025-03-26 19:03:33 +0100 | <haskellbridge> | <Bowuigi> Morj That's because there are a lot of distros with different packaging conventions. The issue there is that C relies too much on distro packaging because it's packaging support is basically nonexistent |
2025-03-26 19:03:46 +0100 | <geekosaur> | you can embed ignored whitespace (and specifically, newlines) in a string by surrounding it with \ |
2025-03-26 19:04:00 +0100 | <EvanR> | and if you ask ##c they will say package management for the language would be a terrible idea |
2025-03-26 19:04:06 +0100 | <EvanR> | (or any programming language) |
2025-03-26 19:04:09 +0100 | <geekosaur> | https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L127-L128 for example |
2025-03-26 19:04:13 +0100 | <haskellbridge> | <Morj> Bowuigi: Exactly! And since we're not programming in C (mostly), we can replace those conventions with something better |
2025-03-26 19:04:26 +0100 | <EvanR> | I'm mostly programming in C |
2025-03-26 19:05:00 +0100 | <haskellbridge> | <Morj> One solution is bundling/vendoring. One other solution is using build2. Yet another solution is nix |
2025-03-26 19:05:09 +0100 | <haskellbridge> | <Bowuigi> It would free maintainers from doing that, which would be wonderful for everyone because distros would only have to provide binaries or simple build scripts instead of coordinating around poor tooling |
2025-03-26 19:08:03 +0100 | <haskellbridge> | <Bowuigi> vcpkg is probably the most popular solution to the C packaging problem. Never tried it but it shouldn't be too bad |
2025-03-26 19:10:21 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2025-03-26 19:14:37 +0100 | <EvanR> | dependency manager from microsoft |
2025-03-26 19:14:56 +0100 | sprotte24 | (~sprotte24@p200300d16f097d007520d57df2b917ec.dip0.t-ipconnect.de) |
2025-03-26 19:14:59 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2025-03-26 19:17:00 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
2025-03-26 19:17:30 +0100 | <haskellbridge> | <Morj> Does it install mscrt or does it require it |
2025-03-26 19:18:13 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) robobub |
2025-03-26 19:29:13 +0100 | jespada | (~jespada@2800:a4:2263:8100:f927:2b9e:1735:aa6a) jespada |
2025-03-26 19:29:25 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2025-03-26 19:31:39 +0100 | <yin> | geekosaur: i remember someone pushing for a language extension that allows for yet another way to do multi-line strings |
2025-03-26 19:32:02 +0100 | <yin> | quite recently. can't recall the name of the extension |
2025-03-26 19:32:03 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-03-26 19:33:22 +0100 | <geekosaur> | MultilineStrings and it's in as of 9.12 |
2025-03-26 19:33:49 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2025-03-26 19:35:00 +0100 | <yin> | that's the one. seems redundant |
2025-03-26 19:35:18 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2025-03-26 19:35:32 +0100 | <geekosaur> | it is, but apparently nobody but me considers string gaps usable |
2025-03-26 19:36:10 +0100 | Digit | (~user@user/digit) (Ping timeout: 244 seconds) |
2025-03-26 19:36:17 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2025-03-26 19:37:05 +0100 | <monochrom> | I find string gaps usable. |
2025-03-26 19:37:55 +0100 | <monochrom> | But here-doc syntax would be nicer. :) |
2025-03-26 19:38:10 +0100 | <yin> | i'm always amazed at how we the mountain of extensions keeps rising without much conflict |
2025-03-26 19:39:02 +0100 | <yin> | and how little syntactic minimalism is valued |
2025-03-26 19:39:18 +0100 | <monochrom> | Probably just because chronologically every extension must first prove itself to be compatible (or almost) with older extensions. |
2025-03-26 19:41:01 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 19:44:46 +0100 | <haskellbridge> | <Bowuigi> Small aside, do allocations in linear languages correspond to variable copying (+ an initial pool)? |
2025-03-26 19:45:28 +0100 | <haskellbridge> | <Bowuigi> Because the evidence translation technique from the Gaster & Jones paper on row types looks suspiciously similar to an arena/bump allocator |
2025-03-26 19:45:30 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-03-26 19:46:17 +0100 | <haskellbridge> | <Bowuigi> And if that's the case, arena allocators should be easy to automatically insert on linear languages. That could make Perceus fast or something |
2025-03-26 19:46:58 +0100 | <monochrom> | OK the annoying part of string gaps that is relieved by MultilineStrings is that I have to manually enter \n for the former when I want it. |
2025-03-26 19:47:34 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 19:48:52 +0100 | <monochrom> | It is not a big deal to me, but I can see that a lot of other people can't stand it. (Hell, they can't even stand a half-pixel difference in 1pt fonts.) |
2025-03-26 19:49:48 +0100 | <EvanR> | I can't stand a 1/2 pixel difference on my 3 subpixels |
2025-03-26 19:50:49 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-03-26 19:51:10 +0100 | <geekosaur> | well, part of it is many syntax color mechanisms fail badly with them |
2025-03-26 19:51:24 +0100 | <geekosaur> | but IMO that's their fault, not that of string gaps |
2025-03-26 19:52:25 +0100 | ash3en | (~Thunderbi@185.209.196.192) ash3en |
2025-03-26 19:52:47 +0100 | <monochrom> | It's why whenever someone posts something on pastebin.com, I just click "raw" and be done with it. |
2025-03-26 19:53:29 +0100 | <monochrom> | Do people even first check whether their post is readable before sharing the link? I guess they don't care. |
2025-03-26 19:58:15 +0100 | sarna | (~sarna@d192-22.icpnet.pl) () |
2025-03-26 19:59:44 +0100 | jco | (~jco@78-70-217-44-no600.tbcn.telia.com) jco |
2025-03-26 20:00:08 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-03-26 20:00:12 +0100 | zungi | (~tory@user/andrewchawk) (Ping timeout: 264 seconds) |
2025-03-26 20:00:49 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-03-26 20:03:50 +0100 | rvalue- | (~rvalue@user/rvalue) rvalue |
2025-03-26 20:04:22 +0100 | <yin> | we should have language contractions, where features could be optionally removed from the language, and then have the most popular retractions crystalize with new language versions |
2025-03-26 20:04:41 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 268 seconds) |
2025-03-26 20:08:07 +0100 | <yin> | the more i think of it the less i find arguments against it |
2025-03-26 20:08:49 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2025-03-26 20:10:27 +0100 | rvalue- | rvalue |
2025-03-26 20:11:04 +0100 | <monochrom> | I can. Half of the language is removed, and the remaining half is not even what I want. OK I'm just joking. >:) |
2025-03-26 20:11:12 +0100 | <EvanR> | it would be simpler to just ignore parts of the language |
2025-03-26 20:11:42 +0100 | <EvanR> | like simplehaskell.org |
2025-03-26 20:12:36 +0100 | <monochrom> | It doesn't really state which parts to ignore. |
2025-03-26 20:13:01 +0100 | <monochrom> | It states a vision that by now has long fizzled. |
2025-03-26 20:13:31 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
2025-03-26 20:14:45 +0100 | <EvanR> | I scrolled down to see what to ignore |
2025-03-26 20:14:51 +0100 | <monochrom> | It is still valuable to declare what you ignore, and the machine checks that you really haven't used that. |
2025-03-26 20:14:55 +0100 | <EvanR> | I found kind of a ridiculous list |
2025-03-26 20:15:02 +0100 | <EvanR> | https://gist.github.com/mightybyte/6c469c125eb50e0c2ebf4ae26b5adfff |
2025-03-26 20:15:09 +0100 | <geekosaur> | you can sort of do that with hlint btw |
2025-03-26 20:15:31 +0100 | <EvanR> | OverloadedStrings is in level 0 "use at will never causes problems" category |
2025-03-26 20:15:49 +0100 | <haskellbridge> | <Morj> A weak version of antifeatures is warnings, like -Wincomplete-record-updates |
2025-03-26 20:15:58 +0100 | <EvanR> | RankNTypes? I mean yes, it's great. Is it simple haskell though? |
2025-03-26 20:16:39 +0100 | <geekosaur> | -XHaskell98, no extensions 🙂 |
2025-03-26 20:17:10 +0100 | <geekosaur> | (except hierarchical modules and maybe FFI) |
2025-03-26 20:17:24 +0100 | <EvanR> | OverlappingInstances is lumped into the same "don't use this" as DataKinds |
2025-03-26 20:17:57 +0100 | <EvanR> | and StrictData |
2025-03-26 20:18:22 +0100 | <monochrom> | If you s/simple haskell/industrial haskell/ you begin to see why, for example, OverloadedStrings makes it into level 0. |
2025-03-26 20:18:57 +0100 | <EvanR> | MultiWayIf is "still undecided" |
2025-03-26 20:19:11 +0100 | <EvanR> | which is purely syntactic |
2025-03-26 20:19:15 +0100 | <EvanR> | smh |
2025-03-26 20:19:55 +0100 | <monochrom> | -WYouWroteYourOwnRecursion |
2025-03-26 20:23:46 +0100 | Digitteknohippie | Digit |
2025-03-26 20:23:53 +0100 | <EvanR> | according to the comments, what got included in GHC2021 was up to the votes of 11 people |
2025-03-26 20:24:02 +0100 | <EvanR> | that's so elitist |
2025-03-26 20:25:34 +0100 | <monochrom> | That's still way more people than who decide what got included in GHC. |
2025-03-26 20:26:26 +0100 | <monochrom> | which in turn is still way more than who used to decide what got included in Python. >:) |
2025-03-26 20:26:45 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 20:27:29 +0100 | <monochrom> | More voters and more equal votes would be nice, but the logistic nightmare of running the voting process... |
2025-03-26 20:27:34 +0100 | <EvanR> | this number of people who decided what got included in GHC, between 1 and 11, is what? |
2025-03-26 20:30:28 +0100 | <EvanR> | that picture of the haskell committee had at least 11 |
2025-03-26 20:31:14 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
2025-03-26 20:34:58 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 20:38:54 +0100 | <mauke> | 11 people is a lot |
2025-03-26 20:42:01 +0100 | target_i | (~target_i@user/target-i/x-6023099) target_i |
2025-03-26 20:42:24 +0100 | ash3en1 | (~Thunderbi@31.16.203.214) ash3en |
2025-03-26 20:44:45 +0100 | ash3en | (~Thunderbi@185.209.196.192) (Ping timeout: 276 seconds) |
2025-03-26 20:44:45 +0100 | ash3en1 | ash3en |
2025-03-26 20:46:21 +0100 | pavonia | (~user@user/siracusa) siracusa |
2025-03-26 21:01:11 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) justsomeguy |
2025-03-26 21:03:47 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2025-03-26 21:05:34 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 21:08:27 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-26 21:10:03 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds) |
2025-03-26 21:10:04 +0100 | ljdarj1 | ljdarj |