]> git.ipfire.org Git - thirdparty/zstd.git/log
thirdparty/zstd.git
4 years agoAdjusted extra explanation warning to always pop up if applicable 2279/head
senhuang42 [Wed, 2 Sep 2020 12:44:42 +0000 (08:44 -0400)] 
Adjusted extra explanation warning to always pop up if applicable

4 years agoFixed newline issue and adjusted wording in comment
senhuang42 [Tue, 1 Sep 2020 17:18:30 +0000 (13:18 -0400)] 
Fixed newline issue and adjusted wording in comment

4 years agoImprove documentation, update man
senhuang42 [Thu, 27 Aug 2020 21:57:20 +0000 (17:57 -0400)] 
Improve documentation, update man

4 years agoFix potential memory leak
senhuang42 [Wed, 26 Aug 2020 22:52:32 +0000 (18:52 -0400)] 
Fix potential memory leak

4 years agoFix UTIL_requireUserConfirmation() declaration
senhuang42 [Wed, 26 Aug 2020 21:20:37 +0000 (17:20 -0400)] 
Fix UTIL_requireUserConfirmation() declaration

4 years agoMove logic into new function FIO_removeMultiFilesWarning, add support for decompression
senhuang42 [Wed, 26 Aug 2020 20:50:20 +0000 (16:50 -0400)] 
Move logic into new function FIO_removeMultiFilesWarning, add support for decompression

4 years agoFix merge conflicts
senhuang42 [Wed, 26 Aug 2020 19:43:38 +0000 (15:43 -0400)] 
Fix merge conflicts

4 years agoMerge pull request #2283 from senhuang42/progress_bars_for_multiple_files
Yann Collet [Wed, 26 Aug 2020 18:54:50 +0000 (11:54 -0700)] 
Merge pull request #2283 from senhuang42/progress_bars_for_multiple_files

Refreshing progress bar for processing multiple files

4 years agoMerge pull request #2282 from terrelln/ncount-fix
Nick Terrell [Wed, 26 Aug 2020 17:31:07 +0000 (10:31 -0700)] 
Merge pull request #2282 from terrelln/ncount-fix

[bug] Fix FSE_readNCount()

4 years agoRemove extraneous FIO_setNbFiles() 2283/head
senhuang42 [Wed, 26 Aug 2020 16:05:04 +0000 (12:05 -0400)] 
Remove extraneous FIO_setNbFiles()

4 years agoFix bug in user prompt where line was not flushed on negative response
senhuang42 [Wed, 26 Aug 2020 15:57:38 +0000 (11:57 -0400)] 
Fix bug in user prompt where line was not flushed on negative response

4 years agoAdjust playTests.sh refuse overwrite test to include -q
senhuang42 [Wed, 26 Aug 2020 15:40:05 +0000 (11:40 -0400)] 
Adjust playTests.sh refuse overwrite test to include -q

4 years agoFix single file decompression summary, remove escape code dependency, add currFileIdx...
senhuang42 [Wed, 26 Aug 2020 15:35:07 +0000 (11:35 -0400)] 
Fix single file decompression summary, remove escape code dependency, add currFileIdx field to FIO_prefs, general cleanups/bugfixes

4 years agoMerge pull request #2285 from terrelln/oss-fuzz-fixes
Nick Terrell [Wed, 26 Aug 2020 01:35:16 +0000 (18:35 -0700)] 
Merge pull request #2285 from terrelln/oss-fuzz-fixes

[fuzz] Fix oss-fuzz test problems

4 years agoMerge pull request #2284 from terrelln/github-actions-arm
Yann Collet [Wed, 26 Aug 2020 00:50:12 +0000 (17:50 -0700)] 
Merge pull request #2284 from terrelln/github-actions-arm

[github actions] Disable armbuild and armfuzz tests

4 years ago[fuzz] Fix stream_decompress timeouts 2285/head
Nick Terrell [Wed, 26 Aug 2020 00:10:04 +0000 (17:10 -0700)] 
[fuzz] Fix stream_decompress timeouts

4 years ago[fuzz] Disable superblock expansion test
Nick Terrell [Tue, 25 Aug 2020 23:32:00 +0000 (16:32 -0700)] 
[fuzz] Disable superblock expansion test

