From fa2f32b3098645cc26ff7b54c9e3ea29380faf66 Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Thu, 29 Oct 2026 16:23:23 +0100 Subject: [PATCH] =?UTF-8?q?Answer=20stability=20round=202:=201=20?= =?UTF-8?q?=F0=9F=94=B4,=200=20=F0=9F=9F=A1=20(0=20misread);=20the=20chang?= =?UTF-8?q?elog=20claims=20no=20bound=20for=20lines=20mixing=20em,=20strik?= =?UTF-8?q?e=20and=20strong,=20and=20item=20158=20names=20them?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 8 ++++---- todo.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f424d2d..506061b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,10 +56,10 @@ closing brackets follow a link: 8000 links inside 8000 `*` took two seconds, now about 100 ms. - Every reader takes time linear in the inline markdown when it holds many `](` that open no link, as in `[a](b` repeated: 16000 of them took 25 seconds, now 80 ms. -- `adfToLosslessMarkdown` and `adfToPortableMarkdown` take time linear in a line's marks when many - of its marked texts or inline nodes need a carry or lose their mark, as in text `un` beside strong - `-r`, repeated: 1000 of them took 10 seconds, now 150 ms. Such a line whose texts each hold two - or more of em, strong and strike still takes time quadratic in its length. +- `adfToLosslessMarkdown` and `adfToPortableMarkdown` write faster a line of many marked texts or + inline nodes that need a carry or lose their mark, as in text `un` beside strong `-r`, repeated: + 1000 of them took 10 seconds, now 150 ms. A line mixing em, strike and strong can still take time + quadratic in its length, as in text `un` beside `-r` marked em and strong, repeated. - `adfToLosslessMarkdown` and `adfToPortableMarkdown` take time linear in the markdown when lists and quotes nest deeply, and so does `losslessMarkdownToAdf`: a list nested 480 levels around 64 KB of paragraphs took 2 seconds to write, now 100 ms. A `!adf:blockquote` holding 2 MB of lines diff --git a/todo.md b/todo.md index 1efe40b..fbe4a09 100644 --- a/todo.md +++ b/todo.md @@ -12,7 +12,7 @@ | ID | Release | Blocked by | Exempt | Item | L | E | I | R | S | Moves | Score | |---|---|---|---|---|---|---|---|---|---|---|---| -| 158 | 0.3.0 | | defect | **Emit a line in time linear in its mark runs when its texts each hold two or more of em, strong and strike, in `adfToLosslessMarkdown` and `adfToPortableMarkdown`.** | 3 | 1 | 2 | 4 | 5 | 9 by 3 | 7.8 | +| 158 | 0.3.0 | | defect | **Emit a line mixing em, strike and strong in time linear in its mark runs, in `adfToLosslessMarkdown` and `adfToPortableMarkdown`.** | 3 | 1 | 2 | 4 | 5 | 9 by 3 | 7.8 | | 150 | 0.3.0 | | decision | **Read `adfToHtml`'s HTML in `htmlToAdf` as a browser serializes it too — a raw `"` in text, ` `, `\r\n` line endings — so a page's `innerHTML` or a form post reads back.** | 2 | 2 | 2 | 4 | 4 | 6 by 5 | 5.0 | | 115 | 0.3.0 | | defect | **Build text holding no `border` mark in `losslessMarkdownToAdf`, and have `adfToLosslessMarkdown` carry text holding one.** | 2 | 1 | 2 | 3 | 3 | 4 by 3 | 4.6 | | 91 | 0.3.0 | | | **Spell an emphasis once across the code spans, an emphasis or link once across the hard breaks, dates, emoji, inline cards, mentions and statuses between two nodes it marks, and an emphasis across inline media, in both writers.** | 3 | 2 | 2 | 5 | 5 | 6 by 6 | 3.6 | @@ -69,7 +69,7 @@ ## Details -### 158. Emit a line in time linear in its mark runs when its texts each hold two or more of em, strong and strike, in `adfToLosslessMarkdown` and `adfToPortableMarkdown`. +### 158. Emit a line mixing em, strike and strong in time linear in its mark runs, in `adfToLosslessMarkdown` and `adfToPortableMarkdown`. Item 33 batched a line's fallbacks, but two guards keep nested emphasis at one run per pass. A paragraph repeating text `un` beside `-r` marked em and strong takes 13 seconds at 1000 repeats in