Skip to content
Snippets Groups Projects
  1. May 19, 2023
  2. Apr 02, 2023
  3. Mar 09, 2023
    • Florian Schmaus's avatar
      Makefile: Add ZIG variable and build target · 74be2772
      Florian Schmaus authored
      The ZIG variable helps to test ncdu with different zig installations,
      and it allows Gentoo to inject the zig version that should be used to
      build zig into the Makefile.
      
      Also add a phony 'build' target as first target to the Makefile so
      that it becomes the default target. This allows the Gentoo package to
      use the default src_compile() function.
      
      See also https://bugs.gentoo.org/900547
      74be2772
  4. Mar 05, 2023
  5. Mar 03, 2023
  6. Feb 22, 2023
  7. Jan 19, 2023
  8. Jan 11, 2023
    • Yorhel's avatar
      Work around a Zig ReleaseSafe mode performance regression · c002d9fa
      Yorhel authored
      With a little help from IRC:
      
      <ifreund> Ayo: its probaly stupidly copying that array to the stack to do the
                safety check, pretty sure there's an open issue on this still
      <ifreund> you may be able to work around the compiler's stupidity by using a
                pointer to the array or slice or something
      <Ayo> ifreund: Yup, (&self.rdbuf)[self.rdoff] does the trick, thanks.
      <ifreund> no problem! should get fixed eventually
      c002d9fa
    • Yorhel's avatar
      Minor doc formatting fix & error message fix · cebaaf09
      Yorhel authored
      cebaaf09
  9. Nov 02, 2022
  10. Oct 26, 2022
  11. Oct 25, 2022
  12. Oct 23, 2022
  13. Oct 17, 2022
  14. Oct 16, 2022
  15. Oct 15, 2022
    • Torbjörn Lönnemark's avatar
      Fix incorrect format string causing invalid export files · d6728bca
      Torbjörn Lönnemark authored
      Zig requires alignment to be specified when specifying a fill character,
      as otherwise digits specified after ':' are interpreted as part of the
      field width.
      
      The missing alignment specifier caused character codes < 0x10 to be
      serialized incorrectly, producing an export file ncdu could not import.
      
      For example, a character with code 1 would be serialized as '\u00 1'
      instead of '\u0001'.
      
      A directory of test files can be generated using:
      
          mkdir test_files; i=1; while [ $i -le 255 ]; do c="$(printf "$(printf "\\\\x%02xZ" "$i")")"; c="${c%Z}"; touch "test_files/$c"; i=$((i+1)); done
      d6728bca
  16. Aug 10, 2022
    • Yorhel's avatar
      Improve exclude pattern matching performance (and behavior, a bit) · d523a77f
      Yorhel authored
      Behavioral changes:
      - A single wildcard ('*') does not cross directory boundary anymore.
        Previously 'a*b' would also match 'a/b', but no other tool that I am
        aware of matches paths that way. This change breaks compatibility with
        old exclude patterns but improves consistency with other tools.
      - Patterns with a trailing '/' now prevent recursing into the directory.
        Previously any directory excluded with such a pattern would show up as
        a regular directory with all its contents excluded, but now the
        directory entry itself shows up as excluded.
      - If the path given to ncdu matches one of the exclude patterns, the old
        implementation would exclude every file/dir being read, this new
        implementation would instead ignore the rule. Not quite sure how to
        best handle this case, perhaps just exit with an error message?
      
      Performance wise, I haven't yet found a scenario where this
      implementation is slower than the old one and it's *significantly*
      faster in some cases - in particular when using a large amount of
      patterns, especially with literal paths and file names.
      
      That's not to say this implementation is anywhere near optimal:
      - A list of relevant patterns is constructed for each directory being
        scanned. It may be possible to merge pattern lists that share
        the same prefix, which could both reduce memory use and the number of
        patterns that need to be matched upon entering a directory.
      - A hash table with dynamic arrays as values is just garbage from a
        memory allocation point of view.
      - This still uses libc fnmatch(), but there's an opportunity to
        precompile patterns for faster matching.
      d523a77f
  17. Aug 08, 2022
  18. Jun 15, 2022
  19. Apr 28, 2022
    • Yorhel's avatar
      Version 2.1.2 · e6806059
      Yorhel authored
    • Yorhel's avatar
      Fix build with zig 0.10.0-dev.1946+6f4343b61 · bb98939e
      Yorhel authored
      I wasn't planning on (publicly) keeping up with Zig master before the
      next release, but it's looking like 0.10 will mainly focus on the new
      stage2 compiler and there might not be any significant language/stdlib
      changes. If that's the case, might as well pull in this little change in
      order to increase chances of ncdu working out of the box when 0.10 is
      out.
      bb98939e
  20. Apr 16, 2022
  21. Mar 25, 2022
  22. Mar 24, 2022
    • Yorhel's avatar
      Fix bad assertion in scan.zig:addSpecial() · 5f383966
      Yorhel authored
      While it's true that the root item can't be a special, the first item to
      be added is not necessarily the root item. In particular, it isn't when
      refreshing.
      
      Probably fixes #194
      5f383966
  23. Mar 16, 2022
  24. Mar 14, 2022
  25. Feb 07, 2022
Loading