Repository navigation
v2.1.27
The daemon no longer eats memory while you type; \resizebox-wrapped tables render natively.
Memory
- Typing bursts no longer ratchet the daemon's memory. Every keystroke
pushes the whole buffer, and every push used to render the whole document
— concurrently. On a long paper each render outlasts the typing debounce,
so a burst of keystrokes meant tens of full renders in flight at once
(each holding a parsed document plus its HTML), and the allocator kept
that peak: measured 122 → 467–510 MiB per burst on the release binary,
and on Linux it never came back. Over days of editing that is an
out-of-memory kill — as reported by a user whose editor session was
OOM-killed at 3.3 GB after nine hours. Renders are now strictly
one-at-a-time and pushes coalesce onto the newest keystroke: a push
superseded before it renders stores its buffer (a push for an\input
child is never dropped by a concurrent push for the root, or by a save)
but skips the render — the newest push renders everything. Peak memory
during a burst is bounded by one render, and it settles back down between
bursts instead of ratcheting; a sustained burst finishes in a fraction of
the time. - The editor plugin keeps at most one buffer upload in flight. A new
push used to spawn a freshcurlalongside any still-uploading one; on a
slow render that piled up 100+ concurrentcurlprocesses, each holding
the whole buffer in its pipe, inside the editor's own process tree — the
memory a systemd unit charges to the editor. A newer push now cancels the
in-flight upload before starting.
Rendering
\resizebox-wrapped tables render natively. A tabular inside
\resizebox{\textwidth}{!}{…}(or\scalebox/\rotatebox, starred
forms included) outside a float was left in prose, where it degraded into
unsupported-environment chips with raw&-separated cells — the common
\begin{center}\resizebox…{\begin{tabular}…pattern. The box transforms
now unwrap: sizing arguments are dropped (a reflowing HTML preview can't
honor them; comment-split and undelimited arguments scan correctly) and
the content parses normally, so the table renders as a real table at
natural size.
If you were hit by the memory issue: upgrade the daemon binary AND the
plugin (both changed), then :MathPreviewRestart so the running daemon is
the new one — a reused long-lived daemon keeps the old behavior.
Downloads. Prebuilt mathpreview-cli daemon tarballs for macOS (arm64,
x86_64) and Linux (x86_64, arm64), each paired with a SHA-256 checksum.