I've tagged the latest master as v0.8. This is the first major version bump since 2013 due to the merge of the explicit variants branch, which results in a backwards incompatibility if you use variants. If you don't use variants, you should be unaffected.
Thanks to Pete Moore, data-man, Jose Quinteiro, r-value, Yaling Fang,
Prokop Randacek, Lucas Kanashiro, and Bojidar Marinov for your
contributions to this release!
Also, huge thanks to those who have donated via GitHub sponsors & Patreon -- it means a lot to have your support.
Backwards incompatibility with variants:
- The FUSE overlay variants have been removed in favor of explicit variants. If you use variants on version v0.7.11 or earlier, you may need to update your Tupfiles. See
https://gittup.org/tup/ex_explicit_variants.html for more details.
New features:
- Variants now supported in Windows.
- 'import' keyword to set a Tupfile variable to an environment variable.
- 'tup compiledb' can create a compile_commands.json for third-party tools to see compilation commands.
- 'tup commandline' shows the commandline used to compile a file.
- 'tup generate' can support building in a separate build directory (if the project supports building with variants).
- 'tup generate' can take an output list to limit what the script generates (ie: a partial build script).
- A single Lua state is now re-used during parsing and doesn't need to be reinitialized for every Lua-based Tupfile.
- Internal mtime tracking is now at nanosecond resolution (where supported by the OS) instead of 1-second intervals.
Dependency updates:
- Internal Lua version is now 5.4.6
- Internal SQLite version is now 3.45.2
- Internal PCRE version is now PCRE2 10.42 (The internal version is only used by Windows by default)
- External PCRE dependency is now libpcre2 instead of libpcre (Linux/OSX by default, unless built with CONFIG_TUP_USE_SYSTEM_PCRE=n in which case the internal version is used)
Bug fixes:
- Fixed a bug that results in tup_entry_rm called on tupid X, which still has refcount=1
- ^o rules that fail with a monitor autoupdate no longer cause infinite loops
- Deleted files are now removed from the transient_list.