1
0
mirror of https://git.tukaani.org/xz.git synced 2025-04-01 21:30:58 +00:00

2854 Commits

Author SHA1 Message Date
Lasse Collin
173fb5c68b
doc/SHA256SUMS: Add 5.8.0 2025-03-25 18:23:57 +02:00
Lasse Collin
db9258e828
Bump version and soname for 5.8.0
Also remove the LZMA_UNSTABLE macro.
v5.8.0
2025-03-25 15:18:32 +02:00
Lasse Collin
bfb752a38f
Add NEWS for 5.8.0 2025-03-25 15:18:32 +02:00
Lasse Collin
6ccbb904da
Translations: Run "make -C po update-po"
POT-Creation-Date is set to match the timestamp in 5.7.2beta which
in the Translation Project is known as 5.8.0-pre1. The strings
haven't changed since 5.7.1alpha but a few comments have.

This is a very noisy commit, but this helps keeping the PO files
similar between the Git repository and stable release tarballs.
2025-03-25 15:18:31 +02:00
Lasse Collin
891a5f057a
Translations: Run po4a/update-po
Also remove the trivial obsolete messages like man page dates.

This is a noisy commit, but this helps keeping the PO files similar
between the Git repository and stable release tarballs.
2025-03-25 15:18:31 +02:00
Lasse Collin
4f52e73870
Translations: Partially fix overtranslation in Serbian man pages
Names of environment variables and some other strings must be present
in the original form. The translator couldn't be reached so I'm
changing some of the strings myself. In the "Robot mode" section,
occurrences in the middle of sentences weren't changed to reduce
the chance of grammar breakage, but I kept the translated strings in
parenthesis in the headings. It's not ideal, but now people shouldn't
need to look at the English man page to find the English strings.
2025-03-25 15:18:31 +02:00
Lasse Collin
ff5d944749
liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage 2025-03-25 15:18:31 +02:00
Lasse Collin
943b012d09
liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat()
SSE2 is supported on every x86-64 processor. The SSE2 code is used on
32-bit x86 if compiler options permit unconditional use of SSE2.

dict_repeat() copies short random-sized unaligned buffers. At least
on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is
clearly faster than byte-by-byte copying in this use case. Compared
to the memcpy() version, the new SSE2 version reduces decompression
time by 0-5 % depending on the machine and libc. It should never be
slower than the memcpy() version.

However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest.
Compared to the memcpy() version:

  - The byte-by-version takes 6-7 % less time to decompress.
  - The SSE2 version takes 16-18 % less time to decompress.

The numbers are from decompressing a Linux kernel source tarball in
single-threaded mode on older AMD and Intel systems. The tarball
compresses well, and thus dict_repeat() performance matters more
than with some other files.
2025-03-25 15:18:31 +02:00
Lasse Collin
bc14e4c94e
liblzma: Add "restrict" to a few functions in lz_decoder.h
This doesn't make any difference in practice because compilers can
already see that writing through the dict->buf pointer cannot modify
the contents of *dict itself: The LZMA decoder makes a local copy of
the lzma_dict structure, and even if it didn't, the pointer to
lzma_dict in the LZMA decoder is already "restrict".

It's nice to add "restrict" anyway. uint8_t is typically unsigned char
which can alias anything. Without the above conditions or "restrict",
compilers could need to assume that writing through dict->buf might
modify *dict. This would matter in dict_repeat() because the loops
refer to dict->buf and dict->pos instead of making local copies of
those members for the duration of the loops. If compilers had to
assume that writing through dict->buf can affect *dict, then compilers
would need to emit code that reloads dict->buf and dict->pos after
every write through dict->buf.
2025-03-25 15:18:31 +02:00
Lasse Collin
e82ee090c5
liblzma: Define LZ_DICT_INIT_POS for initial dictionary position
It's more readable.
2025-03-25 15:18:30 +02:00
Lasse Collin
8e7cd0091e
Windows: Update README-Windows.txt about UCRT 2025-03-25 15:18:30 +02:00
Lasse Collin
2c24292d34
Update THANKS 2025-03-25 15:18:15 +02:00
Lasse Collin
48053c9089
Translations: Update the Italian translation 2025-03-17 15:33:25 +02:00
Lasse Collin
8d6f06a65f
Translations: Update the Portuguese translation
The language tag in the Translation Project is pt, not pt_PT,
thus I changed the "Language:" line to pt.
2025-03-17 15:28:56 +02:00
Lasse Collin
c3439b039f
Translations: Update the Italian translation 2025-03-14 13:13:32 +02:00
Lasse Collin
79b4ab8d79
Translations: Update the Italian man page translations
Only trivial additions but this keeps the file in sync with the TP.
2025-03-12 20:48:39 +02:00
Lasse Collin
515b6fc855
Translations: Update the Italian man page translations 2025-03-12 19:38:54 +02:00
Lasse Collin
333b7c0b77
Translations: Update the Korean man page translations 2025-03-10 21:00:31 +02:00
Lasse Collin
ae52ebd27d
Translations: Update the German man page translations 2025-03-10 20:56:57 +02:00
Lasse Collin
1028e52c93
CMake: Fix tuklib_use_system_extensions
Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS)
will affect the calling scope. I had forgotten that while CMake
functions inherit the variables from the parent scope, the changes
to them are local unless using set(... PARENT_SCOPE).

