platform-testers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[platform-testers] new snapshot available: diffutils-3.10.242-d65b


From: Jim Meyering
Subject: [platform-testers] new snapshot available: diffutils-3.10.242-d65b
Date: Fri, 03 Jan 2025 10:34:59 -0800

It's been 593 days since diffutils-3.10, and there have been many
improvements and fixes (thanks especially to Paul Eggert) so here's
a snapshot in preparation for 3.11. Please let us know how your
build+test attempts go.

diffutils snapshot:
  https://meyering.net/diff/diffutils-ss.tar.xz      1.9 MB
  https://meyering.net/diff/diffutils-ss.tar.xz.sig
  https://meyering.net/diff/diffutils-3.10.242-d65b.tar.xz

======================
NEWS since 3.10:

** Improvements

  Programs now quote file names more consistently in diagnostics.
  For example; "cmp 'none of' /etc/passwd" now might output
  "cmp: EOF on ‘none of’ which is empty" instead of outputting
  "cmp: EOF on none of which is empty".  In diagnostic messages
  that traditionally omit quotes and where backward compatibility
  seems to be important, programs continue to omit quotes unless
  a file name contains shell metacharacters, in which case programs
  use shell quoting.  For example, although diff continues to output
  "Only in a: b" as before for most file names, it now outputs
  "Only in 'a: b': 'c: d'" instead of "Only in a: b: c: d" because the
  file names 'a: b' and 'c: d' contain spaces.  For compatibility
  with previous practice, diff -c and -u headers continue to quote for
  C rather than for the shell.

  diff now outputs more information when symbolic links differ, e.g.,
  "Symbolic links ‘d/f’ -> ‘a’ and ‘e/f’ -> ‘b’ differ", not just
  "Symbolic links d/f and e/f differ".  Special files too, e.g.,
  "Character special files ‘d/f’ (1, 3) and ‘e/f’ (5, 0) differ", not
  "File d/f is a character special file while file e/f is a character
  special file".

  diff's --ignore-case (-i) and --ignore-file-name-case options now
  support multi-byte characters.  For example, they treat Greek
  capital Δ like small δ when input uses UTF-8.

  diff now supports multi-byte characters when treating white space.
  In options like --expand-tabs (-t), --ignore-space-change (-b) and
  --ignore-tab-expansion (-E), diff now recognizes non-ASCII space
  characters and counts columns for non-ASCII characters.

