2023-07-06 00:00:48 +0200 | acidjnk | (~acidjnk@p200300d6e7072f49514bca14a8451a2d.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-07-06 00:00:49 +0200 | <mauke> | I've only got chained and non-assoc |
2023-07-06 00:01:03 +0200 | azr4e1 | (~azr4e1@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b) (Ping timeout: 260 seconds) |
2023-07-06 00:03:46 +0200 | <monochrom> | OK Python allows what I said haha. |
2023-07-06 00:03:54 +0200 | <monochrom> | I am now trolling my students! |
2023-07-06 00:04:31 +0200 | <monochrom> | It is not everyday that Python gets something right mathematically. >:D |
2023-07-06 00:04:46 +0200 | hackyhacker | (~hackyhack@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) (Quit: The Lounge - https://thelounge.chat) |
2023-07-06 00:07:00 +0200 | hackyhacker | (~hackyhack@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) |
2023-07-06 00:10:52 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Ping timeout: 252 seconds) |
2023-07-06 00:11:10 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-07-06 00:12:02 +0200 | delYsid | (~user@user/delYsid) (ERC 5.6-git (IRC client for GNU Emacs 30.0.50)) |
2023-07-06 00:12:16 +0200 | <EvanR> | there's 8 ways to do it |
2023-07-06 00:12:26 +0200 | <EvanR> | no |
2023-07-06 00:12:32 +0200 | <EvanR> | 6 |
2023-07-06 00:12:43 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2023-07-06 00:12:43 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2023-07-06 00:12:43 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2023-07-06 00:13:05 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds) |
2023-07-06 00:16:56 +0200 | iteratee | (~kyle@162.218.222.207) (Ping timeout: 246 seconds) |
2023-07-06 00:17:19 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-07-06 00:19:12 +0200 | iteratee | (~kyle@162.218.222.207) |
2023-07-06 00:20:12 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2023-07-06 00:22:57 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2023-07-06 00:26:49 +0200 | biberu | (~biberu@user/biberu) |
2023-07-06 00:32:07 +0200 | tcard_ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Read error: Connection reset by peer) |
2023-07-06 00:32:20 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 00:32:20 +0200 | tcard_ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-07-06 00:35:16 +0200 | nick4 | (~nick@2600:100d:b12d:fc06:186c:b6b8:6a60:24ce) |
2023-07-06 00:37:31 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
2023-07-06 00:39:57 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-07-06 00:41:23 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-07-06 00:42:55 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-07-06 00:42:59 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-07-06 00:49:29 +0200 | iteratee | (~kyle@162.218.222.207) (Ping timeout: 246 seconds) |
2023-07-06 00:49:47 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) (Ping timeout: 264 seconds) |
2023-07-06 00:50:44 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) |
2023-07-06 00:51:39 +0200 | iteratee | (~kyle@162.218.222.207) |
2023-07-06 00:52:40 +0200 | azr4e1 | (~azr4e1@host86-134-72-140.range86-134.btcentralplus.com) |
2023-07-06 00:54:36 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
2023-07-06 00:55:14 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-07-06 00:55:43 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-07-06 00:55:59 +0200 | <sclv> | does anyone have example code of using http-client along with oauth? |
2023-07-06 00:56:11 +0200 | <sclv> | the oauth client is pretty undocumented |
2023-07-06 00:57:05 +0200 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2023-07-06 00:57:06 +0200 | azr4e1 | (~azr4e1@host86-134-72-140.range86-134.btcentralplus.com) (Ping timeout: 245 seconds) |
2023-07-06 01:01:34 +0200 | lainon | (~textual@c-98-54-78-2.hsd1.al.comcast.net) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2023-07-06 01:02:26 +0200 | ryantrinkle | (~ryantrink@2607:fb90:934d:c052:88ed:3f3e:ff3:5f6f) |
2023-07-06 01:09:04 +0200 | Inst_ | (~Inst@2601:6c4:4081:2fc0:f0f1:dbda:8b5c:598b) |
2023-07-06 01:12:40 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) |
2023-07-06 01:18:05 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-07-06 01:20:25 +0200 | iteratee_ | (~kyle@162.218.222.207) |
2023-07-06 01:22:16 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-07-06 01:22:49 +0200 | iteratee | (~kyle@162.218.222.207) (Ping timeout: 240 seconds) |
2023-07-06 01:23:25 +0200 | fweht | (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-07-06 01:25:12 +0200 | iteratee_ | iteratee |
2023-07-06 01:26:00 +0200 | Axma47006 | Axman6 |
2023-07-06 01:26:05 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2023-07-06 01:26:44 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-07-06 01:26:54 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2023-07-06 01:27:06 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
2023-07-06 01:28:25 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2023-07-06 01:28:53 +0200 | falafel | (~falafel@2603-7000-a700-8710-96ac-85c5-1252-d052.res6.spectrum.com) |
2023-07-06 01:29:44 +0200 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 246 seconds) |
2023-07-06 01:30:38 +0200 | nick4 | (~nick@2600:100d:b12d:fc06:186c:b6b8:6a60:24ce) (Ping timeout: 260 seconds) |
2023-07-06 01:31:27 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-177-021.46.114.pool.telefonica.de) (Ping timeout: 245 seconds) |
2023-07-06 01:36:12 +0200 | bratwurst | (~dfadsva@2604:3d09:207f:f650::a8c) |
2023-07-06 01:37:44 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-07-06 01:37:56 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 245 seconds) |
2023-07-06 01:38:19 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2023-07-06 01:41:06 +0200 | gok | (~gok@c-71-205-240-222.hsd1.co.comcast.net) (Quit: Client closed) |
2023-07-06 01:44:15 +0200 | mauke | (~mauke@user/mauke) |
2023-07-06 01:44:40 +0200 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-07-06 01:51:02 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 245 seconds) |
2023-07-06 01:51:55 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-07-06 01:52:14 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2023-07-06 01:52:17 +0200 | mei | (~mei@user/mei) |
2023-07-06 01:52:26 +0200 | mauke | (~mauke@user/mauke) |
2023-07-06 01:52:38 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-07-06 01:52:53 +0200 | <bratwurst> | i am going homeless now. i have no idea if i will ever be back |
2023-07-06 01:53:02 +0200 | <bratwurst> | thank you for talking to me and being nice |
2023-07-06 01:53:11 +0200 | <bratwurst> | it was nice share an interest with someone |
2023-07-06 01:53:19 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2023-07-06 01:53:22 +0200 | <bratwurst> | you have saved my life |
2023-07-06 01:53:34 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Remote host closed the connection) |
2023-07-06 01:53:42 +0200 | <bratwurst> | i will find a place where i can be anonymous and just interact with people online |
2023-07-06 01:53:50 +0200 | <bratwurst> | i no longer need the abusers in my life |
2023-07-06 01:53:55 +0200 | <bratwurst> | i am content to be nothing now |
2023-07-06 01:54:49 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-07-06 01:55:49 +0200 | <bratwurst> | i could've been a good programmer but people only ever attack me. so fuck everyone |
2023-07-06 01:56:33 +0200 | <bratwurst> | i put quiet on now. i really wish someone would reply. but its fine. life is an empty void |
2023-07-06 01:58:31 +0200 | <bratwurst> | you know what. i'm not going to wait for a reply. |
2023-07-06 01:58:45 +0200 | <bratwurst> | goodbye gentlefolk. a good life for you all |
2023-07-06 01:59:32 +0200 | ryantrinkle | (~ryantrink@2607:fb90:934d:c052:88ed:3f3e:ff3:5f6f) (Ping timeout: 240 seconds) |
2023-07-06 02:00:47 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 02:01:56 +0200 | falafel | (~falafel@2603-7000-a700-8710-96ac-85c5-1252-d052.res6.spectrum.com) (Ping timeout: 246 seconds) |
2023-07-06 02:03:28 +0200 | bratwurst | (~dfadsva@2604:3d09:207f:f650::a8c) (Ping timeout: 240 seconds) |
2023-07-06 02:04:25 +0200 | <DigitalKiwi> | bratwurst > hot dog |
2023-07-06 02:16:59 +0200 | tv | (~tv@user/tv) (Ping timeout: 246 seconds) |
2023-07-06 02:17:33 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 02:22:11 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 264 seconds) |
2023-07-06 02:27:54 +0200 | smalltalkman | (uid545680@id-545680.hampstead.irccloud.com) |
2023-07-06 02:33:10 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2023-07-06 02:35:02 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 250 seconds) |
2023-07-06 02:37:22 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Quit: Leaving) |
2023-07-06 02:42:30 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-07-06 02:42:30 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-07-06 02:42:30 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-07-06 02:43:33 +0200 | wroathe | (~wroathe@user/wroathe) (Client Quit) |
2023-07-06 02:43:45 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-07-06 02:43:46 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-07-06 02:43:46 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-07-06 02:45:10 +0200 | leah2 | (~leah@vuxu.org) (Ping timeout: 258 seconds) |
2023-07-06 02:45:37 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds) |
2023-07-06 02:50:48 +0200 | <EvanR> | instance Ord MeatShapes |
2023-07-06 02:54:10 +0200 | johnw | (~johnw@69.62.207.57) (Ping timeout: 246 seconds) |
2023-07-06 02:57:26 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection) |
2023-07-06 02:58:18 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) |
2023-07-06 03:03:50 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 03:07:48 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 240 seconds) |
2023-07-06 03:11:30 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-07-06 03:17:35 +0200 | npmania | (~Thunderbi@138.199.21.242) |
2023-07-06 03:17:36 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-07-06 03:19:23 +0200 | <EvanR> | in the layout algorithm detailed in the haskell report, they introduce additional tokens to the stream resulting from lexical analysis. These tokens are of the form {n} and < n >. Then the psuedo-haskell algorithm uses {n} and < n > in patterns, so it looks like these represent atomic pieces of data |
2023-07-06 03:19:26 +0200 | akadude[m] | (~akadudema@2001:470:69fc:105::2:5bf7) |
2023-07-06 03:19:37 +0200 | <EvanR> | but then they match on } and { too... |
2023-07-06 03:19:52 +0200 | <EvanR> | does {n} mean {, a number, then } or xD |
2023-07-06 03:19:55 +0200 | kleenestar[m] | (~kleenesta@2001:470:69fc:105::3:6d78) |
2023-07-06 03:22:19 +0200 | phma | (phma@2001:5b0:215a:8658:1ead:e764:9c5d:6413) (Read error: Connection reset by peer) |
2023-07-06 03:22:39 +0200 | <geekosaur> | but {n} is a single token, and as such would not be confused with the three tokens {,n,} (n being a number, yes) |
2023-07-06 03:22:45 +0200 | phma | (phma@2001:5b0:215a:8658:2ff0:2260:7332:7cdc) |
2023-07-06 03:23:29 +0200 | <geekosaur> | likewise < n > is a single token |
2023-07-06 03:23:56 +0200 | <geekosaur> | the assumption here is that a tokenization step takes place, such that this is meaningful and safe |
2023-07-06 03:25:50 +0200 | <dolio> | I think the < n > situation is just bad latex formatting. |
2023-07-06 03:26:17 +0200 | <geekosaur> | (this tokenization is probably why ghc uses happy to tokenize; its internal representation of indentation probably isn't {n} <n>, but it only needs to be equivalent to the report's description) |
2023-07-06 03:26:23 +0200 | <dolio> | They didn't do anything custom to make it look like one token. |
2023-07-06 03:28:38 +0200 | npmania | (~Thunderbi@138.199.21.242) (Quit: npmania) |
2023-07-06 03:30:08 +0200 | EvanR | (~EvanR@user/evanr) (Ping timeout: 240 seconds) |
2023-07-06 03:30:43 +0200 | <geekosaur> | he's dead, Jim! |
2023-07-06 03:32:52 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 03:35:36 +0200 | <nyc> | Does current ghc git pass all the tests from ./hadrian --freeze1 test? |
2023-07-06 03:35:55 +0200 | <geekosaur> | best asked over in #ghc |
2023-07-06 03:46:26 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 260 seconds) |
2023-07-06 03:47:58 +0200 | EvanR | (~EvanR@user/evanr) |
2023-07-06 03:50:42 +0200 | johnw | (~johnw@69.62.242.138) |
2023-07-06 03:57:19 +0200 | <EvanR> | got it thanks for clarifying |
2023-07-06 03:58:49 +0200 | monochrm | (trebla@216.138.220.146) |
2023-07-06 03:59:58 +0200 | monochrom | (trebla@216.138.220.146) (Ping timeout: 250 seconds) |
2023-07-06 03:59:58 +0200 | monochrm | monochrom |
2023-07-06 04:00:50 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds) |
2023-07-06 04:01:06 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 04:03:49 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-07-06 04:06:41 +0200 | xff0x_ | (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 245 seconds) |
2023-07-06 04:06:53 +0200 | rainbyte | (~rainbyte@181.31.239.226) |
2023-07-06 04:13:23 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-07-06 04:15:25 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-07-06 04:15:37 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-07-06 04:15:37 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-07-06 04:15:38 +0200 | finn_elija | FinnElija |
2023-07-06 04:19:08 +0200 | td_ | (~td@i53870923.versanet.de) (Ping timeout: 240 seconds) |
2023-07-06 04:19:52 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
2023-07-06 04:21:09 +0200 | td_ | (~td@i53870936.versanet.de) |
2023-07-06 04:21:20 +0200 | <talismanick> | I remember seeing someone say it's not possible to "parse with derivatives" in Haskell (extending Brzozowski from regular to CF languages with fixpoints and memoizations) |
2023-07-06 04:21:24 +0200 | <talismanick> | Why might that be? |
2023-07-06 04:21:35 +0200 | <talismanick> | (haven't actually read the paper yet) |
2023-07-06 04:29:13 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-07-06 04:35:35 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-07-06 04:39:36 +0200 | hgolden | (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) |
2023-07-06 04:39:57 +0200 | YoungFrog | (~youngfrog@2a02:a03f:ca07:f900:c0d1:a78f:f0d6:915b) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
2023-07-06 04:40:17 +0200 | YoungFrog | (~youngfrog@2a02:a03f:ca07:f900:c0d1:a78f:f0d6:915b) |
2023-07-06 04:47:15 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 04:57:54 +0200 | reach | (~reach@74.12.129.40) |
2023-07-06 05:03:57 +0200 | xff0x_ | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-07-06 05:06:46 +0200 | <EvanR> | > ("\1234", "\123\&4") -- dang how do other languages handle that nonsense |
2023-07-06 05:06:47 +0200 | <lambdabot> | ("\1234","{4") |
2023-07-06 05:07:24 +0200 | thaumavorio | (~thaumavor@162.243.123.105) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-07-06 05:07:39 +0200 | <monochrom> | As in, other languages do not offer the equiv of our "\123\&4" ? |
2023-07-06 05:08:28 +0200 | <monochrom> | I am not surprised that most people have not understood 0 and the empty string. |
2023-07-06 05:10:44 +0200 | thaumavorio | (~thaumavor@thaumavor.io) |
2023-07-06 05:10:54 +0200 | ystael | (~ystael@user/ystael) |
2023-07-06 05:15:01 +0200 | hipnozis | (~hipnozis@176-241-45-174.pool.digikabel.hu) (Ping timeout: 245 seconds) |
2023-07-06 05:15:33 +0200 | <monochrom> | Right? Even me. A long time ago you brought up a binary operator that clearly had an identity (though not obviously useful) and asked why the library didn't provide the identity element, and even I was like "who needs it". |
2023-07-06 05:16:03 +0200 | <monochrom> | I have learned my lesson. The identity element will always become useful in unforseen ways. |
2023-07-06 05:17:02 +0200 | <EvanR> | what library? |
2023-07-06 05:17:04 +0200 | hipnozis | (~hipnozis@84-236-122-155.pool.digikabel.hu) |
2023-07-06 05:17:12 +0200 | <monochrom> | I forgot. |
2023-07-06 05:18:24 +0200 | <monochrom> | It may have been about this: One could define a binary operator based on forkIO. And then it has an identity element. |
2023-07-06 05:18:46 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
2023-07-06 05:18:47 +0200 | <monochrom> | But I forgot whether you were talking about that one or something else. |
2023-07-06 05:18:48 +0200 | <EvanR> | oh like a thread which reliably waits forever |
2023-07-06 05:19:23 +0200 | <monochrom> | Yeah, sounds like it. |
2023-07-06 05:20:40 +0200 | notzmv | (~zmv@user/notzmv) |
2023-07-06 05:20:45 +0200 | <EvanR> | hacking in an identity element into this string literal seems like a weird solution to unicode escapes, you could use a fixed-size or delimited unicode escape. But then there's |
2023-07-06 05:21:06 +0200 | <EvanR> | ("\SOH", "\SO\&H") |
2023-07-06 05:21:10 +0200 | <EvanR> | > ("\SOH", "\SO\&H") |
2023-07-06 05:21:12 +0200 | <lambdabot> | ("\SOH","\SO\&H") |
2023-07-06 05:21:46 +0200 | <EvanR> | whoa what the show instance left the \& in |
2023-07-06 05:22:05 +0200 | <dolio> | What else would it do? |
2023-07-06 05:22:29 +0200 | <EvanR> | is it a special case in the show code xD |
2023-07-06 05:23:18 +0200 | <EvanR> | > "\SO\&L" |
2023-07-06 05:23:20 +0200 | <lambdabot> | "\SOL" |
2023-07-06 05:23:33 +0200 | <monochrom> | Oh if Show instance gave you \SOH you would misunderstood it :) |
2023-07-06 05:23:42 +0200 | <EvanR> | yeah |
2023-07-06 05:24:07 +0200 | <hololeap> | talismanick: according to typeclassopedia, applicative-only parsers can only parse context-free grammars, but parsers with a monad interface can parse context-sensitive grammars (type-2 and type-1 grammars respectively, here: https://en.wikipedia.org/wiki/Chomsky_hierarchy#The_hierarchy) |
2023-07-06 05:24:08 +0200 | <EvanR> | string literals grew legs |
2023-07-06 05:24:13 +0200 | <dolio> | It has to do something. Either not use \SO in that case, or use \&. |
2023-07-06 05:25:38 +0200 | <hololeap> | would fixpoints mean that it requires a type-0 grammar? |
2023-07-06 05:27:14 +0200 | <ski> | identity element tends to be useful when branching, as one of the cases. e.g. `a + a * b = a * (1 + b)' kind of thing |
2023-07-06 05:27:46 +0200 | <dolio> | No, CFGs are equivalent to augmenting regular expressions with a fixed-point operator. |
2023-07-06 05:28:03 +0200 | ski | . o O ( eta-reduction, tail calls, avoiding no-op round-trip ) |
2023-07-06 05:29:21 +0200 | <ski> | > "\SO\ \H" |
2023-07-06 05:29:23 +0200 | <lambdabot> | "\SO\&H" |
2023-07-06 05:30:51 +0200 | <monochrom> | With a monad interface plus lambdas (so, strong monad IIUC), you can parse all decidable languages. |
2023-07-06 05:32:40 +0200 | <EvanR> | that is a really funny corner case of haskell |
2023-07-06 05:32:44 +0200 | <dolio> | https://www.cl.cam.ac.uk/~jdy22/papers/a-typed-algebraic-approach-to-parsing.pdf |
2023-07-06 05:33:26 +0200 | falafel | (~falafel@2603-7000-a700-8710-bb02-2c7d-17e2-58d0.res6.spectrum.com) |
2023-07-06 05:34:34 +0200 | <ski> | ooh, that looks cool, ty |
2023-07-06 05:36:41 +0200 | reach | (~reach@74.12.129.40) (Remote host closed the connection) |
2023-07-06 05:36:50 +0200 | <dolio> | Also, depending on how you implement things, applicative parsers can parse any grammar, because every language recognizable by the host language can be embedded into an infinite 'regular' grammar in that language. |
2023-07-06 05:37:04 +0200 | reach | (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca) |
2023-07-06 05:38:23 +0200 | <monochrom> | Yeah I think we usually mean: applicative, alternative, but the base case primitive are only "satisfy" and "eof". |
2023-07-06 05:51:49 +0200 | <ski> | (yea, i think EOF shouldn't be expressible ..) |
2023-07-06 05:51:53 +0200 | ystael | (~ystael@user/ystael) (Ping timeout: 246 seconds) |
2023-07-06 05:55:02 +0200 | <monochrom> | Ah, I chalk it up to arbitrary parameter passing instead. Equivalently having Reader/ReaderT. |
2023-07-06 05:55:30 +0200 | aforemny_ | (~aforemny@2001:9e8:6ce6:ca00:3bad:e307:8f54:4c53) |
2023-07-06 05:56:26 +0200 | aforemny | (~aforemny@i59F516D3.versanet.de) (Ping timeout: 246 seconds) |
2023-07-06 06:02:42 +0200 | puke | (~puke@user/puke) (Ping timeout: 260 seconds) |
2023-07-06 06:03:17 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 06:05:53 +0200 | iteratee | (~kyle@162.218.222.207) (Ping timeout: 246 seconds) |
2023-07-06 06:08:11 +0200 | iteratee | (~kyle@162.218.222.207) |
2023-07-06 06:11:38 +0200 | <monochrom> | Now I just have issues with "parse recognizable languages". Normally I expect "parse" to mean "if the input is not in the language, the parser terminates and say 'syntax error'". |
2023-07-06 06:13:19 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-07-06 06:13:34 +0200 | puke | (~puke@user/puke) |
2023-07-06 06:14:25 +0200 | <EvanR> | while attempt to read the paper without knowing ocaml, I had to give up and ask how to read this type signature found 387, Z : ('a * 'ctx, 'a) var |
2023-07-06 06:14:39 +0200 | <EvanR> | star means product type? then what's the parentheses |
2023-07-06 06:15:31 +0200 | <mauke> | Z :: Var (a, ctx) a |
2023-07-06 06:15:46 +0200 | <EvanR> | whoa |
2023-07-06 06:17:20 +0200 | <EvanR> | what about the precedence going on between * and -> here, Map : ('a -> 'b) * ('ctx, 'a) t -> ('ctx, 'b) t |
2023-07-06 06:17:22 +0200 | <monochrom> | MLs use 'foo for type variables. Generally prepending ' to type variable names. |
2023-07-06 06:17:38 +0200 | <monochrom> | A*B is (A,B) |
2023-07-06 06:18:21 +0200 | <monochrom> | And yeah postfix notation for type constructors because "reads like English". Consider [Int] vs "int list". |
2023-07-06 06:19:12 +0200 | <monochrom> | In pattern matching, we have "xs@(x : xt)". MLs literally used "as", i.e., "xs as (x :: xt)" |
2023-07-06 06:19:34 +0200 | <mauke> | Map :: (a -> b, T ctx a) -> T ctx b |
2023-07-06 06:19:37 +0200 | <mauke> | I think |
2023-07-06 06:20:06 +0200 | <monochrom> | Now, ML predated Haskell, so our @ was inspired by their "as" (why else would we choose @ heh) but we chose "line noise". |
2023-07-06 06:21:04 +0200 | <monochrom> | Yeah. |
2023-07-06 06:21:34 +0200 | <EvanR> | stashing a pair in the data constructor, instead of currying |
2023-07-06 06:21:38 +0200 | <monochrom> | Either "T ctx a" or "T (ctx, a)", I forgot how they treat multiple-param polymorphic types. |
2023-07-06 06:22:18 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
2023-07-06 06:22:34 +0200 | <monochrom> | OK I guess postfix notation implies that "int bool map" makes no sense and it has to be "(int, bool) map". |
2023-07-06 06:23:02 +0200 | <mauke> | yeah, it's a (type-level) parameter list |
2023-07-06 06:23:06 +0200 | <dolio> | Yeah, I mean any language decidable by the host. As long as the host can reject it, the infinite grammar can, too. |
2023-07-06 06:25:26 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2023-07-06 06:25:38 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-07-06 06:35:07 +0200 | <EvanR> | any idea what ==> is on e.g. 381 |
2023-07-06 06:35:47 +0200 | <EvanR> | doh |
2023-07-06 06:35:49 +0200 | <EvanR> | let (==>) p f = map f p |
2023-07-06 06:37:29 +0200 | CAT_S | (apic@brezn3.muc.ccc.de) (Ping timeout: 240 seconds) |
2023-07-06 06:37:36 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-07-06 06:37:43 +0200 | trev | (~trev@user/trev) |
2023-07-06 06:39:27 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2023-07-06 06:41:10 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-07-06 06:42:46 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-07-06 06:43:15 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2023-07-06 06:44:36 +0200 | <ski> | i've called that `pam' |
2023-07-06 06:47:38 +0200 | <monochrom> | :) |
2023-07-06 06:57:30 +0200 | leah2 | (~leah@vuxu.org) |
2023-07-06 07:01:32 +0200 | iteratee | (~kyle@162.218.222.207) (Read error: Connection reset by peer) |
2023-07-06 07:02:33 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-07-06 07:06:18 +0200 | <talismanick> | hololeap: Interesting and thanks for linking that, but I don't see what it has to do with my question... |
2023-07-06 07:07:07 +0200 | bonz060 | (~bonz060@105.163.1.181) (Remote host closed the connection) |
2023-07-06 07:07:55 +0200 | <talismanick> | I'm talking about the paper https://matt.might.net/papers/might2011derivatives.pdf |
2023-07-06 07:11:05 +0200 | iteratee | (~kyle@162.218.222.207) |
2023-07-06 07:12:38 +0200 | <talismanick> | The Racket version seems straightforward, so long as you don't think too hard about the macro expansions (`define/fix` and `define/memoize` instead of plain `define`) |
2023-07-06 07:13:29 +0200 | <talismanick> | https://github.com/plum-umd/parsing-with-derivatives/blob/master/racket-code/racket/ |
2023-07-06 07:17:24 +0200 | <talismanick> | As I understand it, applicative and monadic parsing are interfaces for parsers - they don't say much about how it goes about its business algorithmically |
2023-07-06 07:18:17 +0200 | <talismanick> | whereas parsing with derivatives is a choice on the level of recursive descent vs LR vs Earley (of which it's most similar to the latter) |
2023-07-06 07:19:26 +0200 | brettgilio | (~brettgili@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Quit: Ping timeout (120 seconds)) |
2023-07-06 07:20:04 +0200 | brettgilio | (~brettgili@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) |
2023-07-06 07:21:25 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2023-07-06 07:21:48 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-07-06 07:21:50 +0200 | falafel | (~falafel@2603-7000-a700-8710-bb02-2c7d-17e2-58d0.res6.spectrum.com) (Ping timeout: 246 seconds) |
2023-07-06 07:28:11 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
2023-07-06 07:28:20 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-07-06 07:34:48 +0200 | CAT_S | (apic@brezn3.muc.ccc.de) |
2023-07-06 07:39:16 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-07-06 07:46:04 +0200 | `2jt | (~jtomas@90.162.208.36) |
2023-07-06 07:47:09 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-07-06 07:47:12 +0200 | `2jt | (~jtomas@90.162.208.36) (Remote host closed the connection) |
2023-07-06 07:47:35 +0200 | `2jt | (~jtomas@90.162.208.36) |
2023-07-06 07:50:27 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-07-06 07:50:30 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 260 seconds) |
2023-07-06 07:54:32 +0200 | <dminuoso_> | "monochrom | [04:17:22] MLs use 'foo for type variables. Generally prepending ' to type variable names." |
2023-07-06 07:54:35 +0200 | <dminuoso_> | As opposed to what? |
2023-07-06 07:54:48 +0200 | <dminuoso_> | In the above example, what does `t` refer to? |
2023-07-06 07:56:45 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-07-06 07:57:07 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2023-07-06 07:58:13 +0200 | <Hecate> | dminuoso_: haskell doesn't need the apostrophe to denotate a tyvar |
2023-07-06 07:58:58 +0200 | <Hecate> | dminuoso_: t might refer to the type defined and exported by the current module I guess? |
2023-07-06 07:58:59 +0200 | <dminuoso_> | Oh I know. The discussion was about MLs. |
2023-07-06 07:59:06 +0200 | <Hecate> | ah ok :) |
2023-07-06 08:01:23 +0200 | reach | (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca) (Ping timeout: 246 seconds) |
2023-07-06 08:02:04 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 08:02:48 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 08:08:07 +0200 | qqq | (~qqq@92.43.167.61) |
2023-07-06 08:13:21 +0200 | hipnozis | (~hipnozis@84-236-122-155.pool.digikabel.hu) (Ping timeout: 245 seconds) |
2023-07-06 08:15:23 +0200 | hipnozis | (~hipnozis@91-83-10-42.pool.digikabel.hu) |
2023-07-06 08:16:12 +0200 | ft | (~ft@p508db151.dip0.t-ipconnect.de) (Quit: leaving) |
2023-07-06 08:22:52 +0200 | delYsid | (~user@user/delYsid) |
2023-07-06 08:24:06 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2023-07-06 08:28:47 +0200 | acidjnk | (~acidjnk@p200300d6e7072f0715f69dbef4a2849d.dip0.t-ipconnect.de) |
2023-07-06 08:36:16 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
2023-07-06 08:38:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-07-06 08:39:46 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-07-06 08:50:39 +0200 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-07-06 08:53:23 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-07-06 08:53:55 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-07-06 08:58:57 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-07-06 09:00:49 +0200 | cfricke | (~cfricke@user/cfricke) |
2023-07-06 09:01:33 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-07-06 09:06:53 +0200 | fweht | (uid404746@id-404746.lymington.irccloud.com) |
2023-07-06 09:07:54 +0200 | jtza8 | (~user@165.255.137.176) |
2023-07-06 09:09:19 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-07-06 09:10:28 +0200 | michalz | (~michalz@185.246.207.215) |
2023-07-06 09:14:49 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-07-06 09:20:51 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
2023-07-06 09:21:03 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 09:21:37 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) |
2023-07-06 09:21:38 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host) |
2023-07-06 09:21:38 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-07-06 09:22:54 +0200 | mei | (~mei@user/mei) (Ping timeout: 260 seconds) |
2023-07-06 09:23:17 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2023-07-06 09:24:43 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-07-06 09:25:57 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-07-06 09:26:33 +0200 | mei | (~mei@user/mei) |
2023-07-06 09:27:00 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds) |
2023-07-06 09:32:08 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2023-07-06 09:32:10 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 09:32:51 +0200 | CiaoSen | (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) |
2023-07-06 09:35:51 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 09:35:59 +0200 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 264 seconds) |
2023-07-06 09:36:23 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 09:36:50 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-07-06 09:39:56 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) |
2023-07-06 09:40:19 +0200 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
2023-07-06 09:43:02 +0200 | fendor | (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) |
2023-07-06 09:51:00 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 09:51:30 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-07-06 09:55:32 +0200 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 240 seconds) |
2023-07-06 10:00:43 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Quit: leaving) |
2023-07-06 10:01:27 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2023-07-06 10:02:06 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2023-07-06 10:11:13 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-07-06 10:14:15 +0200 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds) |
2023-07-06 10:17:42 +0200 | acidjnk | (~acidjnk@p200300d6e7072f0715f69dbef4a2849d.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2023-07-06 10:23:16 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-07-06 10:25:56 +0200 | YuutaW | (~YuutaW@mail.yuuta.moe) (Ping timeout: 240 seconds) |
2023-07-06 10:26:02 +0200 | yuuta | (~YuutaW@2404:f4c0:f9c3:502::100:17b7) |
2023-07-06 10:26:13 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 10:26:17 +0200 | kristjansson_ | (sid126207@id-126207.tinside.irccloud.com) (Ping timeout: 246 seconds) |
2023-07-06 10:26:17 +0200 | ysh____ | (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 246 seconds) |
2023-07-06 10:26:38 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Ping timeout: 246 seconds) |
2023-07-06 10:27:20 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 10:27:51 +0200 | Pickchea | (~private@user/pickchea) |
2023-07-06 10:28:25 +0200 | ysh____ | (sid6017@id-6017.ilkley.irccloud.com) |
2023-07-06 10:30:32 +0200 | kristjansson_ | (sid126207@id-126207.tinside.irccloud.com) |
2023-07-06 10:33:02 +0200 | notzmv | (~zmv@user/notzmv) |
2023-07-06 10:33:38 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-07-06 10:36:53 +0200 | <fbytez> | When using Parsec, how do I express the length of a token to be parsed that falls within a range? Like, parse 1–5 occurrences of 'A'. |
2023-07-06 10:38:21 +0200 | xff0x_ | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds) |
2023-07-06 10:39:35 +0200 | rainbyte | (~rainbyte@181.31.239.226) (Ping timeout: 264 seconds) |
2023-07-06 10:39:43 +0200 | danse-nr3 | (~francesco@151.43.214.70) |
2023-07-06 10:40:00 +0200 | <tomsmeding> | fbytez: (++) <$> replicateM 1 (char 'A') <*> fmap catMaybes (replicateM (5 - 1) (optionMaybe (char 'A'))) |
2023-07-06 10:40:05 +0200 | <tomsmeding> | >:D |
2023-07-06 10:40:17 +0200 | asivitz | (uid178348@id-178348.tinside.irccloud.com) |
2023-07-06 10:40:34 +0200 | <tomsmeding> | should clearly be written to stop trying to parse As after one failure |
2023-07-06 10:40:42 +0200 | <tomsmeding> | I don't think there is something built-in for this |
2023-07-06 10:41:04 +0200 | <tomsmeding> | I guess replicateM == Text.Parsec.count |
2023-07-06 10:41:13 +0200 | <fbytez> | I'm surprised. I would've thought it to be quite a common scenario. |
2023-07-06 10:41:21 +0200 | <tomsmeding> | I have never yet needed it :p |
2023-07-06 10:41:26 +0200 | <tomsmeding> | what is the use case |
2023-07-06 10:41:44 +0200 | <dminuoso_> | fbytez: I personally think its a bit of an antipattern. |
2023-07-06 10:42:01 +0200 | <probie> | Parsing a language with a maximum identifier length comes to mind |
2023-07-06 10:42:14 +0200 | <tomsmeding> | disregarding inane languages |
2023-07-06 10:42:42 +0200 | <fbytez> | An example I had in mind was a IRC nick, which according to RFC2812 should be 1–9 characters. |
2023-07-06 10:43:03 +0200 | <tomsmeding> | hm makes sense |
2023-07-06 10:43:03 +0200 | danse-nr3_ | (~francesco@151.43.214.70) |
2023-07-06 10:43:04 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-07-06 10:43:36 +0200 | <dminuoso_> | fbytez: Also, with parsec you can use `count 5 (char 'A')` |
2023-07-06 10:43:47 +0200 | <tomsmeding> | (the irony of saying that to someone with a nick that is 10 characters long) |
2023-07-06 10:43:48 +0200 | <dminuoso_> | Which is a bit less convoluted. |
2023-07-06 10:43:58 +0200 | <fbytez> | Yeah, I saw, but that's a specific length rather than a range, right? |
2023-07-06 10:43:59 +0200 | <tomsmeding> | dminuoso_: that fails if there's just 4 As |
2023-07-06 10:44:11 +0200 | danse-nr3 | (~francesco@151.43.214.70) (Ping timeout: 245 seconds) |
2023-07-06 10:44:16 +0200 | <dminuoso_> | Oh. |
2023-07-06 10:44:58 +0200 | <dminuoso_> | ultimately I think its a design problem if you are writing it this way. |
2023-07-06 10:45:04 +0200 | <dminuoso_> | Your lexer is too small |
2023-07-06 10:45:26 +0200 | <dminuoso_> | If your lexer produced word-sized chunks, then its much more easily expressible. But this is a common theme in haskell parser combinator code |
2023-07-06 10:45:39 +0200 | <probie> | tomsmeding: Perhaps one wants to write a Fortran77 parser to parse some legacy code, and doesn't want to risk accepting invalid programs? |
2023-07-06 10:45:47 +0200 | <tomsmeding> | probie: yeah I get it :p |
2023-07-06 10:45:50 +0200 | <tomsmeding> | I was being facetious |
2023-07-06 10:46:02 +0200 | TheCatCollective | (NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow) |
2023-07-06 10:46:18 +0200 | <fbytez> | Fundamentally, I'm just thinking in terms of being able to specify some kind of sane upper-limit. |
2023-07-06 10:46:25 +0200 | tomsmeding | has never yet written a parsec parser with a lexer |
2023-07-06 10:46:44 +0200 | <tomsmeding> | perhaps I should try it once |
2023-07-06 10:48:16 +0200 | <tomsmeding> | fbytez: what would happen if you get a string of As that is longer than 5? do you error, or do you want to pick precisely the 5-long prefix and leave the rest alone? |
2023-07-06 10:48:22 +0200 | <dminuoso_> | In flatparse or parsley its not as big of an issue, because you get tools to generate efficient tokenizers on the spot. |
2023-07-06 10:48:50 +0200 | <tomsmeding> | in the first case, guard ((\n -> 1 <= n && n <= 5) . length) (many1 (char 'A')) |
2023-07-06 10:50:39 +0200 | tomsmeding | looks at the flatparse docs again and is fascinated by fusedSatisfy |
2023-07-06 10:51:03 +0200 | <fbytez> | I like the look of that but where is `guard` coming from? |
2023-07-06 10:51:15 +0200 | <tomsmeding> | Control.Monad |
2023-07-06 10:51:23 +0200 | qqq | (~qqq@92.43.167.61) (Remote host closed the connection) |
2023-07-06 10:51:37 +0200 | <dminuoso_> | tomsmeding: Things like `switch` are your built-in lexer. |
2023-07-06 10:51:38 +0200 | <tomsmeding> | fbytez: that fails when given a string of 6 As though; for irc nicks, this may well be fine |
2023-07-06 10:51:58 +0200 | <tomsmeding> | dminuoso_: well switch would not help at all in this case |
2023-07-06 10:51:59 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-07-06 10:52:08 +0200 | <dminuoso_> | tomsmeding: And incidentally, thats exactly how you interact with lexers in industrial parser generators like happy or bison. |
2023-07-06 10:52:10 +0200 | <tomsmeding> | though it is indeed useful for other lexing secenarios |
2023-07-06 10:52:14 +0200 | <dminuoso_> | You dont get fed tokens, you *demand* them |
2023-07-06 10:52:34 +0200 | <dminuoso_> | tomsmeding: switch would help at all. |
2023-07-06 10:52:57 +0200 | <dminuoso_> | or well, let me think |
2023-07-06 10:53:08 +0200 | <tomsmeding> | the question here is not about specific string literals |
2023-07-06 10:53:12 +0200 | <dminuoso_> | Ah |
2023-07-06 10:53:24 +0200 | <tomsmeding> | well, yes, the question as stated was about A/AA/AAA/AAAA/AAAAA |
2023-07-06 10:53:27 +0200 | <dminuoso_> | tomsmeding: well its just a question of lookahead really. |
2023-07-06 10:53:39 +0200 | <tomsmeding> | but the obvious generalisation is strings of stuff of length 1-5 |
2023-07-06 10:54:15 +0200 | <tomsmeding> | if we're allowed to error on strings longer than 5, my guard solution does the right thing in parsec land, no need for coolness |
2023-07-06 10:54:34 +0200 | <tomsmeding> | it's when we want to leave the rest alone when given longer strings that parsec becomes awkward and you have to write your own loop |
2023-07-06 10:54:48 +0200 | tv | (~tv@user/tv) |
2023-07-06 10:54:48 +0200 | <tomsmeding> | (not that that loop is particularly complicated, but still) |
2023-07-06 10:55:09 +0200 | <tomsmeding> | dminuoso_: I'm not trying to disparage flatparse, I still want to use it some time and I think it's super cool |
2023-07-06 10:55:29 +0200 | <dminuoso_> | tomsmeding: `do a <- ident; when (length a > 5) ...` |
2023-07-06 10:55:33 +0200 | <dminuoso_> | thats probably who I would do it. |
2023-07-06 10:55:48 +0200 | <tomsmeding> | yeah right |
2023-07-06 10:56:23 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
2023-07-06 10:56:48 +0200 | <tomsmeding> | i.e. having the lexer allows you to compress the parser for stuff of any length to a function from the lexer, but it doesn't do anything with the code to handle <=5 / >5 lengths |
2023-07-06 10:57:48 +0200 | <tomsmeding> | the only way I can see a lexer being a help here is if that lexer had support for defining token parsers with a regex language that supports {1,5} repetition syntax |
2023-07-06 10:59:05 +0200 | EvanR_ | (~EvanR@user/evanr) |
2023-07-06 10:59:22 +0200 | EvanR | (~EvanR@user/evanr) (Read error: Connection reset by peer) |
2023-07-06 11:00:28 +0200 | <probie> | tomsmeding: I don't think the guard solution does the "right thing" in parsec land if the goal is specifying sane upper-limits, since you might go off and read gigabytes of data if there are a lot of consecutive `A`s |
2023-07-06 11:01:28 +0200 | <tomsmeding> | probie: this is true |
2023-07-06 11:02:06 +0200 | <tomsmeding> | though nothing in parsec is written to allow dealing with maliciously large inputs |
2023-07-06 11:02:14 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection) |
2023-07-06 11:03:35 +0200 | <tomsmeding> | manyMax :: Int -> Parser a -> Parser [a] ; manyMax 0 _ = return [] ; manyMax n p = option [] ((:) <$> p <*> manyMax (n-1) p) |
2023-07-06 11:04:07 +0200 | qqq | (~qqq@92.43.167.61) |
2023-07-06 11:05:38 +0200 | <tomsmeding> | manyMax :: Int -> Parser a -> Parser [a] ; manyMax n p = go id n p ; where go pre 0 _ = return (pre []) ; go pre n p = optionMaybe p >>= maybe (return []) (\x -> go (pre . (x:)) (n-1) p) |
2023-07-06 11:05:43 +0200 | <tomsmeding> | less stack buildup |
2023-07-06 11:06:19 +0200 | misterfish | (~misterfis@87.215.131.102) |
2023-07-06 11:07:56 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) |
2023-07-06 11:09:54 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds) |
2023-07-06 11:10:34 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-07-06 11:11:05 +0200 | tv | (~tv@user/tv) (Ping timeout: 246 seconds) |
2023-07-06 11:11:50 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-07-06 11:11:50 +0200 | mjacob | (~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer) |
2023-07-06 11:12:00 +0200 | TheCatCollective | (NyaaTheKit@user/calculuscat) |
2023-07-06 11:16:10 +0200 | <fbytez> | Thank you for the help. |
2023-07-06 11:16:14 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Remote host closed the connection) |
2023-07-06 11:17:19 +0200 | mjacob | (~mjacob@adrastea.uberspace.de) |
2023-07-06 11:17:54 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2023-07-06 11:18:13 +0200 | dsrt^ | (~dsrt@24.125.210.85) (Remote host closed the connection) |
2023-07-06 11:18:30 +0200 | AWizzArd | (~code@gehrels.uberspace.de) (Ping timeout: 250 seconds) |
2023-07-06 11:18:30 +0200 | tv | (~tv@user/tv) |
2023-07-06 11:20:16 +0200 | AWizzArd | (~code@gehrels.uberspace.de) |
2023-07-06 11:21:48 +0200 | <dminuoso_> | I would start with a threat model. Honestly, reading gigabytes not the biggest concern you have. |
2023-07-06 11:21:52 +0200 | <dminuoso_> | At least presumably |
2023-07-06 11:22:27 +0200 | <dminuoso_> | Unless you parse and lex in a streaming fashion, validating the length at lexer/parser time will not help much |
2023-07-06 11:25:47 +0200 | tv | (~tv@user/tv) (Ping timeout: 246 seconds) |
2023-07-06 11:26:18 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2023-07-06 11:27:11 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
2023-07-06 11:27:13 +0200 | caryhartline | (~caryhartl@168.182.58.169) (Quit: caryhartline) |
2023-07-06 11:29:12 +0200 | Lord_of_Life_ | Lord_of_Life |
2023-07-06 11:29:28 +0200 | tv | (~tv@user/tv) |
2023-07-06 11:30:01 +0200 | hipnozis | (~hipnozis@91-83-10-42.pool.digikabel.hu) (Ping timeout: 245 seconds) |
2023-07-06 11:32:01 +0200 | hipnozis | (~hipnozis@92-249-179-80.pool.digikabel.hu) |
2023-07-06 11:32:39 +0200 | mmhat | (~mmh@p200300f1c7044c15ee086bfffe095315.dip0.t-ipconnect.de) |
2023-07-06 11:36:12 +0200 | tv1 | (~tv@user/tv) |
2023-07-06 11:36:12 +0200 | noctux | (~noctux@user/noctux) (Read error: Connection reset by peer) |
2023-07-06 11:38:36 +0200 | tv | (~tv@user/tv) (Ping timeout: 246 seconds) |
2023-07-06 11:38:44 +0200 | noctux | (~noctux@user/noctux) |
2023-07-06 11:45:42 +0200 | <fbytez> | True indeed. It would just be nice to be able to easily express my example rather than check the length as an extra step after parsing. I'm just genuinely surprised it's not a standard part of Parsec; particularly as `count` is. |
2023-07-06 11:46:31 +0200 | <fbytez> | For me, things like this feel like fighting against the library / language. |
2023-07-06 11:46:40 +0200 | <fbytez> | I'm very new to Haskell. |
2023-07-06 11:48:09 +0200 | <fbytez> | What I expected to find was the equivalent of `take`, which, because of laziness, I think is lovely. |
2023-07-06 11:49:14 +0200 | <Rembane> | fbytez: Does `parseTake n = fmap (take n)` do what you want? |
2023-07-06 11:49:14 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2023-07-06 11:49:31 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2023-07-06 11:51:40 +0200 | <fbytez> | It may do; I'd have to try it. |
2023-07-06 11:52:25 +0200 | <probie> | Rembane: That consumes input beyond the limit (e.g. on `"AAAAAAAAAAAAAB"` with `parseTake 5 (many char 'A')` it'd return `"AAAAA"` with just `"B"` remaining) |
2023-07-06 11:53:06 +0200 | <Rembane> | probie: Oh. Hm... back to the drawing board I guess. |
2023-07-06 11:54:31 +0200 | <probie> | s/many char 'A'/many (char 'A')/ |
2023-07-06 11:54:48 +0200 | <fbytez> | I haven't tried it, but tomsmeding's `manyMax` appears to have the behaviour I'm after. |
2023-07-06 12:08:08 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 240 seconds) |
2023-07-06 12:12:18 +0200 | talismanick | (~user@76.133.152.122) (Ping timeout: 260 seconds) |
2023-07-06 12:13:47 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds) |
2023-07-06 12:17:05 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-07-06 12:18:34 +0200 | <tomsmeding> | fbytez: that was the intent :p |
2023-07-06 12:20:15 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-07-06 12:22:21 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:45dc:6b68:376a:7db8) |
2023-07-06 12:24:57 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2023-07-06 12:26:41 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-07-06 12:26:55 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-a747-1400-d7b1-148e-7f8c.rev.sfr.net) |
2023-07-06 12:27:04 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 12:29:27 +0200 | xff0x_ | (~xff0x@2405:6580:b080:900:50da:9b7c:4bac:847a) |
2023-07-06 12:32:09 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 12:39:14 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 12:43:29 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 12:45:41 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 12:47:23 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 12:49:52 +0200 | asivitz | (uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2023-07-06 12:51:09 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-07-06 12:58:32 +0200 | xff0x_ | (~xff0x@2405:6580:b080:900:50da:9b7c:4bac:847a) (Ping timeout: 245 seconds) |
2023-07-06 12:58:56 +0200 | xff0x_ | (~xff0x@ai086045.d.east.v6connect.net) |
2023-07-06 13:00:57 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-07-06 13:06:29 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-a747-1400-d7b1-148e-7f8c.rev.sfr.net) (Ping timeout: 246 seconds) |
2023-07-06 13:10:28 +0200 | ryantrinkle | (~ryantrink@89.247.249.243) |
2023-07-06 13:16:53 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds) |
2023-07-06 13:17:06 +0200 | danse-nr3_ | (~francesco@151.43.214.70) (Ping timeout: 245 seconds) |
2023-07-06 13:20:35 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-07-06 13:22:21 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-07-06 13:23:44 +0200 | delYsid | (~user@user/delYsid) (ERC 5.6-git (IRC client for GNU Emacs 30.0.50)) |
2023-07-06 13:25:28 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-07-06 13:26:20 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-07-06 13:28:17 +0200 | danse-nr3_ | (~francesco@151.43.214.70) |
2023-07-06 13:29:08 +0200 | CiaoSen | (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds) |
2023-07-06 13:32:31 +0200 | danse-nr3_ | (~francesco@151.43.214.70) (Ping timeout: 245 seconds) |
2023-07-06 13:32:45 +0200 | <fbytez> | tomsmeding, Could you explain to me why `id/pre` is needed in `manyMax`, please. |
2023-07-06 13:33:42 +0200 | <tomsmeding> | fbytez: could have done 'fmap (x:) (manyMax (n-1) p)' instead; that's probably what you were expecting |
2023-07-06 13:34:03 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 13:34:19 +0200 | <tomsmeding> | it may actually be equivalent, but I was hoping that what I wrote is slightly more efficient due to not needing to stack up a stack of fmaps, and then tearing them down afterwards |
2023-07-06 13:34:27 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 246 seconds) |
2023-07-06 13:34:39 +0200 | <tomsmeding> | but on the other hand, my chain of (x:) closures (the 'pre' thing) will also need to be evaluated /shrug/ |
2023-07-06 13:34:59 +0200 | <tomsmeding> | profiling would determine the winner here |
2023-07-06 13:35:09 +0200 | <fbytez> | Right. Many thanks. |
2023-07-06 13:35:48 +0200 | <tomsmeding> | fbytez: my first version without 'go' is also equivalent, but has a different kind of stack buildup |
2023-07-06 13:36:07 +0200 | <tomsmeding> | but if n is like 5 then this is useless nitpicking :p |
2023-07-06 13:38:39 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-07-06 13:38:47 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-07-06 13:43:46 +0200 | hipnozis | (~hipnozis@92-249-179-80.pool.digikabel.hu) (Ping timeout: 245 seconds) |
2023-07-06 13:45:41 +0200 | hipnozis | (~hipnozis@84-236-122-153.pool.digikabel.hu) |
2023-07-06 13:45:59 +0200 | myxos | (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Quit: myxos) |
2023-07-06 13:46:13 +0200 | myxos | (~myxos@cpe-65-28-251-121.cinci.res.rr.com) |
2023-07-06 13:46:35 +0200 | myxos | (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Client Quit) |
2023-07-06 13:46:48 +0200 | myxos | (~myxos@cpe-65-28-251-121.cinci.res.rr.com) |
2023-07-06 13:48:56 +0200 | nick2 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 13:51:58 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection) |
2023-07-06 13:52:21 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) |
2023-07-06 14:00:50 +0200 | mmhat | (~mmh@p200300f1c7044c15ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-07-06 14:01:19 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection) |
2023-07-06 14:01:36 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) |
2023-07-06 14:02:06 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection) |
2023-07-06 14:02:19 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 14:02:21 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) |
2023-07-06 14:12:45 +0200 | danse-nr3 | (~francesco@151.57.138.124) |
2023-07-06 14:15:01 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
2023-07-06 14:15:05 +0200 | mmhat | (~mmh@p200300f1c70e11c9ee086bfffe095315.dip0.t-ipconnect.de) |
2023-07-06 14:21:12 +0200 | mmhat | (~mmh@p200300f1c70e11c9ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-07-06 14:21:52 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) |
2023-07-06 14:21:52 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host) |
2023-07-06 14:21:53 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-07-06 14:24:22 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 246 seconds) |
2023-07-06 14:25:24 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 14:25:32 +0200 | CiaoSen | (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) |
2023-07-06 14:28:44 +0200 | GoldsteinQ | (~goldstein@goldstein.rs) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-07-06 14:30:52 +0200 | GoldsteinQ | (~goldstein@goldstein.rs) |
2023-07-06 14:31:00 +0200 | CiaoSen | (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) (Quit: CiaoSen) |
2023-07-06 14:31:32 +0200 | hipnozis | (~hipnozis@84-236-122-153.pool.digikabel.hu) (Quit: Lost terminal) |
2023-07-06 14:35:03 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Read error: Connection reset by peer) |
2023-07-06 14:35:12 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2023-07-06 14:35:23 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-07-06 14:36:53 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2023-07-06 14:40:02 +0200 | ripspin | (~chatzilla@1.145.145.210) |
2023-07-06 14:43:11 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds) |
2023-07-06 14:45:27 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-07-06 14:51:36 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-07-06 14:57:50 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2023-07-06 14:59:04 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 250 seconds) |
2023-07-06 15:05:37 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 245 seconds) |
2023-07-06 15:08:42 +0200 | chomwitt | (~chomwitt@2a02:587:7a06:dd00:1ac0:4dff:fedb:a3f1) |
2023-07-06 15:09:27 +0200 | Reinhilde | [Reinhilde] |
2023-07-06 15:19:50 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 15:29:44 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 15:36:37 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 15:37:12 +0200 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-07-06 15:39:36 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-07-06 15:39:50 +0200 | califax | (~califax@user/califx) |
2023-07-06 15:41:23 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 264 seconds) |
2023-07-06 15:42:12 +0200 | bontaq | (~user@ool-45779b84.dyn.optonline.net) |
2023-07-06 15:43:20 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) |
2023-07-06 15:47:35 +0200 | puke | (~puke@user/puke) (Ping timeout: 246 seconds) |
2023-07-06 15:52:29 +0200 | nick4 | (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds) |
2023-07-06 15:54:01 +0200 | puke | (~puke@user/puke) |
2023-07-06 16:02:50 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-07-06 16:03:48 +0200 | ystael | (~ystael@user/ystael) |
2023-07-06 16:09:27 +0200 | jtza8 | (~user@165.255.137.176) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2)) |
2023-07-06 16:16:08 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-07-06 16:17:54 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 16:26:56 +0200 | bontaq | (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection) |
2023-07-06 16:27:32 +0200 | ai5lk | (~ai5lk@209-188-121-236.taosnet.com) |
2023-07-06 16:33:26 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2023-07-06 16:37:05 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) (Ping timeout: 246 seconds) |
2023-07-06 16:37:56 +0200 | reach | (~reach@74.12.129.40) |
2023-07-06 16:39:07 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-07-06 16:39:07 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-07-06 16:39:07 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-07-06 16:39:31 +0200 | acidjnk | (~acidjnk@p200300d6e7072f0700a8e9aef9077b5f.dip0.t-ipconnect.de) |
2023-07-06 16:43:48 +0200 | mei | (~mei@user/mei) (Ping timeout: 246 seconds) |
2023-07-06 16:46:33 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-07-06 16:47:32 +0200 | cfricke | (~cfricke@user/cfricke) |
2023-07-06 16:47:49 +0200 | mei | (~mei@user/mei) |
2023-07-06 16:50:46 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-07-06 16:51:02 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
2023-07-06 16:56:19 +0200 | bontaq | (~user@ool-45779b84.dyn.optonline.net) |
2023-07-06 17:01:27 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 17:06:16 +0200 | nick4 | (~nick@wsip-174-78-110-18.pn.at.cox.net) |
2023-07-06 17:12:58 +0200 | falafel | (~falafel@2603-7000-a700-8710-dcd0-82ed-dc77-29f6.res6.spectrum.com) |
2023-07-06 17:16:09 +0200 | lainon | (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) |
2023-07-06 17:30:29 +0200 | falafel | (~falafel@2603-7000-a700-8710-dcd0-82ed-dc77-29f6.res6.spectrum.com) (Ping timeout: 240 seconds) |
2023-07-06 17:30:42 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2023-07-06 17:33:22 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) |
2023-07-06 17:37:42 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 246 seconds) |
2023-07-06 17:39:15 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
2023-07-06 17:39:52 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2023-07-06 17:42:15 +0200 | reach | (~reach@74.12.129.40) (Read error: Connection reset by peer) |
2023-07-06 17:42:15 +0200 | <sclv> | does anyone have example code of using http-client along with oauth? the oauth client is pretty undocumented... |
2023-07-06 17:45:51 +0200 | <sclv> | most of the discussion and questions seem to be about the more difficult task of doing an oauth integration. i just want to create a client that lets someone use their creds to make use of an api... |
2023-07-06 17:46:04 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-07-06 17:46:55 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-07-06 17:49:01 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection) |
2023-07-06 17:49:13 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2023-07-06 17:50:33 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) |
2023-07-06 17:53:17 +0200 | lainon | (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2023-07-06 17:54:43 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-07-06 18:00:01 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds) |
2023-07-06 18:01:04 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-07-06 18:01:04 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-07-06 18:01:04 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-07-06 18:06:59 +0200 | asivitz | (uid178348@id-178348.tinside.irccloud.com) |
2023-07-06 18:10:27 +0200 | oac | (~oac@72-50-214-210.fttp.usinternet.com) |
2023-07-06 18:10:38 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection) |
2023-07-06 18:11:22 +0200 | oac | (~oac@72-50-214-210.fttp.usinternet.com) (Client Quit) |
2023-07-06 18:11:24 +0200 | wroathe | (~wroathe@user/wroathe) (Quit: Reconnecting) |
2023-07-06 18:11:40 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-07-06 18:11:40 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-07-06 18:11:40 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-07-06 18:11:51 +0200 | danse-nr3_ | (~francesco@151.43.220.217) |
2023-07-06 18:13:49 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-07-06 18:14:11 +0200 | danse-nr3 | (~francesco@151.57.138.124) (Ping timeout: 245 seconds) |
2023-07-06 18:14:34 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) |
2023-07-06 18:15:28 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 252 seconds) |
2023-07-06 18:16:53 +0200 | falafel | (~falafel@2603-7000-a700-8710-c3ac-a6ea-45a8-45b9.res6.spectrum.com) |
2023-07-06 18:18:05 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-07-06 18:19:05 +0200 | falafel | (~falafel@2603-7000-a700-8710-c3ac-a6ea-45a8-45b9.res6.spectrum.com) (Remote host closed the connection) |
2023-07-06 18:19:29 +0200 | falafel | (~falafel@2603-7000-a700-8710-9d1b-efc1-e2eb-1a35.res6.spectrum.com) |
2023-07-06 18:19:53 +0200 | gensyst | (~gensyst@user/gensyst) |
2023-07-06 18:20:18 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-07-06 18:20:42 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) |
2023-07-06 18:20:42 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host) |
2023-07-06 18:20:42 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-07-06 18:24:57 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 246 seconds) |
2023-07-06 18:25:16 +0200 | <gensyst> | I have bytestrings of format "{latitude}{longitude}{temperature}{three}{more}{doubles}" (6 Doubles). Is it possible to automatically generate getData :: ByteString -> Stuff |
2023-07-06 18:25:16 +0200 | <gensyst> | data Stuff = Stuff { latitude :: Maybe Double, longitude :: Maybe Double, ... } |
2023-07-06 18:25:16 +0200 | <gensyst> | where getData is somehow enhanced to specifify want I inside Stuff at the type level? |
2023-07-06 18:25:16 +0200 | <gensyst> | Of course I could create functions manually for each field, but I want to know if something more cool is possible. |
2023-07-06 18:25:50 +0200 | <gensyst> | main goal is not waste time deserializing stuff I don't need |
2023-07-06 18:27:02 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-07-06 18:27:03 +0200 | danse-nr3_ | (~francesco@151.43.220.217) (Remote host closed the connection) |
2023-07-06 18:27:24 +0200 | danse-nr3_ | (~francesco@151.43.220.217) |
2023-07-06 18:27:27 +0200 | <gensyst> | e.g. could templateHaskell be used to map offsets/lengths (within bytestring) and function name suffixes into actual functions? (i know nothing about templatehaskell) |
2023-07-06 18:30:45 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection) |
2023-07-06 18:30:48 +0200 | falafel | (~falafel@2603-7000-a700-8710-9d1b-efc1-e2eb-1a35.res6.spectrum.com) (Ping timeout: 240 seconds) |
2023-07-06 18:30:51 +0200 | <asivitz> | gensyst: I recommend checking out the 'binary' package |
2023-07-06 18:32:26 +0200 | <asivitz> | oh hm not sure if it has any type magic stuff |
2023-07-06 18:33:50 +0200 | <ncf> | i don't understand what kind of type magic stuff is even being asked for |
2023-07-06 18:34:28 +0200 | <asivitz> | maybe something like binary-generic |
2023-07-06 18:35:46 +0200 | <gensyst> | getData @[Latitude, Longitude] or some magic? |
2023-07-06 18:35:48 +0200 | <gensyst> | no idea to be honest |
2023-07-06 18:37:23 +0200 | <asivitz> | do you need a specific format? there has to be tons of libraries that will happily generate their own format |
2023-07-06 18:39:44 +0200 | <asivitz> | cereal would be a good example of that |
2023-07-06 18:39:44 +0200 | <ncf> | looks like binary already has support for deriving formats automatically |
2023-07-06 18:40:21 +0200 | <ncf> | (which is not the same as "guessing what format your bytestrings are automatically") |
2023-07-06 18:42:14 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) |
2023-07-06 18:42:17 +0200 | <gensyst> | Ok let me rephrase, |
2023-07-06 18:42:56 +0200 | titibandit | (~titibandi@user/titibandit) (Quit: leaving) |
2023-07-06 18:42:57 +0200 | <gensyst> | Is there any cooler/shorter way than manually writing getLatitude :: ByteString -> Double and so on for all the other fields? |
2023-07-06 18:43:07 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-07-06 18:43:42 +0200 | <gensyst> | one problem with this manual approach; each function begins by checking the length of the bytestring (sanity check). |
2023-07-06 18:43:52 +0200 | <gensyst> | so if I ever combine those functions, i'm re-checking the bytestring length many times. |
2023-07-06 18:44:03 +0200 | <gensyst> | so that would mean, a wrapper for each of those functions. |
2023-07-06 18:44:17 +0200 | <gensyst> | "getLatitudeWithoutLengthCheck" and "getLatitude" |
2023-07-06 18:44:25 +0200 | <gensyst> | and so on |
2023-07-06 18:46:08 +0200 | reio | (~reio@86-90-81-176.fixed.kpn.net) |
2023-07-06 18:46:33 +0200 | reio | (~reio@86-90-81-176.fixed.kpn.net) (Remote host closed the connection) |
2023-07-06 18:46:57 +0200 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Ping timeout: 258 seconds) |
2023-07-06 18:47:07 +0200 | reio | (~reio@86-90-81-176.fixed.kpn.net) |
2023-07-06 18:48:20 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:45dc:6b68:376a:7db8) (Remote host closed the connection) |
2023-07-06 18:48:39 +0200 | EvanR_ | EvanR |
2023-07-06 18:48:59 +0200 | <EvanR> | Stuff <$> getDouble <*> getDouble <*> getDouble <*> ... |
2023-07-06 18:49:30 +0200 | <EvanR> | (couldn't figure out what the Maybes were doing there) |
2023-07-06 18:52:19 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-07-06 18:52:39 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-07-06 18:53:08 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-07-06 18:55:07 +0200 | gurkenglas | (~gurkengla@dynamic-046-114-179-175.46.114.pool.telefonica.de) |
2023-07-06 18:55:30 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection) |
2023-07-06 18:57:19 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-07-06 18:59:36 +0200 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 245 seconds) |
2023-07-06 19:03:06 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2023-07-06 19:04:36 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds) |
2023-07-06 19:13:56 +0200 | `2jt | (~jtomas@90.162.208.36) (Remote host closed the connection) |
2023-07-06 19:14:20 +0200 | `2jt | (~jtomas@90.162.208.36) |
2023-07-06 19:15:07 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-07-06 19:15:23 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-07-06 19:15:25 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2023-07-06 19:18:01 +0200 | talismanick | (~user@76.133.152.122) |
2023-07-06 19:22:13 +0200 | billb | (~billb@cpe-66-8-173-22.hawaii.res.rr.com) (Quit: Leaving) |
2023-07-06 19:23:08 +0200 | billb | (~billb@cpe-66-8-173-22.hawaii.res.rr.com) |
2023-07-06 19:26:41 +0200 | Midjak | (~Midjak@82.66.147.146) |
2023-07-06 19:28:28 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-07-06 19:30:01 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds) |
2023-07-06 19:32:10 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-07-06 19:32:30 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2023-07-06 19:32:49 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) |
2023-07-06 19:34:03 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-07-06 19:34:28 +0200 | dibblego | (~dibblego@116.255.1.157) |
2023-07-06 19:34:28 +0200 | dibblego | (~dibblego@116.255.1.157) (Changing host) |
2023-07-06 19:34:28 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-07-06 19:35:59 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
2023-07-06 19:37:22 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-07-06 19:38:44 +0200 | <probie> | What do you mean by "deserializing stuff I don't need"? Maybe I've misinterpreted what you're saying, but my reading is that you've got a bytestring which is 48 bytes long that contains 6 doubles |
2023-07-06 19:41:20 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection) |
2023-07-06 19:41:22 +0200 | <EvanR> | what's funny is if you assume that format, then lazy evaluation could stop you from deserializing stuff you don't need |
2023-07-06 19:41:31 +0200 | <EvanR> | automatically |
2023-07-06 19:41:33 +0200 | alternateved | (~user@77-254-166-50.dynamic.inetia.pl) |
2023-07-06 19:42:11 +0200 | <EvanR> | though the thunks probably take up more memory than 1 double |
2023-07-06 19:42:17 +0200 | Inst__ | (~Inst@2601:6c4:4081:2fc0:44fe:e619:5fe8:5723) |
2023-07-06 19:44:43 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-07-06 19:45:56 +0200 | Inst_ | (~Inst@2601:6c4:4081:2fc0:f0f1:dbda:8b5c:598b) (Ping timeout: 240 seconds) |
2023-07-06 19:46:20 +0200 | <probie> | This is a bytestring that fits in a single cache line. Checking the length of a (strict) bytestring is also very cheap |
2023-07-06 19:46:23 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection) |
2023-07-06 19:47:25 +0200 | <EvanR> | would be cool to have your values "backed" by a bytestring somewhere instead of a discrete boxed thing |
2023-07-06 19:48:06 +0200 | <EvanR> | json munging would benefit |
2023-07-06 19:50:00 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-07-06 19:52:27 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-07-06 19:53:51 +0200 | danse-nr3_ | (~francesco@151.43.220.217) (Ping timeout: 246 seconds) |
2023-07-06 19:54:41 +0200 | elkcl | (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 246 seconds) |
2023-07-06 19:56:15 +0200 | __monty__ | (~toonn@user/toonn) |
2023-07-06 19:58:27 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-07-06 20:03:59 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
2023-07-06 20:04:34 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) |
2023-07-06 20:07:16 +0200 | ft | (~ft@p508db151.dip0.t-ipconnect.de) |
2023-07-06 20:10:01 +0200 | chomwitt | (~chomwitt@2a02:587:7a06:dd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
2023-07-06 20:11:26 +0200 | caryhartline | (~caryhartl@168.182.58.169) |
2023-07-06 20:16:45 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 20:16:46 +0200 | ripspin | (~chatzilla@1.145.145.210) (Remote host closed the connection) |
2023-07-06 20:18:49 +0200 | gmg | (~user@user/gehmehgeh) |
2023-07-06 20:20:47 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection) |
2023-07-06 20:21:36 +0200 | lainon | (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) |
2023-07-06 20:22:20 +0200 | `2jt | (~jtomas@90.162.208.36) (Ping timeout: 252 seconds) |
2023-07-06 20:33:27 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-07-06 20:38:24 +0200 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) |
2023-07-06 20:40:29 +0200 | alexherbo2 | (~alexherbo@59.196.204.77.rev.sfr.net) |
2023-07-06 20:41:11 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) |
2023-07-06 20:43:16 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-07-06 20:48:20 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
2023-07-06 20:49:07 +0200 | Guest5320 | (~finn@176-151-21-224.abo.bbox.fr) |
2023-07-06 20:50:07 +0200 | <Guest5320> | does ghc 9.2 make some changes to the behavior of Data.Coerce(coerce) ? I can't build inline-c gsl examples anymore |
2023-07-06 20:50:31 +0200 | <Guest5320> | examples/gsl-ode.hs:97:3: error: |
2023-07-06 20:50:33 +0200 | <Guest5320> | • Couldn't match type ‘CDouble’ with ‘Double’ |
2023-07-06 20:50:35 +0200 | <Guest5320> | arising from a use of ‘coerce’ |
2023-07-06 20:50:37 +0200 | <Guest5320> | • In the first argument of ‘($)’, namely ‘coerce’ |
2023-07-06 20:50:39 +0200 | <Guest5320> | In the expression: |
2023-07-06 20:50:41 +0200 | <Guest5320> | coerce |
2023-07-06 20:50:43 +0200 | <Guest5320> | $ solveOdeC (coerce fun) (coerce x0) (coerce f0) (coerce xend) |
2023-07-06 20:50:45 +0200 | <Guest5320> | In an equation for ‘solveOde’: |
2023-07-06 20:50:47 +0200 | <Guest5320> | solveOde fun x0 f0 xend |
2023-07-06 20:50:49 +0200 | <Guest5320> | = coerce |
2023-07-06 20:50:51 +0200 | <Guest5320> | $ solveOdeC (coerce fun) (coerce x0) (coerce f0) (coerce xend) |
2023-07-06 20:50:54 +0200 | <Guest5320> | i remember i could build this code before |
2023-07-06 20:51:16 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
2023-07-06 20:52:30 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-07-06 20:54:50 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds) |
2023-07-06 20:55:27 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
2023-07-06 20:56:33 +0200 | dibblego | (~dibblego@116.255.1.157) |
2023-07-06 20:56:34 +0200 | dibblego | (~dibblego@116.255.1.157) (Changing host) |
2023-07-06 20:56:34 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-07-06 20:57:43 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-07-06 20:59:43 +0200 | witcher | (~witcher@wiredspace.de) |
2023-07-06 21:00:02 +0200 | alexherbo2 | (~alexherbo@59.196.204.77.rev.sfr.net) (Ping timeout: 246 seconds) |
2023-07-06 21:00:06 +0200 | witcher | (~witcher@wiredspace.de) () |
2023-07-06 21:00:08 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-07-06 21:05:15 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds) |
2023-07-06 21:05:56 +0200 | <int-e> | Guest5320: it's `vector` that (sensibly) added a nominal role to `Data.Vector.Storable.Vector` in 0.13.0.0. See https://github.com/haskell/vector/pull/235 |
2023-07-06 21:05:57 +0200 | rainbyte | (~rainbyte@181.31.239.226) |
2023-07-06 21:06:16 +0200 | <int-e> | Guest5320: also please use a pastebin if you message is longer than 3-5 lines |
2023-07-06 21:07:21 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
2023-07-06 21:08:09 +0200 | <Guest5320> | thanks int-e . so what should i do to adapt the code? |
2023-07-06 21:09:05 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-07-06 21:09:25 +0200 | <int-e> | I suspect you'll need to use `unsafeCoerce` or the newly added `unsafeCoerceVector` mentioned in the ticket, though that will be awkward for the `fun` argument (since that coercion has to be performed on an argument of `fun`) |
2023-07-06 21:09:38 +0200 | <int-e> | s/ticket/PR/ |
2023-07-06 21:11:42 +0200 | gtf | (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) |
2023-07-06 21:11:43 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) |
2023-07-06 21:11:43 +0200 | dibblego | (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host) |
2023-07-06 21:11:43 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-07-06 21:11:46 +0200 | <EvanR> | CDouble and Double don't have the same representation? |
2023-07-06 21:11:52 +0200 | <int-e> | (It's actually a bit surprising that the type role of `ForeignPtr`'s argument isn't nominal. If it were, that would've propagated to `Vector`) |
2023-07-06 21:12:16 +0200 | <int-e> | EvanR: They do, but nothing at the type level guarantees that the Storable instance use the same bit format. |
2023-07-06 21:12:22 +0200 | gtf | (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Quit: Konversation terminated!) |
2023-07-06 21:12:32 +0200 | <int-e> | *instances |
2023-07-06 21:12:58 +0200 | gtf | (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) |
2023-07-06 21:13:43 +0200 | <Guest5320> | thanks it works |
2023-07-06 21:14:03 +0200 | <Guest5320> | btw, what do you mean by nominal? |
2023-07-06 21:14:37 +0200 | <int-e> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/roles.html |
2023-07-06 21:15:53 +0200 | <Guest5320> | once again this channel beats ChatGPT 3.5 ;-D |
2023-07-06 21:15:58 +0200 | <int-e> | https://github.com/haskell/vector/issues/223 has a really good example of this going wrong using CInt and Int. |
2023-07-06 21:16:22 +0200 | Pickchea | (~private@user/pickchea) |
2023-07-06 21:16:44 +0200 | <int-e> | (Sure, one is commonly 32 bits and the other is commonly 64 bits, but it's easy to forget about this when using `coerce` just compiles) |
2023-07-06 21:17:22 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-07-06 21:17:23 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-07-06 21:17:23 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-07-06 21:18:09 +0200 | delYsid | (~user@user/delYsid) |
2023-07-06 21:18:25 +0200 | <int-e> | EvanR: so it's apparently *worse*; the inferred type role was phantom, coming from `Foreign.ForeignPtr.ForeignPtr` |
2023-07-06 21:18:56 +0200 | <delYsid> | I'd like to extract all hyperlinks from a html document and filter on the href, what do I use? |
2023-07-06 21:19:25 +0200 | <ncf> | tagsoup/scalpel |
2023-07-06 21:19:53 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-07-06 21:24:22 +0200 | gensyst | (~gensyst@user/gensyst) (Quit: Leaving) |
2023-07-06 21:26:59 +0200 | gtf | (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Ping timeout: 264 seconds) |
2023-07-06 21:28:21 +0200 | <delYsid> | Oh, scalpel looks really neat, thanks! |
2023-07-06 21:28:22 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection) |
2023-07-06 21:33:28 +0200 | elkcl | (~elkcl@broadband-178-140-133-76.ip.moscow.rt.ru) |
2023-07-06 21:33:45 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) |
2023-07-06 21:34:18 +0200 | Guest5320 | (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds) |
2023-07-06 21:38:51 +0200 | hisa3877 | (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) |
2023-07-06 21:38:57 +0200 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-07-06 21:39:56 +0200 | gtf | (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) |
2023-07-06 21:45:47 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-07-06 21:46:21 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-07-06 21:49:04 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-07-06 21:49:14 +0200 | fendor | (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Remote host closed the connection) |
2023-07-06 21:55:26 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds) |
2023-07-06 21:56:10 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-07-06 21:57:39 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-07-06 21:59:01 +0200 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-07-06 22:01:25 +0200 | mei | (~mei@user/mei) |
2023-07-06 22:02:34 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Read error: Connection reset by peer) |
2023-07-06 22:03:36 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-07-06 22:06:03 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection) |
2023-07-06 22:06:23 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) |
2023-07-06 22:16:20 +0200 | falafel | (~falafel@2603-7000-a700-8710-87fa-7c70-1d3c-0c29.res6.spectrum.com) |
2023-07-06 22:21:01 +0200 | thegeekinside | (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
2023-07-06 22:22:22 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection) |
2023-07-06 22:23:59 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 22:26:55 +0200 | <Yumemi> | I'm trying to build a GHC cross compiler for aarch64-linux-android24 (mostly for fun, I know that there are problems when it comes to template Haskell and other things), and I wonder what's the… best? way to specify the toolchain to ./configure/Hadrian? The "problem" is that the only tools prefixed with aarch64-linux-android24- in the Android NDK are clang and clang++ (not nm, ar, ld, …) so if |
2023-07-06 22:26:56 +0200 | <Yumemi> | I only specify the --target and CC environment variables, it will fail at various points in the build because of missing tools, and if I add them manually through the environment variables AR, LD and NM (though AR and NM aren't mentionned in ./configure --help), the stage 1 build fails with a "Error, rule finished running but did not produce file: |
2023-07-06 22:26:58 +0200 | <Yumemi> | _build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so" so I suppose that's not a good way to do things? Maybe I should just create symlinks with the prefix for other tools? |
2023-07-06 22:27:08 +0200 | Guest5320 | (~finn@176-151-21-224.abo.bbox.fr) |
2023-07-06 22:28:39 +0200 | `2jt | (~jtomas@90.162.208.36) |
2023-07-06 22:28:52 +0200 | <Hecate> | Yumemi: I think symlinks are an acceptable hack in the absence of anything better :) |
2023-07-06 22:29:59 +0200 | <Yumemi> | okay, so symlink + --target it is, I'll try again with that, thanks! |
2023-07-06 22:30:18 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds) |
2023-07-06 22:31:27 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2023-07-06 22:37:43 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-07-06 22:39:11 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
2023-07-06 22:39:39 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) |
2023-07-06 22:41:48 +0200 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
2023-07-06 22:44:37 +0200 | <Hecate> | Yumemi: do keep us updated, but also #ghc might be a better channel for that |
2023-07-06 22:57:15 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-07-06 22:57:17 +0200 | falafel | (~falafel@2603-7000-a700-8710-87fa-7c70-1d3c-0c29.res6.spectrum.com) (Ping timeout: 245 seconds) |
2023-07-06 22:57:29 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-07-06 22:57:30 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-07-06 22:57:30 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-07-06 23:01:21 +0200 | pavonia | (~user@user/siracusa) |
2023-07-06 23:04:05 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b9c2:276d:fb2c:5cec) |
2023-07-06 23:08:14 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:b9c2:276d:fb2c:5cec) (Ping timeout: 246 seconds) |
2023-07-06 23:10:20 +0200 | gtf | (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Ping timeout: 246 seconds) |
2023-07-06 23:10:31 +0200 | alexherbo2 | (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection) |
2023-07-06 23:11:36 +0200 | nick4 | (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 246 seconds) |
2023-07-06 23:12:12 +0200 | <Yumemi> | Unfortunately still got "Error, rule finished running but did not produce file: _build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so" and I don't have time to investigate more tonight (but I'll continue tomorrow or the day after) |
2023-07-06 23:12:14 +0200 | `2jt | (~jtomas@90.162.208.36) (Remote host closed the connection) |
2023-07-06 23:12:36 +0200 | <Yumemi> | and for #ghc I have to admit I wasn't sure whether it was ok or only for tinkering with GHC's code itself |
2023-07-06 23:15:42 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-07-06 23:16:30 +0200 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 246 seconds) |
2023-07-06 23:18:59 +0200 | <Yumemi> | (oh, `_build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so` doesn't exist but `./_build/stage1/lib/aarch64-android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so` was generated, I'll start with this tomorrow) |
2023-07-06 23:20:43 +0200 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) |
2023-07-06 23:27:15 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-07-06 23:38:10 +0200 | michalz | (~michalz@185.246.207.215) (Remote host closed the connection) |
2023-07-06 23:39:54 +0200 | thegeekinside | (~thegeekin@189.217.90.138) |
2023-07-06 23:47:44 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-07-06 23:56:59 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-07-06 23:57:02 +0200 | lainon | (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) (Quit: My Mac has gone to sleep. ZZZzzz…) |