Skip to content

VOMD v1.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 20:44
· 10 commits to main since this release

Added

  • Select and copy text. Drag to select (a drag that starts on a link selects, and a click still follows it), double-click for a word, triple-click for a paragraph, heading, code block or table row, Shift+click to extend, Ctrl+A for everything, and drag past the top or bottom of the window to scroll. Ctrl+C (also Ctrl+Insert, Ctrl+Shift+C and the Copy key) copies plain text: list items start with - , quoted lines with > , table cells are tab-separated, an image is its alt text and a link its text. The text is made only when a program pastes it, so copying a whole 5 MB document costs no memory until then (X11 INCR and Wayland pipes, in pieces of 64 KiB). On X11 and Wayland a selection made with the mouse (and Ctrl+A) is also the primary selection, pasted with a middle click; the new primary_selection = on|off setting turns that off. As the window closes on X11 the clipboard manager, if there is one, is asked to keep the clipboard. Needs the new clipboard feature, on by default; the smallest build leaves it out.
  • Esc clears the selection before it quits (after closing the toolbar's menu, as before).
  • A copy button on code blocks, as on GitHub: while the pointer is over a fenced or indented code block, a button shows in its upper right corner, and a click copies the block's code to the clipboard (not the primary selection, and a selection is left alone). The code is as written, with its tabs, indentation and blank lines, without the language tag, without the quote marks or list indent of what holds the block, and without a line break after the last line; a block of several MB is made only when something pastes it. The button turns into a check mark for two seconds, lights up and shows the hand under the pointer, scales with the zoom and the display, and is left off blocks too small for it. If there is no clipboard, a note says so. Part of the clipboard feature, so the smallest build has none.

Fixed

  • An image decode that started just as the images wanted changed is counted in the room the image cache keeps free. Before, the cache could briefly fill the memory that decode used.
  • With remote images on, a picture near the window could be fetched again and again after a few arrived at once: each body let in was the first thing the next one's room was made from.
Budgets, measured on the release runner

A shared runner is two to three times slower than the machine the time budgets
are for, so start and scroll times are reported here, not gated.

Metric Build Measured Budget
✅ stripped binary default 3.91 MB ≤ 4.0 MB
⚠️ not gated cold start, tiny.md default 115.5 ms ≤ 100 ms (first of 20 runs)
✅ warm start, tiny.md default 38.7 ms ≤ 50 ms (median of 19)
✅ cold start, readme.md default 48.7 ms ≤ 100 ms (first of 20 runs)
✅ warm start, readme.md default 43.9 ms ≤ 50 ms (median of 19)
✅ cold start, spec.md default 45.4 ms ≤ 100 ms (first of 20 runs)
✅ warm start, spec.md default 41.8 ms ≤ 50 ms (median of 19)
⚠️ not gated cold start, huge.md default 147.1 ms ≤ 100 ms (first of 20 runs)
⚠️ not gated warm start, huge.md default 140.6 ms ≤ 50 ms (median of 19)
✅ idle RSS, 50 KB doc, 1080p default 17928 KB ≤ 30000 KB
✅ idle CPU, 50 KB doc (idle at 65 ms) default 0 ticks/3s ≤ 1 tick
✅ idle RSS, 5 MB doc, 1080p default 32528 KB ≤ 60000 KB
✅ idle CPU, 5 MB doc (idle at 2295 ms) default 0 ticks/3s ≤ 1 tick
✅ stripped binary --no-default-features 2.99 MB ≤ 3.0 MB
✅ cold start, tiny.md --no-default-features 28.3 ms ≤ 100 ms (first of 20 runs)
✅ warm start, tiny.md --no-default-features 40.4 ms ≤ 50 ms (median of 19)
✅ cold start, readme.md --no-default-features 49.2 ms ≤ 100 ms (first of 20 runs)
✅ warm start, readme.md --no-default-features 45.9 ms ≤ 50 ms (median of 19)
✅ cold start, spec.md --no-default-features 46.6 ms ≤ 100 ms (first of 20 runs)
✅ warm start, spec.md --no-default-features 44.0 ms ≤ 50 ms (median of 19)
⚠️ not gated cold start, huge.md --no-default-features 150.1 ms ≤ 100 ms (first of 20 runs)
⚠️ not gated warm start, huge.md --no-default-features 139.9 ms ≤ 50 ms (median of 19)
✅ idle RSS, 50 KB doc, 1080p --no-default-features 18108 KB ≤ 25000 KB
✅ idle CPU, 50 KB doc (idle at 64 ms) --no-default-features 0 ticks/3s ≤ 1 tick
✅ idle RSS, 5 MB doc, 1080p --no-default-features 35256 KB ≤ 55000 KB
✅ idle CPU, 5 MB doc (idle at 2090 ms) --no-default-features 0 ticks/3s ≤ 1 tick
✅ scroll frame, 4K, p95 default 5.45 ms ≤ 8 ms
✅ scroll frame, 4K, p95 --no-default-features 5.11 ms ≤ 8 ms
✅ image RSS, 50 local PNGs default 44700 KB ≤ 62768 KB
✅ image RSS, 50 remote PNGs default 41796 KB ≤ 62768 KB
✅ image RSS, 50 remote PNGs in view, polled every 16 ms default 41876 KB ≤ 62768 KB
✅ image RSS, 50 remote PNGs in view, polled every 50 ms default 41888 KB ≤ 62768 KB
✅ image RSS, 16,384 remote JPEGs of 325 KB cut to 178 bytes default 28368 KB ≤ 62768 KB