** Bug fixes

  cmp -bl no longer omits "M-" from bytes with the high bit set in
  single-byte locales like en_US.iso8859-1.  This fix causes the
  behavior to be locale independent, and to be the same as the
  longstanding behavior in the C locale and in locales using UTF-8.
  [bug introduced in 2.9]

  cmp -i N and -n N no longer fail merely because N is enormous.
  [bug present since "the beginning"]

  cmp -s no longer mishandles /proc files, for which the Linux kernel
  reports a zero size even when nonempty.  For example, the following
  shell command now outputs nothing, as it should:
    cp /proc/cmdline t; cmp -s /proc/cmdline t || echo files differ
  [bug present since "the beginning"]

  diff -E no longer mishandles some input lines containing '\a', '\b',
  '\f', '\r', '\v', or '\0'.
  [bug present since 2.8]

  diff -ly no longer mishandles non-ASCII input.
  [bug#64461 introduced in 2.9]

  diff - A/B now works correctly when standard input is a directory,
  by reading a file named B in that directory.
  [bug present since "the beginning"]

  diff no longer suffers from race conditions in some cases
  when comparing files in a mutating file system.
  [bug present since "the beginning"]

======================
Changes in diffutils since v3.10:

Bruno Haible (10):
      build: Ensure that makeinfo ≥ 6.8 checks the @menu structure
      diff: Fix output of "diff -l -y" for non-ASCII input files
      diff: Fix "diff -y" output
      diff: Improve handling of mbrtoc32 result
      tests: Add a side-by-side output test
      maint: Fix build failures mingw 10 and MSVC 14.30
      tests: Fix ignore-case failure on several platforms
      build: Fix a build failure in a VPATH build
      build: Generate programs' man pages in the source directory, per GCS
      build: Fix use of perl on Guix, FreeBSD, NetBSD

Collin Funk (3):
      tests: don't fail when --program-transform-name is used
      maint: import tests/init.sh from Gnulib during bootstrap
      maint: use Gnulib's stat-time over our own version

Gleb Fotengauer-Malinovskiy (1):
      diff: fix regression affecting the counting of diff context lines

Jim Meyering (18):
      maint: post-release administrivia
      maint: prefer ckd_add, ckd_mul to INT_ADD_WRAPV, INT_MULTIPLY_WRAPV
      maint: avoid new tight-scope syntax-check failure
      build: update gnulib to latest (for maint.mk syntax-check fix)
      maint: avoid syntax-check failure
      cmp: avoid new tests/cmp failure
      maint: avoid a new syntax-check failure
      maint: avoid syntax-check failure
      maint: avoid new syntax-check failures
      maint: avoid syntax-check for doubled word "TO to" in lib/ucore.h
      build: avoid new build failure
      build: suppress -Wmaybe-uninitialized for one function
      build: update gnulib to latest; also update bootstrap
      maint: make update-copyright
      build: update gnulib to latest; and update bootstrap
      maint: avoid old-FSF-address syntax-check failure
      build: update gnulib to latest
      maint: update all copyright dates via "make update-copyright"

Paul Eggert (210):
      diff: prefer function to DIR_P macro
      diff: prefer functions in io.c
      sdiff: prefer functions to macros
      sdiff: remove an IF_LINT
      diff: C99 decl style in analyze.c
      cmp: C99 decl style in cmp.c
      diff: C99 decl style in context.c
      diff3: C99 decl style
      diff: C99 decl style in diff.c
      diff: C99 decl style in dir.c
      diff: C99 decl style in ed.c
      diff: C99 decl style in ifdef.c
      diff: C99 style for io.c
      diff: C99 style for normal.c
      diff: C99 style for sdiff.c
      diff: C99 style for side.c
      diff: C99 style for util.c
      maint: C99 for cmpbuf.c
      build: update gnulib submodule to latest
      maint: check for unlikely st_blksize overflow
      maint: update cmpbuf.c comment
      diff: use intmax_t for column widths
      diff: prefer signed types in analyze.c
      cmp: prefer signed types
      diff: prefer signed types in context.c
      diff: prefer signed types in diff.h
      maint: use safer type for ‘word’
      diff3: prefer signed types
      diff: prefer signed types in diff.c
      diff: prefer signed types in dir.c
      diff: prefer signed types in ifdef.c
      diff: prefer signed types in io.c
      sdiff: prefer signed types
      diff: prefer signed types in util.c
      maint: prefer signed sizes for allocation
      maint: use xpalloc
      maint: calculate log base 2 more efficiently
      scripts: sync git-hooks from coreutils
      maint: prefer ‘*const’ to ‘* const’
      diff: fix unlikely integer overflow
      maint: omit ‘register’
      maint: even safer word type
      build: update gnulib submodule to latest
      maint: depend directly on intprops
      maint: coalesce duplicate MIN, MAX
      maint: rely on Gnulib SSIZE_MAX
      maint: test that cmpbuf.h is self-contained
      maint: use same-inode
      maint: improve floor_log2 comment
      diff: calculate log2 faster in io.c
      diff: don’t limit contexts arbitrarily
      diff: remove CLOSEDIR_VOID cruft
      maint: remove AM_PROG_CC_C_O cruft
      maint: modernize GCC warnings, AC_INIT
      maint: switch from propername to propername-lite
      maint: be more specific about 0 and 1
      diff: bool, not char, for changed vector
      maint: go back from ‘die’ to ‘error’
      maint: use similar style for parsing options
      maint: tell Gnulib diffutils is single-threaded
      diff: switch from wchar_t to char32_t
      maint: sync bootstrap from Gnulib
      maint: update .gitignore
      build: update gnulib submodule to latest
      maint: omit -Wstack-pointer
      maint: prefer c_isdigit to ISDIGIT
      doc: mention new SI prefixes
      cmp: fix -s bug when comparing /proc files
      cmp: be more robust if lseek fails
      cmp: work around Linux tmpfs bug
      cmp: handle huge -i N with regular files
      cmp: do not try to read 2**64 - 1 bytes
      cmp: work around lseek bugs
      cmp: improve offset width calculation
      cmp: avoid syscall when !S_ISCHR (stdout)
      cmp: support -n N with huge N
      cmp: tune 'cmp A B >/dev/null'
      diff: avoid ‘if (... = ...)’
      maint: omit unneeded 0 args to ‘open’
      diff: omit c-ctype.h double-include
      cmp: make -bl locale-independent again
      maint: pacify "make syntax-check"
      diff: fix xpalloc typo
      diff: tweak mbrtoc32 use
      diff: fix xpalloc-related signed integer overflow
      maint: prefer ‘static_assert’
      diff: fix unlikely intmax_t overflow
      diff: optimize -y treatment of NUL
      diff: fix unspecified mbstate after encoding error
      doc: mention bug#64461 in NEWS
      diff: tweak -y performance for $ @ ` \a
      diff: don’t backspace before first column
      diff: ignore tabs consistently with expanding them
      diff: simplify recent mbrtoc32 improvement
      diff: support multi-byte comparison
      diff: simplify recent --side-by-side changes
      diff: refactor lines_differ location
      diff: count newlines for lines_differ lengths
      maint: update .gitignore
      maint: fix mbcel comment
      diff: tweak mbcel_scan performance
      diff: add mbcel checks, compiler advice
      diff: tweak mbstate_t performance
      maint: mbcel.h is LGPL 3 not 2.1
      maint: translate lib/openat-die.c
      diff: reindent recent changes
      diff: link to LIB32CONV
      diff: improve NONEXISTENT readability
      diff: improve dir comments
      maint: prefer puts to printf
      diff: assert-related cleanup
      diff: remove find_reverse_change
      doc: document tab behavior better
      maint: stop exempting lib/mbcel.h
      diff: use openat, fstatat when recursive
      maint: convert source from non-UTF-8
      diff: fix mbcel bug on NetBSD
      diff: fix recently-introduced &noparent bug
      diff: improve -S dir-reading performance
      diff: simplify away an ‘IF_LINT (volatile)’
      cmp: remove IF_LINT
      diff: remove diff_dirs ‘volatile’
      diff: sort multi-byte file names better
      diff: simplify qsort comparison function
      diff: don’t think mbcel_strcasecmp preserves errno
      diff: check file attributes more carefully
      diff: get current time lazily, via C11
      diff: omit HAVE_STRUCT_STAT_ST_SPARE1
      cmp: remove dependence on inttostr
      build: update gnulib submodule to latest
      cmp: fix recent off-by-1 error
      diff: compare symbolic links more efficently
      maint: port better to MS-Windows
      diff: simplify SIGSTOP/SIGTSTP porting
      diff3: simplify by assuming !GCC_LINT
      maint: translate openat-die.c
      diff: stop using sprintf
      diff: tweak context timestamp buffer size
      diff: omit no-longer-safe optimization
      maint: be more careful about st_size
      diff: fail faster in odd --ignore-file-name-case usage
      diff: avoid a race when opening files
      diff: tune errno handling
      diff: simplify diff_dirs
      diff: simplify diff_dirs API
      diff: tiny tweak to compare_files performance
      maint: use O_CLOEXEC
      maint: use O_CLOEXEC on streams
      diff: prefer openat+fstat more often
      diff: minor errno performance tweak
      diff: fix some behavior on unreadable input
      diff: output symlink contents when they differ
      diff: clarify /proc code
      cmp: lseek need not succeed on special files
      diff: try lseek on special files
      cmp,diff,diff3,sdiff: quote more consistently
      maint: tighten stat_size arg type
      diff,cmp: tighten up same-file checks
      diff: report special file major+minor
      diff: refactor compare_files
      diff: simplify compare_files statting
      build: update gnulib submodule to latest
      tests: fix comment numbering
      diff: improve symlink handling, avoiding a race
      diff: simplify multi-byte code (mbcel -> mcel)
      maint: update .gitignore
      diff: fix recently-introduced file name case bug
      diff: omit ignore_file_name_case test
      diff: modularize and tune mcel code
      diff: avoid mbuiter
      build: update gnulib submodule to latest
      maint: pacify ‘make syntax-check’
      diff: port mcel.h designated initializers to C99
      maint: define GNULIB_MBRTOC32_REGULAR
      build: update gnulib submodule to latest
      maint: switch to gnulib mcel
      diff: port --no-dereference changes to non-O_PATH
      sdiff: port to odd isspace locales
      diff: improve util.c multi-byte handling
      maint: diff no longer uses isblank directly
      maint: be clearer about when ctype is needed
      diff: respond faster to write failures
      diff: publish attributes
      maint: fix comment typo
      diff: tune 'diff --no-dereference --no-file-name-case SYMLINK DIR'
      diff: tune when O_PATH fails with ELOOP
      maint: fix NEWS typos
      build: update gnulib submodule to latest
      diff: go back to C quoting for diff -c/-u headers
      diff: restrict scope of GCC bug 110014 workaround
      diff: improve GCC 13.3’s static checking
      build: update gnulib submodule to latest
      maint: update bootstrap to Gnulib version
      diff: prefer stdbit to count-leading-zeros
      maint: pacify GCC 14 -Wmissing-variable-declarations
      build: update gnulib submodule to latest
      maint: be less fancy when defining extern vars
      build: update gnulib submodule to latest
      maint: move same_file and stat_size into system.c
      build: update gnulib submodule to latest
      maint: adjust to Gnulib stdbit splitup
      build: update gnulib submodule to latest
      maint: port to birthtime platforms
      maint: pacify ‘make sc_tight_scope’
      maint: port ‘make distcheck’ to Ubuntu 24.04
      diff: port to FreeBSD, NetBSD
      maint: update .gitignore to add lib/stdbit.h
      diff: avoid memory leak with --color-palette
      build: update gnulib submodule to latest
      maint: adjust to Gnulib -Wsystem-headers change

Changes in gnulib since v3.10: [2640 diffs!]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]