platform/upstream/lz4.git
6 years agoOnly ignore with C++17
Sylvestre Ledru [Mon, 6 Nov 2017 15:16:02 +0000 (16:16 +0100)]
Only ignore with C++17

6 years agoWhen building with a C++ compiler, remove the 'register' keyword to silent a warning
Sylvestre Ledru [Sun, 5 Nov 2017 10:48:00 +0000 (11:48 +0100)]
When building with a C++ compiler, remove the 'register' keyword to silent a warning

For example, with clang:

lz4.c:XXX:36: error: 'register' storage class specifier is deprecated and incompatible with C++17 [-Werror,-Wdeprecated-register]
static unsigned LZ4_NbCommonBytes (register reg_t val)
                                   ^~~~~~~~~

6 years agoMerge pull request #415 from lz4/fasterDecodingXp
Yann Collet [Wed, 1 Nov 2017 16:58:49 +0000 (09:58 -0700)]
Merge pull request #415 from lz4/fasterDecodingXp

Faster decoding xp

6 years agominor change, to help store forwarding
Yann Collet [Tue, 31 Oct 2017 22:51:56 +0000 (15:51 -0700)]
minor change, to help store forwarding

in a marginal case (offset==4)

6 years agoextended shortcut match length to 18
Yann Collet [Tue, 31 Oct 2017 21:20:25 +0000 (14:20 -0700)]
extended shortcut match length to 18

6 years agoMerge pull request #408 from terrelln/time
Yann Collet [Tue, 31 Oct 2017 20:49:29 +0000 (13:49 -0700)]
Merge pull request #408 from terrelln/time

[bench] Use higher resolution timer on POSIX

6 years agominor : coding style : use ML_MASK constant
Yann Collet [Tue, 31 Oct 2017 19:22:15 +0000 (12:22 -0700)]
minor : coding style : use ML_MASK constant

6 years agoadded comments, as suggested by @terrelln
Yann Collet [Tue, 31 Oct 2017 18:49:57 +0000 (11:49 -0700)]
added comments, as suggested by @terrelln

6 years agomore complete shortcut - passes tests
Yann Collet [Mon, 30 Oct 2017 23:07:15 +0000 (16:07 -0700)]
more complete shortcut - passes tests

6 years agoMerge pull request #412 from mikir/symbolsVisibility
Yann Collet [Mon, 30 Oct 2017 22:57:43 +0000 (15:57 -0700)]
Merge pull request #412 from mikir/symbolsVisibility

Separated visibility from LZ4LIB_API macro.

6 years agoSeparated visibility from LZ4LIB_API macro.
mikir [Mon, 30 Oct 2017 12:44:24 +0000 (13:44 +0100)]
Separated visibility from LZ4LIB_API macro.

6 years agosmall modification of lz4 decoder to shortcut common case (short branch).
Yann Collet [Wed, 25 Oct 2017 08:10:53 +0000 (10:10 +0200)]
small modification of lz4 decoder to shortcut common case (short branch).

6 years ago[bench] Use higher resolution timer on POSIX
Nick Terrell [Tue, 17 Oct 2017 19:42:27 +0000 (12:42 -0700)]
[bench] Use higher resolution timer on POSIX

The timer used was only accurate up to 0.01 seconds. This timer is accurate up to 1 ns.
It is a monotonic timer that measures the real time difference, not on CPU time.

Copied the benchmark code from https://github.com/facebook/zstd/commit/6ab4d5e9041aba962a810ffee191f95897c6208e

6 years agolz4cli : minor rewrite of lz4c legacy commands
Yann Collet [Sun, 15 Oct 2017 06:50:07 +0000 (23:50 -0700)]
lz4cli : minor rewrite of lz4c legacy commands

for clarity

