diff --git a/.gitattributes b/.gitattributes index 35be5a86c..b9d54fbfd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,6 +7,7 @@ # Denote files that should not be modified. *.odt binary +*.png binary # Visual Studio *.sln binary *.suo binary diff --git a/lib/zstd.c b/lib/zstd.c index 4f2fe472b..48c4025b1 100644 --- a/lib/zstd.c +++ b/lib/zstd.c @@ -68,7 +68,10 @@ #include /* debug : printf */ #include "zstd_static.h" #if defined(__clang__) || defined(__GNUC__) -# include "fse.c" /* due to GCC/Clang inlining limitations, including *.c runs noticeably faster */ +# ifdef __clang__ +# pragma clang diagnostic ignored "-Wtypedef-redefinition" +# endif +# include "fse.c" /* due to GCC/Clang inlining limitations, including *.c runs noticeably faster */ #else # include "fse_static.h" #endif @@ -77,7 +80,8 @@ /******************************************************** * Compiler specifics *********************************************************/ -#if (!(defined(_MSC_VER) && (_MSC_VER<=1500))) /* exclude Visual 2008 and below */ +//#if (!(defined(_MSC_VER) && (_MSC_VER<=1500))) /* exclude Visual 2008 and below */ +#ifdef __AVX2__ # include /* AVX2 intrinsics */ #endif @@ -136,12 +140,13 @@ static const U32 ZSTD_magicNumber = 0xFD2FB51C; #define BIT5 32 #define BIT4 16 -#define KB *(1<<10) -#define MB *(1<<20) +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<20) #define BLOCKSIZE (128 KB) // define, for static allocation -static const size_t g_maxBlockSize = 128 KB; static const U32 g_maxDistance = 512 KB; +static const U32 g_maxLimit = 1 GB; static const U32 g_searchStrength = 8; #define WORKPLACESIZE (BLOCKSIZE*11/4) @@ -176,21 +181,6 @@ static unsigned ZSTD_isLittleEndian(void) return one.c[0]; } -static U32 ZSTD_readBE32(const void* memPtr) -{ - const BYTE* p = (const BYTE*)memPtr; - return (U32)(((U32)p[0]<<24) + ((U32)p[1]<<16) + ((U32)p[2]<<8) + ((U32)p[3]<<0)); -} - -static void ZSTD_writeBE32(void* memPtr, U32 value) -{ - BYTE* const p = (BYTE* const) memPtr; - p[0] = (BYTE)(value>>24); - p[1] = (BYTE)(value>>16); - p[2] = (BYTE)(value>>8); - p[3] = (BYTE)(value>>0); -} - static U16 ZSTD_read16(const void* p) { return *(U16*)p; } static U32 ZSTD_read32(const void* p) { return *(U32*)p; } @@ -211,6 +201,48 @@ static void ZSTD_wildcopy(void* dst, const void* src, size_t length) while (op < oend) COPY8(op, ip); } +static U32 ZSTD_readLE32(const void* memPtr) +{ + if (ZSTD_isLittleEndian()) + return ZSTD_read32(memPtr); + else + { + const BYTE* p = (const BYTE*)memPtr; + return (U32)((U32)p[0] + ((U32)p[1]<<8) + ((U32)p[2]<<16) + ((U32)p[3]<<24)); + } +} + +static void ZSTD_writeLE32(void* memPtr, U32 val32) +{ + if (ZSTD_isLittleEndian()) + { + memcpy(memPtr, &val32, 4); + } + else + { + BYTE* p = (BYTE*)memPtr; + p[0] = (BYTE)val32; + p[1] = (BYTE)(val32>>8); + p[2] = (BYTE)(val32>>16); + p[3] = (BYTE)(val32>>24); + } +} + +static U32 ZSTD_readBE32(const void* memPtr) +{ + const BYTE* p = (const BYTE*)memPtr; + return (U32)(((U32)p[0]<<24) + ((U32)p[1]<<16) + ((U32)p[2]<<8) + ((U32)p[3]<<0)); +} + +static void ZSTD_writeBE32(void* memPtr, U32 value) +{ + BYTE* const p = (BYTE* const) memPtr; + p[0] = (BYTE)(value>>24); + p[1] = (BYTE)(value>>16); + p[2] = (BYTE)(value>>8); + p[3] = (BYTE)(value>>0); +} + static size_t ZSTD_writeProgressive(void* ptr, size_t value) { BYTE* const bStart = (BYTE* const)ptr; @@ -261,17 +293,19 @@ typedef struct { const BYTE* base; U32 current; + U32 nextUpdate; BYTE* workplace; -#ifdef _INCLUDED_IMM - __m256i justToBeAligned; +#ifdef __AVX2__ + __m256i hashTable[HASH_TABLESIZE>>3]; +#else + U32 hashTable[HASH_TABLESIZE]; #endif - U32 hashTable[HASH_TABLESIZE]; -} refTables_t; +} cctxi_t; ZSTD_cctx_t ZSTD_createCCtx(void) { - refTables_t* srt = (refTables_t *) malloc( sizeof(refTables_t) ); + cctxi_t* srt = (cctxi_t *) malloc( sizeof(cctxi_t) ); srt->workplace = (BYTE*) malloc(WORKPLACESIZE); return (ZSTD_cctx_t)srt; } @@ -279,7 +313,7 @@ ZSTD_cctx_t ZSTD_createCCtx(void) void ZSTD_resetCCtx(ZSTD_cctx_t ctx) { - refTables_t* srt = (refTables_t*)ctx; + cctxi_t* srt = (cctxi_t*)ctx; srt->base = NULL; memset(srt->hashTable, 0, HASH_TABLESIZE*4); } @@ -287,7 +321,7 @@ void ZSTD_resetCCtx(ZSTD_cctx_t ctx) size_t ZSTD_freeCCtx(ZSTD_cctx_t ctx) { - refTables_t *srt = (refTables_t *) (ctx); + cctxi_t *srt = (cctxi_t *) (ctx); free(srt->workplace); free(srt); return 0; @@ -713,16 +747,8 @@ static size_t ZSTD_compressEntropy(BYTE* dst, size_t maxDstSize, max = MaxOff; for (i=0; i> (64-HASH_LOG)); } @@ -889,16 +924,17 @@ static const BYTE* ZSTD_updateMatch(U32* table, const BYTE* p, const BYTE* start static int ZSTD_checkMatch(const BYTE* match, const BYTE* ip) { - return *(U32*)match == *(U32*)ip; + //return *(U32*)match == *(U32*)ip; + return ZSTD_read32(match) == ZSTD_read32(ip); } static size_t ZSTD_compressBlock(void* ctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize) { // Local Variables - refTables_t* srt = (refTables_t*) ctx; - U32* HashTable = srt->hashTable; - BYTE* workplace = srt->workplace; + cctxi_t* srt = (cctxi_t*) ctx; + U32* HashTable = (U32*)(srt->hashTable); + void* workplace = srt->workplace; const BYTE* const base = srt->base; const BYTE* const istart = (const BYTE*)src; @@ -907,11 +943,11 @@ static size_t ZSTD_compressBlock(void* ctx, void* dst, size_t maxDstSize, const const BYTE* const iend = istart + srcSize; const BYTE* const ilimit = iend - 16; - BYTE *op_l = workplace, *op_l_start = op_l; + U32 *op_offset = (U32*)(workplace), *op_offset_start = op_offset; + BYTE *op_l = (BYTE*)workplace + srcSize + 4, *op_l_start = op_l; BYTE *op_rl = op_l + srcSize + 4, *op_rl_start = op_rl; BYTE *op_ml = op_rl + (srcSize >> 2) + 4, *op_ml_start = op_ml; - U32 *op_offset = (U32*)(op_ml + (srcSize >> 2) + 4), *op_offset_start = op_offset; - BYTE *op_dumps = (BYTE*)(op_offset + (srcSize >> 2) + 4), *op_dumps_start = op_dumps; + BYTE *op_dumps = op_ml + (srcSize >> 2) + 4, *op_dumps_start = op_dumps; size_t prevOffset=0, offset=0; size_t lastLLSize; @@ -935,7 +971,7 @@ static size_t ZSTD_compressBlock(void* ctx, void* dst, size_t maxDstSize, const if (offsetCode == prevOffset) offsetCode = 0; prevOffset = offset; offset = ip-match; - op_dumps += ZSTD_encode(op_l, op_rl++, op_offset++, op_ml++, op_dumps, litLength, anchor, offsetCode, matchLength); + op_dumps += ZSTD_storeSeq(op_l, op_rl++, op_offset++, op_ml++, op_dumps, litLength, anchor, offsetCode, matchLength); op_l += litLength; /* Fill Table */ @@ -958,58 +994,102 @@ static size_t ZSTD_compressBlock(void* ctx, void* dst, size_t maxDstSize, const } -/* this should be auto-vectorized by compiler */ -void ZSTD_limitCtx(void* ctx, const U32 limit) +size_t ZSTD_compressBegin(ZSTD_cctx_t ctx, void* dst, size_t maxDstSize) { - refTables_t* srt = (refTables_t*) ctx; - U32* h = srt->hashTable; + /* Sanity check */ + if (maxDstSize < ZSTD_frameHeaderSize) return (size_t)-ZSTD_ERROR_maxDstSize_tooSmall; + + /* Init */ + ZSTD_resetCCtx(ctx); + + /* Write Header */ + ZSTD_writeBE32(dst, ZSTD_magicNumber); + + return ZSTD_frameHeaderSize; +} + + +/* this should be auto-vectorized by compiler */ +static void ZSTD_scaleDownCtx(void* cctx, const U32 limit) +{ + cctxi_t* ctx = (cctxi_t*) cctx; int i; -#ifdef _INCLUDED_IMM /* */ +#if defined(__AVX2__) /* */ /* AVX2 version */ + __m256i* h = ctx->hashTable; const __m256i limit8 = _mm256_set1_epi32(limit); - for (i=0; i>3); i++) { __m256i src =_mm256_loadu_si256((const __m256i*)(h+i)); - src = _mm256_max_epu32(src, limit8); + const __m256i dec = _mm256_min_epu32(src, limit8); + src = _mm256_sub_epi32(src, dec); _mm256_storeu_si256((__m256i*)(h+i), src); } #else + U32* h = ctx->hashTable; for (i=0; i limit ? h[i] : limit; + U32 dec; + if (h[i] > limit) dec = limit; else dec = h[i]; + h[i] -= dec; } #endif } -size_t ZSTD_compressBegin(ZSTD_cctx_t ctx, void* dst, size_t maxDstSize) +/* this should be auto-vectorized by compiler */ +static void ZSTD_limitCtx(void* cctx, const U32 limit) { - // Sanity check - if (maxDstSize < 4) return (size_t)-ZSTD_ERROR_maxDstSize_tooSmall; + cctxi_t* ctx = (cctxi_t*) cctx; + int i; - // Init - ZSTD_resetCCtx(ctx); + if (limit > g_maxLimit) + { + ZSTD_scaleDownCtx(cctx, limit); + ctx->base += limit; + ctx->current -= limit; + ctx->nextUpdate -= limit; + return; + } - // Header - ZSTD_writeBE32(dst, ZSTD_magicNumber); - - return 4; +#if defined(__AVX2__) /* */ + /* AVX2 version */ + { + __m256i* h = ctx->hashTable; + const __m256i limit8 = _mm256_set1_epi32(limit); + //printf("Address h : %0X\n", (U32)h); // address test + for (i=0; i<(HASH_TABLESIZE>>3); i++) + { + __m256i src =_mm256_loadu_si256((const __m256i*)(h+i)); // Unfortunately, clang doesn't guarantee 32-bytes alignment + src = _mm256_max_epu32(src, limit8); + _mm256_storeu_si256((__m256i*)(h+i), src); + } + } +#else + { + U32* h = (U32*)(ctx->hashTable); + for (i=0; ibase==NULL) ctx->base = (const BYTE*)src, ctx->current=0; + if (ctx->base==NULL) + ctx->base = (const BYTE*)src, ctx->current=0, ctx->nextUpdate = g_maxDistance; if (src != ctx->base + ctx->current) /* not contiguous */ { ZSTD_resetCCtx(ctx); @@ -1024,20 +1104,18 @@ size_t ZSTD_compressContinue(ZSTD_cctx_t cctx, void* dst, size_t maxDstSize, con size_t blockSize = BLOCKSIZE; if (blockSize > srcSize) blockSize = srcSize; - /* - // update hash table - if (g_maxDistance <= BLOCKSIZE) // static test + /* update hash table */ + if (g_maxDistance <= BLOCKSIZE) /* static test => all blocks are independent */ { ZSTD_resetCCtx(ctx); ctx->base = ip; ctx->current=0; } - else if (ip >= istart + limit) + else if (ip >= ctx->base + ctx->nextUpdate) { - limit += updateRate; - ZSTD_limitCtx(ctx, limit - g_maxDistance); + ctx->nextUpdate += updateRate; + ZSTD_limitCtx(ctx, ctx->nextUpdate - g_maxDistance); } - */ /* compress */ if (maxDstSize < ZSTD_blockHeaderSize) return (size_t)-ZSTD_ERROR_maxDstSize_tooSmall; @@ -1070,11 +1148,11 @@ size_t ZSTD_compressEnd(ZSTD_cctx_t ctx, void* dst, size_t maxDstSize) { BYTE* op = (BYTE*)dst; - // Sanity check + /* Sanity check */ (void)ctx; if (maxDstSize < ZSTD_blockHeaderSize) return (size_t)-ZSTD_ERROR_maxDstSize_tooSmall; - // End of frame + /* End of frame */ op[0] = (BYTE)(bt_end << 6); op[1] = 0; op[2] = 0; @@ -1333,7 +1411,7 @@ size_t ZSTD_decodeSeqHeaders(size_t* lastLLPtr, const BYTE** dumpsPtr, /* sequences */ { S16 norm[MaxML+1]; /* assumption : MaxML >= MaxLL and MaxOff */ - size_t errorCode; + size_t headerSize; /* Build DTables */ switch(LLtype) @@ -1347,9 +1425,9 @@ size_t ZSTD_decodeSeqHeaders(size_t* lastLLPtr, const BYTE** dumpsPtr, FSE_buildDTable_raw(DTableLL, LLbits); break; default : max = MaxLL; - errorCode = FSE_readHeader(norm, &max, &LLlog, ip, iend-ip); - if (FSE_isError(errorCode)) return (size_t)-ZSTD_ERROR_GENERIC; - ip += errorCode; + headerSize = FSE_readHeader(norm, &max, &LLlog, ip, iend-ip); + if (FSE_isError(headerSize)) return (size_t)-ZSTD_ERROR_GENERIC; + ip += headerSize; FSE_buildDTable(DTableLL, norm, max, LLlog); } @@ -1364,9 +1442,9 @@ size_t ZSTD_decodeSeqHeaders(size_t* lastLLPtr, const BYTE** dumpsPtr, FSE_buildDTable_raw(DTableOffb, Offbits); break; default : max = MaxOff; - errorCode = FSE_readHeader(norm, &max, &Offlog, ip, iend-ip); - if (FSE_isError(errorCode)) return (size_t)-ZSTD_ERROR_GENERIC; - ip += errorCode; + headerSize = FSE_readHeader(norm, &max, &Offlog, ip, iend-ip); + if (FSE_isError(headerSize)) return (size_t)-ZSTD_ERROR_GENERIC; + ip += headerSize; FSE_buildDTable(DTableOffb, norm, max, Offlog); } @@ -1381,9 +1459,9 @@ size_t ZSTD_decodeSeqHeaders(size_t* lastLLPtr, const BYTE** dumpsPtr, FSE_buildDTable_raw(DTableML, MLbits); break; default : max = MaxML; - errorCode = FSE_readHeader(norm, &max, &MLlog, ip, iend-ip); - if (FSE_isError(errorCode)) return (size_t)-ZSTD_ERROR_GENERIC; - ip += errorCode; + headerSize = FSE_readHeader(norm, &max, &MLlog, ip, iend-ip); + if (FSE_isError(headerSize)) return (size_t)-ZSTD_ERROR_GENERIC; + ip += headerSize; FSE_buildDTable(DTableML, norm, max, MLlog); } } @@ -1463,7 +1541,8 @@ _another_round: if (add < 255) litLength += add; else { - litLength = (*(U32*)dumps) & 0xFFFFFF; + //litLength = (*(U32*)dumps) & 0xFFFFFF; + litLength = ZSTD_readLE32(dumps) & 0xFFFFFF; dumps += 3; } } @@ -1495,7 +1574,8 @@ _another_round: if (add < 255) matchLength += add; else { - matchLength = (*(U32*)dumps) & 0xFFFFFF; + //matchLength = (*(U32*)dumps) & 0xFFFFFF; + matchLength = ZSTD_readLE32(dumps) & 0xFFFFFF; dumps += 3; } } diff --git a/programs/fileio.c b/programs/fileio.c index 453269d7b..fcf3d4f3a 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -110,8 +110,7 @@ typedef unsigned long long U64; #define BIT6 0x40 #define BIT7 0x80 -static const unsigned FIO_magicNumber = 0x183E2308; -static const unsigned FIO_maxBlockSizeID = 0xB; /* => 2MB block */ +//static const unsigned FIO_maxBlockSizeID = 0xB; /* => 2MB block */ static const unsigned FIO_blockHeaderSize = 3; #define FIO_FRAMEHEADERSIZE 5 /* as a define, because needed to allocated table on stack */ diff --git a/visual/2012/fullbench/fullbench.vcxproj b/visual/2012/fullbench/fullbench.vcxproj new file mode 100644 index 000000000..4b6e0c35c --- /dev/null +++ b/visual/2012/fullbench/fullbench.vcxproj @@ -0,0 +1,159 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8} + Win32Proj + fullbench + + + + Application + true + v110 + Unicode + + + Application + true + v110 + Unicode + + + Application + false + v110 + true + Unicode + + + Application + false + v110 + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/visual/2012/fullbench/fullbench.vcxproj.filters b/visual/2012/fullbench/fullbench.vcxproj.filters new file mode 100644 index 000000000..35a890010 --- /dev/null +++ b/visual/2012/fullbench/fullbench.vcxproj.filters @@ -0,0 +1,42 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Fichiers sources + + + Fichiers sources + + + Fichiers sources + + + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + \ No newline at end of file diff --git a/visual/2012/fullbench/fullbench.vcxproj.user b/visual/2012/fullbench/fullbench.vcxproj.user new file mode 100644 index 000000000..7cbb3216a --- /dev/null +++ b/visual/2012/fullbench/fullbench.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/visual/2012/fuzzer/fuzzer.vcxproj b/visual/2012/fuzzer/fuzzer.vcxproj new file mode 100644 index 000000000..a0dc550c2 --- /dev/null +++ b/visual/2012/fuzzer/fuzzer.vcxproj @@ -0,0 +1,161 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6FD4352B-346C-4703-96EA-D4A8B9A6976E} + Win32Proj + fuzzer + + + + Application + true + v110 + Unicode + + + Application + true + v110 + Unicode + + + Application + false + v110 + true + Unicode + + + Application + false + v110 + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/visual/2012/fuzzer/fuzzer.vcxproj.filters b/visual/2012/fuzzer/fuzzer.vcxproj.filters new file mode 100644 index 000000000..7782b08fa --- /dev/null +++ b/visual/2012/fuzzer/fuzzer.vcxproj.filters @@ -0,0 +1,48 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Fichiers sources + + + Fichiers sources + + + Fichiers sources + + + Fichiers sources + + + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + \ No newline at end of file diff --git a/visual/2012/fuzzer/fuzzer.vcxproj.user b/visual/2012/fuzzer/fuzzer.vcxproj.user new file mode 100644 index 000000000..7cbb3216a --- /dev/null +++ b/visual/2012/fuzzer/fuzzer.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/visual/2012/zstd.sln b/visual/2012/zstd.sln new file mode 100644 index 000000000..95eb56ed4 --- /dev/null +++ b/visual/2012/zstd.sln @@ -0,0 +1,60 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# 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}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench", "fullbench\fullbench.vcxproj", "{61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Debug|Mixed Platforms.Build.0 = Debug|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|Mixed Platforms.ActiveCfg = Release|Win32 + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C}.Release|Mixed Platforms.Build.0 = Release|Win32 + {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|Mixed Platforms.ActiveCfg = Debug|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {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 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Debug|x64.Build.0 = Debug|x64 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|Mixed Platforms.Build.0 = Release|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|Win32.ActiveCfg = Release|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|Win32.Build.0 = Release|Win32 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|x64.ActiveCfg = Release|x64 + {6FD4352B-346C-4703-96EA-D4A8B9A6976E}.Release|x64.Build.0 = Release|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Win32.ActiveCfg = Debug|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|Win32.Build.0 = Debug|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|x64.ActiveCfg = Debug|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Debug|x64.Build.0 = Debug|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Mixed Platforms.Build.0 = Release|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Win32.ActiveCfg = Release|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|Win32.Build.0 = Release|Win32 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|x64.ActiveCfg = Release|x64 + {61ABD629-1CC8-4FD7-9281-6B8DBB9D3DF8}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/visual/2012/zstd.v11.suo b/visual/2012/zstd.v11.suo new file mode 100644 index 000000000..40882be5a Binary files /dev/null and b/visual/2012/zstd.v11.suo differ diff --git a/visual/2012/zstd/zstd.vcxproj b/visual/2012/zstd/zstd.vcxproj new file mode 100644 index 000000000..45e4bc154 --- /dev/null +++ b/visual/2012/zstd/zstd.vcxproj @@ -0,0 +1,165 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + {4E52A41A-F33B-4C7A-8C36-A1A6B4F4277C} + Win32Proj + zstd + + + + Application + true + v110 + Unicode + + + Application + true + v110 + Unicode + + + Application + false + v110 + true + Unicode + + + Application + false + v110 + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + \ No newline at end of file diff --git a/visual/2012/zstd/zstd.vcxproj.filters b/visual/2012/zstd/zstd.vcxproj.filters new file mode 100644 index 000000000..d93bbf535 --- /dev/null +++ b/visual/2012/zstd/zstd.vcxproj.filters @@ -0,0 +1,60 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Fichiers sources + + + Fichiers sources + + + Fichiers sources + + + Fichiers sources + + + Fichiers sources + + + Fichiers sources + + + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + Fichiers d%27en-tête + + + \ No newline at end of file diff --git a/visual/2012/zstd/zstd.vcxproj.user b/visual/2012/zstd/zstd.vcxproj.user new file mode 100644 index 000000000..7cbb3216a --- /dev/null +++ b/visual/2012/zstd/zstd.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file