Logs: liberachat/#haskell
| 2025-10-04 20:49:39 | <monochrom> | (And they would write like that in C because boolean blindness.) |
| 2025-10-04 20:50:22 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 20:51:52 | <EvanR> | this sort of parsing is well defined but can't be parallelized |
| 2025-10-04 20:52:38 | <bwe> | [exa]: I've learned about them at a time I learned regular expressions. And I learned to avoid them (do I remember correctly that they were mostly bad for performance?). So, being burnt like that, I feel hesitant to use them in parser combinators (a reason / alternative for me not to use regexes). |
| 2025-10-04 20:52:41 | <EvanR> | it seems like context free grammar could benefit from parallel |
| 2025-10-04 20:52:51 | <monochrom> | (Sapir-Worf applies here. 1970s languages forces boolean blindness on you. I reckon that it is unfair to blame beginners.) |
| 2025-10-04 20:53:39 | → | tremon joins (~tremon@83.80.159.219) |
| 2025-10-04 20:53:48 | <EvanR> | actual regular expression based parsers can be very fast |
| 2025-10-04 20:53:50 | × | Everything quits (~Everythin@172.232.54.192) (Quit: leaving) |
| 2025-10-04 20:53:52 | <monochrom> | Deeply recursive CFG may overwhelm your computer if you parallelize it :) |
| 2025-10-04 20:53:59 | <[exa]> | monochrom: well that use is a programming issue, they lookahead and then have to move manually :] |
| 2025-10-04 20:54:49 | <monochrom> | E.g., remember last time telling cabal-install to do unlimited parallel builds caused a lot of trouble (in the form of thrashing)? |
| 2025-10-04 20:55:02 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-10-04 20:55:28 | <EvanR> | first law of parallel programming, if you just do the task N times in parallel it probably hurts |
| 2025-10-04 20:55:59 | <[exa]> | bwe: yeah for regex the lookaheads are detrimental because they destroy the usual (fast) DFA/NFA-style processing. For general PEGs the lookaheads are the determining property that you can do quite easily that is not really allowed in actual context-free grammars. There are pretty fast PEG parsers where lookaheads are "essentially free" |
| 2025-10-04 20:56:12 | <[exa]> | (the packrat/pika parser family) |
| 2025-10-04 20:57:27 | <monochrom> | parsec and megaparsec are actually pretty good for PEG. Although independently conceived, both minimized backtracking, that's why. |
| 2025-10-04 20:57:50 | <[exa]> | kinda wondering how they implement the lookaheads |
| 2025-10-04 20:57:57 | [exa] | dives |
| 2025-10-04 20:58:09 | <monochrom> | (In the case of PEG, completely banned. In the case of *parsec, backtracking is opt-in, non-default.) |
| 2025-10-04 21:05:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 21:06:22 | [exa] | resurfaces |
| 2025-10-04 21:06:37 | <monochrom> | "returned from deep recursion" :) |
| 2025-10-04 21:07:34 | <[exa]> | ok megaparsec just backtracks, not as good as I hoped for but in the above case I guess it's valid (the lookahead ends quickly and prevents extra logic elsewhere) |
| 2025-10-04 21:08:20 | <monochrom> | Whenever I teach CFG, I show this comic to students: https://www.smbc-comics.com/comic/language |
| 2025-10-04 21:10:16 | <monochrom> | I haven't checked, but I guess that if your lookahead is bounded-length, then you still enjoy LL(k) efficiency. |
| 2025-10-04 21:10:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2025-10-04 21:11:52 | <monochrom> | Another way to say it is you have bounded backtracking or trial-and-error so it doesn't count as the bad kind of backtracking :) |
| 2025-10-04 21:13:36 | × | morj_away quits (~morj@user/morj) (Quit: Konversation terminated!) |
| 2025-10-04 21:15:19 | <[exa]> | yeah but do you want to compile LL(k) manually to the state tables? :D |
| 2025-10-04 21:15:39 | <[exa]> | anyway yeah the lookahead here is very bounded |
| 2025-10-04 21:17:40 | <monochrom> | Yeah *parsec will do fine. |
| 2025-10-04 21:18:40 | <[exa]> | I'm bookmarking that comic for lisp reasons |
| 2025-10-04 21:18:49 | <monochrom> | haha |
| 2025-10-04 21:21:13 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 21:21:37 | × | Square quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 2025-10-04 21:25:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-04 21:36:00 | × | tromp quits (~textual@2001:1c00:3487:1b00:79b7:f1d9:214a:8b71) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-10-04 21:36:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 21:41:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2025-10-04 21:42:37 | × | desuua_ quits (~desuua@user/desuua) (Quit: Leaving) |
| 2025-10-04 21:49:05 | → | tromp joins (~textual@2001:1c00:3487:1b00:79b7:f1d9:214a:8b71) |
| 2025-10-04 21:51:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 21:55:54 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2025-10-04 21:56:22 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2025-10-04 21:57:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-04 22:07:22 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 22:08:46 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2025-10-04 22:12:10 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2025-10-04 22:22:49 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 22:25:05 | × | tromp quits (~textual@2001:1c00:3487:1b00:79b7:f1d9:214a:8b71) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-10-04 22:29:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-04 22:33:25 | × | Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed) |
| 2025-10-04 22:34:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 22:35:35 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-10-04 22:38:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-04 22:47:02 | × | synchromesh quits (~john@2406:5a00:2412:2c00:34c1:c1d9:cb1f:137) (Quit: WeeChat 4.1.1) |
| 2025-10-04 22:50:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 22:54:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-04 22:55:22 | → | pavonia joins (~user@user/siracusa) |
| 2025-10-04 22:57:27 | → | peterbecich joins (~Thunderbi@47-149-198-150.fdr01.slbh.ca.ip.frontiernet.net) |
| 2025-10-04 23:04:49 | × | trickard_ quits (~trickard@cpe-49-98-47-163.wireline.com.au) (Ping timeout: 264 seconds) |
| 2025-10-04 23:05:29 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 23:06:44 | → | trickard_ joins (~trickard@cpe-49-98-47-163.wireline.com.au) |
| 2025-10-04 23:09:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-04 23:14:00 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 2025-10-04 23:14:49 | × | peterbecich quits (~Thunderbi@47-149-198-150.fdr01.slbh.ca.ip.frontiernet.net) (Ping timeout: 250 seconds) |
| 2025-10-04 23:20:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 23:24:26 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 2025-10-04 23:25:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-04 23:28:49 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-10-04 23:29:37 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 2025-10-04 23:31:05 | × | hiredman quits (~hiredman@frontier1.downey.family) (Remote host closed the connection) |
| 2025-10-04 23:32:07 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 2025-10-04 23:36:14 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 23:40:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-04 23:49:21 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-10-04 23:51:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-04 23:56:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-05 00:00:01 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds) |
| 2025-10-05 00:05:17 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: jnvjkbj) |
| 2025-10-05 00:07:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-05 00:08:00 | × | sprotte24 quits (~sprotte24@p200300d16f1d7f00d8c5e13c6fd90781.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 2025-10-05 00:11:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-05 00:16:47 | × | acidjnk quits (~acidjnk@p200300d6e7171975ac9a50397945f9ef.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2025-10-05 00:21:39 | → | xdminsy joins (~xdminsy@117.147.71.54) |
| 2025-10-05 00:22:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-05 00:26:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-05 00:27:12 | × | bgg quits (~bgg@2a01:e0a:819:1510:e757:c22f:6699:c589) (Remote host closed the connection) |
| 2025-10-05 00:37:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-05 00:38:44 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 2025-10-05 00:39:46 | → | califax joins (~califax@user/califx) |
| 2025-10-05 00:42:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-05 00:53:20 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-05 00:57:50 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-10-05 01:08:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-05 01:15:17 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-10-05 01:26:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-05 01:30:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-05 01:37:14 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
All times are in UTC.