Summary of Improvements
This release is the first to fully support LuaJIT.
For systems with a LuaJIT interpreter available this brings a full 2× speed improvement to rendering your documents over standard Lua interpreters.
This speed increase is not without downsides though.
Most available JIT versions do not have full Lua debugging functionality built in, limiting the usefulness of some of SILE’s warning messages and especially the trace functionality.
A LuaJIT build is probably what you want to use when working on content and re-rendering your documents over and over, but it may not be the best choice for doing development work, coding up your classes and functions, and so forth.
To make the switch, add the configuration flag
./configure --with-luajit, then compile and install as usual.
In the event you want to keep both versions around, it is actually possible to install both.
SILE fully supports GNU Automake’s program name transformations, you can specify a prefix, suffix, or complete alternate name to install under.
./configure --help for details, but
--program-suffix=-luajit is one way to get a
sile-luajit executable that could be used alongside
A few functions have been renamed and their old versions deprecated.
If any of your code calls outputter functions directly these calls will need to be modified to be uniformly serf-referential method calls (i.e.
:method() instead of
This makes the outputter API consistent between backends, but may be a breaking change for some.
Several other functions have been renamed and their old names deprecated.
For these warning messages will be thrown for now, and the next version series (0.11.x) will deprecate them entirely.
The most notable rename is
\include-svg-file is now just
In addition to the rename you can now specify a desired size by width instead of only by height.
In smaller news a large number of small fixes now draw frame debugging lines in exactly the right place instead of next to the right place, mark PDF bookmark locations at the top of the current line instead of the bottom, draw rules in the correct writing and advance directions for RTL and BTT frames.
Other fixes include keeping Japanese language and tate functions from taking over documents.
\center command now disables line indentation so content is centered as expected, and attempting to set indentation after the start of a paragraph will throw a useful warning.
- build: Detect and use luajit first (601dfc4)
- build: Detect LuaJIT if explicitly configured to want it (c3e8089)
- classes: Add warning to \noindent if called after input (f29b9d9)
- packages: Allow scaling SVGs by width or height (44588b5)
- settings: Add a way to reset single setting to defaults (f318cdf)
- settings: Bring Lua settings.set to parity with \set (d73b08c)
- classes: Reset parindent’s inside \center command (7b62f74)
- core: Always compare like-types so LuaJIT can run (c608090)
- core: Don’t read zero-length name table entries (bcd9a9e), closes #1015
- examples: Properly center title in showoff document (55717fb)
- frames: Discard content (usually whitespace) inside \pagetemplate (3b7085b)
- frames: Draw frame debug lines exactly on frame lines (db92edc)
- languages: Stop Japanese resetting global chapter post macro (836f199)
- packages: Align pullquote ending mark with outside margin (8b808db)
- packages: Draw rules in the writing direction (18bca68)
- packages: Error if asked to add bogus dependencies (59e2b56)
- packages: Fix indentation of second paragraph in pullquotes (a8525e5)
- packages: List \include files in makedeps (bf670ab)
- packages: Orient rules for all 8 directions (bc4a33a)
- packages: Place PDF bookmarks at top of current line (ce30d83)
utilities: Use deterministic sort for sorted pairs (99e2b59)