Releases: leoliu0/ratex
Release list
v0.4.4: native LuaTeX engine, automatic convergence, and in-tree graphics
Release v0.4.4
Ratex v0.4.4 delivers complete native LuaTeX engine execution, fully automatic multi-pass convergence, in-tree pure-Rust PostScript/EPS and MetaPost engines, and extensive font embedding and visual parity fixes across Latin Modern, CJK, and mathematical symbol fonts.
Highlights & New Features
-
Native LuaTeX Engine Profile (
EngineKind::LuaTeX,lualatex,-lualatex):- Integrated in-tree pure-Rust Lua 5.3 runtime (
tex-luaandtex-lua-derive) and precompiled LuaLaTeX format (lualatex.fmt.zst). - Dynamic primitive aliasing via
tex.enableprimitivesallows packages likeiftex.styto bind\IFTEX@detokenizeand\IFTEX@protected. - Full LuaTeX math primitives (
\Ustack,\Ustartmath,\Ustopmath) and style dimension parameters (\Umathfractiondelsize,\Umathstacknumup,\Umathstackdenomdown,\Umathstackvgap) resolveamsmath's\binomand generalized fractions under LuaTeX. - Preloaded standard modules:
luatexbase,ltluatex,luaharfbuzz,fontloader,l3backend-luatex, andlualatexquotejobname. - 100% embedded font subsets for Latin Modern Roman, Sans, and Math OpenType fonts under
lualatex.
- Integrated in-tree pure-Rust Lua 5.3 runtime (
-
Fully Automatic Pass Convergence:
- Removed manual single-pass CLI flags (
-1,--single-pass) andPassPolicy::Single. - Convergence is now strictly automatic: clean documents without cross-references or citations finish in 1 pass, while documents with references, citations, tables of contents, or bibliographies run the exact required passes until auxiliary state stabilizes.
- Removed manual single-pass CLI flags (
-
In-Tree PostScript & MetaPost:
- Pure-Rust PostScript Level 2/3 and EPS interpreter (
tex-ps) converts figures to PDF in-memory without external Ghostscript or shell dependencies. - Pure-Rust MetaPost 3.00 engine and
mplibruntime (tex-mplib).
- Pure-Rust PostScript Level 2/3 and EPS interpreter (
-
Font & Rendering Fixes:
- Eliminated zero-width Latin character leakage after CJK font embedding across all pages.
- Fixed empty paragraph top-box artifact (
\leavevmode/\noindentwith empty hlist). - Verified embedded subsets and visual rendering for CJK (
CJKutf8),stmaryrd,bbding, and Latin Modern OpenType fonts. - Verified Spanish Babel hyphenation and caption convergence.
- Corrected
\chardefdimension scaling inspand preserved unexpandable active characters during\edef.
Verification
- Workspace Tests: All 1,464 tests across 52 test suites pass.
- Visual Audits: Poppler and pdf.js rendering verified on multi-script, CJK, and complex mathematical formulas with 0 glyph clipping or font substitution artifacts.
v0.4.3
Compatibility and concurrency fixes
- Complete bundled font and graphic resources for XCharter, STIX2 math scripts, ccicons, Lato, Bera, FdSymbol, doclicense, twemojis, and duckuments, including license notices and corresponding sources.
- Fix BibTeX scanning of backslash-containing field names and escaped braces; malformed fields report an error instead of stalling.
- Bound image embedding to four execution slots, including the caller, and perform work inline if a worker cannot start. Memory limits are unchanged.
- Acquire each job's cache lock before creating its directory, outside the directory that garbage collection can remove. Locks owned by live processes no longer expire during long compilations.
- Provision complete independent-reference dependencies, expose compiler diagnostics on fixture failures, and correct macOS architecture detection in CI. Archive and installed-distribution checks remain mandatory.
Verification
The published Linux binary was run on the same frozen 1,000-project corpus, without editing its sources:
| Compilation outcome | Projects |
|---|---|
| Ratex v0.4.3 | 942 |
| Genuine latexmk, default bibliography rules | 883 |
| Genuine latexmk, additionally using eight existing shipped bibliographies | 891 |
| Successful with latexmk but failing with Ratex | 0 |
| Successful only with Ratex | 51 |
| Failing with both | 58 |
All 927 previous Ratex successes are retained; 15 additional projects compile. All 22,987 original source files are byte-for-byte unchanged. These are compilation results, not a claim of whole-corpus visual parity or complete font embedding for every corpus document.
The workspace passes 791 Rust tests. The official Linux archive, an installation from that archive, and both built AUR packages each pass all 39 isolated font/graphics fixtures, with external fonts and networking blocked and independent Poppler/pdf.js rendering checks. All tagged Linux, Windows, macOS Intel, macOS Apple Silicon, and native/WebAssembly library release jobs passed. Cache ownership regressions fail before the fix and pass afterward; the same debugger-controlled two-compiler schedule now produces two valid PDFs instead of deleting the first compiler's pending cache.
The attached corpus-compatibility-v0.4.3.json records every project outcome, reference failure classifications, source manifest fingerprint, and tested binary checksum. cache-startup-regression.json records the concurrent-cache reproduction.
v0.4.0
Ratex v0.4.0
Key Changes
- Offline TEXMF Font Closure: Includes authentic Type 1, TrueType, and OpenType resources for Latin Modern, CM-Super, T2A Cyrillic, LGR Greek, CJK (Japanese, Simplified & Traditional Chinese, Korean), URW Base-35, stmaryrd, and bbding.
- Native Unicode & Layout: Full fontspec and xeCJK selection support with HarfBuzz/rustybuzz text shaping.
- Automatic Pass Convergence: Detects document stability automatically; compiles single-pass documents in 1 pass without needing
-1, while running 2-3 passes for cross-references, TOC, and citations. - Strict Isolated Binary: Installs only
ratex. Never shadows or overwrites systempdflatex,xelatex,lualatex, orlatexmk.
Checksums
tex-suite-v0.4.0-linux-x86_64.tar.gz:a4e96526a72cc82882f9e3e90af9e601564c7ec1642fe62c2e4c746bffc34d49
v0.3.0
Full Changelog: v0.2.1...v0.3.0
Full Changelog: v0.2.1...v0.3.0
v0.2.1
v0.2.0
v0.1.0
Initial release of ratex: ultra-fast pure-Rust TeX engine and toolchain.
Full Changelog: https://github.com/leoliu0/ratex/commits/v0.1.0