SILE v0.10.10 Is Released

Version v0.10.10 of SILE has been released and is available for download! See the included CHANGELOG.md or review the commit history for more explicit details.

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. See ./configure --help for details, but --program-suffix=-luajit is one way to get a sile-luajit executable that could be used alongside sile .

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 .method() ). 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 \svg . 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. The \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.

Features

build: Detect and use luajit first (601dfc4)

Detect and use luajit first (601dfc4) build: Detect LuaJIT if explicitly configured to want it (c3e8089)

Detect LuaJIT if explicitly configured to want it (c3e8089) classes: Add warning to

oindent if called after input (f29b9d9)

Add warning to

oindent if called after input (f29b9d9) packages: Allow scaling SVGs by width or height (44588b5)

Allow scaling SVGs by width or height (44588b5) settings: Add a way to reset single setting to defaults (f318cdf)

Add a way to reset single setting to defaults (f318cdf) settings: Bring Lua settings.set to parity with \set (d73b08c)

Bug Fixes