Version v0.10.9 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 is the first version of SILE to officially support Lua 5.4! If your OS or distro is migrating to the latest Lua, this release is for you. The changes in this Lua release are not very significant in relation to SILE, but it took a bit of time and effort for all the modules we use to be compatible. Additionally in this release how we handle bundling LuaRocks modules has changed. We no longer include the full source and prebuilt rocks in the source packages. For most platforms and installations this will not change anything at all, using --with-system-luarocks
still skips anything to do with bundling and just requires the dependencies be available on the host system. This is used by all platforms to date that have SILE packages. For people building from source using the default configuration of --without-system-luarocks
the bundling still happens using Luarocks to download and build all the required dependencies when you run make
. Previously it copied the sources for your version of Lua out of the source package, but with 4 supported versions of Lua and many variation in how different platforms build them this was getting too cumbersome. LuaRocks does this job already, we just leverage it.
Still on the topic of packaging, a minor change is that make install
will not install the PDF manual and examples by default, but if you add --with-manual
and/or --with-examples
it will not only install them, but it will install them to your platform’s default location for PDF documentation (previously they were just stuffed in alongside the SILE code, wherever that was). The PDF documentation directory is the same as for other documentation on most platforms, but it does go to the right place for those system that have special handling for PDF documentation.
As for the typesetter itself, if you ever used inputfilter()
functions and your content randomly came out in the wrong order, we fixed that non-determinism. Additionally Unicode combining diacritic marks can be now be added with \unichar{}
. If you’re trying to figure out what is what on a page, --debug hboxes
also works again after being broken some time back.
For developers, adding multiple debug flags from the CLI is easier than ever, and fewer things need to be rebuilt from scratch every time you touch something in SILE’s source code.
Features
- build: Install manual to $(pdfdir) if configure --with-manual (ee33ff7)
- core: Allow adding --debug flag multiple times (9ac2838)
Bug Fixes
-
build: Correct typo in dependencies for building docs (ad548a5)
-
build: Ship blank lua_modules install list in source packages (7939970)
-
build: Touch Makefile.in to avoid automake errors (e7f4627)
-
build: Work around src/libtexpdf subdirs using side-effects (26d6769)
-
core: Iterate on sequential data with ipairs() or SU.sortedpairs() (9db0a28)
-
debug: Fix math in hbox debugging (6c0029d)
-
packages: Combine unichar output with existing unshaped node (712bc92)
-
packages: Use sortedpairs to avoid non-determinism (a28ef06)
-
utilities: Add sorted pairs function (5aad397)
Version v0.10.8 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 addresses the Docker builds which came out broken in the previous release.
Some Lua modules shuffled to make way for Lua 5.4 support (which is almost ready, just waiting on one more upstream dependency).
Additionally some build issues on BSD have been smoothed over.
Note I accidentally pushed this release tag along with a bad commit that was never supposed to be released.
Hence the v0.10.8 tag was briefly attached to a different commit (but with no packages attached).
I apologize for any inconvenience for any inconvenience this caused.
Features
- build: Output hints about how to compile from repo snapshots (596cd9f)
Bug Fixes
- build: Avoid possible race condition on first bulid (b937c95)
- build: Use BSD compatible find syntax (c96683e)
- build: Use BSD compatible touch syntax (25eb6fd)
- docker: Make sure Lua modules installation works on the first pass (f0c3e26)
- build: Save a ./configure cycle by bootstraping the version (2997d05)
Reverts
Version v0.10.7 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 substantially the same as v0.10.6, except the release packages were published fully automatically. This was supposed to happen in the last release too, but some issues just don’t surface until you do the real thing. This time it actually worked.
Bug Fixes
Version v0.10.6 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
Most of the changes in this maintenance release are related to the build and packaging system, with a notable exception of the manual. Many more packages have been documented and the manual has seen quite a bit of copy-editing. For users of the docbook class, the default monospace font has changed from Dejavu Sans to Hack.
One new feature added to the TeXlike input language now allows single quotes to be escaped (\"
) to appear in the value of options passed to a command.
In the installation department, two new option flags for ./configure
have been added, --with-manual
and --with-examples
. Both are off by default. Enabling these flags will cause a copy of the manual and examples respectively to be installed to your system’s $docsdir
. These PDFs are included pre-built in the source package, but not installed anywhere by default.
Features
- build: Add --with-examples option to configure & make (245e8a6)
- build: Add --with-manual option to configure & make (3415b3a)
- inputs: Allow (escaped) quote mark in quoted command options (2e9d1b5)
Bug Fixes
-
build: Always distribute Lua_modules even if build uses system (e75ece7)
-
build: Correct typo in test dependencies causing no font downloads (ad49a85)
-
build: Correct typo in test dependencies causing no font downloads (09a653a)
-
build: Explicitly filter packaging *.lua and *.sil to avoid cruft (a89773d)
-
build: Fix conflations between Lua source types (163959f)
-
build: Handle any combo of --with-manual and --with-examples flags (145a86e)
-
build: Mark make busted
as PHONY so it always runs (23b81ac)
-
build: Move dynamically generated file lists out of automake (f626867)
-
classes: Use Hack as default monospace font (0e61067)
-
core: Handle empty content in macros using \process (2dc6d66)
-
frames: Reset font to Gentium to output frame IDs (102dd09), closes #915
-
inputs: Disallow 'begin' and 'end' as environment names (b13b99a)
-
inputs: Only allow reserved characters as 1-char commands (2a4c095)
-
packages: Assure PDF initialization first-output can be rotated (0613ab1)
-
packages: Cast measurements to numbers before use in PDF functions (5f2d2e3)
-
packages: Fix measurement-to-number issue in SVG (168dffc)
-
packages: Improve multi-paragraph pullquotes (7d3f355), closes #865
-
packages: Ruby class should not affect document language (#926) (8034aa1)
-
packages: Tate should not affect document language (#932) (193fded)
-
tooling: Allow make dist
on systems without native lua packages (5758085)
Version v0.10.5 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 maintenance release fixes a number of small bugs that have cropped up in production use of the v0.10 series.
Using the frametricks package no longer causes crashes, your table of contents justification won't be wonky, and passing functions as content is working as expected again.
As an added bonus it is possible to process the content passed to functions / macros more than once if desired.
One minor new feature slipped in as well. In addition to the letter-space system that added glue nodes between every glyph there is now a setting for true tracking (that won't break hyphenation or other features).
Packages might also appreciate the improved dependency detection and quick self-check that verifies everything is in working order without running the whole test suite.
Note that while Lua 5.4.0 was released a couple days ago, this release officially only supports Lua through the latest 5.3 release.
It may or may not work on Lua 5.4 yet, we haven't tested.
Features
- build: Add
make check
fast self-check target, fixes #835 (89cefef)
- shaper: Add tracking setting and implement for harfbuzz (9e1dec7)
Bug Fixes
-
build: Check for luarocks if not configured --with-system-luarocks (e8770ce)
-
core: Account for possibility that there are no working fallbacks (391f44e)
-
core: Gracefully do nothing when SILE.process() passed nothing (1085049)
-
core: Revamp macro system to fix #535 (47a0af8)
-
frames: Avoid possible infinite loop when looking for a frame (157dfc8)
-
frames: Rely on __tostring() meta method, toString() is no more (77b8956)
-
nodes: Fix calling non-existent nodefactory function (#864) (9580a15)
-
packages: Center dotfill in the event only one dot fits (95181d2)
-
packages: Don't let dotfill content be stretchy (079ff97)