6 years agoMerge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Sun, 15 Oct 2017 01:49:06 +0000 (18:49 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev

6 years agolz4cli : removed extension artefacts
Yann Collet [Sun, 15 Oct 2017 01:48:00 +0000 (18:48 -0700)]
lz4cli : removed extension artefacts

It used to be useful for an old Windows variant which is no longer maintained.

6 years agoMerge pull request #407 from odaira/useO2ppc64le
Yann Collet [Fri, 13 Oct 2017 23:21:46 +0000 (16:21 -0700)]
Merge pull request #407 from odaira/useO2ppc64le

Use O2 for the decompression functions on ppc64le with gcc

6 years agoUse the optimization level of O2 for the decompression functions on ppc64le with...
Rei Odaira [Fri, 13 Oct 2017 19:53:37 +0000 (14:53 -0500)]
Use the optimization level of O2 for the decompression functions on ppc64le with gcc, to avoid harmful unrolling and SIMDization with O3

6 years agoMerge pull request #403 from felixhandte/lz4-cli-dict-support-tests
Yann Collet [Tue, 10 Oct 2017 23:18:16 +0000 (16:18 -0700)]
Merge pull request #403 from felixhandte/lz4-cli-dict-support-tests

Support Dictionaries on the Command Line

6 years agoRead the Dictionary into a Circular Buffer
W. Felix Handte [Tue, 3 Oct 2017 16:50:28 +0000 (12:50 -0400)]
Read the Dictionary into a Circular Buffer

6 years agoAdd some tests verifying command line dictionary functionality
W. Felix Handte [Fri, 22 Sep 2017 21:50:11 +0000 (14:50 -0700)]
Add some tests verifying command line dictionary functionality

6 years agoAdd Dictionary Support to the Command Line Tool
W. Felix Handte [Fri, 22 Sep 2017 18:55:42 +0000 (11:55 -0700)]
Add Dictionary Support to the Command Line Tool

6 years agofixed decoding block checksum in lz4frame
Yann Collet [Wed, 4 Oct 2017 22:24:08 +0000 (15:24 -0700)]
fixed decoding block checksum in lz4frame

6 years agofix #404
Yann Collet [Sat, 30 Sep 2017 17:35:55 +0000 (10:35 -0700)]
fix #404

static analyzer `cppcheck` complains about a shift-by-32 on a 32 bits value,
which is an undefined behavior.
However, the flagged code path is never triggered in 32-bits mode,
(actually, it's not even generated if DCE kicks in),
the shift-by-32 is necessarily performed on a 64-bits value.

While it doesn't change anything regarding lz4 code generation, for both 32 and 64 bits mode,
(can be checked by md5sum on the generated binary),
the shift has been rewritten in a way which should please this static analyzer,
since it now pretends to shift by 16 on 32-bits cpu (note : it doesn't matter since the code will not even be generated in this case).

Note : this is a blind fix, the new code has not been tested with cppcheck, because cppcheck only works on Windows.
Other static analyzer, such as scan-build, do not trigger this false positive.

6 years agominor lz4frame code refactor
Yann Collet [Sat, 23 Sep 2017 22:06:24 +0000 (15:06 -0700)]
minor lz4frame code refactor

try to improve code readability.
minor optimization on condition to preserve history.

6 years agoMerge pull request #402 from felixhandte/fix-dict-segfault
Yann Collet [Sat, 23 Sep 2017 21:02:22 +0000 (14:02 -0700)]
Merge pull request #402 from felixhandte/fix-dict-segfault

Fix dict segfault

6 years agoFix Segfault When Copying Dict
W. Felix Handte [Fri, 22 Sep 2017 18:52:29 +0000 (11:52 -0700)]
Fix Segfault When Copying Dict

dctx must have been initialized before we can copy the dictionary in.

6 years agominor improvements to examples
Yann Collet [Mon, 11 Sep 2017 17:25:47 +0000 (10:25 -0700)]
minor improvements to examples

cosmetic : better display
added optional variable MOREFLAGS

6 years agomade clang warnings fail (-Werror)
Yann Collet [Sun, 10 Sep 2017 21:35:16 +0000 (14:35 -0700)]
made clang warnings fail (-Werror)

in order to catch them in CI tests

6 years agofixed a bunch of -Wcomma warnings
Yann Collet [Sun, 10 Sep 2017 21:32:38 +0000 (14:32 -0700)]
fixed a bunch of -Wcomma warnings

reported by @rvandermeulen (#398)

6 years agoadded -Wcomma to travisCI clang test
Yann Collet [Sun, 10 Sep 2017 21:23:18 +0000 (14:23 -0700)]
added -Wcomma to travisCI clang test

6 years agofix #397 : decompression failed when using a combination of extDict + low memory...
Yann Collet [Thu, 7 Sep 2017 19:48:24 +0000 (12:48 -0700)]
fix #397 : decompression failed when using a combination of extDict + low memory address

Reported and fixed by @jscheid

Note : we are missing a test case to include it in the CI

6 years agobench : made decompression speed evaluation same time as compression
Yann Collet [Thu, 7 Sep 2017 19:12:36 +0000 (12:12 -0700)]
bench : made decompression speed evaluation same time as compression

minor : slightly modified an example do avoid disabling a gcc warning through #pragma

6 years agominor Makefile fixes
Yann Collet [Thu, 7 Sep 2017 00:41:44 +0000 (17:41 -0700)]
minor Makefile fixes

6 years agoupdated lib/README
Yann Collet [Wed, 6 Sep 2017 18:22:45 +0000 (11:22 -0700)]
updated lib/README

clarifications, improved wording

6 years agocomplementary information for #394
Yann Collet [Wed, 30 Aug 2017 23:09:10 +0000 (16:09 -0700)]
complementary information for #394

6 years agoclarified documentation of streaming decompression functions
Yann Collet [Wed, 30 Aug 2017 22:42:04 +0000 (15:42 -0700)]
clarified documentation of streaming decompression functions

(synchronous bufferless mode)
answering questions by @jtbandes (#394)

6 years agominor typo fix
Yann Collet [Wed, 30 Aug 2017 22:02:04 +0000 (15:02 -0700)]
minor typo fix

6 years agofixed FS-independent file order in /lib
Yann Collet [Tue, 29 Aug 2017 22:31:56 +0000 (15:31 -0700)]
fixed FS-independent file order in /lib

identified by @bmwiedemann

6 years agobuild: source files sorted in a FS independent manner
Yann Collet [Sat, 26 Aug 2017 19:22:51 +0000 (12:22 -0700)]
build: source files sorted in a FS independent manner

to be more compatible with reproducible builds.
patch inspired by @bmwiedemann

6 years agoupdated NEWS with fixes
Yann Collet [Fri, 25 Aug 2017 21:13:29 +0000 (14:13 -0700)]
updated NEWS with fixes

6 years agoMerge pull request #386 from lz4/parallelMake
Yann Collet [Fri, 25 Aug 2017 18:23:30 +0000 (11:23 -0700)]
Merge pull request #386 from lz4/parallelMake

`make test` compatible with parallel execution (`-j#`)

6 years agoremoved fasttest from circleCI
Yann Collet [Fri, 25 Aug 2017 16:50:56 +0000 (09:50 -0700)]
removed fasttest from circleCI

6 years agoremoved test-fasttest
Yann Collet [Fri, 25 Aug 2017 01:30:00 +0000 (18:30 -0700)]
removed test-fasttest

6 years agoMerge pull request #393 from terrelln/deprecate2
Yann Collet [Fri, 25 Aug 2017 01:05:07 +0000 (18:05 -0700)]
Merge pull request #393 from terrelln/deprecate2

Don't use C++11 deprecation attribute with clang

6 years agofixed make recurrence from /tests
Yann Collet [Fri, 25 Aug 2017 00:58:13 +0000 (17:58 -0700)]
fixed make recurrence from /tests

6 years agoremoved fasttest
Yann Collet [Fri, 25 Aug 2017 00:03:03 +0000 (17:03 -0700)]
removed fasttest

6 years agominor : added header license
Yann Collet [Thu, 24 Aug 2017 23:59:47 +0000 (16:59 -0700)]
minor : added header license

6 years agoMerge branch 'dev' into parallelMake
Yann Collet [Thu, 24 Aug 2017 23:46:19 +0000 (16:46 -0700)]
Merge branch 'dev' into parallelMake

6 years agoDon't use C++11 deprecation attribute with clang
Nick Terrell [Thu, 24 Aug 2017 21:06:34 +0000 (14:06 -0700)]
Don't use C++11 deprecation attribute with clang

Clang doesn't accept a C++11 attribute following `LZ4LIB_API`.
Use the GNU attribute instead.

6 years agoMerge pull request #392 from m-hennecke/fix-arm-openbsd
Yann Collet [Thu, 24 Aug 2017 21:00:27 +0000 (14:00 -0700)]
Merge pull request #392 from m-hennecke/fix-arm-openbsd

Fix: Add return statement to main function

6 years agoMerge pull request #391 from tcpan/dev
Yann Collet [Thu, 24 Aug 2017 18:52:17 +0000 (11:52 -0700)]
Merge pull request #391 from tcpan/dev

FIX: added prefix to FORCE_INLINE to prevent redefinition error durin…

6 years agoMerge pull request #390 from lz4/installVars
Yann Collet [Thu, 24 Aug 2017 18:45:17 +0000 (11:45 -0700)]
Merge pull request #390 from lz4/installVars

fixed man directory installation (#387)

6 years agoFIX: added prefix to FORCE_INLINE to prevent redefinition error during compilation...
tcpan [Thu, 24 Aug 2017 14:14:20 +0000 (10:14 -0400)]
FIX: added prefix to FORCE_INLINE to prevent redefinition error during compilation when used with other libraries that define FORCE_INLINE

6 years agoFix: Add return statement to main function
Markus Hennecke [Thu, 24 Aug 2017 12:31:45 +0000 (14:31 +0200)]
Fix: Add return statement to main function

6 years agofixed man directory installation (#337)
Yann Collet [Thu, 24 Aug 2017 00:53:45 +0000 (17:53 -0700)]
fixed man directory installation (#337)

also : lz4c is now a symlink to lz4

6 years agomake test is compatible with parallel execution (-j#)
Yann Collet [Mon, 21 Aug 2017 22:26:03 +0000 (15:26 -0700)]
make test is compatible with parallel execution (-j#)

each test section runs with its own set of files

6 years agofix : asan error in dctx, due to increased maximum frame header size, reported by...
Yann Collet [Thu, 17 Aug 2017 17:55:30 +0000 (10:55 -0700)]
fix : asan error in dctx, due to increased maximum frame header size, reported by Craig Young

6 years agoMerge pull request #382 from lz4/installVars
Yann Collet [Wed, 16 Aug 2017 07:43:32 +0000 (00:43 -0700)]
Merge pull request #382 from lz4/installVars

better respect GNU standard Makefile conventions

6 years agoupdated lz4frame manual
Yann Collet [Tue, 15 Aug 2017 23:58:12 +0000 (16:58 -0700)]
updated lz4frame manual

6 years agoMerge branch 'dev' into installVars and fixed conflicts
Yann Collet [Tue, 15 Aug 2017 23:57:00 +0000 (16:57 -0700)]
Merge branch 'dev' into installVars and fixed conflicts

6 years agoMerge pull request #383 from lz4/blockChecksum
Yann Collet [Tue, 15 Aug 2017 23:50:04 +0000 (16:50 -0700)]
Merge pull request #383 from lz4/blockChecksum

Block checksum

6 years agoMerge pull request #380 from lz4/dictID
Yann Collet [Tue, 15 Aug 2017 21:12:04 +0000 (14:12 -0700)]
Merge pull request #380 from lz4/dictID

Frame Dictionary API

6 years agolz4c legacy commands are now enabled at runtime based on link/binary name "lz4c"
Yann Collet [Mon, 14 Aug 2017 23:56:05 +0000 (16:56 -0700)]
lz4c legacy commands are now enabled at runtime based on link/binary name "lz4c"

instead of selected at compilation time depending on a macro.
This design makes it possible to have a single binary which supports both modes.

An advantageous side effect is that when doing `make; make install`
no additional binary is created during `make install`
(it used to create `lz4c`, because `make` would only build `lz4`)

6 years agofix minor markdown display issues
Yann Collet [Mon, 14 Aug 2017 22:18:47 +0000 (15:18 -0700)]
fix minor markdown display issues

6 years agobetter respect GNU standard Makefile conventions
Yann Collet [Mon, 14 Aug 2017 22:13:23 +0000 (15:13 -0700)]
better respect GNU standard Makefile conventions

supports lowercase directory variables
add an "Installation" section in README.md
added an INSTALL file

6 years agocli : restored command -BX to enable block checksum (#322)
Yann Collet [Sat, 12 Aug 2017 00:58:46 +0000 (17:58 -0700)]
cli : restored command -BX to enable block checksum (#322)

6 years agorestored block checksum capability at lz4frame API level
Yann Collet [Sat, 12 Aug 2017 00:46:52 +0000 (17:46 -0700)]
restored block checksum capability at lz4frame API level

6 years agoMerge pull request #378 from deymo/dev
Yann Collet [Fri, 11 Aug 2017 17:49:25 +0000 (10:49 -0700)]
Merge pull request #378 from deymo/dev

Allow to predefine FORCE_INLINE macro.

6 years agoimplemented lz4frame decompression API
Yann Collet [Thu, 10 Aug 2017 23:53:57 +0000 (16:53 -0700)]
implemented lz4frame decompression API

6 years agosupport dictionary compression with independent blocks
Yann Collet [Thu, 10 Aug 2017 19:12:53 +0000 (12:12 -0700)]
support dictionary compression with independent blocks

6 years agofixed gcc prototype warning
Yann Collet [Thu, 10 Aug 2017 17:28:52 +0000 (10:28 -0700)]
fixed gcc prototype warning

6 years agodictionary compression correctly uses compression level
Yann Collet [Thu, 10 Aug 2017 07:48:19 +0000 (00:48 -0700)]
dictionary compression correctly uses compression level

Not obvious : copying the state was copying cdict's compression level

6 years agofixed C++ conversion warnings
Yann Collet [Thu, 10 Aug 2017 01:22:26 +0000 (18:22 -0700)]
fixed C++ conversion warnings

6 years agofixed uninitialization error in lz4frame
Yann Collet [Thu, 10 Aug 2017 01:00:48 +0000 (18:00 -0700)]
fixed uninitialization error in lz4frame

6 years agoimplemented dictionary compression in lz4frame
Yann Collet [Wed, 9 Aug 2017 23:51:19 +0000 (16:51 -0700)]
implemented dictionary compression in lz4frame

note : only compression API is implemented and tested
still to do : decompression API

6 years agofixed frameCompress example
Yann Collet [Wed, 9 Aug 2017 19:29:38 +0000 (12:29 -0700)]
fixed frameCompress example

6 years agoadded dictID inside LZ4F_frameInfo_t
Yann Collet [Wed, 9 Aug 2017 00:43:11 +0000 (17:43 -0700)]
added dictID inside LZ4F_frameInfo_t

Compressor can set dictID on LZ4F_compressBegin()
Decompressor can retrieve it using LZ4F_getFrameInfo()

6 years agoupdated Frame specification
Yann Collet [Tue, 8 Aug 2017 18:59:57 +0000 (11:59 -0700)]
updated Frame specification

Restored DictID field in Frame header
Bumped specification version to v1.6.0

6 years agoAllow to predefine FORCE_INLINE macro.
Alex Deymo [Fri, 28 Jul 2017 14:33:43 +0000 (16:33 +0200)]
Allow to predefine FORCE_INLINE macro.

FORCE_INLINE macro is defined based on the compiler used. When using
gcc, it will include "__attribute__((always_inline))" forcing gcc to
always inline all the functions marked as FORCE_INLINE. However, this
can cause a performance degradation of about 15%.

This patch allows to set the FORCE_INLINE macro from the compiler
command line to either "static" or "static inline" giving allowing it
to inline functions as needed when performing optimizations.

6 years agoMerge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Mon, 7 Aug 2017 04:06:14 +0000 (21:06 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev

6 years agoMerge pull request #376 from ido/patch-1
Yann Collet [Mon, 7 Aug 2017 04:05:57 +0000 (21:05 -0700)]
Merge pull request #376 from ido/patch-1

Fix typos preventing installation of static lib.

6 years agoMerge branch 'dev' of github.com:Cyan4973/lz4 into dev
Yann Collet [Mon, 7 Aug 2017 04:04:54 +0000 (21:04 -0700)]
Merge branch 'dev' of github.com:Cyan4973/lz4 into dev

6 years agoupdated man page
Yann Collet [Mon, 7 Aug 2017 04:04:46 +0000 (21:04 -0700)]
updated man page

6 years agoFix typos preventing installation of static lib.
Ido Rosen [Tue, 1 Aug 2017 04:48:58 +0000 (00:48 -0400)]
Fix typos preventing installation of static lib.

7 years agoMerge pull request #374 from ferdnyc/patch-2
Yann Collet [Sun, 9 Jul 2017 06:01:22 +0000 (23:01 -0700)]
Merge pull request #374 from ferdnyc/patch-2

Generate updated man page from Markdown source

7 years agoGenerate updated man page from Markdown source
FeRD (Frank Dana) [Sat, 8 Jul 2017 15:56:55 +0000 (11:56 -0400)]
Generate updated man page from Markdown source

7 years agoMerge pull request #373 from ferdnyc/patch-2
Yann Collet [Sat, 8 Jul 2017 11:48:32 +0000 (04:48 -0700)]
Merge pull request #373 from ferdnyc/patch-2

Fix formatting of concatenation example

7 years agoFix formatting of concatenation example
FeRD (Frank Dana) [Sat, 8 Jul 2017 11:43:51 +0000 (07:43 -0400)]
Fix formatting of concatenation example

The "Concatenation of .lz4 files" section contains example commands
that are run together on one line, making them invalid. Wrap them
in a code block and clean up surrounding formatting.

7 years agofix #369
Yann Collet [Mon, 26 Jun 2017 18:29:05 +0000 (11:29 -0700)]
fix #369

The bug would make the bt search read one byte in an invalid memory region,
and make a branch decision based on its value.
Impact was small (missed compression opportunity).
It only happens in -BD mode, with extDict-prefix overlapping matches.

The bt match search is supposed to work also in extDict mode.
In which case, the match ptr can point into Dict.
When the match was overlapping Dict<->Prefix,
match[matchLength] would end up outside of Dict, in an invalid memory area.
The correction ensures that in such a case,
match[matchLength] ends up at intended location, inside prefix.

7 years agoMerge pull request #371 from jku/tests-LIBDIR
Yann Collet [Mon, 26 Jun 2017 12:14:26 +0000 (05:14 -0700)]
Merge pull request #371 from jku/tests-LIBDIR

tests/Makefile: don't use LIBDIR as variable

7 years agotests/Makefile: don't use LIBDIR as variable
Jussi Kukkonen [Mon, 26 Jun 2017 09:07:09 +0000 (12:07 +0300)]
tests/Makefile: don't use LIBDIR as variable

LIBDIR may be overriden with a environment variable: In this case make
clean breaks in tests/. Use another variable name.

7 years agoMerge pull request #367 from Chocobo1/fallthrough
Yann Collet [Mon, 19 Jun 2017 06:55:45 +0000 (23:55 -0700)]
Merge pull request #367 from Chocobo1/fallthrough

Fix gcc7 Wimplicit-fallthrough warnings

7 years agoMerge pull request #368 from Chocobo1/readme
Yann Collet [Mon, 19 Jun 2017 06:53:58 +0000 (23:53 -0700)]
Merge pull request #368 from Chocobo1/readme

Update README.md

7 years agoUpdate README.md
Chocobo1 [Mon, 19 Jun 2017 06:14:52 +0000 (14:14 +0800)]
Update README.md

Update appveyor badge URL
Remove empty line

7 years agoFix gcc7 Wimplicit-fallthrough warnings
Chocobo1 [Mon, 19 Jun 2017 05:09:36 +0000 (13:09 +0800)]
Fix gcc7 Wimplicit-fallthrough warnings

For the default Wimplicit-fallthrough=3 level,
the comment should start with "fall*"

7 years agomade level 10 a bit faster
Yann Collet [Wed, 14 Jun 2017 00:25:29 +0000 (17:25 -0700)]
made level 10 a bit faster

at the expense of a little bit of compression ratio.

Now speed is intermediate on calgary corpus :
25 - 12 - 8 - 3

7 years ago-g compilation flag not by default for lz4 cli
Yann Collet [Tue, 13 Jun 2017 21:45:48 +0000 (14:45 -0700)]
-g compilation flag not by default for lz4 cli

7 years agoclarified lz4frame api comment (#350)
Yann Collet [Tue, 13 Jun 2017 19:35:00 +0000 (12:35 -0700)]
clarified lz4frame api comment (#350)

7 years agoreport where decompression ends (#313)
Yann Collet [Mon, 12 Jun 2017 22:47:43 +0000 (15:47 -0700)]
report where decompression ends (#313)

suggested by @ehem
note : only works for files < 2 GB