Skip to content

Releases: zyedidia/knit

v1.1.1

27 Apr 06:54
Compare
Choose a tag to compare

Changelog:

  • Applying attributes to prerequisites now uses the [[prereq]][attrs] syntax to avoid ambiguity during parsing.
  • Adds a new db tool to list the contents of the compilation database.
  • Dependency information from the D attribute is immediately added to the database during the first invocation of the recipe, avoiding unnecessary rebuilds to update the database with new dep info in future runs.

v1.1.0

21 Apr 22:37
Compare
Choose a tag to compare

Changelog:

  • Dynamic task elision: a new optimization that allows Knit to avoid running a task if can dynamically determine that a prerequisite that was rebuilt actually changed nothing. For example, adding a comment to a source code file and rebuilding will cause a recompile, but the linker will not be invoked since the object file won't be different.
  • The D attribute now creates a $dep variable that contains the name of the dep file that will be used.
  • The flags passed to Knit are now exposed to the Lua environment as the knit.flags variable.
  • Optimizations for file re-hashing.
  • Absolute paths are normalized to relative paths when resolving dependencies.

v1.0.0

06 Apr 22:22
Compare
Choose a tag to compare

Version 1.0 of Knit means that the API is now stable! This release makes a few changes:

  • There are no longer any limitations on what types of rules can be used across buildsets (a buildset that is included in a another will now be fully merged).
  • Improved syntax for applying attributes to multiple prerequisites. The new syntax is targets:attrs: [a b c][attrs] (each of a, b, c will all have attrs applied).
  • Undeclared variable access in Lua is now an error (this deviates from normal Lua).
  • Bug fixes for compile_commands.json and include when the directory of the file being included does not exist.

v0.4.1

24 Feb 05:23
Compare
Choose a tag to compare

Changelog:

  • Adds new built-in functions choose and sel.
  • Running Knit from inside a Knitfile preserves the knit cache correctly.
  • Minor improvements (graphviz uses strict, small fix for auto-cleaning).

v0.4.0

15 Feb 07:22
Compare
Choose a tag to compare

Changelog:

  • The automatic cleaner now properly removes all generated files, including for targets not requested when the tool was run.
  • Changed the style for the step printer (now only prints the file built and the step count).
  • Bug fix for Lua vm.

v0.3.6

20 Jan 00:01
Compare
Choose a tag to compare

Changelog:

  • Automatically makes parent directories for outputs
  • New prefix and suffix functions available in Lua.
  • Bug fixes for compile_commands.json and for build info if a build is canceled.
  • New path tool shows the path of the current knitfile (can be used by tools invoking knit to see where it is running from).

v0.3.5

29 Nov 22:02
Compare
Choose a tag to compare

Changelog:

  • Bug fixes and improvements (plus docs) for multiline recipes.
  • Quoted targets no longer include the quotes.
  • Backquotes can now be used to apply an attribute to multiple prerequisites:
`foo bar`[I]

makes foo and bar both implicit.

  • Add knit.join function for joining string tables.

v0.3.4

11 Nov 19:06
Compare
Choose a tag to compare

This release adds the new D attribute for a more elegant handling of .d files, such as those generated by GCC. See the new example for details. This feature will likely also be revised/expanded in the future.

v0.3.3

11 Nov 08:44
Compare
Choose a tag to compare

Changelog:

  • New implicit attribute (I) can be used to mark prerequisites that shouldn't be included in $input.
  • Internal shell is used if sh cannot be found.
  • Fixes for Windows support.

v0.3.2

09 Nov 19:50
Compare
Choose a tag to compare

New rulefile function for including rules from other files (for example .d files), and minor changes to the docs.