4 years ago[github actions] Disable armbuild and armfuzz tests 2284/head
Nick Terrell [Tue, 25 Aug 2020 23:28:41 +0000 (16:28 -0700)] 
[github actions] Disable armbuild and armfuzz tests

4 years ago[bug] Fix FSE_readNCount() 2282/head
Nick Terrell [Tue, 25 Aug 2020 18:37:41 +0000 (11:37 -0700)] 
[bug] Fix FSE_readNCount()

* Fix bug introduced in PR #2271
* Fix long-standing bug that is impossible to trigger inside of zstd
* Add a fuzzer that makes sure the normalized count always round trips
  correctly

4 years agoSmall formatting changes
senhuang42 [Tue, 25 Aug 2020 22:03:08 +0000 (18:03 -0400)] 
Small formatting changes

4 years agoRemove decompression status update
senhuang42 [Tue, 25 Aug 2020 21:54:00 +0000 (17:54 -0400)] 
Remove decompression status update

4 years agoSmall cleanups
senhuang42 [Tue, 25 Aug 2020 21:34:00 +0000 (17:34 -0400)] 
Small cleanups

4 years agoMake compatible with displaylevel = 2 and decompression
senhuang42 [Tue, 25 Aug 2020 21:23:47 +0000 (17:23 -0400)] 
Make compatible with displaylevel = 2 and decompression

4 years agoAdd initial live update with displayLevel = 2, add new field to FIO_prefs_t
senhuang42 [Tue, 25 Aug 2020 20:46:47 +0000 (16:46 -0400)] 
Add initial live update with displayLevel = 2, add new field to FIO_prefs_t

4 years agoMerge pull request #2278 from senhuang42/ignore_checksum_advanced_param
Yann Collet [Tue, 25 Aug 2020 19:08:53 +0000 (12:08 -0700)] 
Merge pull request #2278 from senhuang42/ignore_checksum_advanced_param

New advanced decompression param to ignore checksums

4 years agoAdd initial functionality to support -q
senhuang42 [Tue, 25 Aug 2020 17:50:44 +0000 (13:50 -0400)] 
Add initial functionality to support -q

4 years agoUnified warning prompts into new function UTIL_requireUserConfirmationToProceed()
senhuang42 [Tue, 25 Aug 2020 15:25:49 +0000 (11:25 -0400)] 
Unified warning prompts into new function UTIL_requireUserConfirmationToProceed()

4 years agoMerge pull request #2271 from terrelln/small-blocks
Nick Terrell [Tue, 25 Aug 2020 01:54:33 +0000 (18:54 -0700)] 
Merge pull request #2271 from terrelln/small-blocks

Small block optimizations

4 years agoOnly ask to proceed if using --rm, otherwise just display warning. -f bypasses it...
senhuang42 [Tue, 25 Aug 2020 00:19:55 +0000 (20:19 -0400)] 
Only ask to proceed if using --rm, otherwise just display warning. -f bypasses it all. More robust tests

4 years agoAdd a warning whenever (de)compressing multiple files into one source, or into stdout
senhuang42 [Mon, 24 Aug 2020 23:10:03 +0000 (19:10 -0400)] 
Add a warning whenever (de)compressing multiple files into one source, or into stdout

4 years agoFix compiler warnings 2271/head
Nick Terrell [Mon, 24 Aug 2020 23:09:45 +0000 (16:09 -0700)] 
Fix compiler warnings

4 years agoMerge pull request #2272 from terrelln/dstSize_tooSmall
Nick Terrell [Mon, 24 Aug 2020 22:01:17 +0000 (15:01 -0700)] 
Merge pull request #2272 from terrelln/dstSize_tooSmall

[fix] Always return dstSize_tooSmall when it is the case

4 years agoDocument the BMI2 default() functions
Nick Terrell [Mon, 24 Aug 2020 21:44:33 +0000 (14:44 -0700)] 
Document the BMI2 default() functions

4 years agoAdjust #ifndef logic 2278/head
senhuang42 [Mon, 24 Aug 2020 21:36:36 +0000 (17:36 -0400)] 
Adjust #ifndef logic

4 years agoAdd new DCtx param: validateChecksum and update unit tests
senhuang42 [Mon, 24 Aug 2020 21:28:00 +0000 (17:28 -0400)] 
Add new DCtx param: validateChecksum and update unit tests

