[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!]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [platform-testers] new snapshot available: diffutils-3.10.242-d65b,
Jim Meyering <=