diff --git a/.gitignore b/.gitignore index 12e903e0..b6d5d132 100644 --- a/.gitignore +++ b/.gitignore @@ -17,28 +17,8 @@ *.out *.app -# Visual solution files -*.suo -*.user -*.VC.db - -# Build results -[Dd]ebug/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Bb]in/ -[Oo]bj/ - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile +# Visual C++ +visual/ # IDEA solution files *.idea diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 00000000..df8d1557 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,25 @@ +version: 1.0.{build} +configuration: +- Release +- Debug +platform: +- Win32 +- x64 +environment: + matrix: +# - PlatformToolset: v100 + - PlatformToolset: v110 + - PlatformToolset: v120 + - PlatformToolset: v140 +build_script: +- cmd: >- + ECHO PlatformToolset=%PlatformToolset% + + msbuild "visual\2013\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=%PlatformToolset% /t:Clean,Build /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" +test_script: +- cmd: >- + ECHO %APPVEYOR_BUILD_FOLDER%\visual\2013\bin\%PLATFORM%\%CONFIGURATION%\fuzzer.exe %FUZZERTEST% + + SET FUZZERTEST=-T2mn + + IF %CONFIGURATION%==Release (%APPVEYOR_BUILD_FOLDER%\visual\2013\bin\%PLATFORM%\%CONFIGURATION%\fuzzer.exe %FUZZERTEST%) \ No newline at end of file diff --git a/contrib/cmake/lib/CMakeLists.txt b/contrib/cmake/lib/CMakeLists.txt index 6d149668..dff14767 100644 --- a/contrib/cmake/lib/CMakeLists.txt +++ b/contrib/cmake/lib/CMakeLists.txt @@ -58,11 +58,11 @@ MESSAGE("ZSTD VERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}") SET(Sources ${LIBRARY_DIR}/common/zstd_common.c + ${LIBRARY_DIR}/common/fse_decompress.c ${LIBRARY_DIR}/compress/fse_compress.c ${LIBRARY_DIR}/compress/huf_compress.c ${LIBRARY_DIR}/compress/zbuff_compress.c ${LIBRARY_DIR}/compress/zstd_compress.c - ${LIBRARY_DIR}/decompress/fse_decompress.c ${LIBRARY_DIR}/decompress/huf_decompress.c ${LIBRARY_DIR}/decompress/zbuff_decompress.c ${LIBRARY_DIR}/decompress/zstd_decompress.c diff --git a/lib/Makefile b/lib/Makefile index 121a0ce3..5969437d 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -52,7 +52,7 @@ LIBDIR ?= $(PREFIX)/lib INCLUDEDIR=$(PREFIX)/include ZSTDCOMP_FILES := compress/zstd_compress.c compress/fse_compress.c compress/huf_compress.c compress/zbuff_compress.c -ZSTDDECOMP_FILES := decompress/zstd_decompress.c decompress/fse_decompress.c decompress/huf_decompress.c decompress/zbuff_decompress.c +ZSTDDECOMP_FILES := decompress/zstd_decompress.c common/fse_decompress.c decompress/huf_decompress.c decompress/zbuff_decompress.c ZSTDDICT_FILES := dictBuilder/zdict.c dictBuilder/divsufsort.c ZSTD_FILES := $(ZSTDDECOMP_FILES) common/zstd_common.c $(ZSTDCOMP_FILES) $(ZSTDDICT_FILES) ZSTD_LEGACY:= legacy/zstd_v01.c legacy/zstd_v02.c legacy/zstd_v03.c legacy/zstd_v04.c legacy/zstd_v05.c diff --git a/lib/README.md b/lib/README.md index 84e17a2f..9a728113 100644 --- a/lib/README.md +++ b/lib/README.md @@ -11,6 +11,7 @@ To build the zstd library the following files are required: - [common/error_private.h](common/error_private.h) - [common/error_public.h](common/error_public.h) - common/fse.h +- common/fse_decompress.c - common/fse_static.h - common/huf.h - common/huf_static.h @@ -22,7 +23,6 @@ To build the zstd library the following files are required: - compress/huf_compress.c - compress/zstd_compress.c - compress/zstd_opt.h -- decompress/fse_decompress.c - decompress/huf_decompress.c - decompress/zstd_decompress.c diff --git a/lib/decompress/fse_decompress.c b/lib/common/fse_decompress.c similarity index 100% rename from lib/decompress/fse_decompress.c rename to lib/common/fse_decompress.c diff --git a/lib/common/util.h b/lib/common/util.h deleted file mode 100644 index 29f2fa5c..00000000 --- a/lib/common/util.h +++ /dev/null @@ -1,171 +0,0 @@ -/* ****************************************************************** - util.h - utility functions - Copyright (C) 2016, Yann Collet. - - BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - You can contact the author at : - - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy - - Public forum : https://groups.google.com/forum/#!forum/lz4c -****************************************************************** */ -#ifndef UTIL_H_MODULE -#define UTIL_H_MODULE - -#if defined (__cplusplus) -extern "C" { -#endif - -/*-**************************************** -* Dependencies -******************************************/ -#define _POSIX_C_SOURCE 199309L /* before - needed for nanosleep() */ -#include /* clock_t, nanosleep, clock, CLOCKS_PER_SEC */ -#include /* stat */ -#include /* stat */ -#include "mem.h" /* U32, U64 */ - - -/*-**************************************** -* Compiler specifics -******************************************/ -#if defined(__GNUC__) -# define UTIL_STATIC static __attribute__((unused)) -#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) -# define UTIL_STATIC static inline -#elif defined(_MSC_VER) -# define UTIL_STATIC static __inline -#else -# define UTIL_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ -#endif - -/* Sleep functions: posix - windows - others */ -#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || defined(__midipix__) || (defined(__APPLE__) && defined(__MACH__))) -# include -# include /* setpriority */ -# define UTIL_sleep(s) sleep(s) -# define UTIL_sleepMilli(milli) { struct timespec t; t.tv_sec=0; t.tv_nsec=milli*1000000ULL; nanosleep(&t, NULL); } -# define SET_HIGH_PRIORITY setpriority(PRIO_PROCESS, 0, -20) -#elif defined(_WIN32) -# include -# define UTIL_sleep(s) Sleep(1000*s) -# define UTIL_sleepMilli(milli) Sleep(milli) -# define SET_HIGH_PRIORITY SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS) -#else -# define UTIL_sleep(s) /* disabled */ -# define UTIL_sleepMilli(milli) /* disabled */ -# define SET_HIGH_PRIORITY /* disabled */ -#endif - -#if !defined(_WIN32) - typedef clock_t UTIL_time_t; -# define UTIL_initTimer(ticksPerSecond) ticksPerSecond=0 -# define UTIL_getTime(x) x = clock() -# define UTIL_getSpanTimeMicro(ticksPerSecond, clockStart, clockEnd) (1000000ULL * (clockEnd - clockStart) / CLOCKS_PER_SEC) -# define UTIL_getSpanTimeNano(ticksPerSecond, clockStart, clockEnd) (1000000000ULL * (clockEnd - clockStart) / CLOCKS_PER_SEC) -#else - typedef LARGE_INTEGER UTIL_time_t; -# define UTIL_initTimer(x) if (!QueryPerformanceFrequency(&x)) { fprintf(stderr, "ERROR: QueryPerformance not present\n"); } -# define UTIL_getTime(x) QueryPerformanceCounter(&x) -# define UTIL_getSpanTimeMicro(ticksPerSecond, clockStart, clockEnd) (1000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart) -# define UTIL_getSpanTimeNano(ticksPerSecond, clockStart, clockEnd) (1000000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart) -#endif - - -/*-**************************************** -* Utility functions -******************************************/ -/* returns time span in microseconds */ -UTIL_STATIC U64 UTIL_clockSpanMicro( UTIL_time_t clockStart, UTIL_time_t ticksPerSecond ) -{ - UTIL_time_t clockEnd; - (void)ticksPerSecond; - - UTIL_getTime(clockEnd); - return UTIL_getSpanTimeMicro(ticksPerSecond, clockStart, clockEnd); -} - - -UTIL_STATIC void UTIL_waitForNextTick(UTIL_time_t ticksPerSecond) -{ - UTIL_time_t clockStart, clockEnd; - (void)ticksPerSecond; - - UTIL_getTime(clockStart); - do { - UTIL_getTime(clockEnd); - } while (UTIL_getSpanTimeNano(ticksPerSecond, clockStart, clockEnd) == 0); -} - - -UTIL_STATIC U64 UTIL_getFileSize(const char* infilename) -{ - int r; -#if defined(_MSC_VER) - struct _stat64 statbuf; - r = _stat64(infilename, &statbuf); - if (r || !(statbuf.st_mode & S_IFREG)) return 0; /* No good... */ -#else - struct stat statbuf; - r = stat(infilename, &statbuf); - if (r || !S_ISREG(statbuf.st_mode)) return 0; /* No good... */ -#endif - return (U64)statbuf.st_size; -} - - -UTIL_STATIC U64 UTIL_getTotalFileSize(const char** fileNamesTable, unsigned nbFiles) -{ - U64 total = 0; - unsigned n; - for (n=0; n4GB) */ -#define _FILE_OFFSET_BITS 64 -#if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */ -# define _LARGEFILE_SOURCE -#elif ! defined(__LP64__) /* No point defining Large file for 64 bit */ -# define _LARGEFILE64_SOURCE -#endif - - /* ************************************* * Includes ***************************************/ -#include "util.h" /* UTIL_GetFileSize */ +#include "util.h" /* Compiler options, UTIL_GetFileSize, UTIL_HAS_CREATEFILELIST, UTIL_sleep */ #include /* malloc, free */ #include /* memset */ #include /* fprintf, fopen, ftello64 */ @@ -55,17 +37,6 @@ #include "xxhash.h" -/* ************************************* -* Compiler specifics -***************************************/ -#if defined(_MSC_VER) -# define snprintf sprintf_s -#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) - /* part of */ -#else - extern int snprintf (char* s, size_t maxlen, const char* format, ...); /* not declared in when C version < c99 */ -#endif - /* ************************************* * Constants @@ -78,6 +49,7 @@ #define TIMELOOP_MICROSEC 1*1000000ULL /* 1 second */ #define ACTIVEPERIOD_MICROSEC 70*1000000ULL /* 70 seconds */ #define COOLPERIOD_SEC 10 +#define MAX_LIST_SIZE (64*1024) #define KB *(1 <<10) #define MB *(1 <<20) @@ -187,7 +159,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, /* init */ if (strlen(displayName)>17) displayName += strlen(displayName)-17; /* can only display 17 characters */ - UTIL_initTimer(ticksPerSecond); + UTIL_initTimer(&ticksPerSecond); /* Init blockTable data */ { const char* srcPtr = (const char*)srcBuffer; @@ -223,7 +195,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, size_t cSize = 0; double ratio = 0.; - UTIL_getTime(coolTime); + UTIL_getTime(&coolTime); DISPLAYLEVEL(2, "\r%79s\r", ""); for (testNb = 1; testNb <= (g_nbIterations + !g_nbIterations); testNb++) { UTIL_time_t clockStart; @@ -233,7 +205,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, if (UTIL_clockSpanMicro(coolTime, ticksPerSecond) > ACTIVEPERIOD_MICROSEC) { DISPLAY("\rcooling down ... \r"); UTIL_sleep(COOLPERIOD_SEC); - UTIL_getTime(coolTime); + UTIL_getTime(&coolTime); } /* Compression */ @@ -242,7 +214,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, UTIL_sleepMilli(1); /* give processor time to other processes */ UTIL_waitForNextTick(ticksPerSecond); - UTIL_getTime(clockStart); + UTIL_getTime(&clockStart); { U32 nbLoops = 0; do { @@ -281,7 +253,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, UTIL_sleepMilli(1); /* give processor time to other processes */ UTIL_waitForNextTick(ticksPerSecond); - UTIL_getTime(clockStart); + UTIL_getTime(&clockStart); { U32 nbLoops = 0; do { @@ -347,6 +319,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize, } /* Bench */ /* clean up */ + free(blockTable); free(compressedBuffer); free(resultBuffer); ZSTD_freeCCtx(refCtx); @@ -528,14 +501,32 @@ static void BMK_syntheticTest(int cLevel, int cLevelLast, double compressibility int BMK_benchFiles(const char** fileNamesTable, unsigned nbFiles, - const char* dictFileName, int cLevel, int cLevelLast) + const char* dictFileName, int cLevel, int cLevelLast, int recursive) { double const compressibility = (double)g_compressibilityDefault / 100; if (nbFiles == 0) BMK_syntheticTest(cLevel, cLevelLast, compressibility); else + { +#ifdef UTIL_HAS_CREATEFILELIST + if (recursive) { + char* buf; + const char** filenameTable; + unsigned i; + nbFiles = UTIL_createFileList(fileNamesTable, nbFiles, MAX_LIST_SIZE, &filenameTable, &buf); + if (filenameTable) { + for (i=0; i4GB) */ -#define _FILE_OFFSET_BITS 64 -#if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */ -# define _LARGEFILE_SOURCE -#elif ! defined(__LP64__) /* No point defining Large file for 64 bit */ -# define _LARGEFILE64_SOURCE -#endif - - /*-************************************* * Includes ***************************************/ -#include "util.h" /* UTIL_GetFileSize */ +#include "util.h" /* Compiler options, UTIL_GetFileSize, UTIL_getTotalFileSize */ #include /* malloc, free */ #include /* memset */ #include /* fprintf, fopen, ftello64 */ +#include /* clock_t, clock, CLOCKS_PER_SEC */ #include "mem.h" /* read */ #include "error_private.h" diff --git a/programs/fileio.c b/programs/fileio.c index dea08690..b3f324ac 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -41,21 +41,13 @@ /* ************************************* * Compiler Options ***************************************/ -/* Disable some Visual warning messages */ -#ifdef _MSC_VER -# define _CRT_SECURE_NO_WARNINGS -# define _CRT_SECURE_NO_DEPRECATE /* VS2005 */ -# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ -#endif - -#define _FILE_OFFSET_BITS 64 /* Large file support on 32-bits unix */ -#define _POSIX_SOURCE 1 /* enable fileno() within on unix */ +#define _POSIX_SOURCE 1 /* enable %llu on Windows */ /*-************************************* * Includes ***************************************/ -#include "util.h" /* UTIL_GetFileSize */ +#include "util.h" /* Compiler options, UTIL_GetFileSize */ #include /* fprintf, fopen, fread, _fileno, stdin, stdout */ #include /* malloc, free */ #include /* strcmp, strlen */ @@ -80,11 +72,9 @@ # include /* _O_BINARY */ # include /* _setmode, _isatty */ # define SET_BINARY_MODE(file) { int unused = _setmode(_fileno(file), _O_BINARY); (void)unused; } -# define IS_CONSOLE(stdStream) _isatty(_fileno(stdStream)) #else # include /* isatty */ # define SET_BINARY_MODE(file) -# define IS_CONSOLE(stdStream) isatty(fileno(stdStream)) #endif diff --git a/programs/fullbench.c b/programs/fullbench.c index 3cc9dac7..6f5d6a78 100644 --- a/programs/fullbench.c +++ b/programs/fullbench.c @@ -22,30 +22,14 @@ - zstd homepage : http://www.zstd.net */ -/*_************************************ -* Compiler Options -**************************************/ -/* Disable some Visual warning messages */ -#define _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_DEPRECATE /* VS2005 */ - -/* Unix Large Files support (>4GB) */ -#if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */ -# define _LARGEFILE_SOURCE -# define _FILE_OFFSET_BITS 64 -#elif ! defined(__LP64__) /* No point defining Large file for 64 bit */ -# define _LARGEFILE64_SOURCE -#endif - - /*_************************************ * Includes **************************************/ -#include "util.h" /* UTIL_GetFileSize */ -#include /* malloc */ -#include /* fprintf, fopen, ftello64 */ -#include /* strcmp */ -#include /* clock_t, clock, CLOCKS_PER_SEC */ +#include "util.h" /* Compiler options, UTIL_GetFileSize */ +#include /* malloc */ +#include /* fprintf, fopen, ftello64 */ +#include /* strcmp */ +#include /* clock_t, clock, CLOCKS_PER_SEC */ #include "mem.h" #include "zstd_static.h" diff --git a/programs/paramgrill.c b/programs/paramgrill.c index 566197f5..0a0824ad 100644 --- a/programs/paramgrill.c +++ b/programs/paramgrill.c @@ -25,35 +25,16 @@ /*-************************************ * Compiler Options **************************************/ -/* Disable some Visual warning messages */ -#define _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_DEPRECATE /* VS2005 */ - -/* Unix Large Files support (>4GB) */ -#if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */ -# define _LARGEFILE_SOURCE -# define _FILE_OFFSET_BITS 64 -#elif ! defined(__LP64__) /* No point defining Large file for 64 bit */ -# define _LARGEFILE64_SOURCE -#endif - /* gettimeofday() are not supported by MSVC */ #if defined(_MSC_VER) || defined(_WIN32) # define BMK_LEGACY_TIMER 1 #endif -#if defined(_MSC_VER) -# define snprintf _snprintf /* snprintf unsupported by Visual <= 2012 */ -#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) -#else -# define snprintf(b, s, ...) sprintf(b, __VA_ARGS__) -#endif - /*-************************************ * Dependencies **************************************/ -#include "util.h" /* UTIL_GetFileSize */ +#include "util.h" /* Compiler options, UTIL_GetFileSize */ #include /* malloc */ #include /* fprintf, fopen, ftello64 */ #include /* strcmp */ diff --git a/programs/util.h b/programs/util.h new file mode 100644 index 00000000..7f738438 --- /dev/null +++ b/programs/util.h @@ -0,0 +1,369 @@ +/* ****************************************************************** + util.h - utility functions + Copyright (C) 2016, Przemyslaw Skibinski, Yann Collet. + + GPL v2 License + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + You can contact the author at : + - ZSTD homepage : http://www.zstd.net/ +*/ +#ifndef UTIL_H_MODULE +#define UTIL_H_MODULE + +#if defined (__cplusplus) +extern "C" { +#endif + +/* ************************************** +* Compiler Options +****************************************/ +#if defined(_MSC_VER) +# define _CRT_SECURE_NO_WARNINGS /* Disable some Visual warning messages for fopen, strncpy */ +# define _CRT_SECURE_NO_DEPRECATE /* VS2005 */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +#if _MSC_VER <= 1800 /* (1800 = Visual Studio 2013) */ + #define snprintf sprintf_s /* snprintf unsupported by Visual <= 2013 */ + //#define snprintf _snprintf +#endif +#endif + + +/* Unix Large Files support (>4GB) */ +#if !defined(__LP64__) /* No point defining Large file for 64 bit */ +# define _FILE_OFFSET_BITS 64 /* turn off_t into a 64-bit type for ftello, fseeko */ +# if defined(__sun__) /* Sun Solaris 32-bits requires specific definitions */ +# define _LARGEFILE_SOURCE /* fseeko, ftello */ +# else +# define _LARGEFILE64_SOURCE /* off64_t, fseeko64, ftello64 */ +# endif +#endif + + +/*-**************************************** +* Dependencies +******************************************/ +#include /* _POSIX_C_SOURCE, malloc */ +#include /* fprintf */ +#include /* stat */ +#include /* stat */ +#include "mem.h" /* U32, U64 */ + + +/*-**************************************** +* Compiler specifics +******************************************/ +#if defined(__GNUC__) +# define UTIL_STATIC static __attribute__((unused)) +#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define UTIL_STATIC static inline +#elif defined(_MSC_VER) +# define UTIL_STATIC static __inline +#else +# define UTIL_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif + + +/*-**************************************** +* Sleep functions: Windows - Posix - others +******************************************/ +#if defined(_WIN32) +# include +# define SET_HIGH_PRIORITY SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS) +# define UTIL_sleep(s) Sleep(1000*s) +# define UTIL_sleepMilli(milli) Sleep(milli) +#elif (defined(__unix__) || defined(__unix) || defined(__midipix__) || (defined(__APPLE__) && defined(__MACH__))) +# include +# include /* setpriority */ +# include /* clock_t, nanosleep, clock, CLOCKS_PER_SEC */ +# define SET_HIGH_PRIORITY setpriority(PRIO_PROCESS, 0, -20) +# define UTIL_sleep(s) sleep(s) +# if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199309L) +# define UTIL_sleepMilli(milli) { struct timespec t; t.tv_sec=0; t.tv_nsec=milli*1000000ULL; nanosleep(&t, NULL); } +# else +# define UTIL_sleepMilli(milli) /* disabled */ +# endif +#else +# define SET_HIGH_PRIORITY /* disabled */ +# define UTIL_sleep(s) /* disabled */ +# define UTIL_sleepMilli(milli) /* disabled */ +#endif + + +/*-**************************************** +* Time functions +******************************************/ +#if !defined(_WIN32) + typedef clock_t UTIL_time_t; + UTIL_STATIC void UTIL_initTimer(UTIL_time_t* ticksPerSecond) { *ticksPerSecond=0; } + UTIL_STATIC void UTIL_getTime(UTIL_time_t* x) { *x = clock(); } + UTIL_STATIC U64 UTIL_getSpanTimeMicro(UTIL_time_t ticksPerSecond, UTIL_time_t clockStart, UTIL_time_t clockEnd) { (void)ticksPerSecond; return 1000000ULL * (clockEnd - clockStart) / CLOCKS_PER_SEC; } + UTIL_STATIC U64 UTIL_getSpanTimeNano(UTIL_time_t ticksPerSecond, UTIL_time_t clockStart, UTIL_time_t clockEnd) { (void)ticksPerSecond; return 1000000000ULL * (clockEnd - clockStart) / CLOCKS_PER_SEC; } +#else + typedef LARGE_INTEGER UTIL_time_t; + UTIL_STATIC void UTIL_initTimer(UTIL_time_t* ticksPerSecond) { if (!QueryPerformanceFrequency(ticksPerSecond)) fprintf(stderr, "ERROR: QueryPerformance not present\n"); } + UTIL_STATIC void UTIL_getTime(UTIL_time_t* x) { QueryPerformanceCounter(x); } + UTIL_STATIC U64 UTIL_getSpanTimeMicro(UTIL_time_t ticksPerSecond, UTIL_time_t clockStart, UTIL_time_t clockEnd) { return 1000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart; } + UTIL_STATIC U64 UTIL_getSpanTimeNano(UTIL_time_t ticksPerSecond, UTIL_time_t clockStart, UTIL_time_t clockEnd) { return 1000000000ULL*(clockEnd.QuadPart - clockStart.QuadPart)/ticksPerSecond.QuadPart; } +#endif + + +/* returns time span in microseconds */ +UTIL_STATIC U64 UTIL_clockSpanMicro( UTIL_time_t clockStart, UTIL_time_t ticksPerSecond ) +{ + UTIL_time_t clockEnd; + UTIL_getTime(&clockEnd); + return UTIL_getSpanTimeMicro(ticksPerSecond, clockStart, clockEnd); +} + + +UTIL_STATIC void UTIL_waitForNextTick(UTIL_time_t ticksPerSecond) +{ + UTIL_time_t clockStart, clockEnd; + UTIL_getTime(&clockStart); + do { + UTIL_getTime(&clockEnd); + } while (UTIL_getSpanTimeNano(ticksPerSecond, clockStart, clockEnd) == 0); +} + + + +/*-**************************************** +* File functions +******************************************/ +UTIL_STATIC U64 UTIL_getFileSize(const char* infilename) +{ + int r; +#if defined(_MSC_VER) + struct _stat64 statbuf; + r = _stat64(infilename, &statbuf); + if (r || !(statbuf.st_mode & S_IFREG)) return 0; /* No good... */ +#else + struct stat statbuf; + r = stat(infilename, &statbuf); + if (r || !S_ISREG(statbuf.st_mode)) return 0; /* No good... */ +#endif + return (U64)statbuf.st_size; +} + + +UTIL_STATIC U64 UTIL_getTotalFileSize(const char** fileNamesTable, unsigned nbFiles) +{ + U64 total = 0; + unsigned n; + for (n=0; n= bufEnd) return 0; + + pathLength = snprintf(path, MAX_PATH, "%s\\*", dirName); + if (pathLength < 0 || pathLength >= MAX_PATH) { + fprintf(stderr, "Path length has got too long.\n"); + return 0; + } + + hFile=FindFirstFile(path, &cFile); + if (hFile == INVALID_HANDLE_VALUE) { + fprintf(stderr, "Cannot open directory '%s'\n", dirName); + return 0; + } + + while (*bufStart < bufEnd) { + if (cFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + if (strcmp (cFile.cFileName, "..") == 0 || + strcmp (cFile.cFileName, ".") == 0) goto next; + pathLength = snprintf(path, MAX_PATH, "%s\\%s", dirName, cFile.cFileName); + if (pathLength < 0 || pathLength >= MAX_PATH) { + fprintf(stderr, "Path length has got too long.\n"); + goto next; + } + // printf ("[%s]\n", path); + nbFiles += UTIL_prepareFileList(path, bufStart, bufEnd); /* Recursively call "UTIL_prepareFileList" with the new path. */ + } + else if ((cFile.dwFileAttributes & FILE_ATTRIBUTE_NORMAL) || (cFile.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) || (cFile.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED)) { + pathLength = snprintf(*bufStart, bufEnd - *bufStart, "%s\\%s", dirName, cFile.cFileName); + if (pathLength < 0) break; + *bufStart += pathLength + 1; + if (*bufStart >= bufEnd) break; + nbFiles++; + // printf ("%s\\%s nbFiles=%d left=%d\n", dirName, cFile.cFileName, nbFiles, (int)(bufEnd - *bufStart)); + } + +next: + if (!FindNextFile(hFile, &cFile)) break; + } + + FindClose(hFile); + return nbFiles; +} + +#elif (defined(__unix__) || defined(__unix) || defined(__midipix__) || (defined(__APPLE__) && defined(__MACH__))) && defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) /* snprintf, opendir */ +# define UTIL_HAS_CREATEFILELIST +# include /* opendir, readdir */ +# include /* PATH_MAX */ +# include + +UTIL_STATIC int UTIL_prepareFileList(const char *dirName, char** bufStart, char* bufEnd) +{ + DIR *dir; + struct dirent *entry; + char path[PATH_MAX]; + int pathLength, nbFiles = 0; + + if (*bufStart >= bufEnd) return 0; + + if (!(dir = opendir(dirName))) { + fprintf(stderr, "Cannot open directory '%s': %s\n", dirName, strerror(errno)); + return 0; + } + + while ((entry = readdir(dir)) && (*bufStart < bufEnd)) { + if (strcmp (entry->d_name, "..") == 0 || + strcmp (entry->d_name, ".") == 0) continue; + pathLength = snprintf(path, PATH_MAX, "%s/%s", dirName, entry->d_name); + if (pathLength < 0 || pathLength >= PATH_MAX) { + fprintf(stderr, "Path length has got too long.\n"); + continue; + } + if (UTIL_isDirectory(path)) { + // printf ("[%s]\n", path); + nbFiles += UTIL_prepareFileList(path, bufStart, bufEnd); /* Recursively call "UTIL_prepareFileList" with the new path. */ + } else { + pathLength = snprintf(*bufStart, bufEnd - *bufStart, "%s/%s", dirName, entry->d_name); + if (pathLength < 0) break; + *bufStart += pathLength + 1; + if (*bufStart >= bufEnd) break; + nbFiles++; + // printf ("%s/%s nbFiles=%d left=%d\n", dirName, entry->d_name, nbFiles, (int)(bufEnd - *bufStart)); + } + } + + closedir(dir); + return nbFiles; +} + +#else + +UTIL_STATIC int UTIL_prepareFileList(const char *dirName, char** bufStart, char* bufEnd) +{ + (void)bufStart; (void)bufEnd; + fprintf(stderr, "Directory %s ignored (zstd compiled without _POSIX_C_SOURCE)\n", dirName); + return 0; +} + +#endif // #ifdef _WIN32 + + +UTIL_STATIC int UTIL_createFileList(const char **inputNames, unsigned nbNames, unsigned maxListSize, const char*** filenameTable, char** allocatedBuffer) +{ + unsigned i, nbFiles = 0; + char *pbuf, *bufend, *buf; + + buf = (char*)malloc(maxListSize); + if (!buf) { *filenameTable = NULL; return 0; } + bufend = buf + maxListSize; + + for (i=0, pbuf = buf; i= bufend) break; + strncpy(pbuf, inputNames[i], bufend - pbuf); + pbuf += len + 1; + nbFiles++; + } + else + nbFiles += UTIL_prepareFileList(inputNames[i], &pbuf, bufend); + } + + { const char** fileTable = (const char**)malloc((nbFiles+1) * sizeof(const char*)); + if (!fileTable) { free(buf); *filenameTable = NULL; return 0; } + + if (nbFiles == 0) + fileTable[0] = buf; + + for (i=0, pbuf = buf; i on unix */ /*-************************************ * Includes **************************************/ -#include /* fprintf, getchar */ -#include /* exit, calloc, free */ +#include "util.h" /* Compiler options, UTIL_HAS_CREATEFILELIST */ #include /* strcmp, strlen */ #include /* toupper */ #include "fileio.h" @@ -48,7 +46,7 @@ #endif #include "zstd_static.h" /* ZSTD_maxCLevel, ZSTD version numbers */ #ifndef ZSTD_NODICT -# include "dibio.h" /* BMK_benchFiles, BMK_SetNbIterations */ +# include "dibio.h" #endif @@ -148,8 +146,11 @@ static int usage_advanced(const char* programName) #ifndef ZSTD_NOBENCH DISPLAY( "Benchmark arguments :\n"); DISPLAY( " -b# : benchmark file(s), using # compression level (default : 1) \n"); - DISPLAY( " -r# : test all compression levels from -bX to # (default: 1)\n"); + DISPLAY( " -e# : test all compression levels from -bX to # (default: 1)\n"); DISPLAY( " -i# : iteration loops [1-9](default : 3)\n"); +#ifdef UTIL_HAS_CREATEFILELIST + DISPLAY( " -r : operate recursively on directories\n"); +#endif DISPLAY( " -B# : cut file into independent blocks of size # (default: no block)\n"); #endif return 0; @@ -188,6 +189,7 @@ int main(int argCount, const char** argv) nextArgumentIsMaxDict=0; unsigned cLevel = 1; unsigned cLevelLast = 1; + unsigned recursive = 0; const char** filenameTable = (const char**)malloc(argCount * sizeof(const char*)); /* argCount >= 1 */ unsigned filenameIdx = 0; const char* programName = argv[0]; @@ -199,7 +201,7 @@ int main(int argCount, const char** argv) unsigned dictSelect = g_defaultSelectivityLevel; /* init */ - (void)cLevelLast; (void)dictCLevel; /* not used when ZSTD_NOBENCH / ZSTD_NODICT set */ + (void)recursive; (void)cLevelLast; (void)dictCLevel; /* not used when ZSTD_NOBENCH / ZSTD_NODICT set */ (void)decode; (void)cLevel; /* not used when ZSTD_NOCOMPRESS set */ if (filenameTable==NULL) { DISPLAY("not enough memory\n"); exit(1); } displayOut = stderr; @@ -294,6 +296,17 @@ int main(int argCount, const char** argv) /* Benchmark */ case 'b': bench=1; argument++; break; + /* range bench (benchmark only) */ + case 'e': + /* compression Level */ + argument++; + if ((*argument>='0') && (*argument<='9')) { + cLevelLast = 0; + while ((*argument >= '0') && (*argument <= '9')) + cLevelLast *= 10, cLevelLast += *argument++ - '0'; + } + break; + /* Modify Nb Iterations (benchmark only) */ case 'i': { U32 iters= 0; @@ -305,6 +318,9 @@ int main(int argCount, const char** argv) } break; + /* recursive */ + case 'r': recursive=1; argument++; break; + /* cut input into blocks (benchmark only) */ case 'B': { size_t bSize = 0; @@ -318,17 +334,6 @@ int main(int argCount, const char** argv) BMK_SetBlockSize(bSize); } break; - - /* range bench (benchmark only) */ - case 'r': - /* compression Level */ - argument++; - if ((*argument>='0') && (*argument<='9')) { - cLevelLast = 0; - while ((*argument >= '0') && (*argument <= '9')) - cLevelLast *= 10, cLevelLast += *argument++ - '0'; - } - break; #endif /* ZSTD_NOBENCH */ /* Selection level */ @@ -390,7 +395,7 @@ int main(int argCount, const char** argv) if (bench) { #ifndef ZSTD_NOBENCH BMK_setNotificationLevel(displayLevel); - BMK_benchFiles(filenameTable, filenameIdx, dictFileName, cLevel, cLevelLast); + BMK_benchFiles(filenameTable, filenameIdx, dictFileName, cLevel, cLevelLast, recursive); #endif goto _end; } diff --git a/visual/2013/fullbench/fullbench.vcxproj b/visual/2013/fullbench/fullbench.vcxproj index e9876671..95f98d6b 100644 --- a/visual/2013/fullbench/fullbench.vcxproj +++ b/visual/2013/fullbench/fullbench.vcxproj @@ -1,4 +1,4 @@ - + @@ -28,28 +28,28 @@ Application true - Unicode + MultiByte v110 Application true v110 - Unicode + MultiByte Application false v110 true - Unicode + MultiByte Application false v110 true - Unicode + MultiByte @@ -69,23 +69,23 @@ true - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false true - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false false - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false false - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false @@ -95,8 +95,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -111,8 +110,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -128,9 +126,8 @@ true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true + false true - /analyze:stacksize25000 %(AdditionalOptions) Console @@ -149,8 +146,7 @@ true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -161,11 +157,11 @@ + - @@ -185,6 +181,7 @@ + diff --git a/visual/2013/fullbench/fullbench.vcxproj.filters b/visual/2013/fullbench/fullbench.vcxproj.filters index af5feb17..16809477 100644 --- a/visual/2013/fullbench/fullbench.vcxproj.filters +++ b/visual/2013/fullbench/fullbench.vcxproj.filters @@ -17,9 +17,6 @@ Source Files - - Source Files - Source Files @@ -44,6 +41,9 @@ Source Files + + Source Files + @@ -82,5 +82,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/visual/2013/fuzzer/fuzzer.vcxproj b/visual/2013/fuzzer/fuzzer.vcxproj index 19f9cabe..635c3c84 100644 --- a/visual/2013/fuzzer/fuzzer.vcxproj +++ b/visual/2013/fuzzer/fuzzer.vcxproj @@ -1,4 +1,4 @@ - + @@ -28,28 +28,28 @@ Application true - Unicode v110 + MultiByte Application true v110 - Unicode + MultiByte Application false v110 true - Unicode + MultiByte Application false v110 true - Unicode + MultiByte @@ -69,23 +69,23 @@ true - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false true - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false false - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false false - $(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib\common;$(SolutionDir)..\..\lib\legacy;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath) + false @@ -95,8 +95,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -111,8 +110,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -128,9 +126,8 @@ true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true + false true - /analyze:stacksize25000 %(AdditionalOptions) Console @@ -149,8 +146,7 @@ true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -160,11 +156,11 @@ + - @@ -185,6 +181,7 @@ + diff --git a/visual/2013/fuzzer/fuzzer.vcxproj.filters b/visual/2013/fuzzer/fuzzer.vcxproj.filters index 9f042b24..b2abefbc 100644 --- a/visual/2013/fuzzer/fuzzer.vcxproj.filters +++ b/visual/2013/fuzzer/fuzzer.vcxproj.filters @@ -29,10 +29,16 @@ Source Files - + Source Files - + + Source Files + + + Source Files + + Source Files @@ -76,5 +82,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/visual/2013/zstd.sln b/visual/2013/zstd.sln index 97d52ceb..825d7a13 100644 --- a/visual/2013/zstd.sln +++ b/visual/2013/zstd.sln @@ -1,8 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 -MinimumVisualStudioVersion = 10.0.40219.1 +# Visual Studio Express 2012 for Windows Desktop Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstd", "zstd\zstd.vcxproj", "{4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fuzzer", "fuzzer\fuzzer.vcxproj", "{6FD4352B-346C-4703-96EA-D4A8B9A6976E}" @@ -13,20 +11,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zstdlib", "zstdlib\zstdlib. EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Release|x64 = Release|x64 Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|x64.ActiveCfg = Release|x64 - {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|x64.Build.0 = Release|x64 - {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|Win32.ActiveCfg = Release|Win32 - {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|Win32.Build.0 = Release|Win32 {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|Win32.ActiveCfg = Debug|Win32 {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|Win32.Build.0 = Debug|Win32 {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|x64.ActiveCfg = Debug|x64 {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|x64.Build.0 = Debug|x64 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|Win32.ActiveCfg = Release|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|Win32.Build.0 = Release|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|x64.ActiveCfg = Release|x64 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|x64.Build.0 = Release|x64 {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|Win32.ActiveCfg = Debug|Win32 {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|Win32.Build.0 = Debug|Win32 {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/visual/2013/zstd/zstd.vcxproj b/visual/2013/zstd/zstd.vcxproj index d31994d9..5ada0e19 100755 --- a/visual/2013/zstd/zstd.vcxproj +++ b/visual/2013/zstd/zstd.vcxproj @@ -1,4 +1,4 @@ - + @@ -20,11 +20,11 @@ + - @@ -69,6 +69,7 @@ + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C} @@ -80,28 +81,28 @@ Application true - Unicode v110 + MultiByte Application true v110 - Unicode + MultiByte Application false true v110 - Unicode + MultiByte Application false true v110 - Unicode + MultiByte @@ -121,22 +122,22 @@ true - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + false true - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + false false - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); false false - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); false @@ -147,8 +148,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -163,8 +163,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) false - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console diff --git a/visual/2013/zstd/zstd.vcxproj.filters b/visual/2013/zstd/zstd.vcxproj.filters index 8891f9cc..87666627 100755 --- a/visual/2013/zstd/zstd.vcxproj.filters +++ b/visual/2013/zstd/zstd.vcxproj.filters @@ -62,9 +62,6 @@ Source Files - - Source Files - Source Files @@ -80,6 +77,9 @@ Source Files + + Source Files + @@ -157,5 +157,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/visual/2013/zstdlib/zstdlib.vcxproj b/visual/2013/zstdlib/zstdlib.vcxproj index 76944cf4..bcfac499 100644 --- a/visual/2013/zstdlib/zstdlib.vcxproj +++ b/visual/2013/zstdlib/zstdlib.vcxproj @@ -1,4 +1,4 @@ - + @@ -20,11 +20,11 @@ + - @@ -44,6 +44,7 @@ + @@ -59,28 +60,28 @@ DynamicLibrary true - Unicode v110 + MultiByte DynamicLibrary true v110 - Unicode + MultiByte DynamicLibrary false true v110 - Unicode + MultiByte DynamicLibrary false true v110 - Unicode + MultiByte @@ -102,28 +103,28 @@ true zstdlib_x86 $(Platform)\$(Configuration)\ - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + false true zstdlib_x64 $(Platform)\$(Configuration)\ - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); - true + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + false false zstdlib_x86 $(Platform)\$(Configuration)\ - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); false false zstdlib_x64 $(Platform)\$(Configuration)\ - $(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + $(WindowsSdkDir)\include;$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs\legacy;$(SolutionDir)..\..\lib\legacy;$(SolutionDir)..\..\lib\common;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); false @@ -138,8 +139,7 @@ MultiThreadedDebugDLL EditAndContinue true - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -158,8 +158,7 @@ EnableFastChecks MultiThreadedDebugDLL ProgramDatabase - true - /analyze:stacksize25000 %(AdditionalOptions) + false Console @@ -175,8 +174,7 @@ true true ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;ZSTD_LEGACY_SUPPORT=0;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - /analyze:stacksize25000 %(AdditionalOptions) + false MultiThreadedDLL ProgramDatabase All diff --git a/visual/2013/zstdlib/zstdlib.vcxproj.filters b/visual/2013/zstdlib/zstdlib.vcxproj.filters index 7aeda6e4..367a26c0 100644 --- a/visual/2013/zstdlib/zstdlib.vcxproj.filters +++ b/visual/2013/zstdlib/zstdlib.vcxproj.filters @@ -30,9 +30,6 @@ Source Files - - Source Files - Source Files @@ -48,6 +45,9 @@ Source Files + + Source Files + @@ -95,6 +95,9 @@ Header Files + + Header Files +