4 years agoImprove FSE_normalizeCount() docs
Nick Terrell [Mon, 24 Aug 2020 20:58:34 +0000 (13:58 -0700)] 
Improve FSE_normalizeCount() docs

4 years ago[fix] Always return dstSize_tooSmall when it is the case 2272/head
Nick Terrell [Sat, 15 Aug 2020 19:32:57 +0000 (12:32 -0700)] 
[fix] Always return dstSize_tooSmall when it is the case

4 years agoAddressing comments: more comments, cleanup, remove extra function, checksum logic
senhuang42 [Mon, 24 Aug 2020 20:14:19 +0000 (16:14 -0400)] 
Addressing comments: more comments, cleanup, remove extra function, checksum logic

4 years agoFix up code after reading through
Nick Terrell [Mon, 24 Aug 2020 19:24:45 +0000 (12:24 -0700)] 
Fix up code after reading through

4 years agoDocument change in CLI for --no-check during decompression in --help menu
senhuang42 [Sat, 22 Aug 2020 20:58:41 +0000 (16:58 -0400)] 
Document change in CLI for --no-check during decompression in --help menu

4 years agoAdded CLI tests for --no-check, fixed ignore checksum logic
senhuang42 [Sat, 22 Aug 2020 20:05:40 +0000 (16:05 -0400)] 
Added CLI tests for --no-check, fixed ignore checksum logic

4 years agoAdded unit test to fuzzer.c, changed definition param name
senhuang42 [Sat, 22 Aug 2020 17:26:33 +0000 (13:26 -0400)] 
Added unit test to fuzzer.c, changed definition param name

4 years agoMove enum into zstd.h, and fix pesky switch() logic
senhuang42 [Fri, 21 Aug 2020 22:18:53 +0000 (18:18 -0400)] 
Move enum into zstd.h, and fix pesky switch() logic

4 years agoAdding CLI capability to invoke decompression with no checksum
senhuang42 [Fri, 21 Aug 2020 21:49:30 +0000 (17:49 -0400)] 
Adding CLI capability to invoke decompression with no checksum

4 years agoAdd function prototype
senhuang42 [Fri, 21 Aug 2020 20:51:43 +0000 (16:51 -0400)] 
Add function prototype

4 years agoModify decompression loop to gnore checksums if flag is enabled
senhuang42 [Fri, 21 Aug 2020 20:46:46 +0000 (16:46 -0400)] 
Modify decompression loop to gnore checksums if flag is enabled

4 years agoRename to ZSTD_d_forceIgnoreChecksum, add to DCtx, add function to set the advanced...
senhuang42 [Fri, 21 Aug 2020 20:23:39 +0000 (16:23 -0400)] 
Rename to ZSTD_d_forceIgnoreChecksum, add to DCtx, add function to set the advanced param

4 years agoAdd new definition of ZSTD_d_forceSkipChecksum in experimental section
senhuang42 [Fri, 21 Aug 2020 19:59:03 +0000 (15:59 -0400)] 
Add new definition of ZSTD_d_forceSkipChecksum in experimental section

4 years ago[regression] Update results.csv
Nick Terrell [Tue, 18 Aug 2020 23:57:35 +0000 (16:57 -0700)] 
[regression] Update results.csv

4 years agoMerge pull request #2277 from atnbueno/patch-1
Yann Collet [Wed, 19 Aug 2020 19:05:27 +0000 (12:05 -0700)] 
Merge pull request #2277 from atnbueno/patch-1

Fixed Markdown warnings. No visible changes.

4 years agoFixed Markdown warnings. No visible changes. 2277/head
Antonio Bueno [Wed, 19 Aug 2020 10:36:28 +0000 (12:36 +0200)] 
Fixed Markdown warnings. No visible changes.

4 years agoMerge pull request #2268 from bimbashrestha/actions-icc
Yann Collet [Wed, 19 Aug 2020 02:08:01 +0000 (19:08 -0700)] 
Merge pull request #2268 from bimbashrestha/actions-icc

[actions] removing broken icc test from travis and adding working version to actions

4 years agoUse ncount=1 when < 4096 symbols
Nick Terrell [Tue, 18 Aug 2020 22:26:54 +0000 (15:26 -0700)] 
Use ncount=1 when < 4096 symbols