This also means that the commit message in 5bb77d0920dc is wrong. The
commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H
is only needed for specific check_c_source_compiles() calls.

Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
2025-03-10 13:41:50 +02:00
Lasse Collin
80e4883602
INSTALL: Document -bmaxdata on AIX
This is based on a pull request and AIX docs. I haven't tested the
instructions myself.

Closes: https://github.com/tukaani-project/xz/pull/137
2025-03-10 13:41:49 +02:00
Lasse Collin
ab319186b6
Update THANKS 2025-03-10 11:37:19 +02:00
Collin Funk
4434671a04
tuklib_physmem: Silence -Wsign-conversion on AIX
Closes: https://github.com/tukaani-project/xz/pull/168
2025-03-10 11:36:44 +02:00
Lasse Collin
18bcaa4faf
Translations: Update the Romanian man page translations 2025-03-09 22:11:35 +02:00
Lasse Collin
1e17b7f42f
Translations: Update the Croatian translation 2025-03-09 22:11:35 +02:00
Lasse Collin
ff85e6130d
Translations: Update the Romanian translation 2025-03-09 22:11:34 +02:00
Lasse Collin
a5bfb33f30
Translations: Update the Ukrainian man page translations 2025-03-09 22:11:34 +02:00
Lasse Collin
5bb77d0920
CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem
Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't
leak to the calling code.
2025-03-09 17:44:37 +02:00
Lasse Collin
c1ea7bd0b6
CMake: Revise tuklib_use_system_extensions
Define NetBSD and Darwin/macOS feature test macros. Autoconf defines
these too (and a few others).

Define the macros on Windows except with MSVC. The _GNU_SOURCE macro
makes a difference with mingw-w64.

Use a function instead of a macro. Don't take the TARGET_OR_ALL argument
because there's always global effect because the global variable
CMAKE_REQUIRED_DEFINITIONS is modified.
2025-03-09 17:44:31 +02:00
Lasse Collin
4243c45a48
doc/SHA256SUMS: Add 5.7.2beta 2025-03-08 14:54:29 +02:00
Lasse Collin
cc7f2fc1cf
Bump version and soname for 5.7.2beta v5.7.2beta 2025-03-08 14:38:56 +02:00
Lasse Collin
62e44b3616
Add NEWS for 5.7.2beta 2025-03-08 14:25:17 +02:00
Lasse Collin
70f1f20378
COPYING: Remove the note about old releases 2025-03-08 14:25:17 +02:00
Lasse Collin
db9827dc38
xz: Update the man page about the environment variables again 2025-03-08 14:25:16 +02:00
Lasse Collin
99c584891b
liblzma: Edit spelling in a comment
It was found with codespell.
2025-03-06 19:37:03 +02:00
Lasse Collin
7a234c8c05
xz: Update the man page about the environment variables 2025-03-06 19:37:03 +02:00
Lasse Collin
808f05af3e
Docs: Add a few TRANSLATORS comments to man pages
All translators know that --command-line-options must not be translated.
With some other strings it's not obvious when the untranslated string
must be preserved. These comments hopefully help.
2025-03-06 19:37:03 +02:00
Lasse Collin
051de255f0
Scripts: Mark the LZMA Utils script aliases as deprecated
The deprecated aliases are lzcmp, lzdiff, lzless, lzmore,
lzgrep, lzegrep, and lzfgrep. The commands that start with
the xz prefix have identical behavior, for example, both
lzgrep and xzgrep handle all supported file formats.

This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo.
The last release of LZMA Utils was made in 2008, but the lzma
compatibility alias for the gzip-like tool is still in common use.
Deprecating it would cause unnecessary breakage.
2025-03-06 19:36:56 +02:00
Lasse Collin
4941ea454c
Translations: Add Serbian man page translations 2025-03-02 21:13:04 +02:00
Lasse Collin
d142d96f24
Translations: Update Georgian translation 2025-03-02 20:42:14 +02:00
Lasse Collin
9b7e45d841
Update THANKS 2025-02-28 21:07:21 +02:00
Lasse Collin
9351592710
Update THANKS 2025-02-22 16:04:58 +02:00
Lasse Collin
9023be7831
Translations: Update the Croatian translation 2025-02-19 16:33:52 +02:00
Lasse Collin
2eaf242c56
Build: Fix out-of-tree builds when using the replacement getopt_long
Nowaways $(top_builddir)/lib/getopt.h depends on headers in
$(top_srcdir)/lib, so both have to be in the include path.
CMake-based build already did this.

Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca
2025-02-17 21:48:24 +02:00
Lasse Collin
41322b2c60
m4/getopt.m4: Remove an outdated comment 2025-02-17 18:25:52 +02:00
Lasse Collin
03c23a4952
Build: Allow forcing the use of the replacement getopt_long
Now one can pass gl_replace_getopt=yes to configure to force the use
of GNU getopt_long from the lib directory. This only checks that the
value of gl_replace_getopt is non-empty, so one cannot force the
replacement to be disabled.

Closes: https://github.com/tukaani-project/xz/pull/166
2025-02-17 18:11:58 +02:00
Lasse Collin
c23b837d15
Update THANKS 2025-02-17 18:11:42 +02:00
Lasse Collin
2672a38f11
Update THANKS 2025-02-12 19:23:31 +02:00
Lasse Collin
4fdcbfaf3f
Update THANKS 2025-02-11 12:13:41 +02:00
Lasse Collin
0d553568f1
Translations: Update the Polish translation 2025-02-08 11:39:08 +02:00