Skip to content

Releases: leoliu0/ratex

v0.4.4: native LuaTeX engine, automatic convergence, and in-tree graphics

Choose a tag to compare

@leoliu0 leoliu0 released this 22 Sep 23:59

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-lua and tex-lua-derive) and precompiled LuaLaTeX format (lualatex.fmt.zst).
    • Dynamic primitive aliasing via tex.enableprimitives allows packages like iftex.sty to bind \IFTEX@detokenize and \IFTEX@protected.
    • Full LuaTeX math primitives (\Ustack, \Ustartmath, \Ustopmath) and style dimension parameters (\Umathfractiondelsize, \Umathstacknumup, \Umathstackdenomdown, \Umathstackvgap) resolve amsmath's \binom and generalized fractions under LuaTeX.
    • Preloaded standard modules: luatexbase, ltluatex, luaharfbuzz, fontloader, l3backend-luatex, and lualatexquotejobname.
    • 100% embedded font subsets for Latin Modern Roman, Sans, and Math OpenType fonts under lualatex.
  • Fully Automatic Pass Convergence:

    • Removed manual single-pass CLI flags (-1, --single-pass) and PassPolicy::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.
  • 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 mplib runtime (tex-mplib).
  • Font & Rendering Fixes:

    • Eliminated zero-width Latin character leakage after CJK font embedding across all pages.
    • Fixed empty paragraph top-box artifact (\leavevmode / \noindent with 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 \chardef dimension scaling in sp and 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

Choose a tag to compare

@github-actions github-actions released this 20 Sep 18:25

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

Choose a tag to compare

@leoliu0 leoliu0 released this 20 Sep 07:12

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 system pdflatex, xelatex, lualatex, or latexmk.

Checksums

  • tex-suite-v0.4.0-linux-x86_64.tar.gz: a4e96526a72cc82882f9e3e90af9e601564c7ec1642fe62c2e4c746bffc34d49

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 05:20

Full Changelog: v0.2.1...v0.3.0

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 18 Sep 14:23

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 04:47

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@leoliu0 leoliu0 released this 16 Sep 09:09

Initial release of ratex: ultra-fast pure-Rust TeX engine and toolchain.

Full Changelog: https://github.com/leoliu0/ratex/commits/v0.1.0