4 years agowire up bmi2 support
Nick Terrell [Mon, 17 Aug 2020 20:44:49 +0000 (13:44 -0700)] 
wire up bmi2 support

4 years agospeed up literal header decoding
Nick Terrell [Mon, 17 Aug 2020 05:22:33 +0000 (22:22 -0700)] 
speed up literal header decoding

4 years agospeed up small blocks
Nick Terrell [Fri, 14 Aug 2020 22:28:59 +0000 (15:28 -0700)] 
speed up small blocks

4 years agosmall blocks benchmark
Nick Terrell [Fri, 14 Aug 2020 22:28:48 +0000 (15:28 -0700)] 
small blocks benchmark

4 years agoMerge pull request #2270 from felixhandte/fix-doc-cctx-set-param
Felix Handte [Sat, 15 Aug 2020 01:44:56 +0000 (21:44 -0400)] 
Merge pull request #2270 from felixhandte/fix-doc-cctx-set-param

Fix Documentation for ZSTD_CCtxParams_setParameter()

4 years agoFix Documentation for ZSTD_CCtxParams_setParameter() 2270/head
W. Felix Handte [Fri, 14 Aug 2020 18:44:08 +0000 (14:44 -0400)] 
Fix Documentation for ZSTD_CCtxParams_setParameter()

It does not only return 0 on success.

4 years agoremoving icc from travis 2268/head
Bimba Shrestha [Thu, 13 Aug 2020 17:47:04 +0000 (12:47 -0500)] 
removing icc from travis

4 years agoadding icc to actions
Bimba Shrestha [Thu, 13 Aug 2020 17:45:28 +0000 (12:45 -0500)] 
adding icc to actions

4 years agoMerge pull request #2267 from cwoffenden/clang-comma
Yann Collet [Thu, 13 Aug 2020 17:00:57 +0000 (10:00 -0700)] 
Merge pull request #2267 from cwoffenden/clang-comma

Fix clang -Wcomma warning (single file decoder)

4 years agoFix clang -Wcomma warning 2267/head
Carl Woffenden [Thu, 13 Aug 2020 14:11:22 +0000 (16:11 +0200)] 
Fix clang -Wcomma warning

4 years agoMerge pull request #2265 from terrelln/prefetch-fix
Nick Terrell [Tue, 11 Aug 2020 17:07:53 +0000 (10:07 -0700)] 
Merge pull request #2265 from terrelln/prefetch-fix

Prefer __builtin_prefetch over inline asm

4 years agoPrefer __builtin_prefetch over inline asm 2265/head
Nick Terrell [Tue, 11 Aug 2020 05:15:46 +0000 (22:15 -0700)] 
Prefer __builtin_prefetch over inline asm

Reorder the ifdefs for the PREFETCH macros so that the compiler builtin is
favored over the inline assembly for aarch64.

4 years agoMerge pull request #2262 from felixhandte/fewer-stat-syscalls
Yann Collet [Tue, 11 Aug 2020 01:20:13 +0000 (18:20 -0700)] 
Merge pull request #2262 from felixhandte/fewer-stat-syscalls

Share stat() Calls Where Convenient

4 years agoFix MS Build 2262/head
W. Felix Handte [Mon, 10 Aug 2020 21:28:34 +0000 (17:28 -0400)] 
Fix MS Build

4 years agoClean Up Redundant Checks, Rename FIO_remove() -> FIO_removeFile()
W. Felix Handte [Mon, 10 Aug 2020 19:39:14 +0000 (15:39 -0400)] 
Clean Up Redundant Checks, Rename FIO_remove() -> FIO_removeFile()

4 years agoRemove UTIL_statFile() and UTIL_statDir(); Decompose Former Call-Sites
W. Felix Handte [Mon, 10 Aug 2020 19:28:02 +0000 (15:28 -0400)] 
Remove UTIL_statFile() and UTIL_statDir(); Decompose Former Call-Sites

4 years agoRemove Unused Function UTIL_fileExist()
W. Felix Handte [Mon, 10 Aug 2020 19:22:29 +0000 (15:22 -0400)] 
Remove Unused Function UTIL_fileExist()

4 years agoRe-Organize and Document Prototypes in util.h
W. Felix Handte [Mon, 10 Aug 2020 19:16:14 +0000 (15:16 -0400)] 
Re-Organize and Document Prototypes in util.h

