Skip to content

samurai 0.7

Compare
Choose a tag to compare
@michaelforney michaelforney released this 10 Jul 04:30
· 94 commits to master since this release

New features

  • The environment variable SAMUFLAGS can now be used to specify default -j or -v options.
  • $depfile and $rspfile are now removed by the clean subtool.

Bug fixes

  • Console was not getting released when a job using the console pool failed.
  • Handle argv = { NULL } by setting argv0 to "samu" instead of crashing.
  • $depfile and $rspfile paths requiring shell quoting are now handled correctly.
  • The edge in and out arrays were incorrectly allocating space to store the entire node (72 bytes on 64-bit systems) instead of just the pointer (8 bytes), resulting in excess memory usage.

Memory usage

  • Fixing the allocation bug of in and out arrays described above resulted in huge memory savings, roughly 35% in a no-op chromium build.
  • When evaluating $in or $out with path lists of length 1, re-use the existing string instead of making a copy.
  • Remove edge variable "cache", which didn't seem to help at all in practice.

Acknowledgements

Thanks to Andreas Baumann for implementing the SAMUFLAGS feature, Paolo Bonzini and orbea for reporting issues, and Earnestly and Eli Schwartz for testing development builds.