Skip to content

samurai 0.4

Compare
Choose a tag to compare
@michaelforney michaelforney released this 29 Aug 03:19
· 173 commits to master since this release

New features

  • Add support for --version option for compatibility with existing higher-level build tools like cmake and meson.
  • Now builds on macOS, which does not support the POSIX O_DIRECTORY or st_mtim member of struct stat.
  • Better messages from -d explain for missing/invalid dependencies or build log entry.

Bug fixes

  • Generator action with no entry in build log was incorrectly considered dirty, causing a re-run of the ninja generation (cmake, meson, etc) on the first build.
  • Avoid large stack allocations during .ninja_deps processing and when user specified a large maximum number of jobs.
  • Fix -k maxfail handling when multiple jobs fail at the same time (regression in 0.3).

Cleanups

  • Prefer C99 functions/types over POSIX in some cases.
  • Store modification time internally as int64_t for compatibility with future ninja release and to avoid struct timespec requirement.
  • Remove redundant call to stat when recording dependencies.
  • Mark lexing keyword table as const to move to read-only section of executable.

Acknowledgements

Thanks to Bernhard Weichel, Jonathan Neuschäfer, Iru Cai, and Emil Velikov for bug reports and/or pull requests!