5 years agoShare stat() Calls in Uses of UTIL_chmod()
W. Felix Handte [Wed, 5 Aug 2020 16:10:42 +0000 (12:10 -0400)] 
Share stat() Calls in Uses of UTIL_chmod()

5 years agoUse stat() to Check that File Should be chmod()-ed
W. Felix Handte [Wed, 5 Aug 2020 16:00:12 +0000 (12:00 -0400)] 
Use stat() to Check that File Should be chmod()-ed

Rather than special-casing a check for `/dev/null`, this uses `stat()` to
avoid `chmod()`-ing any non-regular file. I believe this is the desirable
behavior. `UTIL_chmod()` is never called on directories at the moment, only
output files.

5 years agoDeduplicate Some Low-Hanging Fruit of Redundant Stat Calls
W. Felix Handte [Wed, 5 Aug 2020 05:08:34 +0000 (01:08 -0400)] 
Deduplicate Some Low-Hanging Fruit of Redundant Stat Calls

5 years agoIntroduce Variants of Various UTIL Functions that Take Pre-Populated stat_t Structs
W. Felix Handte [Wed, 5 Aug 2020 05:00:06 +0000 (01:00 -0400)] 
Introduce Variants of Various UTIL Functions that Take Pre-Populated stat_t Structs

Instead of calling `stat()`, these functions accept the result of a previous
`stat()` call on the file in question, which will allow us to make multiple
decisions around a file without redundant `stat()` calls.

5 years agoRename UTIL_getFileStat() -> UTIL_statFile() and UTIL_getDirectoryStat() -> UTIL_stat...
W. Felix Handte [Wed, 5 Aug 2020 04:40:16 +0000 (00:40 -0400)] 
Rename UTIL_getFileStat() -> UTIL_statFile() and UTIL_getDirectoryStat() -> UTIL_statDir()

I want to introduce versions of many of these functions that take pre-
populated `stat_t` objects and use those rather than doing their own redundant
`stat()` internally. These functions will have `...Stat()` suffixes. So this
commit renames these existing functions into the active voice, to avoid
confusion.

5 years agoMark stat_t Arg to UTIL_setFileStat() const
W. Felix Handte [Wed, 5 Aug 2020 04:35:21 +0000 (00:35 -0400)] 
Mark stat_t Arg to UTIL_setFileStat() const

5 years agoAdditionally Convert UTIL_getFileStat() Calls to UTIL_stat() Where Appropriate
W. Felix Handte [Wed, 5 Aug 2020 04:31:48 +0000 (00:31 -0400)] 
Additionally Convert UTIL_getFileStat() Calls to UTIL_stat() Where Appropriate

5 years agoUse New Stat Helper
W. Felix Handte [Wed, 5 Aug 2020 04:21:41 +0000 (00:21 -0400)] 
Use New Stat Helper

5 years agoIntroduce Dedicated Helper to Call stat()
W. Felix Handte [Wed, 5 Aug 2020 04:09:29 +0000 (00:09 -0400)] 
Introduce Dedicated Helper to Call stat()

5 years agoMerge pull request #2258 from Niadb/dev
Yann Collet [Tue, 4 Aug 2020 16:43:59 +0000 (09:43 -0700)] 
Merge pull request #2258 from Niadb/dev

Added STATIC_BMI2 for compile time detection of BMI2 on MSVC, when enabled various intrinsics are used

5 years agoMerge pull request #2253 from facebook/histvec
Yann Collet [Sun, 2 Aug 2020 21:08:42 +0000 (14:08 -0700)] 
Merge pull request #2253 from facebook/histvec

optimized histogram

5 years agoMerge pull request #2256 from helloguo/dev
Nick Terrell [Wed, 29 Jul 2020 18:57:49 +0000 (11:57 -0700)] 
Merge pull request #2256 from helloguo/dev

Optimize ZSTD_wildcopy

5 years agoMerge pull request #2259 from cwoffenden/vs-warning
Yann Collet [Wed, 29 Jul 2020 16:21:03 +0000 (09:21 -0700)] 
Merge pull request #2259 from cwoffenden/vs-warning

Fixed VS variable shadowing warning (single file lib)

5 years agoFixed VS variable shadowing warning (and added test) 2259/head
Carl Woffenden [Wed, 29 Jul 2020 10:33:39 +0000 (12:33 +0200)] 
Fixed VS variable shadowing warning (and added test)

5 years agoUse ZSTD_copy16 instead of memcpy 2256/head
helloguo [Tue, 28 Jul 2020 18:58:46 +0000 (11:58 -0700)] 
Use ZSTD_copy16 instead of memcpy

5 years agoUpdate bitstream.h 2258/head
Niadb [Tue, 28 Jul 2020 17:17:04 +0000 (11:17 -0600)] 
Update bitstream.h

Profiler showed some of these not being inlined on MSVC

5 years agoAdd files via upload
Niadb [Tue, 28 Jul 2020 08:52:52 +0000 (02:52 -0600)] 
Add files via upload

5 years agoAdd files via upload
Niadb [Tue, 28 Jul 2020 08:52:15 +0000 (02:52 -0600)] 
Add files via upload

5 years agoOptimize ZSTD_wildcopy
helloguo [Tue, 28 Jul 2020 05:08:52 +0000 (22:08 -0700)] 
Optimize ZSTD_wildcopy

5 years agoMerge pull request #2252 from helloguo/dev
Nick Terrell [Mon, 27 Jul 2020 19:59:10 +0000 (12:59 -0700)] 
Merge pull request #2252 from helloguo/dev

Fix preprocessor in ZSTD_wildcopy

5 years agofixed overlapping count & workspace special case 2253/head
Yann Collet [Mon, 27 Jul 2020 05:40:21 +0000 (22:40 -0700)] 
fixed overlapping count & workspace special case

5 years agooptimized histogram
Yann Collet [Mon, 27 Jul 2020 05:24:22 +0000 (22:24 -0700)] 
optimized histogram

new version easier to vectorize
leads to smaller code and faster execution
notably at the last recombination stage
(basically, fixed cost per block).

Assembly inspected with godbolt

On my laptop, with `clang` and `-mavx2` :
2K block : 1280 MB/s -> 1550 MB/s
8K block : 1750 MB/s -> 1860 MB/s

5 years agofix preprocessor in ZSTD_wildcopy 2252/head
helloguo [Fri, 24 Jul 2020 17:53:58 +0000 (10:53 -0700)] 
fix preprocessor in ZSTD_wildcopy

5 years agoupdated documentation
Yann Collet [Thu, 23 Jul 2020 19:10:57 +0000 (12:10 -0700)] 
updated documentation

5 years agoMerge pull request #2250 from facebook/twoFieldsArgs
Yann Collet [Wed, 22 Jul 2020 16:49:34 +0000 (09:49 -0700)] 
Merge pull request #2250 from facebook/twoFieldsArgs

CLI: simplified handling of separated-fields arguments

5 years agoMerge pull request #2249 from facebook/fsefix
Yann Collet [Tue, 21 Jul 2020 15:23:37 +0000 (08:23 -0700)] 
Merge pull request #2249 from facebook/fsefix

import some minor fixes from FSE project

5 years agoimproved 2-args macro to support both syntaxes 2250/head
Yann Collet [Tue, 21 Jul 2020 00:41:32 +0000 (17:41 -0700)] 
improved 2-args macro to support both syntaxes

both `--long-commmand=arg` and `--long-command arg`
are supported by macro `NEXT_FIELD()`
so that the long-command only needs to be listed once.

This extends the syntax to support new syntaxes like
`-o=FILE` or `-D=dict`,
though there is no need to advertise this capability for the time being.

Also : added `NEXT_UINT32()`,
which is wrapper around `NEXT_FIELD()`
to read integer parameters.
Use the wrapper to new field, such as `--memlimit`
which can now support both syntaxes too.

5 years agoadded tests for newly enabled syntax
Yann Collet [Fri, 17 Jul 2020 20:31:15 +0000 (13:31 -0700)] 
added tests for newly enabled syntax

for --patch-from origin
and --filelist list

Also : removed some constrained syntax tests,
as the new argument parsing syntax is more permissive.

For example :
    zstd file -of dest
used to be disallowed.

It's now allowed, and understood as:
    zstd file -o dest -f

5 years agoextended 2-fields macro usage to number arguments
Yann Collet [Fri, 17 Jul 2020 20:09:23 +0000 (13:09 -0700)] 
extended 2-fields macro usage to number arguments

leading to further simplications