From b9805bacadd4d0474fd3358cf0c7153042ce50c3 Mon Sep 17 00:00:00 2001
From: tbbdev
Date: Wed, 13 Sep 2017 16:17:55 +0300
Subject: [PATCH] Committing Intel(R) TBB 2018 source code
---
.gitattributes | 45 +
.gitignore | 86 +
CHANGES | 2412 +++
LICENSE | 201 +
Makefile | 84 +
README | 11 +
README.md | 35 +-
build/AIX.gcc.inc | 75 +
build/AIX.inc | 66 +
build/FreeBSD.clang.inc | 110 +
build/FreeBSD.gcc.inc | 93 +
build/FreeBSD.inc | 74 +
build/Makefile.rml | 166 +
build/Makefile.tbb | 118 +
build/Makefile.tbbmalloc | 240 +
build/Makefile.tbbproxy | 109 +
build/Makefile.test | 317 +
build/SunOS.gcc.inc | 92 +
build/SunOS.inc | 83 +
build/SunOS.suncc.inc | 92 +
build/android.clang.inc | 118 +
build/android.gcc.inc | 117 +
build/android.icc.inc | 120 +
build/android.inc | 63 +
build/android.linux.inc | 67 +
build/android.linux.launcher.sh | 148 +
build/android.macos.inc | 76 +
build/android.windows.inc | 78 +
build/big_iron.inc | 76 +
build/codecov.txt | 7 +
build/common.inc | 166 +
build/common_rules.inc | 168 +
build/detect.js | 199 +
build/generate_tbbvars.bat | 66 +
build/generate_tbbvars.sh | 71 +
build/index.html | 242 +
build/ios.clang.inc | 23 +
build/ios.macos.inc | 36 +
build/linux.clang.inc | 115 +
build/linux.gcc.inc | 155 +
build/linux.icc.inc | 120 +
build/linux.inc | 142 +
build/linux.pathcc.inc | 93 +
build/linux.xl.inc | 104 +
build/macos.clang.inc | 123 +
build/macos.gcc.inc | 112 +
build/macos.icc.inc | 106 +
build/macos.inc | 107 +
build/mic.icc.inc | 79 +
build/mic.linux.inc | 43 +
build/mic.linux.launcher.sh | 161 +
build/mic.offload.inc | 118 +
build/suncc.map.pause | 1 +
build/test_launcher.bat | 74 +
build/test_launcher.sh | 94 +
build/version_info_aix.sh | 34 +
build/version_info_android.sh | 33 +
build/version_info_linux.sh | 34 +
build/version_info_macos.sh | 32 +
build/version_info_sunos.sh | 31 +
build/version_info_windows.js | 95 +
build/vs2013/index.html | 30 +
build/vs2013/makefile.sln | 80 +
build/vs2013/tbb.vcxproj | 696 +
build/vs2013/tbbmalloc.vcxproj | 558 +
build/vs2013/tbbmalloc_proxy.vcxproj | 425 +
build/vs2013/version_string.ver | 1 +
build/windows.cl.inc | 158 +
build/windows.gcc.inc | 142 +
build/windows.icl.inc | 178 +
build/windows.inc | 111 +
cmake/README.rst | 285 +
cmake/TBBBuild.cmake | 197 +
cmake/TBBGet.cmake | 298 +
cmake/TBBMakeConfig.cmake | 162 +
cmake/templates/TBBConfig.cmake.in | 89 +
cmake/templates/TBBConfigForSource.cmake.in | 82 +
cmake/templates/TBBConfigVersion.cmake.in | 28 +
doc/Release_Notes.txt | 137 +
doc/html/a00001.html | 59 +
doc/html/a00002.html | 55 +
doc/html/a00003.html | 57 +
doc/html/a00004.html | 43 +
doc/html/a00005.html | 59 +
doc/html/a00006.html | 53 +
doc/html/a00007.html | 57 +
doc/html/a00008.html | 54 +
doc/html/a00009.html | 144 +
doc/html/a00009.png | Bin 0 -> 1881 bytes
doc/html/a00010.html | 66 +
doc/html/a00011.html | 125 +
doc/html/a00011.png | Bin 0 -> 1067 bytes
doc/html/a00012.html | 151 +
doc/html/a00012.png | Bin 0 -> 843 bytes
doc/html/a00013.html | 129 +
doc/html/a00013.png | Bin 0 -> 1567 bytes
doc/html/a00014.html | 82 +
doc/html/a00015.html | 95 +
doc/html/a00016.html | 95 +
doc/html/a00017.html | 65 +
doc/html/a00017.png | Bin 0 -> 1138 bytes
doc/html/a00018.html | 56 +
doc/html/a00019.html | 91 +
doc/html/a00019.png | Bin 0 -> 595 bytes
doc/html/a00020.html | 90 +
doc/html/a00020.png | Bin 0 -> 688 bytes
doc/html/a00021.html | 63 +
doc/html/a00022.html | 81 +
doc/html/a00022.png | Bin 0 -> 490 bytes
doc/html/a00023.html | 66 +
doc/html/a00024.html | 84 +
doc/html/a00024.png | Bin 0 -> 2213 bytes
doc/html/a00025.html | 98 +
doc/html/a00025.png | Bin 0 -> 1561 bytes
doc/html/a00026.html | 325 +
doc/html/a00027.html | 120 +
doc/html/a00028.html | 127 +
doc/html/a00029.html | 56 +
doc/html/a00030.html | 96 +
doc/html/a00030.png | Bin 0 -> 1110 bytes
doc/html/a00031.html | 147 +
doc/html/a00032.html | 88 +
doc/html/a00033.html | 76 +
doc/html/a00034.html | 78 +
doc/html/a00034.png | Bin 0 -> 1229 bytes
doc/html/a00035.html | 75 +
doc/html/a00035.png | Bin 0 -> 1232 bytes
doc/html/a00036.html | 214 +
doc/html/a00036.png | Bin 0 -> 835 bytes
doc/html/a00037.html | 110 +
doc/html/a00038.html | 56 +
doc/html/a00039.html | 411 +
doc/html/a00039.png | Bin 0 -> 766 bytes
doc/html/a00040.html | 1089 +
doc/html/a00040.png | Bin 0 -> 1052 bytes
doc/html/a00041.html | 92 +
doc/html/a00041.png | Bin 0 -> 1068 bytes
doc/html/a00042.html | 606 +
doc/html/a00043.html | 224 +
doc/html/a00043.png | Bin 0 -> 872 bytes
doc/html/a00044.html | 167 +
doc/html/a00044.png | Bin 0 -> 2163 bytes
doc/html/a00045.html | 101 +
doc/html/a00046.html | 158 +
doc/html/a00046.png | Bin 0 -> 2174 bytes
doc/html/a00047.html | 158 +
doc/html/a00047.png | Bin 0 -> 2109 bytes
doc/html/a00048.html | 158 +
doc/html/a00048.png | Bin 0 -> 2095 bytes
doc/html/a00049.html | 100 +
doc/html/a00050.html | 810 +
doc/html/a00050.png | Bin 0 -> 1057 bytes
doc/html/a00051.html | 142 +
doc/html/a00051.png | Bin 0 -> 1888 bytes
doc/html/a00052.html | 63 +
doc/html/a00053.html | 332 +
doc/html/a00053.png | Bin 0 -> 1579 bytes
doc/html/a00054.html | 102 +
doc/html/a00054.png | Bin 0 -> 621 bytes
doc/html/a00055.html | 66 +
doc/html/a00056.html | 66 +
doc/html/a00057.html | 118 +
doc/html/a00057.png | Bin 0 -> 1704 bytes
doc/html/a00058.html | 56 +
doc/html/a00059.html | 66 +
doc/html/a00060.html | 94 +
doc/html/a00061.html | 84 +
doc/html/a00061.png | Bin 0 -> 1053 bytes
doc/html/a00062.html | 261 +
doc/html/a00062.png | Bin 0 -> 1259 bytes
doc/html/a00063.html | 146 +
doc/html/a00063.png | Bin 0 -> 757 bytes
doc/html/a00064.html | 102 +
doc/html/a00065.html | 73 +
doc/html/a00066.html | 79 +
doc/html/a00066.png | Bin 0 -> 574 bytes
doc/html/a00067.html | 125 +
doc/html/a00068.html | 81 +
doc/html/a00069.html | 93 +
doc/html/a00069.png | Bin 0 -> 839 bytes
doc/html/a00070.html | 107 +
doc/html/a00071.html | 100 +
doc/html/a00072.html | 82 +
doc/html/a00073.html | 388 +
doc/html/a00073.png | Bin 0 -> 1120 bytes
doc/html/a00074.html | 131 +
doc/html/a00075.html | 88 +
doc/html/a00075.png | Bin 0 -> 1478 bytes
doc/html/a00076.html | 99 +
doc/html/a00077.html | 81 +
doc/html/a00077.png | Bin 0 -> 495 bytes
doc/html/a00078.html | 109 +
doc/html/a00079.html | 81 +
doc/html/a00079.png | Bin 0 -> 638 bytes
doc/html/a00080.html | 86 +
doc/html/a00080.png | Bin 0 -> 966 bytes
doc/html/a00081.html | 56 +
doc/html/a00082.html | 89 +
doc/html/a00082.png | Bin 0 -> 671 bytes
doc/html/a00083.html | 179 +
doc/html/a00084.html | 128 +
doc/html/a00085.html | 98 +
doc/html/a00086.html | 81 +
doc/html/a00086.png | Bin 0 -> 489 bytes
doc/html/a00087.html | 230 +
doc/html/a00087.png | Bin 0 -> 960 bytes
doc/html/a00088.html | 174 +
doc/html/a00088.png | Bin 0 -> 680 bytes
doc/html/a00089.html | 106 +
doc/html/a00089.png | Bin 0 -> 1052 bytes
doc/html/a00090.html | 95 +
doc/html/a00090.png | Bin 0 -> 704 bytes
doc/html/a00091.html | 95 +
doc/html/a00091.png | Bin 0 -> 724 bytes
doc/html/a00092.html | 56 +
doc/html/a00093.html | 126 +
doc/html/a00093.png | Bin 0 -> 1132 bytes
doc/html/a00094.html | 146 +
doc/html/a00094.png | Bin 0 -> 1179 bytes
doc/html/a00095.html | 137 +
doc/html/a00095.png | Bin 0 -> 1161 bytes
doc/html/a00096.html | 185 +
doc/html/a00097.html | 107 +
doc/html/a00098.html | 123 +
doc/html/a00099.html | 119 +
doc/html/a00099.png | Bin 0 -> 1158 bytes
doc/html/a00100.html | 56 +
doc/html/a00101.html | 86 +
doc/html/a00101.png | Bin 0 -> 1611 bytes
doc/html/a00102.html | 86 +
doc/html/a00102.png | Bin 0 -> 1585 bytes
doc/html/a00103.html | 88 +
doc/html/a00103.png | Bin 0 -> 1284 bytes
doc/html/a00104.html | 118 +
doc/html/a00104.png | Bin 0 -> 871 bytes
doc/html/a00105.html | 84 +
doc/html/a00106.html | 135 +
doc/html/a00106.png | Bin 0 -> 1176 bytes
doc/html/a00107.html | 165 +
doc/html/a00107.png | Bin 0 -> 612 bytes
doc/html/a00108.html | 139 +
doc/html/a00109.html | 73 +
doc/html/a00110.html | 56 +
doc/html/a00111.html | 105 +
doc/html/a00111.png | Bin 0 -> 754 bytes
doc/html/a00112.html | 110 +
doc/html/a00112.png | Bin 0 -> 776 bytes
doc/html/a00113.html | 231 +
doc/html/a00113.png | Bin 0 -> 657 bytes
doc/html/a00114.html | 67 +
doc/html/a00115.html | 66 +
doc/html/a00116.html | 67 +
doc/html/a00117.html | 66 +
doc/html/a00118.html | 67 +
doc/html/a00119.html | 67 +
doc/html/a00120.html | 67 +
doc/html/a00121.html | 67 +
doc/html/a00122.html | 66 +
doc/html/a00123.html | 66 +
doc/html/a00124.html | 241 +
doc/html/a00124.png | Bin 0 -> 1020 bytes
doc/html/a00125.html | 93 +
doc/html/a00125.png | Bin 0 -> 1063 bytes
doc/html/a00126.html | 162 +
doc/html/a00126.png | Bin 0 -> 766 bytes
doc/html/a00127.html | 56 +
doc/html/a00128.html | 56 +
doc/html/a00129.html | 56 +
doc/html/a00130.html | 321 +
doc/html/a00130.png | Bin 0 -> 616 bytes
doc/html/a00131.html | 145 +
doc/html/a00132.html | 88 +
doc/html/a00133.html | 96 +
doc/html/a00133.png | Bin 0 -> 604 bytes
doc/html/a00134.html | 129 +
doc/html/a00134.png | Bin 0 -> 622 bytes
doc/html/a00135.html | 110 +
doc/html/a00135.png | Bin 0 -> 542 bytes
doc/html/a00136.html | 136 +
doc/html/a00136.png | Bin 0 -> 594 bytes
doc/html/a00137.html | 209 +
doc/html/a00137.png | Bin 0 -> 655 bytes
doc/html/a00138.html | 100 +
doc/html/a00138.png | Bin 0 -> 798 bytes
doc/html/a00139.html | 110 +
doc/html/a00139.png | Bin 0 -> 645 bytes
doc/html/a00140.html | 90 +
doc/html/a00140.png | Bin 0 -> 574 bytes
doc/html/a00141.html | 74 +
doc/html/a00141.png | Bin 0 -> 743 bytes
doc/html/a00142.html | 155 +
doc/html/a00142.png | Bin 0 -> 651 bytes
doc/html/a00143.html | 99 +
doc/html/a00143.png | Bin 0 -> 839 bytes
doc/html/a00144.html | 196 +
doc/html/a00144.png | Bin 0 -> 973 bytes
doc/html/a00145.html | 182 +
doc/html/a00145.png | Bin 0 -> 729 bytes
doc/html/a00146.html | 236 +
doc/html/a00146.png | Bin 0 -> 777 bytes
doc/html/a00147.html | 118 +
doc/html/a00147.png | Bin 0 -> 961 bytes
doc/html/a00148.html | 56 +
doc/html/a00149.html | 435 +
doc/html/a00149.png | Bin 0 -> 656 bytes
doc/html/a00150.html | 131 +
doc/html/a00150.png | Bin 0 -> 891 bytes
doc/html/a00151.html | 114 +
doc/html/a00151.png | Bin 0 -> 1324 bytes
doc/html/a00152.html | 60 +
doc/html/a00153.html | 94 +
doc/html/a00153.png | Bin 0 -> 538 bytes
doc/html/a00154.html | 74 +
doc/html/a00154.png | Bin 0 -> 620 bytes
doc/html/a00155.html | 211 +
doc/html/a00155.png | Bin 0 -> 565 bytes
doc/html/a00156.html | 269 +
doc/html/a00156.png | Bin 0 -> 906 bytes
doc/html/a00157.html | 185 +
doc/html/a00157.png | Bin 0 -> 906 bytes
doc/html/a00158.html | 160 +
doc/html/a00159.html | 88 +
doc/html/a00160.html | 226 +
doc/html/a00160.png | Bin 0 -> 1423 bytes
doc/html/a00161.html | 117 +
doc/html/a00162.html | 185 +
doc/html/a00163.html | 160 +
doc/html/a00163.png | Bin 0 -> 757 bytes
doc/html/a00164.html | 96 +
doc/html/a00164.png | Bin 0 -> 794 bytes
doc/html/a00165.html | 110 +
doc/html/a00165.png | Bin 0 -> 815 bytes
doc/html/a00166.html | 103 +
doc/html/a00166.png | Bin 0 -> 857 bytes
doc/html/a00167.html | 80 +
doc/html/a00167.png | Bin 0 -> 1409 bytes
doc/html/a00168.html | 101 +
doc/html/a00169.html | 172 +
doc/html/a00169.png | Bin 0 -> 2153 bytes
doc/html/a00170.html | 153 +
doc/html/a00170.png | Bin 0 -> 978 bytes
doc/html/a00171.html | 69 +
doc/html/a00172.html | 66 +
doc/html/a00173.html | 81 +
doc/html/a00173.png | Bin 0 -> 468 bytes
doc/html/a00174.html | 133 +
doc/html/a00174.png | Bin 0 -> 638 bytes
doc/html/a00175.html | 102 +
doc/html/a00175.png | Bin 0 -> 679 bytes
doc/html/a00193.html | 190 +
doc/html/a00198.html | 99 +
doc/html/a00217.html | 194 +
doc/html/a00236.html | 116 +
doc/html/a00239.html | 686 +
doc/html/a00260.html | 2187 ++
doc/html/a00261.html | 67 +
doc/html/a00262.html | 382 +
doc/html/a00263.html | 125 +
doc/html/a00264.html | 52 +
doc/html/a00265.html | 52 +
doc/html/a00267.html | 53 +
doc/html/a00268.html | 65 +
doc/html/a00269.html | 58 +
doc/html/a00270.html | 60 +
doc/html/a00271.html | 60 +
doc/html/a00272.html | 71 +
doc/html/a00273.html | 67 +
doc/html/a00274.html | 69 +
doc/html/a00275.html | 75 +
doc/html/a00276.html | 57 +
doc/html/a00277.html | 59 +
doc/html/a00278.html | 57 +
doc/html/a00279.html | 68 +
doc/html/a00280.html | 90 +
doc/html/a00281.html | 134 +
doc/html/a00282.html | 60 +
doc/html/a00283.html | 73 +
doc/html/a00284.html | 63 +
doc/html/a00285.html | 60 +
doc/html/a00286.html | 62 +
doc/html/a00287.html | 60 +
doc/html/a00288.html | 64 +
doc/html/a00289.html | 57 +
doc/html/a00290.html | 57 +
doc/html/a00291.html | 61 +
doc/html/a00292.html | 61 +
doc/html/a00293.html | 68 +
doc/html/a00294.html | 68 +
doc/html/a00295.html | 61 +
doc/html/a00296.html | 62 +
doc/html/a00297.html | 62 +
doc/html/a00298.html | 64 +
doc/html/a00299.html | 68 +
doc/html/a00300.html | 63 +
doc/html/a00301.html | 75 +
doc/html/a00302.html | 57 +
doc/html/a00303.html | 59 +
doc/html/a00304.html | 57 +
doc/html/a00305.html | 65 +
doc/html/a00306.html | 63 +
doc/html/a00307.html | 73 +
doc/html/a00308.html | 67 +
doc/html/a00309.html | 62 +
doc/html/a00310.html | 72 +
doc/html/a00311.html | 68 +
doc/html/a00312.html | 67 +
doc/html/a00313.html | 79 +
doc/html/a00314.html | 57 +
doc/html/a00315.html | 59 +
doc/html/a00316.html | 57 +
doc/html/a00317.html | 68 +
doc/html/a00318.html | 57 +
doc/html/a00319.html | 60 +
doc/html/a00320.html | 57 +
doc/html/a00321.html | 58 +
doc/html/a00322.html | 57 +
doc/html/a00323.html | 57 +
doc/html/a00324.html | 57 +
doc/html/a00325.html | 57 +
doc/html/a00326.html | 63 +
doc/html/a00327.html | 69 +
doc/html/a00328.html | 70 +
doc/html/a00329.html | 60 +
doc/html/a00330.html | 65 +
doc/html/a00331.html | 81 +
doc/html/a00332.html | 90 +
doc/html/a00333.html | 73 +
doc/html/a00334.html | 88 +
doc/html/a00335.html | 93 +
doc/html/a00336.html | 59 +
doc/html/a00337.html | 61 +
doc/html/a00338.html | 71 +
doc/html/a00339.html | 60 +
doc/html/a00340.html | 68 +
doc/html/a00341.html | 94 +
doc/html/a00342.html | 70 +
doc/html/a00343.html | 58 +
doc/html/a00344.html | 59 +
doc/html/a00345.html | 73 +
doc/html/a00346.html | 72 +
doc/html/a00347.html | 76 +
doc/html/a00348.html | 76 +
doc/html/a00349.html | 77 +
doc/html/a00350.html | 61 +
doc/html/a00351.html | 60 +
doc/html/a00352.html | 59 +
doc/html/a00353.html | 59 +
doc/html/a00354.html | 64 +
doc/html/a00355.html | 64 +
doc/html/a00356.html | 64 +
doc/html/a00357.html | 75 +
doc/html/a00358.html | 79 +
doc/html/a00359.html | 57 +
doc/html/a00360.html | 57 +
doc/html/a00361.html | 69 +
doc/html/a00362.html | 70 +
doc/html/a00363.html | 63 +
doc/html/a00364.html | 63 +
doc/html/a00365.html | 57 +
doc/html/a00366.html | 143 +
doc/html/a00367.html | 66 +
doc/html/a00368.html | 57 +
doc/html/a00369.html | 60 +
doc/html/a00370.html | 60 +
doc/html/a00371.html | 68 +
doc/html/a00372.html | 66 +
doc/html/a00373.html | 84 +
doc/html/a00374.html | 65 +
doc/html/a00375.html | 86 +
doc/html/a00376.html | 83 +
doc/html/a00377.html | 65 +
doc/html/a00378.html | 83 +
doc/html/a00379.html | 83 +
doc/html/a00380.html | 70 +
doc/html/a00381.html | 61 +
doc/html/a00382.html | 61 +
doc/html/a00383.html | 58 +
doc/html/a00384.html | 57 +
doc/html/a00385.html | 65 +
doc/html/a00386.html | 59 +
doc/html/a00387.html | 61 +
doc/html/a00388.html | 60 +
doc/html/a00389.html | 96 +
doc/html/a00390.html | 73 +
doc/html/a00391.html | 80 +
doc/html/a00392.html | 57 +
doc/html/a00393.html | 67 +
doc/html/a00394.html | 57 +
doc/html/a00395.html | 58 +
doc/html/a00396.html | 58 +
doc/html/a00397.html | 58 +
doc/html/a00398.html | 65 +
doc/html/a00399.html | 72 +
doc/html/a00400.html | 71 +
doc/html/a00401.html | 67 +
doc/html/a00402.html | 67 +
doc/html/a00403.html | 58 +
doc/html/a00404.html | 76 +
doc/html/a00405.html | 63 +
doc/html/a00406.html | 65 +
doc/html/a00407.html | 58 +
doc/html/a00408.html | 57 +
doc/html/a00409.html | 67 +
doc/html/a00410.html | 65 +
doc/html/a00411.html | 61 +
doc/html/a00412.html | 58 +
doc/html/a00413.html | 61 +
doc/html/a00414.html | 62 +
doc/html/a00415.html | 63 +
doc/html/a00416.html | 75 +
doc/html/a00417.html | 68 +
doc/html/a00418.html | 83 +
doc/html/annotated.html | 235 +
doc/html/bc_s.png | Bin 0 -> 676 bytes
doc/html/bdwn.png | Bin 0 -> 147 bytes
doc/html/classes.html | 118 +
doc/html/closed.png | Bin 0 -> 132 bytes
.../dir_525f2cc589630bacbdc3bb450847427e.html | 52 +
.../dir_63fb2cc293d133785b96e521fa051167.html | 52 +
.../dir_87119f26c7695cbc270003e99bc7f49f.html | 171 +
.../dir_b9976680b2be72d2d0b8fca1c31202a2.html | 52 +
doc/html/doxygen.css | 1186 +
doc/html/doxygen.png | Bin 0 -> 3779 bytes
doc/html/dynsections.js | 97 +
doc/html/files.html | 55 +
doc/html/ftv2blank.png | Bin 0 -> 86 bytes
doc/html/ftv2cl.png | Bin 0 -> 453 bytes
doc/html/ftv2doc.png | Bin 0 -> 746 bytes
doc/html/ftv2folderclosed.png | Bin 0 -> 616 bytes
doc/html/ftv2folderopen.png | Bin 0 -> 597 bytes
doc/html/ftv2lastnode.png | Bin 0 -> 86 bytes
doc/html/ftv2link.png | Bin 0 -> 746 bytes
doc/html/ftv2mlastnode.png | Bin 0 -> 246 bytes
doc/html/ftv2mnode.png | Bin 0 -> 246 bytes
doc/html/ftv2mo.png | Bin 0 -> 403 bytes
doc/html/ftv2node.png | Bin 0 -> 86 bytes
doc/html/ftv2ns.png | Bin 0 -> 388 bytes
doc/html/ftv2plastnode.png | Bin 0 -> 229 bytes
doc/html/ftv2pnode.png | Bin 0 -> 229 bytes
doc/html/ftv2splitbar.png | Bin 0 -> 314 bytes
doc/html/ftv2vertline.png | Bin 0 -> 86 bytes
doc/html/functions.html | 129 +
doc/html/functions_0x62.html | 113 +
doc/html/functions_0x63.html | 170 +
doc/html/functions_0x64.html | 123 +
doc/html/functions_0x65.html | 171 +
doc/html/functions_0x66.html | 111 +
doc/html/functions_0x67.html | 109 +
doc/html/functions_0x68.html | 90 +
doc/html/functions_0x69.html | 139 +
doc/html/functions_0x6a.html | 90 +
doc/html/functions_0x6c.html | 110 +
doc/html/functions_0x6d.html | 122 +
doc/html/functions_0x6e.html | 99 +
doc/html/functions_0x6f.html | 152 +
doc/html/functions_0x70.html | 123 +
doc/html/functions_0x71.html | 93 +
doc/html/functions_0x72.html | 183 +
doc/html/functions_0x73.html | 159 +
doc/html/functions_0x74.html | 171 +
doc/html/functions_0x75.html | 101 +
doc/html/functions_0x76.html | 95 +
doc/html/functions_0x77.html | 95 +
doc/html/functions_0x7e.html | 165 +
doc/html/functions_enum.html | 70 +
doc/html/functions_eval.html | 85 +
doc/html/functions_func.html | 122 +
doc/html/functions_func_0x62.html | 108 +
doc/html/functions_func_0x63.html | 161 +
doc/html/functions_func_0x64.html | 114 +
doc/html/functions_func_0x65.html | 135 +
doc/html/functions_func_0x66.html | 98 +
doc/html/functions_func_0x67.html | 108 +
doc/html/functions_func_0x68.html | 89 +
doc/html/functions_func_0x69.html | 127 +
doc/html/functions_func_0x6a.html | 89 +
doc/html/functions_func_0x6c.html | 106 +
doc/html/functions_func_0x6d.html | 111 +
doc/html/functions_func_0x6e.html | 94 +
doc/html/functions_func_0x6f.html | 141 +
doc/html/functions_func_0x70.html | 113 +
doc/html/functions_func_0x71.html | 92 +
doc/html/functions_func_0x72.html | 170 +
doc/html/functions_func_0x73.html | 141 +
doc/html/functions_func_0x74.html | 170 +
doc/html/functions_func_0x75.html | 100 +
doc/html/functions_func_0x77.html | 94 +
doc/html/functions_func_0x7e.html | 164 +
doc/html/functions_rela.html | 74 +
doc/html/functions_type.html | 186 +
doc/html/functions_vars.html | 96 +
doc/html/globals.html | 85 +
doc/html/globals_func.html | 85 +
doc/html/hierarchy.html | 271 +
doc/html/index.html | 53 +
doc/html/jquery.js | 31 +
doc/html/modules.html | 52 +
doc/html/namespacemembers.html | 153 +
doc/html/namespacemembers_enum.html | 61 +
doc/html/namespacemembers_eval.html | 67 +
doc/html/namespacemembers_func.html | 99 +
doc/html/namespacemembers_type.html | 61 +
doc/html/namespaces.html | 54 +
doc/html/nav_f.png | Bin 0 -> 153 bytes
doc/html/nav_g.png | Bin 0 -> 95 bytes
doc/html/nav_h.png | Bin 0 -> 98 bytes
doc/html/open.png | Bin 0 -> 123 bytes
doc/html/pages.html | 47 +
doc/html/sync_off.png | Bin 0 -> 853 bytes
doc/html/sync_on.png | Bin 0 -> 845 bytes
doc/html/tab_a.png | Bin 0 -> 142 bytes
doc/html/tab_b.png | Bin 0 -> 169 bytes
doc/html/tab_h.png | Bin 0 -> 177 bytes
doc/html/tab_s.png | Bin 0 -> 184 bytes
doc/html/tabs.css | 60 +
download.md | 145 -
examples/GettingStarted/index.html | 344 +
.../GettingStarted/sub_string_finder/Makefile | 74 +
.../sub_string_finder/Makefile.windows | 59 +
.../msvs/sub_string_finder.sln | 48 +
.../msvs/sub_string_finder.vcxproj | 198 +
.../msvs/sub_string_finder_extended.vcxproj | 198 +
.../msvs/sub_string_finder_pretty.vcxproj | 198 +
.../sub_string_finder/readme.html | 416 +
.../sub_string_finder/sub_string_finder.cpp | 78 +
.../sub_string_finder_extended.cpp | 166 +
.../sub_string_finder_pretty.cpp | 98 +
.../project.pbxproj | 573 +
examples/Makefile | 159 +
examples/common/copy_libraries.bat | 77 +
examples/common/examples-common.inc | 38 +
examples/common/gui/Makefile.gmake | 90 +
examples/common/gui/Makefile.win | 74 +
examples/common/gui/convideo.cpp | 136 +
examples/common/gui/d2dvideo.cpp | 201 +
examples/common/gui/dxcheck.bat | 28 +
examples/common/gui/gdivideo.cpp | 146 +
examples/common/gui/macvideo.cpp | 164 +
examples/common/gui/video.h | 241 +
examples/common/gui/winvideo.h | 283 +
.../common/gui/xcode/tbbExample/OpenGLView.h | 60 +
.../common/gui/xcode/tbbExample/OpenGLView.m | 147 +
examples/common/gui/xcode/tbbExample/PkgInfo | 1 +
.../tbbExample/en.lproj/InfoPlist.strings | 2 +
.../xcode/tbbExample/en.lproj/MainMenu.nib | Bin 0 -> 3312 bytes
.../xcode/tbbExample/en.lproj/MainMenu.xib | 48 +
.../gui/xcode/tbbExample/iOS.storyboard | 28 +
examples/common/gui/xcode/tbbExample/main.m | 51 +
.../gui/xcode/tbbExample/tbbAppDelegate.h | 51 +
.../gui/xcode/tbbExample/tbbAppDelegate.m | 66 +
.../tbbExample/tbbExample-Info.ios.plist | 44 +
.../xcode/tbbExample/tbbExample-Info.plist | 45 +
.../xcode/tbbExample/tbbExample-Prefix.pch | 36 +
examples/common/gui/xvideo.cpp | 386 +
examples/common/index.html | 397 +
examples/common/toolset.props | 9 +
examples/common/utility/fast_random.h | 82 +
examples/common/utility/utility.h | 526 +
.../count_strings/Makefile | 59 +
.../count_strings/Makefile.windows | 51 +
.../count_strings/count_strings.cpp | 235 +
.../count_strings/msvs/count_strings.sln | 28 +
.../count_strings/msvs/count_strings.vcxproj | 201 +
.../count_strings/readme.html | 401 +
.../count_strings.xcodeproj/project.pbxproj | 305 +
examples/concurrent_hash_map/index.html | 344 +
examples/concurrent_priority_queue/index.html | 344 +
.../shortpath/Makefile | 61 +
.../shortpath/Makefile.windows | 50 +
.../shortpath/msvs/shortpath.sln | 28 +
.../shortpath/msvs/shortpath.vcxproj | 201 +
.../shortpath/readme.html | 427 +
.../shortpath/shortpath.cpp | 369 +
.../xcode/shortpath.xcodeproj/project.pbxproj | 305 +
examples/graph/binpack/Makefile | 58 +
examples/graph/binpack/Makefile.windows | 50 +
examples/graph/binpack/binpack.cpp | 300 +
examples/graph/binpack/msvs/binpack.sln | 28 +
examples/graph/binpack/msvs/binpack.vcxproj | 201 +
examples/graph/binpack/readme.html | 415 +
.../xcode/binpack.xcodeproj/project.pbxproj | 305 +
examples/graph/cholesky/Makefile | 56 +
examples/graph/cholesky/Makefile.windows | 50 +
examples/graph/cholesky/cholesky.cpp | 715 +
examples/graph/cholesky/init.cpp | 138 +
examples/graph/cholesky/msvs/cholesky.sln | 28 +
examples/graph/cholesky/msvs/cholesky.vcxproj | 206 +
examples/graph/cholesky/readme.html | 415 +
.../xcode/cholesky.xcodeproj/project.pbxproj | 309 +
examples/graph/dining_philosophers/Makefile | 55 +
.../dining_philosophers/Makefile.windows | 46 +
.../dining_philosophers.cpp | 306 +
.../msvs/dining_philosophers.sln | 28 +
.../msvs/dining_philosophers.vcxproj | 201 +
.../graph/dining_philosophers/readme.html | 383 +
.../project.pbxproj | 305 +
examples/graph/fgbzip2/Makefile | 57 +
examples/graph/fgbzip2/Makefile.windows | 54 +
examples/graph/fgbzip2/blocksort.cpp | 1146 +
examples/graph/fgbzip2/bzlib.cpp | 1624 ++
examples/graph/fgbzip2/bzlib.h | 334 +
examples/graph/fgbzip2/bzlib_private.h | 561 +
examples/graph/fgbzip2/compress.cpp | 724 +
examples/graph/fgbzip2/crctable.cpp | 156 +
examples/graph/fgbzip2/decompress.cpp | 698 +
examples/graph/fgbzip2/fgbzip2.cpp | 501 +
examples/graph/fgbzip2/huffman.cpp | 257 +
examples/graph/fgbzip2/msvs/fgbzip2.sln | 28 +
examples/graph/fgbzip2/msvs/fgbzip2.vcxproj | 216 +
examples/graph/fgbzip2/randtable.cpp | 136 +
examples/graph/fgbzip2/readme.html | 466 +
.../xcode/fgbzip2.xcodeproj/project.pbxproj | 265 +
examples/graph/index.html | 358 +
examples/graph/logic_sim/D_latch.h | 60 +
examples/graph/logic_sim/Makefile | 57 +
examples/graph/logic_sim/Makefile.windows | 53 +
examples/graph/logic_sim/basics.h | 560 +
examples/graph/logic_sim/four_bit_adder.h | 62 +
examples/graph/logic_sim/msvs/logic_sim.sln | 28 +
.../graph/logic_sim/msvs/logic_sim.vcxproj | 201 +
examples/graph/logic_sim/one_bit_adder.h | 103 +
examples/graph/logic_sim/readme.html | 406 +
examples/graph/logic_sim/test_all.cpp | 646 +
examples/graph/logic_sim/two_bit_adder.h | 59 +
examples/graph/matmult/Makefile | 56 +
examples/graph/matmult/Makefile.windows | 53 +
examples/graph/matmult/matmult.cpp | 374 +
examples/graph/matmult/msvs/matmult.sln | 28 +
examples/graph/matmult/msvs/matmult.vcxproj | 145 +
examples/graph/matmult/readme.html | 414 +
examples/graph/som/Makefile | 60 +
examples/graph/som/Makefile.windows | 46 +
examples/graph/som/msvs/som.sln | 28 +
examples/graph/som/msvs/som.vcxproj | 217 +
examples/graph/som/readme.html | 391 +
examples/graph/som/som.cpp | 217 +
examples/graph/som/som.h | 161 +
examples/graph/som/som_graph.cpp | 423 +
.../som/xcode/som.xcodeproj/project.pbxproj | 313 +
examples/graph/stereo/Makefile | 72 +
examples/graph/stereo/Makefile.windows | 57 +
examples/graph/stereo/imageEffects.cl | 56 +
examples/graph/stereo/lodepng.cpp | 6227 ++++++
examples/graph/stereo/lodepng.h | 1778 ++
examples/graph/stereo/msvs/stereo.sln | 28 +
examples/graph/stereo/msvs/stereo.vcxproj | 163 +
examples/graph/stereo/readme.html | 445 +
examples/graph/stereo/stereo.cpp | 439 +
examples/graph/stereo/utils.h | 104 +
.../xcode/stereo.xcodeproj/project.pbxproj | 321 +
examples/index.html | 575 +
examples/parallel_do/index.html | 344 +
.../parallel_do/parallel_preorder/Graph.cpp | 101 +
.../parallel_do/parallel_preorder/Graph.h | 80 +
.../parallel_do/parallel_preorder/Makefile | 63 +
.../parallel_preorder/Makefile.windows | 54 +
.../parallel_do/parallel_preorder/Matrix.h | 60 +
.../parallel_do/parallel_preorder/main.cpp | 93 +
.../msvs/parallel_preorder.sln | 28 +
.../msvs/parallel_preorder.vcxproj | 207 +
.../parallel_preorder/parallel_preorder.cpp | 56 +
.../parallel_do/parallel_preorder/readme.html | 444 +
.../project.pbxproj | 317 +
examples/parallel_for/game_of_life/Makefile | 53 +
.../game_of_life/Makefile.windows | 46 +
.../game_of_life/msvs/Game_of_life.sln | 40 +
.../game_of_life/msvs/Game_of_life.vcxproj | 451 +
.../parallel_for/game_of_life/msvs/app.ico | Bin 0 -> 1078 bytes
.../parallel_for/game_of_life/msvs/app.rc | 63 +
.../parallel_for/game_of_life/msvs/resource.h | 23 +
.../parallel_for/game_of_life/readme.html | 392 +
.../game_of_life/src/AssemblyInfo.cpp | 58 +
.../parallel_for/game_of_life/src/Board.h | 107 +
.../game_of_life/src/Evolution.cpp | 243 +
.../parallel_for/game_of_life/src/Evolution.h | 195 +
.../parallel_for/game_of_life/src/Form1.h | 306 +
.../game_of_life/src/Game_of_life.cpp | 230 +
.../game_of_life/src/Update_state.cpp | 402 +
.../game_of_life.xcodeproj/project.pbxproj | 317 +
examples/parallel_for/index.html | 350 +
.../parallel_for/polygon_overlay/Makefile | 90 +
.../polygon_overlay/Makefile.windows | 60 +
.../polygon_overlay/msvs/polygon_overlay.sln | 40 +
.../polygon_overlay/msvs/pover.rc | 61 +
.../polygon_overlay/msvs/pover.vcxproj | 448 +
.../polygon_overlay/msvs/resource.h | 34 +
.../parallel_for/polygon_overlay/polymain.cpp | 620 +
.../parallel_for/polygon_overlay/polymain.h | 45 +
.../parallel_for/polygon_overlay/polyover.cpp | 668 +
.../parallel_for/polygon_overlay/polyover.h | 41 +
.../polygon_overlay/pover_global.h | 93 +
.../polygon_overlay/pover_video.cpp | 175 +
.../polygon_overlay/pover_video.h | 64 +
.../parallel_for/polygon_overlay/readme.html | 476 +
.../parallel_for/polygon_overlay/rpolygon.h | 155 +
.../parallel_for/polygon_overlay/speedup.gif | Bin 0 -> 7162 bytes
.../polygon_overlay.xcodeproj/project.pbxproj | 527 +
.../xcschemes/tbbExample.ios.xcscheme | 91 +
.../xcschemes/tbbExample.xcscheme | 99 +
examples/parallel_for/seismic/Makefile | 97 +
.../parallel_for/seismic/Makefile.windows | 67 +
examples/parallel_for/seismic/main.cpp | 151 +
.../seismic/msvs/SeismicSimulation.ico | Bin 0 -> 23558 bytes
.../seismic/msvs/SeismicSimulation.rc | 145 +
.../seismic/msvs/SeismicSimulation.vcxproj | 451 +
examples/parallel_for/seismic/msvs/resource.h | 52 +
.../parallel_for/seismic/msvs/seismic.sln | 40 +
examples/parallel_for/seismic/msvs/small.ico | Bin 0 -> 23558 bytes
examples/parallel_for/seismic/readme.html | 471 +
.../parallel_for/seismic/seismic_video.cpp | 148 +
examples/parallel_for/seismic/seismic_video.h | 54 +
examples/parallel_for/seismic/universe.cpp | 221 +
examples/parallel_for/seismic/universe.h | 118 +
.../xcode/seismic.xcodeproj/project.pbxproj | 548 +
.../xcschemes/tbbExample.ios.xcscheme | 119 +
.../xcschemes/tbbExample.xcscheme | 99 +
examples/parallel_for/tachyon/Makefile | 184 +
.../parallel_for/tachyon/Makefile.windows | 150 +
.../parallel_for/tachyon/dat/820spheres.dat | 1671 ++
examples/parallel_for/tachyon/dat/balls.dat | 14804 +++++++++++++
examples/parallel_for/tachyon/dat/balls3.dat | 14804 +++++++++++++
examples/parallel_for/tachyon/dat/lattice.dat | 18012 ++++++++++++++++
examples/parallel_for/tachyon/dat/model2.dat | 104 +
examples/parallel_for/tachyon/dat/teapot.dat | 9279 ++++++++
.../parallel_for/tachyon/dat/trypsin4pti.dat | 538 +
examples/parallel_for/tachyon/msvs/gui.ico | Bin 0 -> 23558 bytes
examples/parallel_for/tachyon/msvs/gui.rc | 90 +
examples/parallel_for/tachyon/msvs/resource.h | 28 +
examples/parallel_for/tachyon/msvs/small.ico | Bin 0 -> 23558 bytes
.../tachyon/msvs/tachyon.serial.vcxproj | 393 +
.../parallel_for/tachyon/msvs/tachyon.sln | 94 +
.../tachyon/msvs/tachyon.tbb.vcxproj | 445 +
.../tachyon/msvs/tachyon.tbb1d.vcxproj | 445 +
.../parallel_for/tachyon/msvs/tachyon.vcxproj | 455 +
.../parallel_for/tachyon/msvs/win8ui/App.xaml | 15 +
.../tachyon/msvs/win8ui/App.xaml.cpp | 54 +
.../tachyon/msvs/win8ui/App.xaml.h | 41 +
.../tachyon/msvs/win8ui/Assets/Logo.png | Bin 0 -> 35141 bytes
.../tachyon/msvs/win8ui/Assets/SmallLogo.png | Bin 0 -> 2552 bytes
.../msvs/win8ui/Assets/SplashScreen.png | Bin 0 -> 144360 bytes
.../tachyon/msvs/win8ui/Assets/StoreLogo.png | Bin 0 -> 6321 bytes
.../msvs/win8ui/Common/StandardStyles.xaml | 1007 +
.../tachyon/msvs/win8ui/DirectXBase.cpp | 413 +
.../tachyon/msvs/win8ui/DirectXBase.h | 92 +
.../tachyon/msvs/win8ui/DirectXPage.xaml | 31 +
.../tachyon/msvs/win8ui/DirectXPage.xaml.cpp | 133 +
.../tachyon/msvs/win8ui/DirectXPage.xaml.h | 48 +
.../tachyon/msvs/win8ui/Package.appxmanifest | 30 +
.../msvs/win8ui/copy_libraries_and_assets.bat | 69 +
.../parallel_for/tachyon/msvs/win8ui/pch.h | 29 +
.../tachyon/msvs/win8ui/tbbTachyon.sln | 32 +
.../tachyon/msvs/win8ui/tbbTachyon.vcxproj | 239 +
.../msvs/win8ui/tbbTachyon.vcxproj.filters | 215 +
.../msvs/win8ui/tbbTachyonRenderer.cpp | 190 +
.../tachyon/msvs/win8ui/tbbTachyonRenderer.h | 46 +
examples/parallel_for/tachyon/readme.html | 572 +
examples/parallel_for/tachyon/src/api.cpp | 418 +
examples/parallel_for/tachyon/src/api.h | 208 +
examples/parallel_for/tachyon/src/apigeom.cpp | 268 +
.../parallel_for/tachyon/src/apitrigeom.cpp | 226 +
.../parallel_for/tachyon/src/apitrigeom.h | 60 +
examples/parallel_for/tachyon/src/bndbox.cpp | 182 +
examples/parallel_for/tachyon/src/bndbox.h | 74 +
examples/parallel_for/tachyon/src/box.cpp | 168 +
examples/parallel_for/tachyon/src/box.h | 69 +
examples/parallel_for/tachyon/src/camera.cpp | 109 +
examples/parallel_for/tachyon/src/camera.h | 56 +
.../parallel_for/tachyon/src/coordsys.cpp | 96 +
examples/parallel_for/tachyon/src/coordsys.h | 60 +
.../parallel_for/tachyon/src/cylinder.cpp | 271 +
examples/parallel_for/tachyon/src/cylinder.h | 78 +
examples/parallel_for/tachyon/src/extvol.cpp | 311 +
examples/parallel_for/tachyon/src/extvol.h | 73 +
examples/parallel_for/tachyon/src/global.cpp | 74 +
examples/parallel_for/tachyon/src/global.h | 68 +
examples/parallel_for/tachyon/src/grid.cpp | 679 +
examples/parallel_for/tachyon/src/grid.h | 120 +
examples/parallel_for/tachyon/src/imageio.cpp | 147 +
examples/parallel_for/tachyon/src/imageio.h | 65 +
examples/parallel_for/tachyon/src/imap.cpp | 168 +
examples/parallel_for/tachyon/src/imap.h | 61 +
.../parallel_for/tachyon/src/intersect.cpp | 177 +
examples/parallel_for/tachyon/src/intersect.h | 67 +
examples/parallel_for/tachyon/src/jpeg.cpp | 129 +
examples/parallel_for/tachyon/src/jpeg.h | 56 +
examples/parallel_for/tachyon/src/light.cpp | 128 +
examples/parallel_for/tachyon/src/light.h | 71 +
examples/parallel_for/tachyon/src/machine.h | 66 +
examples/parallel_for/tachyon/src/macros.h | 79 +
examples/parallel_for/tachyon/src/main.cpp | 385 +
.../parallel_for/tachyon/src/objbound.cpp | 336 +
examples/parallel_for/tachyon/src/objbound.h | 66 +
examples/parallel_for/tachyon/src/parse.cpp | 863 +
examples/parallel_for/tachyon/src/parse.h | 111 +
examples/parallel_for/tachyon/src/plane.cpp | 105 +
examples/parallel_for/tachyon/src/plane.h | 72 +
examples/parallel_for/tachyon/src/ppm.cpp | 129 +
examples/parallel_for/tachyon/src/ppm.h | 60 +
examples/parallel_for/tachyon/src/pthread.cpp | 156 +
examples/parallel_for/tachyon/src/pthread_w.h | 109 +
examples/parallel_for/tachyon/src/quadric.cpp | 170 +
examples/parallel_for/tachyon/src/quadric.h | 75 +
examples/parallel_for/tachyon/src/render.cpp | 91 +
examples/parallel_for/tachyon/src/render.h | 57 +
examples/parallel_for/tachyon/src/ring.cpp | 131 +
examples/parallel_for/tachyon/src/ring.h | 73 +
examples/parallel_for/tachyon/src/shade.cpp | 258 +
examples/parallel_for/tachyon/src/shade.h | 62 +
examples/parallel_for/tachyon/src/sphere.cpp | 133 +
examples/parallel_for/tachyon/src/sphere.h | 73 +
.../tachyon/src/tachyon_video.cpp | 120 +
.../parallel_for/tachyon/src/tachyon_video.h | 62 +
examples/parallel_for/tachyon/src/texture.cpp | 385 +
examples/parallel_for/tachyon/src/texture.h | 69 +
examples/parallel_for/tachyon/src/tgafile.cpp | 237 +
examples/parallel_for/tachyon/src/tgafile.h | 61 +
examples/parallel_for/tachyon/src/trace.h | 98 +
.../parallel_for/tachyon/src/trace.serial.cpp | 177 +
.../parallel_for/tachyon/src/trace.simple.cpp | 182 +
.../parallel_for/tachyon/src/trace.tbb.cpp | 269 +
.../parallel_for/tachyon/src/trace.tbb1d.cpp | 205 +
.../parallel_for/tachyon/src/trace_rest.cpp | 138 +
.../parallel_for/tachyon/src/triangle.cpp | 245 +
examples/parallel_for/tachyon/src/triangle.h | 94 +
examples/parallel_for/tachyon/src/types.h | 226 +
examples/parallel_for/tachyon/src/ui.cpp | 115 +
examples/parallel_for/tachyon/src/ui.h | 68 +
examples/parallel_for/tachyon/src/util.cpp | 175 +
examples/parallel_for/tachyon/src/util.h | 88 +
examples/parallel_for/tachyon/src/vector.cpp | 134 +
examples/parallel_for/tachyon/src/vector.h | 68 +
examples/parallel_for/tachyon/src/vol.cpp | 302 +
examples/parallel_for/tachyon/src/vol.h | 63 +
.../xcode/tachyon.xcodeproj/project.pbxproj | 1205 ++
.../xcschemes/tachyon.serial.xcscheme | 104 +
.../xcschemes/tachyon.tbb.ios.xcscheme | 97 +
.../xcschemes/tachyon.tbb.xcscheme | 105 +
.../xcschemes/tachyon.tbb1d.xcscheme | 105 +
examples/parallel_reduce/convex_hull/Makefile | 64 +
.../convex_hull/Makefile.windows | 56 +
.../parallel_reduce/convex_hull/convex_hull.h | 188 +
.../convex_hull/convex_hull_bench.cpp | 635 +
.../convex_hull/convex_hull_sample.cpp | 297 +
.../convex_hull/msvs/convex_hull.sln | 38 +
.../msvs/convex_hull_benchmark.vcxproj | 206 +
.../msvs/convex_hull_sample.vcxproj | 203 +
.../parallel_reduce/convex_hull/readme.html | 400 +
.../convex_hull.xcodeproj/project.pbxproj | 441 +
examples/parallel_reduce/index.html | 346 +
examples/parallel_reduce/primes/Makefile | 68 +
.../parallel_reduce/primes/Makefile.windows | 52 +
examples/parallel_reduce/primes/main.cpp | 124 +
.../parallel_reduce/primes/msvs/primes.sln | 28 +
.../primes/msvs/primes.vcxproj | 205 +
examples/parallel_reduce/primes/primes.cpp | 309 +
examples/parallel_reduce/primes/primes.h | 44 +
examples/parallel_reduce/primes/readme.html | 407 +
.../xcode/primes.xcodeproj/project.pbxproj | 311 +
examples/pipeline/index.html | 344 +
examples/pipeline/square/Makefile | 61 +
examples/pipeline/square/Makefile.windows | 50 +
examples/pipeline/square/gen_input.cpp | 62 +
examples/pipeline/square/msvs/square.sln | 28 +
examples/pipeline/square/msvs/square.vcxproj | 202 +
examples/pipeline/square/readme.html | 417 +
examples/pipeline/square/square.cpp | 279 +
.../xcode/square.xcodeproj/project.pbxproj | 309 +
examples/task/index.html | 344 +
examples/task/tree_sum/Makefile | 59 +
examples/task/tree_sum/Makefile.windows | 52 +
.../tree_sum/OptimizedParallelSumTree.cpp | 69 +
examples/task/tree_sum/SerialSumTree.cpp | 30 +
.../task/tree_sum/SimpleParallelSumTree.cpp | 62 +
examples/task/tree_sum/TreeMaker.h | 116 +
examples/task/tree_sum/common.h | 36 +
examples/task/tree_sum/main.cpp | 108 +
examples/task/tree_sum/msvs/tree_sum.sln | 28 +
examples/task/tree_sum/msvs/tree_sum.vcxproj | 208 +
examples/task/tree_sum/readme.html | 423 +
.../xcode/tree_sum.xcodeproj/project.pbxproj | 325 +
examples/task_arena/fractal/Makefile | 87 +
examples/task_arena/fractal/Makefile.windows | 66 +
examples/task_arena/fractal/fractal.cpp | 305 +
examples/task_arena/fractal/fractal.h | 163 +
examples/task_arena/fractal/fractal_video.h | 90 +
examples/task_arena/fractal/main.cpp | 92 +
examples/task_arena/fractal/msvs/fractal.sln | 40 +
.../task_arena/fractal/msvs/fractal.vcxproj | 450 +
examples/task_arena/fractal/msvs/gui.ico | Bin 0 -> 23558 bytes
examples/task_arena/fractal/msvs/gui.rc | 90 +
examples/task_arena/fractal/msvs/resource.h | 28 +
examples/task_arena/fractal/msvs/small.ico | Bin 0 -> 23558 bytes
examples/task_arena/fractal/readme.html | 447 +
.../xcode/fractal.xcodeproj/project.pbxproj | 529 +
.../xcschemes/tbbExample.ios.xcscheme | 91 +
.../xcschemes/tbbExample.xcscheme | 93 +
examples/task_arena/index.html | 343 +
examples/task_group/index.html | 343 +
examples/task_group/sudoku/Makefile | 74 +
examples/task_group/sudoku/Makefile.windows | 50 +
examples/task_group/sudoku/input1 | 19 +
examples/task_group/sudoku/input2 | 18 +
examples/task_group/sudoku/input3 | 19 +
examples/task_group/sudoku/input4 | 19 +
examples/task_group/sudoku/msvs/sudoku.sln | 28 +
.../task_group/sudoku/msvs/sudoku.vcxproj | 201 +
examples/task_group/sudoku/readme.html | 417 +
examples/task_group/sudoku/sudoku.cpp | 333 +
.../xcode/sudoku.xcodeproj/project.pbxproj | 305 +
examples/test_all/fibonacci/Fibonacci.cpp | 609 +
examples/test_all/fibonacci/Makefile | 52 +
examples/test_all/fibonacci/Makefile.windows | 45 +
.../test_all/fibonacci/msvs/fibonacci.sln | 28 +
.../test_all/fibonacci/msvs/fibonacci.vcxproj | 201 +
examples/test_all/fibonacci/readme.html | 402 +
.../xcode/fibonacci.xcodeproj/project.pbxproj | 305 +
examples/test_all/index.html | 344 +
include/index.html | 25 +
include/serial/tbb/parallel_for.h | 219 +
include/serial/tbb/tbb_annotate.h | 36 +
include/tbb/aggregator.h | 202 +
include/tbb/aligned_space.h | 47 +
include/tbb/atomic.h | 558 +
include/tbb/blocked_range.h | 158 +
include/tbb/blocked_range2d.h | 108 +
include/tbb/blocked_range3d.h | 127 +
include/tbb/cache_aligned_allocator.h | 137 +
include/tbb/combinable.h | 85 +
include/tbb/compat/condition_variable | 476 +
include/tbb/compat/ppl.h | 62 +
include/tbb/compat/thread | 60 +
include/tbb/compat/tuple | 488 +
include/tbb/concurrent_hash_map.h | 1499 ++
include/tbb/concurrent_lru_cache.h | 287 +
include/tbb/concurrent_priority_queue.h | 490 +
include/tbb/concurrent_queue.h | 458 +
include/tbb/concurrent_unordered_map.h | 299 +
include/tbb/concurrent_unordered_set.h | 256 +
include/tbb/concurrent_vector.h | 1363 ++
include/tbb/critical_section.h | 133 +
include/tbb/enumerable_thread_specific.h | 1137 +
include/tbb/flow_graph.h | 4252 ++++
include/tbb/flow_graph_abstractions.h | 57 +
include/tbb/flow_graph_opencl_node.h | 1481 ++
include/tbb/gfx_factory.h | 359 +
include/tbb/global_control.h | 86 +
include/tbb/index.html | 29 +
include/tbb/internal/_aggregator_impl.h | 184 +
include/tbb/internal/_concurrent_queue_impl.h | 1075 +
.../tbb/internal/_concurrent_unordered_impl.h | 1518 ++
.../tbb/internal/_flow_graph_async_msg_impl.h | 157 +
include/tbb/internal/_flow_graph_impl.h | 847 +
.../tbb/internal/_flow_graph_indexer_impl.h | 484 +
.../internal/_flow_graph_item_buffer_impl.h | 288 +
include/tbb/internal/_flow_graph_join_impl.h | 2003 ++
include/tbb/internal/_flow_graph_node_impl.h | 829 +
.../tbb/internal/_flow_graph_streaming_node.h | 745 +
.../internal/_flow_graph_tagged_buffer_impl.h | 253 +
include/tbb/internal/_flow_graph_trace_impl.h | 304 +
include/tbb/internal/_flow_graph_types_impl.h | 713 +
include/tbb/internal/_mutex_padding.h | 102 +
include/tbb/internal/_range_iterator.h | 70 +
include/tbb/internal/_tbb_hash_compare_impl.h | 109 +
include/tbb/internal/_tbb_strings.h | 68 +
include/tbb/internal/_tbb_windef.h | 73 +
include/tbb/internal/_template_helpers.h | 158 +
.../tbb/internal/_x86_eliding_mutex_impl.h | 148 +
include/tbb/internal/_x86_rtm_rw_mutex_impl.h | 225 +
include/tbb/machine/gcc_armv7.h | 217 +
include/tbb/machine/gcc_generic.h | 184 +
include/tbb/machine/gcc_ia32_common.h | 112 +
include/tbb/machine/gcc_itsx.h | 123 +
include/tbb/machine/ibm_aix51.h | 70 +
include/tbb/machine/icc_generic.h | 262 +
include/tbb/machine/linux_common.h | 84 +
include/tbb/machine/linux_ia32.h | 232 +
include/tbb/machine/linux_ia64.h | 181 +
include/tbb/machine/linux_intel64.h | 96 +
include/tbb/machine/mac_ppc.h | 313 +
include/tbb/machine/macos_common.h | 133 +
include/tbb/machine/mic_common.h | 57 +
include/tbb/machine/msvc_armv7.h | 171 +
include/tbb/machine/msvc_ia32_common.h | 280 +
include/tbb/machine/sunos_sparc.h | 203 +
include/tbb/machine/windows_api.h | 69 +
include/tbb/machine/windows_ia32.h | 109 +
include/tbb/machine/windows_intel64.h | 74 +
include/tbb/memory_pool.h | 279 +
include/tbb/mutex.h | 233 +
include/tbb/null_mutex.h | 54 +
include/tbb/null_rw_mutex.h | 56 +
include/tbb/parallel_do.h | 551 +
include/tbb/parallel_for.h | 407 +
include/tbb/parallel_for_each.h | 137 +
include/tbb/parallel_invoke.h | 455 +
include/tbb/parallel_reduce.h | 569 +
include/tbb/parallel_scan.h | 348 +
include/tbb/parallel_sort.h | 266 +
include/tbb/parallel_while.h | 186 +
include/tbb/partitioner.h | 680 +
include/tbb/pipeline.h | 665 +
include/tbb/queuing_mutex.h | 110 +
include/tbb/queuing_rw_mutex.h | 150 +
include/tbb/reader_writer_lock.h | 232 +
include/tbb/recursive_mutex.h | 234 +
include/tbb/runtime_loader.h | 180 +
include/tbb/scalable_allocator.h | 342 +
include/tbb/spin_mutex.h | 212 +
include/tbb/spin_rw_mutex.h | 259 +
include/tbb/task.h | 1056 +
include/tbb/task_arena.h | 407 +
include/tbb/task_group.h | 243 +
include/tbb/task_scheduler_init.h | 161 +
include/tbb/task_scheduler_observer.h | 174 +
include/tbb/tbb.h | 85 +
include/tbb/tbb_allocator.h | 207 +
include/tbb/tbb_config.h | 774 +
include/tbb/tbb_disable_exceptions.h | 35 +
include/tbb/tbb_exception.h | 360 +
include/tbb/tbb_machine.h | 982 +
include/tbb/tbb_profiling.h | 284 +
include/tbb/tbb_stddef.h | 549 +
include/tbb/tbb_thread.h | 332 +
include/tbb/tbbmalloc_proxy.h | 66 +
include/tbb/tick_count.h | 140 +
index.html | 50 +
jni/Android.mk | 66 +
jni/Application.mk | 68 +
python/Makefile | 38 +
python/index.html | 75 +
python/setup.py | 116 +
python/tbb.i | 145 +
python/tbb.src.py | 840 +
src/Makefile | 269 +
src/index.html | 76 +
src/old/concurrent_queue_v2.cpp | 367 +
src/old/concurrent_queue_v2.h | 324 +
src/old/concurrent_vector_v2.cpp | 256 +
src/old/concurrent_vector_v2.h | 512 +
src/old/spin_rw_mutex_v2.cpp | 156 +
src/old/spin_rw_mutex_v2.h | 175 +
src/old/task_v2.cpp | 38 +
src/old/test_concurrent_queue_v2.cpp | 348 +
src/old/test_concurrent_vector_v2.cpp | 558 +
src/old/test_mutex_v2.cpp | 242 +
src/old/test_task_scheduler_observer_v3.cpp | 121 +
src/perf/coarse_grained_raii_lru_cache.h | 147 +
src/perf/cpq_pdes.cpp | 230 +
src/perf/fibonacci_impl_tbb.cpp | 78 +
src/perf/perf.cpp | 860 +
src/perf/perf.h | 257 +
src/perf/perf_sched.cpp | 456 +
src/perf/run_statistics.sh | 32 +
src/perf/statistics.cpp | 444 +
src/perf/statistics.h | 191 +
src/perf/statistics_xml.h | 200 +
src/perf/time_cpq_throughput_test.cpp | 294 +
src/perf/time_fibonacci_cutoff.cpp | 130 +
src/perf/time_framework.h | 351 +
src/perf/time_hash_map.cpp | 261 +
src/perf/time_hash_map_fill.cpp | 167 +
src/perf/time_hash_map_fill.html | 122 +
src/perf/time_locked_work.cpp | 166 +
src/perf/time_lru_cache_throughput.cpp | 217 +
src/perf/time_parallel_for_each.cpp | 70 +
src/perf/time_sandbox.h | 171 +
src/perf/time_split_node.cpp | 120 +
src/perf/time_vector.cpp | 249 +
src/rml/client/index.html | 42 +
src/rml/client/library_assert.h | 34 +
src/rml/client/omp_dynamic_link.cpp | 24 +
src/rml/client/omp_dynamic_link.h | 30 +
src/rml/client/rml_factory.h | 94 +
src/rml/client/rml_omp.cpp | 46 +
src/rml/client/rml_tbb.cpp | 48 +
src/rml/include/index.html | 29 +
src/rml/include/rml_base.h | 188 +
src/rml/include/rml_omp.h | 130 +
src/rml/include/rml_tbb.h | 101 +
src/rml/index.html | 31 +
src/rml/perfor/omp_nested.cpp | 144 +
src/rml/perfor/omp_simple.cpp | 160 +
src/rml/perfor/tbb_multi_omp.cpp | 186 +
src/rml/perfor/tbb_simple.cpp | 191 +
src/rml/perfor/thread_level.h | 134 +
src/rml/server/index.html | 18 +
src/rml/server/irml.rc | 116 +
src/rml/server/job_automaton.h | 145 +
src/rml/server/lin-rml-export.def | 30 +
src/rml/server/rml_server.cpp | 3309 +++
src/rml/server/thread_monitor.h | 270 +
src/rml/server/wait_counter.h | 73 +
src/rml/server/win32-rml-export.def | 27 +
src/rml/server/win64-rml-export.def | 27 +
src/rml/test/rml_omp_stub.cpp | 72 +
src/rml/test/test_job_automaton.cpp | 152 +
src/rml/test/test_rml_mixed.cpp | 318 +
src/rml/test/test_rml_omp.cpp | 203 +
src/rml/test/test_rml_omp_c_linkage.c | 26 +
src/rml/test/test_rml_tbb.cpp | 205 +
src/rml/test/test_server.h | 433 +
src/rml/test/test_thread_monitor.cpp | 117 +
src/tbb/arena.cpp | 993 +
src/tbb/arena.h | 459 +
src/tbb/cache_aligned_allocator.cpp | 258 +
src/tbb/cilk-tbb-interop.h | 115 +
src/tbb/concurrent_hash_map.cpp | 58 +
src/tbb/concurrent_monitor.cpp | 137 +
src/tbb/concurrent_monitor.h | 241 +
src/tbb/concurrent_queue.cpp | 676 +
src/tbb/concurrent_vector.cpp | 618 +
src/tbb/condition_variable.cpp | 199 +
src/tbb/critical_section.cpp | 31 +
src/tbb/custom_scheduler.h | 706 +
src/tbb/dynamic_link.cpp | 578 +
src/tbb/dynamic_link.h | 121 +
src/tbb/governor.cpp | 379 +
src/tbb/governor.h | 163 +
src/tbb/ia32-masm/atomic_support.asm | 188 +
src/tbb/ia32-masm/itsx.asm | 80 +
src/tbb/ia32-masm/lock_byte.asm | 38 +
src/tbb/ia64-gas/atomic_support.s | 670 +
src/tbb/ia64-gas/ia64_misc.s | 99 +
src/tbb/ia64-gas/lock_byte.s | 46 +
src/tbb/ia64-gas/log2.s | 58 +
src/tbb/ia64-gas/pause.s | 33 +
src/tbb/ibm_aix51/atomic_support.c | 55 +
src/tbb/index.html | 31 +
src/tbb/intel64-masm/atomic_support.asm | 72 +
src/tbb/intel64-masm/intel64_misc.asm | 33 +
src/tbb/intel64-masm/itsx.asm | 76 +
src/tbb/intrusive_list.h | 246 +
src/tbb/itt_notify.cpp | 98 +
src/tbb/itt_notify.h | 128 +
src/tbb/lin32-tbb-export.def | 49 +
src/tbb/lin32-tbb-export.lst | 404 +
src/tbb/lin64-tbb-export.def | 46 +
src/tbb/lin64-tbb-export.lst | 385 +
src/tbb/lin64ipf-tbb-export.def | 48 +
src/tbb/lin64ipf-tbb-export.lst | 417 +
src/tbb/mac32-tbb-export.def | 23 +
src/tbb/mac32-tbb-export.lst | 403 +
src/tbb/mac64-tbb-export.def | 23 +
src/tbb/mac64-tbb-export.lst | 400 +
src/tbb/mailbox.h | 235 +
src/tbb/market.cpp | 866 +
src/tbb/market.h | 372 +
src/tbb/mutex.cpp | 152 +
src/tbb/observer_proxy.cpp | 426 +
src/tbb/observer_proxy.h | 176 +
src/tbb/pipeline.cpp | 781 +
src/tbb/private_server.cpp | 416 +
src/tbb/queuing_mutex.cpp | 108 +
src/tbb/queuing_rw_mutex.cpp | 492 +
src/tbb/reader_writer_lock.cpp | 347 +
src/tbb/recursive_mutex.cpp | 136 +
src/tbb/scheduler.cpp | 1340 ++
src/tbb/scheduler.h | 732 +
src/tbb/scheduler_common.h | 444 +
src/tbb/scheduler_utility.h | 133 +
src/tbb/semaphore.cpp | 94 +
src/tbb/semaphore.h | 254 +
src/tbb/spin_mutex.cpp | 58 +
src/tbb/spin_rw_mutex.cpp | 159 +
src/tbb/task.cpp | 277 +
src/tbb/task_group_context.cpp | 489 +
src/tbb/task_stream.h | 172 +
src/tbb/tbb_assert_impl.h | 103 +
src/tbb/tbb_main.cpp | 563 +
src/tbb/tbb_main.h | 96 +
src/tbb/tbb_misc.cpp | 321 +
src/tbb/tbb_misc.h | 275 +
src/tbb/tbb_misc_ex.cpp | 405 +
src/tbb/tbb_resource.rc | 116 +
src/tbb/tbb_statistics.cpp | 187 +
src/tbb/tbb_statistics.h | 240 +
src/tbb/tbb_thread.cpp | 196 +
src/tbb/tbb_version.h | 119 +
src/tbb/tls.h | 124 +
src/tbb/tools_api/disable_warnings.h | 39 +
src/tbb/tools_api/ittnotify.h | 3837 ++++
src/tbb/tools_api/ittnotify_config.h | 503 +
src/tbb/tools_api/ittnotify_static.c | 1042 +
src/tbb/tools_api/ittnotify_static.h | 328 +
src/tbb/tools_api/ittnotify_types.h | 77 +
src/tbb/tools_api/legacy/ittnotify.h | 1002 +
src/tbb/win32-tbb-export.def | 28 +
src/tbb/win32-tbb-export.lst | 344 +
src/tbb/win64-gcc-tbb-export.def | 44 +
src/tbb/win64-gcc-tbb-export.lst | 384 +
src/tbb/win64-tbb-export.def | 26 +
src/tbb/win64-tbb-export.lst | 339 +
src/tbb/winrt-tbb-export.lst | 300 +
src/tbb/x86_rtm_rw_mutex.cpp | 277 +
src/tbbmalloc/Customize.h | 231 +
src/tbbmalloc/MapMemory.h | 121 +
src/tbbmalloc/Statistics.h | 129 +
src/tbbmalloc/TypeDefinitions.h | 62 +
src/tbbmalloc/backend.cpp | 1554 ++
src/tbbmalloc/backref.cpp | 342 +
src/tbbmalloc/frontend.cpp | 3207 +++
src/tbbmalloc/index.html | 54 +
src/tbbmalloc/large_objects.cpp | 976 +
src/tbbmalloc/lin32-proxy-export.def | 59 +
src/tbbmalloc/lin32-tbbmalloc-export.def | 76 +
src/tbbmalloc/lin64-proxy-export.def | 59 +
src/tbbmalloc/lin64-tbbmalloc-export.def | 76 +
src/tbbmalloc/lin64ipf-proxy-export.def | 59 +
src/tbbmalloc/lin64ipf-tbbmalloc-export.def | 76 +
src/tbbmalloc/mac32-tbbmalloc-export.def | 48 +
src/tbbmalloc/mac64-tbbmalloc-export.def | 48 +
src/tbbmalloc/proxy.cpp | 692 +
src/tbbmalloc/proxy.h | 66 +
src/tbbmalloc/proxy_overload_osx.h | 190 +
src/tbbmalloc/shared_utils.h | 89 +
src/tbbmalloc/tbb_function_replacement.cpp | 482 +
src/tbbmalloc/tbb_function_replacement.h | 79 +
src/tbbmalloc/tbbmalloc.cpp | 122 +
src/tbbmalloc/tbbmalloc.rc | 119 +
src/tbbmalloc/tbbmalloc_internal.h | 1153 +
src/tbbmalloc/tbbmalloc_internal_api.h | 44 +
src/tbbmalloc/win32-gcc-tbbmalloc-export.def | 52 +
src/tbbmalloc/win32-tbbmalloc-export.def | 47 +
src/tbbmalloc/win64-gcc-tbbmalloc-export.def | 52 +
src/tbbmalloc/win64-tbbmalloc-export.def | 48 +
src/tbbproxy/tbbproxy-windows.asm | 111 +
src/tbbproxy/tbbproxy.cpp | 612 +
src/test/harness.h | 836 +
src/test/harness_allocator.h | 620 +
src/test/harness_allocator_overload.h | 39 +
src/test/harness_assert.h | 41 +
src/test/harness_bad_expr.h | 77 +
src/test/harness_barrier.h | 140 +
src/test/harness_checktype.h | 99 +
src/test/harness_concurrency.h | 105 +
src/test/harness_concurrency_tracker.h | 174 +
src/test/harness_cpu.h | 120 +
src/test/harness_defs.h | 196 +
src/test/harness_dynamic_libs.h | 122 +
src/test/harness_eh.h | 317 +
src/test/harness_fp.h | 172 +
src/test/harness_graph.h | 1027 +
src/test/harness_inject_scheduler.h | 86 +
src/test/harness_iterator.h | 164 +
src/test/harness_m128.h | 114 +
src/test/harness_memory.h | 113 +
src/test/harness_mic.h | 46 +
src/test/harness_preload.h | 47 +
src/test/harness_report.h | 178 +
src/test/harness_runtime_loader.h | 37 +
src/test/harness_state_trackable.h | 147 +
src/test/harness_task.h | 55 +
src/test/harness_tbb_independence.h | 87 +
src/test/harness_test_cases_framework.h | 240 +
src/test/harness_tls.h | 79 +
src/test/harness_tsx.h | 70 +
src/test/test_ScalableAllocator.cpp | 212 +
src/test/test_ScalableAllocator_STL.cpp | 42 +
src/test/test_aggregator.cpp | 185 +
src/test/test_aligned_space.cpp | 119 +
src/test/test_allocator.h | 275 +
src/test/test_allocator_STL.h | 136 +
src/test/test_assembly.cpp | 164 +
src/test/test_async_msg.cpp | 608 +
src/test/test_async_node.cpp | 608 +
src/test/test_atomic.cpp | 1605 ++
src/test/test_blocked_range.cpp | 188 +
src/test/test_blocked_range2d.cpp | 148 +
src/test/test_blocked_range3d.cpp | 179 +
src/test/test_broadcast_node.cpp | 342 +
src/test/test_buffer_node.cpp | 445 +
src/test/test_cache_aligned_allocator.cpp | 80 +
src/test/test_cache_aligned_allocator_STL.cpp | 35 +
src/test/test_cilk_common.h | 83 +
src/test/test_cilk_dynamic_load.cpp | 156 +
src/test/test_cilk_interop.cpp | 155 +
src/test/test_combinable.cpp | 520 +
src/test/test_composite_node.cpp | 580 +
src/test/test_concurrent_hash_map.cpp | 1424 ++
src/test/test_concurrent_lru_cache.cpp | 466 +
src/test/test_concurrent_monitor.cpp | 369 +
src/test/test_concurrent_priority_queue.cpp | 1092 +
src/test/test_concurrent_queue.cpp | 1724 ++
src/test/test_concurrent_queue_whitebox.cpp | 101 +
src/test/test_concurrent_unordered_common.h | 954 +
src/test/test_concurrent_unordered_map.cpp | 337 +
src/test/test_concurrent_unordered_set.cpp | 203 +
src/test/test_concurrent_vector.cpp | 1789 ++
src/test/test_condition_variable.h | 767 +
src/test/test_container_move_support.h | 898 +
src/test/test_continue_node.cpp | 379 +
src/test/test_critical_section.cpp | 216 +
src/test/test_dynamic_link.cpp | 84 +
src/test/test_eh_algorithms.cpp | 1583 ++
src/test/test_eh_flow_graph.cpp | 2044 ++
src/test/test_eh_tasks.cpp | 791 +
src/test/test_enumerable_thread_specific.cpp | 1384 ++
src/test/test_examples_common_utility.cpp | 602 +
src/test/test_fast_random.cpp | 200 +
src/test/test_flow_graph.cpp | 376 +
src/test/test_flow_graph_whitebox.cpp | 708 +
src/test/test_fp.cpp | 385 +
src/test/test_function_node.cpp | 595 +
src/test/test_gfx_factory.cpp | 309 +
src/test/test_global_control.cpp | 792 +
src/test/test_global_control_whitebox.cpp | 83 +
src/test/test_halt.cpp | 113 +
src/test/test_handle_perror.cpp | 58 +
src/test/test_hw_concurrency.cpp | 56 +
src/test/test_indexer_node.cpp | 884 +
src/test/test_initializer_list.h | 173 +
src/test/test_inits_loop.cpp | 94 +
src/test/test_intrusive_list.cpp | 150 +
src/test/test_ittnotify.cpp | 93 +
src/test/test_join_node.cpp | 130 +
src/test/test_join_node.h | 2156 ++
src/test/test_join_node_key_matching.cpp | 71 +
src/test/test_join_node_msg_key_matching.cpp | 67 +
src/test/test_lambda.cpp | 238 +
src/test/test_limiter_node.cpp | 546 +
src/test/test_malloc_atexit.cpp | 161 +
src/test/test_malloc_compliance.cpp | 1125 +
src/test/test_malloc_init_shutdown.cpp | 176 +
src/test/test_malloc_lib_unload.cpp | 218 +
src/test/test_malloc_overload.cpp | 429 +
src/test/test_malloc_pools.cpp | 863 +
src/test/test_malloc_pure_c.c | 123 +
src/test/test_malloc_regression.cpp | 190 +
src/test/test_malloc_used_by_lib.cpp | 171 +
src/test/test_malloc_whitebox.cpp | 1180 +
src/test/test_model_plugin.cpp | 220 +
src/test/test_multifunction_node.cpp | 702 +
src/test/test_mutex.cpp | 684 +
src/test/test_mutex_native_threads.cpp | 221 +
src/test/test_opencl_kernel_32.spir | Bin 0 -> 1440 bytes
src/test/test_opencl_kernel_64.spir | Bin 0 -> 1468 bytes
src/test/test_opencl_node.cl | 189 +
src/test/test_opencl_node.cpp | 867 +
.../test_opencl_precompiled_kernel_gpu_32.ir | Bin 0 -> 4110 bytes
.../test_opencl_precompiled_kernel_gpu_64.ir | Bin 0 -> 4186 bytes
src/test/test_openmp.cpp | 250 +
src/test/test_overwrite_node.cpp | 160 +
src/test/test_parallel_do.cpp | 428 +
src/test/test_parallel_for.cpp | 764 +
src/test/test_parallel_for_each.cpp | 248 +
src/test/test_parallel_for_vectorization.cpp | 75 +
src/test/test_parallel_invoke.cpp | 321 +
src/test/test_parallel_pipeline.cpp | 668 +
src/test/test_parallel_reduce.cpp | 362 +
src/test/test_parallel_scan.cpp | 292 +
src/test/test_parallel_sort.cpp | 571 +
src/test/test_parallel_while.cpp | 171 +
src/test/test_partitioner.h | 593 +
src/test/test_partitioner_whitebox.cpp | 149 +
src/test/test_partitioner_whitebox.h | 396 +
src/test/test_pipeline.cpp | 313 +
src/test/test_pipeline_with_tbf.cpp | 527 +
src/test/test_priority_queue_node.cpp | 352 +
src/test/test_queue_node.cpp | 467 +
src/test/test_range_based_for.h | 64 +
src/test/test_reader_writer_lock.cpp | 238 +
src/test/test_runtime_loader.cpp | 283 +
src/test/test_rwm_upgrade_downgrade.cpp | 74 +
src/test/test_semaphore.cpp | 316 +
src/test/test_sequencer_node.cpp | 404 +
src/test/test_source_node.cpp | 419 +
src/test/test_split_node.cpp | 360 +
src/test/test_static_assert.cpp | 89 +
src/test/test_std_thread.cpp | 43 +
src/test/test_streaming_node.cpp | 917 +
src/test/test_tagged_msg.cpp | 263 +
src/test/test_task.cpp | 820 +
src/test/test_task_arena.cpp | 1359 ++
src/test/test_task_assertions.cpp | 94 +
src/test/test_task_auto_init.cpp | 202 +
src/test/test_task_enqueue.cpp | 381 +
src/test/test_task_group.cpp | 996 +
src/test/test_task_leaks.cpp | 272 +
src/test/test_task_priority.cpp | 676 +
src/test/test_task_scheduler_init.cpp | 371 +
src/test/test_task_scheduler_observer.cpp | 424 +
src/test/test_task_steal_limit.cpp | 79 +
src/test/test_tbb_condition_variable.cpp | 29 +
src/test/test_tbb_fork.cpp | 330 +
src/test/test_tbb_header.cpp | 318 +
src/test/test_tbb_thread.cpp | 33 +
src/test/test_tbb_version.cpp | 288 +
src/test/test_thread.h | 309 +
src/test/test_tick_count.cpp | 209 +
src/test/test_tuple.cpp | 204 +
src/test/test_write_once_node.cpp | 169 +
src/test/test_yield.cpp | 68 +
1492 files changed, 362800 insertions(+), 164 deletions(-)
create mode 100644 .gitattributes
create mode 100644 .gitignore
create mode 100644 CHANGES
create mode 100644 LICENSE
create mode 100644 Makefile
create mode 100644 README
create mode 100644 build/AIX.gcc.inc
create mode 100644 build/AIX.inc
create mode 100644 build/FreeBSD.clang.inc
create mode 100644 build/FreeBSD.gcc.inc
create mode 100644 build/FreeBSD.inc
create mode 100644 build/Makefile.rml
create mode 100644 build/Makefile.tbb
create mode 100644 build/Makefile.tbbmalloc
create mode 100644 build/Makefile.tbbproxy
create mode 100644 build/Makefile.test
create mode 100644 build/SunOS.gcc.inc
create mode 100644 build/SunOS.inc
create mode 100644 build/SunOS.suncc.inc
create mode 100644 build/android.clang.inc
create mode 100644 build/android.gcc.inc
create mode 100644 build/android.icc.inc
create mode 100644 build/android.inc
create mode 100644 build/android.linux.inc
create mode 100644 build/android.linux.launcher.sh
create mode 100644 build/android.macos.inc
create mode 100644 build/android.windows.inc
create mode 100644 build/big_iron.inc
create mode 100644 build/codecov.txt
create mode 100644 build/common.inc
create mode 100644 build/common_rules.inc
create mode 100644 build/detect.js
create mode 100644 build/generate_tbbvars.bat
create mode 100644 build/generate_tbbvars.sh
create mode 100644 build/index.html
create mode 100644 build/ios.clang.inc
create mode 100644 build/ios.macos.inc
create mode 100644 build/linux.clang.inc
create mode 100644 build/linux.gcc.inc
create mode 100644 build/linux.icc.inc
create mode 100644 build/linux.inc
create mode 100644 build/linux.pathcc.inc
create mode 100644 build/linux.xl.inc
create mode 100644 build/macos.clang.inc
create mode 100644 build/macos.gcc.inc
create mode 100644 build/macos.icc.inc
create mode 100644 build/macos.inc
create mode 100644 build/mic.icc.inc
create mode 100644 build/mic.linux.inc
create mode 100644 build/mic.linux.launcher.sh
create mode 100644 build/mic.offload.inc
create mode 100644 build/suncc.map.pause
create mode 100644 build/test_launcher.bat
create mode 100644 build/test_launcher.sh
create mode 100644 build/version_info_aix.sh
create mode 100644 build/version_info_android.sh
create mode 100644 build/version_info_linux.sh
create mode 100644 build/version_info_macos.sh
create mode 100644 build/version_info_sunos.sh
create mode 100644 build/version_info_windows.js
create mode 100644 build/vs2013/index.html
create mode 100644 build/vs2013/makefile.sln
create mode 100644 build/vs2013/tbb.vcxproj
create mode 100644 build/vs2013/tbbmalloc.vcxproj
create mode 100644 build/vs2013/tbbmalloc_proxy.vcxproj
create mode 100644 build/vs2013/version_string.ver
create mode 100644 build/windows.cl.inc
create mode 100644 build/windows.gcc.inc
create mode 100644 build/windows.icl.inc
create mode 100644 build/windows.inc
create mode 100644 cmake/README.rst
create mode 100644 cmake/TBBBuild.cmake
create mode 100644 cmake/TBBGet.cmake
create mode 100644 cmake/TBBMakeConfig.cmake
create mode 100644 cmake/templates/TBBConfig.cmake.in
create mode 100644 cmake/templates/TBBConfigForSource.cmake.in
create mode 100644 cmake/templates/TBBConfigVersion.cmake.in
create mode 100644 doc/Release_Notes.txt
create mode 100644 doc/html/a00001.html
create mode 100644 doc/html/a00002.html
create mode 100644 doc/html/a00003.html
create mode 100644 doc/html/a00004.html
create mode 100644 doc/html/a00005.html
create mode 100644 doc/html/a00006.html
create mode 100644 doc/html/a00007.html
create mode 100644 doc/html/a00008.html
create mode 100644 doc/html/a00009.html
create mode 100644 doc/html/a00009.png
create mode 100644 doc/html/a00010.html
create mode 100644 doc/html/a00011.html
create mode 100644 doc/html/a00011.png
create mode 100644 doc/html/a00012.html
create mode 100644 doc/html/a00012.png
create mode 100644 doc/html/a00013.html
create mode 100644 doc/html/a00013.png
create mode 100644 doc/html/a00014.html
create mode 100644 doc/html/a00015.html
create mode 100644 doc/html/a00016.html
create mode 100644 doc/html/a00017.html
create mode 100644 doc/html/a00017.png
create mode 100644 doc/html/a00018.html
create mode 100644 doc/html/a00019.html
create mode 100644 doc/html/a00019.png
create mode 100644 doc/html/a00020.html
create mode 100644 doc/html/a00020.png
create mode 100644 doc/html/a00021.html
create mode 100644 doc/html/a00022.html
create mode 100644 doc/html/a00022.png
create mode 100644 doc/html/a00023.html
create mode 100644 doc/html/a00024.html
create mode 100644 doc/html/a00024.png
create mode 100644 doc/html/a00025.html
create mode 100644 doc/html/a00025.png
create mode 100644 doc/html/a00026.html
create mode 100644 doc/html/a00027.html
create mode 100644 doc/html/a00028.html
create mode 100644 doc/html/a00029.html
create mode 100644 doc/html/a00030.html
create mode 100644 doc/html/a00030.png
create mode 100644 doc/html/a00031.html
create mode 100644 doc/html/a00032.html
create mode 100644 doc/html/a00033.html
create mode 100644 doc/html/a00034.html
create mode 100644 doc/html/a00034.png
create mode 100644 doc/html/a00035.html
create mode 100644 doc/html/a00035.png
create mode 100644 doc/html/a00036.html
create mode 100644 doc/html/a00036.png
create mode 100644 doc/html/a00037.html
create mode 100644 doc/html/a00038.html
create mode 100644 doc/html/a00039.html
create mode 100644 doc/html/a00039.png
create mode 100644 doc/html/a00040.html
create mode 100644 doc/html/a00040.png
create mode 100644 doc/html/a00041.html
create mode 100644 doc/html/a00041.png
create mode 100644 doc/html/a00042.html
create mode 100644 doc/html/a00043.html
create mode 100644 doc/html/a00043.png
create mode 100644 doc/html/a00044.html
create mode 100644 doc/html/a00044.png
create mode 100644 doc/html/a00045.html
create mode 100644 doc/html/a00046.html
create mode 100644 doc/html/a00046.png
create mode 100644 doc/html/a00047.html
create mode 100644 doc/html/a00047.png
create mode 100644 doc/html/a00048.html
create mode 100644 doc/html/a00048.png
create mode 100644 doc/html/a00049.html
create mode 100644 doc/html/a00050.html
create mode 100644 doc/html/a00050.png
create mode 100644 doc/html/a00051.html
create mode 100644 doc/html/a00051.png
create mode 100644 doc/html/a00052.html
create mode 100644 doc/html/a00053.html
create mode 100644 doc/html/a00053.png
create mode 100644 doc/html/a00054.html
create mode 100644 doc/html/a00054.png
create mode 100644 doc/html/a00055.html
create mode 100644 doc/html/a00056.html
create mode 100644 doc/html/a00057.html
create mode 100644 doc/html/a00057.png
create mode 100644 doc/html/a00058.html
create mode 100644 doc/html/a00059.html
create mode 100644 doc/html/a00060.html
create mode 100644 doc/html/a00061.html
create mode 100644 doc/html/a00061.png
create mode 100644 doc/html/a00062.html
create mode 100644 doc/html/a00062.png
create mode 100644 doc/html/a00063.html
create mode 100644 doc/html/a00063.png
create mode 100644 doc/html/a00064.html
create mode 100644 doc/html/a00065.html
create mode 100644 doc/html/a00066.html
create mode 100644 doc/html/a00066.png
create mode 100644 doc/html/a00067.html
create mode 100644 doc/html/a00068.html
create mode 100644 doc/html/a00069.html
create mode 100644 doc/html/a00069.png
create mode 100644 doc/html/a00070.html
create mode 100644 doc/html/a00071.html
create mode 100644 doc/html/a00072.html
create mode 100644 doc/html/a00073.html
create mode 100644 doc/html/a00073.png
create mode 100644 doc/html/a00074.html
create mode 100644 doc/html/a00075.html
create mode 100644 doc/html/a00075.png
create mode 100644 doc/html/a00076.html
create mode 100644 doc/html/a00077.html
create mode 100644 doc/html/a00077.png
create mode 100644 doc/html/a00078.html
create mode 100644 doc/html/a00079.html
create mode 100644 doc/html/a00079.png
create mode 100644 doc/html/a00080.html
create mode 100644 doc/html/a00080.png
create mode 100644 doc/html/a00081.html
create mode 100644 doc/html/a00082.html
create mode 100644 doc/html/a00082.png
create mode 100644 doc/html/a00083.html
create mode 100644 doc/html/a00084.html
create mode 100644 doc/html/a00085.html
create mode 100644 doc/html/a00086.html
create mode 100644 doc/html/a00086.png
create mode 100644 doc/html/a00087.html
create mode 100644 doc/html/a00087.png
create mode 100644 doc/html/a00088.html
create mode 100644 doc/html/a00088.png
create mode 100644 doc/html/a00089.html
create mode 100644 doc/html/a00089.png
create mode 100644 doc/html/a00090.html
create mode 100644 doc/html/a00090.png
create mode 100644 doc/html/a00091.html
create mode 100644 doc/html/a00091.png
create mode 100644 doc/html/a00092.html
create mode 100644 doc/html/a00093.html
create mode 100644 doc/html/a00093.png
create mode 100644 doc/html/a00094.html
create mode 100644 doc/html/a00094.png
create mode 100644 doc/html/a00095.html
create mode 100644 doc/html/a00095.png
create mode 100644 doc/html/a00096.html
create mode 100644 doc/html/a00097.html
create mode 100644 doc/html/a00098.html
create mode 100644 doc/html/a00099.html
create mode 100644 doc/html/a00099.png
create mode 100644 doc/html/a00100.html
create mode 100644 doc/html/a00101.html
create mode 100644 doc/html/a00101.png
create mode 100644 doc/html/a00102.html
create mode 100644 doc/html/a00102.png
create mode 100644 doc/html/a00103.html
create mode 100644 doc/html/a00103.png
create mode 100644 doc/html/a00104.html
create mode 100644 doc/html/a00104.png
create mode 100644 doc/html/a00105.html
create mode 100644 doc/html/a00106.html
create mode 100644 doc/html/a00106.png
create mode 100644 doc/html/a00107.html
create mode 100644 doc/html/a00107.png
create mode 100644 doc/html/a00108.html
create mode 100644 doc/html/a00109.html
create mode 100644 doc/html/a00110.html
create mode 100644 doc/html/a00111.html
create mode 100644 doc/html/a00111.png
create mode 100644 doc/html/a00112.html
create mode 100644 doc/html/a00112.png
create mode 100644 doc/html/a00113.html
create mode 100644 doc/html/a00113.png
create mode 100644 doc/html/a00114.html
create mode 100644 doc/html/a00115.html
create mode 100644 doc/html/a00116.html
create mode 100644 doc/html/a00117.html
create mode 100644 doc/html/a00118.html
create mode 100644 doc/html/a00119.html
create mode 100644 doc/html/a00120.html
create mode 100644 doc/html/a00121.html
create mode 100644 doc/html/a00122.html
create mode 100644 doc/html/a00123.html
create mode 100644 doc/html/a00124.html
create mode 100644 doc/html/a00124.png
create mode 100644 doc/html/a00125.html
create mode 100644 doc/html/a00125.png
create mode 100644 doc/html/a00126.html
create mode 100644 doc/html/a00126.png
create mode 100644 doc/html/a00127.html
create mode 100644 doc/html/a00128.html
create mode 100644 doc/html/a00129.html
create mode 100644 doc/html/a00130.html
create mode 100644 doc/html/a00130.png
create mode 100644 doc/html/a00131.html
create mode 100644 doc/html/a00132.html
create mode 100644 doc/html/a00133.html
create mode 100644 doc/html/a00133.png
create mode 100644 doc/html/a00134.html
create mode 100644 doc/html/a00134.png
create mode 100644 doc/html/a00135.html
create mode 100644 doc/html/a00135.png
create mode 100644 doc/html/a00136.html
create mode 100644 doc/html/a00136.png
create mode 100644 doc/html/a00137.html
create mode 100644 doc/html/a00137.png
create mode 100644 doc/html/a00138.html
create mode 100644 doc/html/a00138.png
create mode 100644 doc/html/a00139.html
create mode 100644 doc/html/a00139.png
create mode 100644 doc/html/a00140.html
create mode 100644 doc/html/a00140.png
create mode 100644 doc/html/a00141.html
create mode 100644 doc/html/a00141.png
create mode 100644 doc/html/a00142.html
create mode 100644 doc/html/a00142.png
create mode 100644 doc/html/a00143.html
create mode 100644 doc/html/a00143.png
create mode 100644 doc/html/a00144.html
create mode 100644 doc/html/a00144.png
create mode 100644 doc/html/a00145.html
create mode 100644 doc/html/a00145.png
create mode 100644 doc/html/a00146.html
create mode 100644 doc/html/a00146.png
create mode 100644 doc/html/a00147.html
create mode 100644 doc/html/a00147.png
create mode 100644 doc/html/a00148.html
create mode 100644 doc/html/a00149.html
create mode 100644 doc/html/a00149.png
create mode 100644 doc/html/a00150.html
create mode 100644 doc/html/a00150.png
create mode 100644 doc/html/a00151.html
create mode 100644 doc/html/a00151.png
create mode 100644 doc/html/a00152.html
create mode 100644 doc/html/a00153.html
create mode 100644 doc/html/a00153.png
create mode 100644 doc/html/a00154.html
create mode 100644 doc/html/a00154.png
create mode 100644 doc/html/a00155.html
create mode 100644 doc/html/a00155.png
create mode 100644 doc/html/a00156.html
create mode 100644 doc/html/a00156.png
create mode 100644 doc/html/a00157.html
create mode 100644 doc/html/a00157.png
create mode 100644 doc/html/a00158.html
create mode 100644 doc/html/a00159.html
create mode 100644 doc/html/a00160.html
create mode 100644 doc/html/a00160.png
create mode 100644 doc/html/a00161.html
create mode 100644 doc/html/a00162.html
create mode 100644 doc/html/a00163.html
create mode 100644 doc/html/a00163.png
create mode 100644 doc/html/a00164.html
create mode 100644 doc/html/a00164.png
create mode 100644 doc/html/a00165.html
create mode 100644 doc/html/a00165.png
create mode 100644 doc/html/a00166.html
create mode 100644 doc/html/a00166.png
create mode 100644 doc/html/a00167.html
create mode 100644 doc/html/a00167.png
create mode 100644 doc/html/a00168.html
create mode 100644 doc/html/a00169.html
create mode 100644 doc/html/a00169.png
create mode 100644 doc/html/a00170.html
create mode 100644 doc/html/a00170.png
create mode 100644 doc/html/a00171.html
create mode 100644 doc/html/a00172.html
create mode 100644 doc/html/a00173.html
create mode 100644 doc/html/a00173.png
create mode 100644 doc/html/a00174.html
create mode 100644 doc/html/a00174.png
create mode 100644 doc/html/a00175.html
create mode 100644 doc/html/a00175.png
create mode 100644 doc/html/a00193.html
create mode 100644 doc/html/a00198.html
create mode 100644 doc/html/a00217.html
create mode 100644 doc/html/a00236.html
create mode 100644 doc/html/a00239.html
create mode 100644 doc/html/a00260.html
create mode 100644 doc/html/a00261.html
create mode 100644 doc/html/a00262.html
create mode 100644 doc/html/a00263.html
create mode 100644 doc/html/a00264.html
create mode 100644 doc/html/a00265.html
create mode 100644 doc/html/a00267.html
create mode 100644 doc/html/a00268.html
create mode 100644 doc/html/a00269.html
create mode 100644 doc/html/a00270.html
create mode 100644 doc/html/a00271.html
create mode 100644 doc/html/a00272.html
create mode 100644 doc/html/a00273.html
create mode 100644 doc/html/a00274.html
create mode 100644 doc/html/a00275.html
create mode 100644 doc/html/a00276.html
create mode 100644 doc/html/a00277.html
create mode 100644 doc/html/a00278.html
create mode 100644 doc/html/a00279.html
create mode 100644 doc/html/a00280.html
create mode 100644 doc/html/a00281.html
create mode 100644 doc/html/a00282.html
create mode 100644 doc/html/a00283.html
create mode 100644 doc/html/a00284.html
create mode 100644 doc/html/a00285.html
create mode 100644 doc/html/a00286.html
create mode 100644 doc/html/a00287.html
create mode 100644 doc/html/a00288.html
create mode 100644 doc/html/a00289.html
create mode 100644 doc/html/a00290.html
create mode 100644 doc/html/a00291.html
create mode 100644 doc/html/a00292.html
create mode 100644 doc/html/a00293.html
create mode 100644 doc/html/a00294.html
create mode 100644 doc/html/a00295.html
create mode 100644 doc/html/a00296.html
create mode 100644 doc/html/a00297.html
create mode 100644 doc/html/a00298.html
create mode 100644 doc/html/a00299.html
create mode 100644 doc/html/a00300.html
create mode 100644 doc/html/a00301.html
create mode 100644 doc/html/a00302.html
create mode 100644 doc/html/a00303.html
create mode 100644 doc/html/a00304.html
create mode 100644 doc/html/a00305.html
create mode 100644 doc/html/a00306.html
create mode 100644 doc/html/a00307.html
create mode 100644 doc/html/a00308.html
create mode 100644 doc/html/a00309.html
create mode 100644 doc/html/a00310.html
create mode 100644 doc/html/a00311.html
create mode 100644 doc/html/a00312.html
create mode 100644 doc/html/a00313.html
create mode 100644 doc/html/a00314.html
create mode 100644 doc/html/a00315.html
create mode 100644 doc/html/a00316.html
create mode 100644 doc/html/a00317.html
create mode 100644 doc/html/a00318.html
create mode 100644 doc/html/a00319.html
create mode 100644 doc/html/a00320.html
create mode 100644 doc/html/a00321.html
create mode 100644 doc/html/a00322.html
create mode 100644 doc/html/a00323.html
create mode 100644 doc/html/a00324.html
create mode 100644 doc/html/a00325.html
create mode 100644 doc/html/a00326.html
create mode 100644 doc/html/a00327.html
create mode 100644 doc/html/a00328.html
create mode 100644 doc/html/a00329.html
create mode 100644 doc/html/a00330.html
create mode 100644 doc/html/a00331.html
create mode 100644 doc/html/a00332.html
create mode 100644 doc/html/a00333.html
create mode 100644 doc/html/a00334.html
create mode 100644 doc/html/a00335.html
create mode 100644 doc/html/a00336.html
create mode 100644 doc/html/a00337.html
create mode 100644 doc/html/a00338.html
create mode 100644 doc/html/a00339.html
create mode 100644 doc/html/a00340.html
create mode 100644 doc/html/a00341.html
create mode 100644 doc/html/a00342.html
create mode 100644 doc/html/a00343.html
create mode 100644 doc/html/a00344.html
create mode 100644 doc/html/a00345.html
create mode 100644 doc/html/a00346.html
create mode 100644 doc/html/a00347.html
create mode 100644 doc/html/a00348.html
create mode 100644 doc/html/a00349.html
create mode 100644 doc/html/a00350.html
create mode 100644 doc/html/a00351.html
create mode 100644 doc/html/a00352.html
create mode 100644 doc/html/a00353.html
create mode 100644 doc/html/a00354.html
create mode 100644 doc/html/a00355.html
create mode 100644 doc/html/a00356.html
create mode 100644 doc/html/a00357.html
create mode 100644 doc/html/a00358.html
create mode 100644 doc/html/a00359.html
create mode 100644 doc/html/a00360.html
create mode 100644 doc/html/a00361.html
create mode 100644 doc/html/a00362.html
create mode 100644 doc/html/a00363.html
create mode 100644 doc/html/a00364.html
create mode 100644 doc/html/a00365.html
create mode 100644 doc/html/a00366.html
create mode 100644 doc/html/a00367.html
create mode 100644 doc/html/a00368.html
create mode 100644 doc/html/a00369.html
create mode 100644 doc/html/a00370.html
create mode 100644 doc/html/a00371.html
create mode 100644 doc/html/a00372.html
create mode 100644 doc/html/a00373.html
create mode 100644 doc/html/a00374.html
create mode 100644 doc/html/a00375.html
create mode 100644 doc/html/a00376.html
create mode 100644 doc/html/a00377.html
create mode 100644 doc/html/a00378.html
create mode 100644 doc/html/a00379.html
create mode 100644 doc/html/a00380.html
create mode 100644 doc/html/a00381.html
create mode 100644 doc/html/a00382.html
create mode 100644 doc/html/a00383.html
create mode 100644 doc/html/a00384.html
create mode 100644 doc/html/a00385.html
create mode 100644 doc/html/a00386.html
create mode 100644 doc/html/a00387.html
create mode 100644 doc/html/a00388.html
create mode 100644 doc/html/a00389.html
create mode 100644 doc/html/a00390.html
create mode 100644 doc/html/a00391.html
create mode 100644 doc/html/a00392.html
create mode 100644 doc/html/a00393.html
create mode 100644 doc/html/a00394.html
create mode 100644 doc/html/a00395.html
create mode 100644 doc/html/a00396.html
create mode 100644 doc/html/a00397.html
create mode 100644 doc/html/a00398.html
create mode 100644 doc/html/a00399.html
create mode 100644 doc/html/a00400.html
create mode 100644 doc/html/a00401.html
create mode 100644 doc/html/a00402.html
create mode 100644 doc/html/a00403.html
create mode 100644 doc/html/a00404.html
create mode 100644 doc/html/a00405.html
create mode 100644 doc/html/a00406.html
create mode 100644 doc/html/a00407.html
create mode 100644 doc/html/a00408.html
create mode 100644 doc/html/a00409.html
create mode 100644 doc/html/a00410.html
create mode 100644 doc/html/a00411.html
create mode 100644 doc/html/a00412.html
create mode 100644 doc/html/a00413.html
create mode 100644 doc/html/a00414.html
create mode 100644 doc/html/a00415.html
create mode 100644 doc/html/a00416.html
create mode 100644 doc/html/a00417.html
create mode 100644 doc/html/a00418.html
create mode 100644 doc/html/annotated.html
create mode 100644 doc/html/bc_s.png
create mode 100644 doc/html/bdwn.png
create mode 100644 doc/html/classes.html
create mode 100644 doc/html/closed.png
create mode 100644 doc/html/dir_525f2cc589630bacbdc3bb450847427e.html
create mode 100644 doc/html/dir_63fb2cc293d133785b96e521fa051167.html
create mode 100644 doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html
create mode 100644 doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html
create mode 100644 doc/html/doxygen.css
create mode 100644 doc/html/doxygen.png
create mode 100644 doc/html/dynsections.js
create mode 100644 doc/html/files.html
create mode 100644 doc/html/ftv2blank.png
create mode 100644 doc/html/ftv2cl.png
create mode 100644 doc/html/ftv2doc.png
create mode 100644 doc/html/ftv2folderclosed.png
create mode 100644 doc/html/ftv2folderopen.png
create mode 100644 doc/html/ftv2lastnode.png
create mode 100644 doc/html/ftv2link.png
create mode 100644 doc/html/ftv2mlastnode.png
create mode 100644 doc/html/ftv2mnode.png
create mode 100644 doc/html/ftv2mo.png
create mode 100644 doc/html/ftv2node.png
create mode 100644 doc/html/ftv2ns.png
create mode 100644 doc/html/ftv2plastnode.png
create mode 100644 doc/html/ftv2pnode.png
create mode 100644 doc/html/ftv2splitbar.png
create mode 100644 doc/html/ftv2vertline.png
create mode 100644 doc/html/functions.html
create mode 100644 doc/html/functions_0x62.html
create mode 100644 doc/html/functions_0x63.html
create mode 100644 doc/html/functions_0x64.html
create mode 100644 doc/html/functions_0x65.html
create mode 100644 doc/html/functions_0x66.html
create mode 100644 doc/html/functions_0x67.html
create mode 100644 doc/html/functions_0x68.html
create mode 100644 doc/html/functions_0x69.html
create mode 100644 doc/html/functions_0x6a.html
create mode 100644 doc/html/functions_0x6c.html
create mode 100644 doc/html/functions_0x6d.html
create mode 100644 doc/html/functions_0x6e.html
create mode 100644 doc/html/functions_0x6f.html
create mode 100644 doc/html/functions_0x70.html
create mode 100644 doc/html/functions_0x71.html
create mode 100644 doc/html/functions_0x72.html
create mode 100644 doc/html/functions_0x73.html
create mode 100644 doc/html/functions_0x74.html
create mode 100644 doc/html/functions_0x75.html
create mode 100644 doc/html/functions_0x76.html
create mode 100644 doc/html/functions_0x77.html
create mode 100644 doc/html/functions_0x7e.html
create mode 100644 doc/html/functions_enum.html
create mode 100644 doc/html/functions_eval.html
create mode 100644 doc/html/functions_func.html
create mode 100644 doc/html/functions_func_0x62.html
create mode 100644 doc/html/functions_func_0x63.html
create mode 100644 doc/html/functions_func_0x64.html
create mode 100644 doc/html/functions_func_0x65.html
create mode 100644 doc/html/functions_func_0x66.html
create mode 100644 doc/html/functions_func_0x67.html
create mode 100644 doc/html/functions_func_0x68.html
create mode 100644 doc/html/functions_func_0x69.html
create mode 100644 doc/html/functions_func_0x6a.html
create mode 100644 doc/html/functions_func_0x6c.html
create mode 100644 doc/html/functions_func_0x6d.html
create mode 100644 doc/html/functions_func_0x6e.html
create mode 100644 doc/html/functions_func_0x6f.html
create mode 100644 doc/html/functions_func_0x70.html
create mode 100644 doc/html/functions_func_0x71.html
create mode 100644 doc/html/functions_func_0x72.html
create mode 100644 doc/html/functions_func_0x73.html
create mode 100644 doc/html/functions_func_0x74.html
create mode 100644 doc/html/functions_func_0x75.html
create mode 100644 doc/html/functions_func_0x77.html
create mode 100644 doc/html/functions_func_0x7e.html
create mode 100644 doc/html/functions_rela.html
create mode 100644 doc/html/functions_type.html
create mode 100644 doc/html/functions_vars.html
create mode 100644 doc/html/globals.html
create mode 100644 doc/html/globals_func.html
create mode 100644 doc/html/hierarchy.html
create mode 100644 doc/html/index.html
create mode 100644 doc/html/jquery.js
create mode 100644 doc/html/modules.html
create mode 100644 doc/html/namespacemembers.html
create mode 100644 doc/html/namespacemembers_enum.html
create mode 100644 doc/html/namespacemembers_eval.html
create mode 100644 doc/html/namespacemembers_func.html
create mode 100644 doc/html/namespacemembers_type.html
create mode 100644 doc/html/namespaces.html
create mode 100644 doc/html/nav_f.png
create mode 100644 doc/html/nav_g.png
create mode 100644 doc/html/nav_h.png
create mode 100644 doc/html/open.png
create mode 100644 doc/html/pages.html
create mode 100644 doc/html/sync_off.png
create mode 100644 doc/html/sync_on.png
create mode 100644 doc/html/tab_a.png
create mode 100644 doc/html/tab_b.png
create mode 100644 doc/html/tab_h.png
create mode 100644 doc/html/tab_s.png
create mode 100644 doc/html/tabs.css
delete mode 100644 download.md
create mode 100644 examples/GettingStarted/index.html
create mode 100644 examples/GettingStarted/sub_string_finder/Makefile
create mode 100644 examples/GettingStarted/sub_string_finder/Makefile.windows
create mode 100644 examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.sln
create mode 100644 examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcxproj
create mode 100644 examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcxproj
create mode 100644 examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcxproj
create mode 100644 examples/GettingStarted/sub_string_finder/readme.html
create mode 100644 examples/GettingStarted/sub_string_finder/sub_string_finder.cpp
create mode 100644 examples/GettingStarted/sub_string_finder/sub_string_finder_extended.cpp
create mode 100644 examples/GettingStarted/sub_string_finder/sub_string_finder_pretty.cpp
create mode 100644 examples/GettingStarted/sub_string_finder/xcode/sub_string_finder.xcodeproj/project.pbxproj
create mode 100644 examples/Makefile
create mode 100644 examples/common/copy_libraries.bat
create mode 100644 examples/common/examples-common.inc
create mode 100644 examples/common/gui/Makefile.gmake
create mode 100644 examples/common/gui/Makefile.win
create mode 100644 examples/common/gui/convideo.cpp
create mode 100644 examples/common/gui/d2dvideo.cpp
create mode 100644 examples/common/gui/dxcheck.bat
create mode 100644 examples/common/gui/gdivideo.cpp
create mode 100644 examples/common/gui/macvideo.cpp
create mode 100644 examples/common/gui/video.h
create mode 100644 examples/common/gui/winvideo.h
create mode 100644 examples/common/gui/xcode/tbbExample/OpenGLView.h
create mode 100644 examples/common/gui/xcode/tbbExample/OpenGLView.m
create mode 100644 examples/common/gui/xcode/tbbExample/PkgInfo
create mode 100644 examples/common/gui/xcode/tbbExample/en.lproj/InfoPlist.strings
create mode 100644 examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.nib
create mode 100644 examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.xib
create mode 100644 examples/common/gui/xcode/tbbExample/iOS.storyboard
create mode 100644 examples/common/gui/xcode/tbbExample/main.m
create mode 100644 examples/common/gui/xcode/tbbExample/tbbAppDelegate.h
create mode 100644 examples/common/gui/xcode/tbbExample/tbbAppDelegate.m
create mode 100644 examples/common/gui/xcode/tbbExample/tbbExample-Info.ios.plist
create mode 100644 examples/common/gui/xcode/tbbExample/tbbExample-Info.plist
create mode 100644 examples/common/gui/xcode/tbbExample/tbbExample-Prefix.pch
create mode 100644 examples/common/gui/xvideo.cpp
create mode 100644 examples/common/index.html
create mode 100644 examples/common/toolset.props
create mode 100644 examples/common/utility/fast_random.h
create mode 100644 examples/common/utility/utility.h
create mode 100644 examples/concurrent_hash_map/count_strings/Makefile
create mode 100644 examples/concurrent_hash_map/count_strings/Makefile.windows
create mode 100644 examples/concurrent_hash_map/count_strings/count_strings.cpp
create mode 100644 examples/concurrent_hash_map/count_strings/msvs/count_strings.sln
create mode 100644 examples/concurrent_hash_map/count_strings/msvs/count_strings.vcxproj
create mode 100644 examples/concurrent_hash_map/count_strings/readme.html
create mode 100644 examples/concurrent_hash_map/count_strings/xcode/count_strings.xcodeproj/project.pbxproj
create mode 100644 examples/concurrent_hash_map/index.html
create mode 100644 examples/concurrent_priority_queue/index.html
create mode 100644 examples/concurrent_priority_queue/shortpath/Makefile
create mode 100644 examples/concurrent_priority_queue/shortpath/Makefile.windows
create mode 100644 examples/concurrent_priority_queue/shortpath/msvs/shortpath.sln
create mode 100644 examples/concurrent_priority_queue/shortpath/msvs/shortpath.vcxproj
create mode 100644 examples/concurrent_priority_queue/shortpath/readme.html
create mode 100644 examples/concurrent_priority_queue/shortpath/shortpath.cpp
create mode 100644 examples/concurrent_priority_queue/shortpath/xcode/shortpath.xcodeproj/project.pbxproj
create mode 100644 examples/graph/binpack/Makefile
create mode 100644 examples/graph/binpack/Makefile.windows
create mode 100644 examples/graph/binpack/binpack.cpp
create mode 100644 examples/graph/binpack/msvs/binpack.sln
create mode 100644 examples/graph/binpack/msvs/binpack.vcxproj
create mode 100644 examples/graph/binpack/readme.html
create mode 100644 examples/graph/binpack/xcode/binpack.xcodeproj/project.pbxproj
create mode 100644 examples/graph/cholesky/Makefile
create mode 100644 examples/graph/cholesky/Makefile.windows
create mode 100644 examples/graph/cholesky/cholesky.cpp
create mode 100644 examples/graph/cholesky/init.cpp
create mode 100644 examples/graph/cholesky/msvs/cholesky.sln
create mode 100644 examples/graph/cholesky/msvs/cholesky.vcxproj
create mode 100644 examples/graph/cholesky/readme.html
create mode 100644 examples/graph/cholesky/xcode/cholesky.xcodeproj/project.pbxproj
create mode 100644 examples/graph/dining_philosophers/Makefile
create mode 100644 examples/graph/dining_philosophers/Makefile.windows
create mode 100644 examples/graph/dining_philosophers/dining_philosophers.cpp
create mode 100644 examples/graph/dining_philosophers/msvs/dining_philosophers.sln
create mode 100644 examples/graph/dining_philosophers/msvs/dining_philosophers.vcxproj
create mode 100644 examples/graph/dining_philosophers/readme.html
create mode 100644 examples/graph/dining_philosophers/xcode/dining_philosophers.xcodeproj/project.pbxproj
create mode 100644 examples/graph/fgbzip2/Makefile
create mode 100644 examples/graph/fgbzip2/Makefile.windows
create mode 100644 examples/graph/fgbzip2/blocksort.cpp
create mode 100644 examples/graph/fgbzip2/bzlib.cpp
create mode 100644 examples/graph/fgbzip2/bzlib.h
create mode 100644 examples/graph/fgbzip2/bzlib_private.h
create mode 100644 examples/graph/fgbzip2/compress.cpp
create mode 100644 examples/graph/fgbzip2/crctable.cpp
create mode 100644 examples/graph/fgbzip2/decompress.cpp
create mode 100644 examples/graph/fgbzip2/fgbzip2.cpp
create mode 100644 examples/graph/fgbzip2/huffman.cpp
create mode 100644 examples/graph/fgbzip2/msvs/fgbzip2.sln
create mode 100644 examples/graph/fgbzip2/msvs/fgbzip2.vcxproj
create mode 100644 examples/graph/fgbzip2/randtable.cpp
create mode 100644 examples/graph/fgbzip2/readme.html
create mode 100644 examples/graph/fgbzip2/xcode/fgbzip2.xcodeproj/project.pbxproj
create mode 100644 examples/graph/index.html
create mode 100644 examples/graph/logic_sim/D_latch.h
create mode 100644 examples/graph/logic_sim/Makefile
create mode 100644 examples/graph/logic_sim/Makefile.windows
create mode 100644 examples/graph/logic_sim/basics.h
create mode 100644 examples/graph/logic_sim/four_bit_adder.h
create mode 100644 examples/graph/logic_sim/msvs/logic_sim.sln
create mode 100644 examples/graph/logic_sim/msvs/logic_sim.vcxproj
create mode 100644 examples/graph/logic_sim/one_bit_adder.h
create mode 100644 examples/graph/logic_sim/readme.html
create mode 100644 examples/graph/logic_sim/test_all.cpp
create mode 100644 examples/graph/logic_sim/two_bit_adder.h
create mode 100644 examples/graph/matmult/Makefile
create mode 100644 examples/graph/matmult/Makefile.windows
create mode 100644 examples/graph/matmult/matmult.cpp
create mode 100644 examples/graph/matmult/msvs/matmult.sln
create mode 100644 examples/graph/matmult/msvs/matmult.vcxproj
create mode 100644 examples/graph/matmult/readme.html
create mode 100644 examples/graph/som/Makefile
create mode 100644 examples/graph/som/Makefile.windows
create mode 100644 examples/graph/som/msvs/som.sln
create mode 100644 examples/graph/som/msvs/som.vcxproj
create mode 100644 examples/graph/som/readme.html
create mode 100644 examples/graph/som/som.cpp
create mode 100644 examples/graph/som/som.h
create mode 100644 examples/graph/som/som_graph.cpp
create mode 100644 examples/graph/som/xcode/som.xcodeproj/project.pbxproj
create mode 100644 examples/graph/stereo/Makefile
create mode 100644 examples/graph/stereo/Makefile.windows
create mode 100644 examples/graph/stereo/imageEffects.cl
create mode 100644 examples/graph/stereo/lodepng.cpp
create mode 100644 examples/graph/stereo/lodepng.h
create mode 100644 examples/graph/stereo/msvs/stereo.sln
create mode 100644 examples/graph/stereo/msvs/stereo.vcxproj
create mode 100644 examples/graph/stereo/readme.html
create mode 100644 examples/graph/stereo/stereo.cpp
create mode 100644 examples/graph/stereo/utils.h
create mode 100644 examples/graph/stereo/xcode/stereo.xcodeproj/project.pbxproj
create mode 100644 examples/index.html
create mode 100644 examples/parallel_do/index.html
create mode 100644 examples/parallel_do/parallel_preorder/Graph.cpp
create mode 100644 examples/parallel_do/parallel_preorder/Graph.h
create mode 100644 examples/parallel_do/parallel_preorder/Makefile
create mode 100644 examples/parallel_do/parallel_preorder/Makefile.windows
create mode 100644 examples/parallel_do/parallel_preorder/Matrix.h
create mode 100644 examples/parallel_do/parallel_preorder/main.cpp
create mode 100644 examples/parallel_do/parallel_preorder/msvs/parallel_preorder.sln
create mode 100644 examples/parallel_do/parallel_preorder/msvs/parallel_preorder.vcxproj
create mode 100644 examples/parallel_do/parallel_preorder/parallel_preorder.cpp
create mode 100644 examples/parallel_do/parallel_preorder/readme.html
create mode 100644 examples/parallel_do/parallel_preorder/xcode/parallel_preorder.xcodeproj/project.pbxproj
create mode 100644 examples/parallel_for/game_of_life/Makefile
create mode 100644 examples/parallel_for/game_of_life/Makefile.windows
create mode 100644 examples/parallel_for/game_of_life/msvs/Game_of_life.sln
create mode 100644 examples/parallel_for/game_of_life/msvs/Game_of_life.vcxproj
create mode 100644 examples/parallel_for/game_of_life/msvs/app.ico
create mode 100644 examples/parallel_for/game_of_life/msvs/app.rc
create mode 100644 examples/parallel_for/game_of_life/msvs/resource.h
create mode 100644 examples/parallel_for/game_of_life/readme.html
create mode 100644 examples/parallel_for/game_of_life/src/AssemblyInfo.cpp
create mode 100644 examples/parallel_for/game_of_life/src/Board.h
create mode 100644 examples/parallel_for/game_of_life/src/Evolution.cpp
create mode 100644 examples/parallel_for/game_of_life/src/Evolution.h
create mode 100644 examples/parallel_for/game_of_life/src/Form1.h
create mode 100644 examples/parallel_for/game_of_life/src/Game_of_life.cpp
create mode 100644 examples/parallel_for/game_of_life/src/Update_state.cpp
create mode 100644 examples/parallel_for/game_of_life/xcode/game_of_life.xcodeproj/project.pbxproj
create mode 100644 examples/parallel_for/index.html
create mode 100644 examples/parallel_for/polygon_overlay/Makefile
create mode 100644 examples/parallel_for/polygon_overlay/Makefile.windows
create mode 100644 examples/parallel_for/polygon_overlay/msvs/polygon_overlay.sln
create mode 100644 examples/parallel_for/polygon_overlay/msvs/pover.rc
create mode 100644 examples/parallel_for/polygon_overlay/msvs/pover.vcxproj
create mode 100644 examples/parallel_for/polygon_overlay/msvs/resource.h
create mode 100644 examples/parallel_for/polygon_overlay/polymain.cpp
create mode 100644 examples/parallel_for/polygon_overlay/polymain.h
create mode 100644 examples/parallel_for/polygon_overlay/polyover.cpp
create mode 100644 examples/parallel_for/polygon_overlay/polyover.h
create mode 100644 examples/parallel_for/polygon_overlay/pover_global.h
create mode 100644 examples/parallel_for/polygon_overlay/pover_video.cpp
create mode 100644 examples/parallel_for/polygon_overlay/pover_video.h
create mode 100644 examples/parallel_for/polygon_overlay/readme.html
create mode 100644 examples/parallel_for/polygon_overlay/rpolygon.h
create mode 100644 examples/parallel_for/polygon_overlay/speedup.gif
create mode 100644 examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj
create mode 100644 examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme
create mode 100644 examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme
create mode 100644 examples/parallel_for/seismic/Makefile
create mode 100644 examples/parallel_for/seismic/Makefile.windows
create mode 100644 examples/parallel_for/seismic/main.cpp
create mode 100644 examples/parallel_for/seismic/msvs/SeismicSimulation.ico
create mode 100644 examples/parallel_for/seismic/msvs/SeismicSimulation.rc
create mode 100644 examples/parallel_for/seismic/msvs/SeismicSimulation.vcxproj
create mode 100644 examples/parallel_for/seismic/msvs/resource.h
create mode 100644 examples/parallel_for/seismic/msvs/seismic.sln
create mode 100644 examples/parallel_for/seismic/msvs/small.ico
create mode 100644 examples/parallel_for/seismic/readme.html
create mode 100644 examples/parallel_for/seismic/seismic_video.cpp
create mode 100644 examples/parallel_for/seismic/seismic_video.h
create mode 100644 examples/parallel_for/seismic/universe.cpp
create mode 100644 examples/parallel_for/seismic/universe.h
create mode 100644 examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj
create mode 100644 examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme
create mode 100644 examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme
create mode 100644 examples/parallel_for/tachyon/Makefile
create mode 100644 examples/parallel_for/tachyon/Makefile.windows
create mode 100644 examples/parallel_for/tachyon/dat/820spheres.dat
create mode 100644 examples/parallel_for/tachyon/dat/balls.dat
create mode 100644 examples/parallel_for/tachyon/dat/balls3.dat
create mode 100644 examples/parallel_for/tachyon/dat/lattice.dat
create mode 100644 examples/parallel_for/tachyon/dat/model2.dat
create mode 100644 examples/parallel_for/tachyon/dat/teapot.dat
create mode 100644 examples/parallel_for/tachyon/dat/trypsin4pti.dat
create mode 100644 examples/parallel_for/tachyon/msvs/gui.ico
create mode 100644 examples/parallel_for/tachyon/msvs/gui.rc
create mode 100644 examples/parallel_for/tachyon/msvs/resource.h
create mode 100644 examples/parallel_for/tachyon/msvs/small.ico
create mode 100644 examples/parallel_for/tachyon/msvs/tachyon.serial.vcxproj
create mode 100644 examples/parallel_for/tachyon/msvs/tachyon.sln
create mode 100644 examples/parallel_for/tachyon/msvs/tachyon.tbb.vcxproj
create mode 100644 examples/parallel_for/tachyon/msvs/tachyon.tbb1d.vcxproj
create mode 100644 examples/parallel_for/tachyon/msvs/tachyon.vcxproj
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/App.xaml
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/App.xaml.cpp
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/App.xaml.h
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/Assets/Logo.png
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/Assets/SmallLogo.png
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/Assets/SplashScreen.png
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/Assets/StoreLogo.png
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/Common/StandardStyles.xaml
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.cpp
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.h
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.cpp
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.h
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/Package.appxmanifest
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/copy_libraries_and_assets.bat
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/pch.h
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/tbbTachyon.sln
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/tbbTachyon.vcxproj
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/tbbTachyon.vcxproj.filters
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.cpp
create mode 100644 examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.h
create mode 100644 examples/parallel_for/tachyon/readme.html
create mode 100644 examples/parallel_for/tachyon/src/api.cpp
create mode 100644 examples/parallel_for/tachyon/src/api.h
create mode 100644 examples/parallel_for/tachyon/src/apigeom.cpp
create mode 100644 examples/parallel_for/tachyon/src/apitrigeom.cpp
create mode 100644 examples/parallel_for/tachyon/src/apitrigeom.h
create mode 100644 examples/parallel_for/tachyon/src/bndbox.cpp
create mode 100644 examples/parallel_for/tachyon/src/bndbox.h
create mode 100644 examples/parallel_for/tachyon/src/box.cpp
create mode 100644 examples/parallel_for/tachyon/src/box.h
create mode 100644 examples/parallel_for/tachyon/src/camera.cpp
create mode 100644 examples/parallel_for/tachyon/src/camera.h
create mode 100644 examples/parallel_for/tachyon/src/coordsys.cpp
create mode 100644 examples/parallel_for/tachyon/src/coordsys.h
create mode 100644 examples/parallel_for/tachyon/src/cylinder.cpp
create mode 100644 examples/parallel_for/tachyon/src/cylinder.h
create mode 100644 examples/parallel_for/tachyon/src/extvol.cpp
create mode 100644 examples/parallel_for/tachyon/src/extvol.h
create mode 100644 examples/parallel_for/tachyon/src/global.cpp
create mode 100644 examples/parallel_for/tachyon/src/global.h
create mode 100644 examples/parallel_for/tachyon/src/grid.cpp
create mode 100644 examples/parallel_for/tachyon/src/grid.h
create mode 100644 examples/parallel_for/tachyon/src/imageio.cpp
create mode 100644 examples/parallel_for/tachyon/src/imageio.h
create mode 100644 examples/parallel_for/tachyon/src/imap.cpp
create mode 100644 examples/parallel_for/tachyon/src/imap.h
create mode 100644 examples/parallel_for/tachyon/src/intersect.cpp
create mode 100644 examples/parallel_for/tachyon/src/intersect.h
create mode 100644 examples/parallel_for/tachyon/src/jpeg.cpp
create mode 100644 examples/parallel_for/tachyon/src/jpeg.h
create mode 100644 examples/parallel_for/tachyon/src/light.cpp
create mode 100644 examples/parallel_for/tachyon/src/light.h
create mode 100644 examples/parallel_for/tachyon/src/machine.h
create mode 100644 examples/parallel_for/tachyon/src/macros.h
create mode 100644 examples/parallel_for/tachyon/src/main.cpp
create mode 100644 examples/parallel_for/tachyon/src/objbound.cpp
create mode 100644 examples/parallel_for/tachyon/src/objbound.h
create mode 100644 examples/parallel_for/tachyon/src/parse.cpp
create mode 100644 examples/parallel_for/tachyon/src/parse.h
create mode 100644 examples/parallel_for/tachyon/src/plane.cpp
create mode 100644 examples/parallel_for/tachyon/src/plane.h
create mode 100644 examples/parallel_for/tachyon/src/ppm.cpp
create mode 100644 examples/parallel_for/tachyon/src/ppm.h
create mode 100644 examples/parallel_for/tachyon/src/pthread.cpp
create mode 100644 examples/parallel_for/tachyon/src/pthread_w.h
create mode 100644 examples/parallel_for/tachyon/src/quadric.cpp
create mode 100644 examples/parallel_for/tachyon/src/quadric.h
create mode 100644 examples/parallel_for/tachyon/src/render.cpp
create mode 100644 examples/parallel_for/tachyon/src/render.h
create mode 100644 examples/parallel_for/tachyon/src/ring.cpp
create mode 100644 examples/parallel_for/tachyon/src/ring.h
create mode 100644 examples/parallel_for/tachyon/src/shade.cpp
create mode 100644 examples/parallel_for/tachyon/src/shade.h
create mode 100644 examples/parallel_for/tachyon/src/sphere.cpp
create mode 100644 examples/parallel_for/tachyon/src/sphere.h
create mode 100644 examples/parallel_for/tachyon/src/tachyon_video.cpp
create mode 100644 examples/parallel_for/tachyon/src/tachyon_video.h
create mode 100644 examples/parallel_for/tachyon/src/texture.cpp
create mode 100644 examples/parallel_for/tachyon/src/texture.h
create mode 100644 examples/parallel_for/tachyon/src/tgafile.cpp
create mode 100644 examples/parallel_for/tachyon/src/tgafile.h
create mode 100644 examples/parallel_for/tachyon/src/trace.h
create mode 100644 examples/parallel_for/tachyon/src/trace.serial.cpp
create mode 100644 examples/parallel_for/tachyon/src/trace.simple.cpp
create mode 100644 examples/parallel_for/tachyon/src/trace.tbb.cpp
create mode 100644 examples/parallel_for/tachyon/src/trace.tbb1d.cpp
create mode 100644 examples/parallel_for/tachyon/src/trace_rest.cpp
create mode 100644 examples/parallel_for/tachyon/src/triangle.cpp
create mode 100644 examples/parallel_for/tachyon/src/triangle.h
create mode 100644 examples/parallel_for/tachyon/src/types.h
create mode 100644 examples/parallel_for/tachyon/src/ui.cpp
create mode 100644 examples/parallel_for/tachyon/src/ui.h
create mode 100644 examples/parallel_for/tachyon/src/util.cpp
create mode 100644 examples/parallel_for/tachyon/src/util.h
create mode 100644 examples/parallel_for/tachyon/src/vector.cpp
create mode 100644 examples/parallel_for/tachyon/src/vector.h
create mode 100644 examples/parallel_for/tachyon/src/vol.cpp
create mode 100644 examples/parallel_for/tachyon/src/vol.h
create mode 100644 examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/project.pbxproj
create mode 100644 examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.serial.xcscheme
create mode 100644 examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.ios.xcscheme
create mode 100644 examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme
create mode 100644 examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb1d.xcscheme
create mode 100644 examples/parallel_reduce/convex_hull/Makefile
create mode 100644 examples/parallel_reduce/convex_hull/Makefile.windows
create mode 100644 examples/parallel_reduce/convex_hull/convex_hull.h
create mode 100644 examples/parallel_reduce/convex_hull/convex_hull_bench.cpp
create mode 100644 examples/parallel_reduce/convex_hull/convex_hull_sample.cpp
create mode 100644 examples/parallel_reduce/convex_hull/msvs/convex_hull.sln
create mode 100644 examples/parallel_reduce/convex_hull/msvs/convex_hull_benchmark.vcxproj
create mode 100644 examples/parallel_reduce/convex_hull/msvs/convex_hull_sample.vcxproj
create mode 100644 examples/parallel_reduce/convex_hull/readme.html
create mode 100644 examples/parallel_reduce/convex_hull/xcode/convex_hull.xcodeproj/project.pbxproj
create mode 100644 examples/parallel_reduce/index.html
create mode 100644 examples/parallel_reduce/primes/Makefile
create mode 100644 examples/parallel_reduce/primes/Makefile.windows
create mode 100644 examples/parallel_reduce/primes/main.cpp
create mode 100644 examples/parallel_reduce/primes/msvs/primes.sln
create mode 100644 examples/parallel_reduce/primes/msvs/primes.vcxproj
create mode 100644 examples/parallel_reduce/primes/primes.cpp
create mode 100644 examples/parallel_reduce/primes/primes.h
create mode 100644 examples/parallel_reduce/primes/readme.html
create mode 100644 examples/parallel_reduce/primes/xcode/primes.xcodeproj/project.pbxproj
create mode 100644 examples/pipeline/index.html
create mode 100644 examples/pipeline/square/Makefile
create mode 100644 examples/pipeline/square/Makefile.windows
create mode 100644 examples/pipeline/square/gen_input.cpp
create mode 100644 examples/pipeline/square/msvs/square.sln
create mode 100644 examples/pipeline/square/msvs/square.vcxproj
create mode 100644 examples/pipeline/square/readme.html
create mode 100644 examples/pipeline/square/square.cpp
create mode 100644 examples/pipeline/square/xcode/square.xcodeproj/project.pbxproj
create mode 100644 examples/task/index.html
create mode 100644 examples/task/tree_sum/Makefile
create mode 100644 examples/task/tree_sum/Makefile.windows
create mode 100644 examples/task/tree_sum/OptimizedParallelSumTree.cpp
create mode 100644 examples/task/tree_sum/SerialSumTree.cpp
create mode 100644 examples/task/tree_sum/SimpleParallelSumTree.cpp
create mode 100644 examples/task/tree_sum/TreeMaker.h
create mode 100644 examples/task/tree_sum/common.h
create mode 100644 examples/task/tree_sum/main.cpp
create mode 100644 examples/task/tree_sum/msvs/tree_sum.sln
create mode 100644 examples/task/tree_sum/msvs/tree_sum.vcxproj
create mode 100644 examples/task/tree_sum/readme.html
create mode 100644 examples/task/tree_sum/xcode/tree_sum.xcodeproj/project.pbxproj
create mode 100644 examples/task_arena/fractal/Makefile
create mode 100644 examples/task_arena/fractal/Makefile.windows
create mode 100644 examples/task_arena/fractal/fractal.cpp
create mode 100644 examples/task_arena/fractal/fractal.h
create mode 100644 examples/task_arena/fractal/fractal_video.h
create mode 100644 examples/task_arena/fractal/main.cpp
create mode 100644 examples/task_arena/fractal/msvs/fractal.sln
create mode 100644 examples/task_arena/fractal/msvs/fractal.vcxproj
create mode 100644 examples/task_arena/fractal/msvs/gui.ico
create mode 100644 examples/task_arena/fractal/msvs/gui.rc
create mode 100644 examples/task_arena/fractal/msvs/resource.h
create mode 100644 examples/task_arena/fractal/msvs/small.ico
create mode 100644 examples/task_arena/fractal/readme.html
create mode 100644 examples/task_arena/fractal/xcode/fractal.xcodeproj/project.pbxproj
create mode 100644 examples/task_arena/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme
create mode 100644 examples/task_arena/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme
create mode 100644 examples/task_arena/index.html
create mode 100644 examples/task_group/index.html
create mode 100644 examples/task_group/sudoku/Makefile
create mode 100644 examples/task_group/sudoku/Makefile.windows
create mode 100644 examples/task_group/sudoku/input1
create mode 100644 examples/task_group/sudoku/input2
create mode 100644 examples/task_group/sudoku/input3
create mode 100644 examples/task_group/sudoku/input4
create mode 100644 examples/task_group/sudoku/msvs/sudoku.sln
create mode 100644 examples/task_group/sudoku/msvs/sudoku.vcxproj
create mode 100644 examples/task_group/sudoku/readme.html
create mode 100644 examples/task_group/sudoku/sudoku.cpp
create mode 100644 examples/task_group/sudoku/xcode/sudoku.xcodeproj/project.pbxproj
create mode 100644 examples/test_all/fibonacci/Fibonacci.cpp
create mode 100644 examples/test_all/fibonacci/Makefile
create mode 100644 examples/test_all/fibonacci/Makefile.windows
create mode 100644 examples/test_all/fibonacci/msvs/fibonacci.sln
create mode 100644 examples/test_all/fibonacci/msvs/fibonacci.vcxproj
create mode 100644 examples/test_all/fibonacci/readme.html
create mode 100644 examples/test_all/fibonacci/xcode/fibonacci.xcodeproj/project.pbxproj
create mode 100644 examples/test_all/index.html
create mode 100644 include/index.html
create mode 100644 include/serial/tbb/parallel_for.h
create mode 100644 include/serial/tbb/tbb_annotate.h
create mode 100644 include/tbb/aggregator.h
create mode 100644 include/tbb/aligned_space.h
create mode 100644 include/tbb/atomic.h
create mode 100644 include/tbb/blocked_range.h
create mode 100644 include/tbb/blocked_range2d.h
create mode 100644 include/tbb/blocked_range3d.h
create mode 100644 include/tbb/cache_aligned_allocator.h
create mode 100644 include/tbb/combinable.h
create mode 100644 include/tbb/compat/condition_variable
create mode 100644 include/tbb/compat/ppl.h
create mode 100644 include/tbb/compat/thread
create mode 100644 include/tbb/compat/tuple
create mode 100644 include/tbb/concurrent_hash_map.h
create mode 100644 include/tbb/concurrent_lru_cache.h
create mode 100644 include/tbb/concurrent_priority_queue.h
create mode 100644 include/tbb/concurrent_queue.h
create mode 100644 include/tbb/concurrent_unordered_map.h
create mode 100644 include/tbb/concurrent_unordered_set.h
create mode 100644 include/tbb/concurrent_vector.h
create mode 100644 include/tbb/critical_section.h
create mode 100644 include/tbb/enumerable_thread_specific.h
create mode 100644 include/tbb/flow_graph.h
create mode 100644 include/tbb/flow_graph_abstractions.h
create mode 100644 include/tbb/flow_graph_opencl_node.h
create mode 100644 include/tbb/gfx_factory.h
create mode 100644 include/tbb/global_control.h
create mode 100644 include/tbb/index.html
create mode 100644 include/tbb/internal/_aggregator_impl.h
create mode 100644 include/tbb/internal/_concurrent_queue_impl.h
create mode 100644 include/tbb/internal/_concurrent_unordered_impl.h
create mode 100644 include/tbb/internal/_flow_graph_async_msg_impl.h
create mode 100644 include/tbb/internal/_flow_graph_impl.h
create mode 100644 include/tbb/internal/_flow_graph_indexer_impl.h
create mode 100644 include/tbb/internal/_flow_graph_item_buffer_impl.h
create mode 100644 include/tbb/internal/_flow_graph_join_impl.h
create mode 100644 include/tbb/internal/_flow_graph_node_impl.h
create mode 100644 include/tbb/internal/_flow_graph_streaming_node.h
create mode 100644 include/tbb/internal/_flow_graph_tagged_buffer_impl.h
create mode 100644 include/tbb/internal/_flow_graph_trace_impl.h
create mode 100644 include/tbb/internal/_flow_graph_types_impl.h
create mode 100644 include/tbb/internal/_mutex_padding.h
create mode 100644 include/tbb/internal/_range_iterator.h
create mode 100644 include/tbb/internal/_tbb_hash_compare_impl.h
create mode 100644 include/tbb/internal/_tbb_strings.h
create mode 100644 include/tbb/internal/_tbb_windef.h
create mode 100644 include/tbb/internal/_template_helpers.h
create mode 100644 include/tbb/internal/_x86_eliding_mutex_impl.h
create mode 100644 include/tbb/internal/_x86_rtm_rw_mutex_impl.h
create mode 100644 include/tbb/machine/gcc_armv7.h
create mode 100644 include/tbb/machine/gcc_generic.h
create mode 100644 include/tbb/machine/gcc_ia32_common.h
create mode 100644 include/tbb/machine/gcc_itsx.h
create mode 100644 include/tbb/machine/ibm_aix51.h
create mode 100644 include/tbb/machine/icc_generic.h
create mode 100644 include/tbb/machine/linux_common.h
create mode 100644 include/tbb/machine/linux_ia32.h
create mode 100644 include/tbb/machine/linux_ia64.h
create mode 100644 include/tbb/machine/linux_intel64.h
create mode 100644 include/tbb/machine/mac_ppc.h
create mode 100644 include/tbb/machine/macos_common.h
create mode 100644 include/tbb/machine/mic_common.h
create mode 100644 include/tbb/machine/msvc_armv7.h
create mode 100644 include/tbb/machine/msvc_ia32_common.h
create mode 100644 include/tbb/machine/sunos_sparc.h
create mode 100644 include/tbb/machine/windows_api.h
create mode 100644 include/tbb/machine/windows_ia32.h
create mode 100644 include/tbb/machine/windows_intel64.h
create mode 100644 include/tbb/memory_pool.h
create mode 100644 include/tbb/mutex.h
create mode 100644 include/tbb/null_mutex.h
create mode 100644 include/tbb/null_rw_mutex.h
create mode 100644 include/tbb/parallel_do.h
create mode 100644 include/tbb/parallel_for.h
create mode 100644 include/tbb/parallel_for_each.h
create mode 100644 include/tbb/parallel_invoke.h
create mode 100644 include/tbb/parallel_reduce.h
create mode 100644 include/tbb/parallel_scan.h
create mode 100644 include/tbb/parallel_sort.h
create mode 100644 include/tbb/parallel_while.h
create mode 100644 include/tbb/partitioner.h
create mode 100644 include/tbb/pipeline.h
create mode 100644 include/tbb/queuing_mutex.h
create mode 100644 include/tbb/queuing_rw_mutex.h
create mode 100644 include/tbb/reader_writer_lock.h
create mode 100644 include/tbb/recursive_mutex.h
create mode 100644 include/tbb/runtime_loader.h
create mode 100644 include/tbb/scalable_allocator.h
create mode 100644 include/tbb/spin_mutex.h
create mode 100644 include/tbb/spin_rw_mutex.h
create mode 100644 include/tbb/task.h
create mode 100644 include/tbb/task_arena.h
create mode 100644 include/tbb/task_group.h
create mode 100644 include/tbb/task_scheduler_init.h
create mode 100644 include/tbb/task_scheduler_observer.h
create mode 100644 include/tbb/tbb.h
create mode 100644 include/tbb/tbb_allocator.h
create mode 100644 include/tbb/tbb_config.h
create mode 100644 include/tbb/tbb_disable_exceptions.h
create mode 100644 include/tbb/tbb_exception.h
create mode 100644 include/tbb/tbb_machine.h
create mode 100644 include/tbb/tbb_profiling.h
create mode 100644 include/tbb/tbb_stddef.h
create mode 100644 include/tbb/tbb_thread.h
create mode 100644 include/tbb/tbbmalloc_proxy.h
create mode 100644 include/tbb/tick_count.h
create mode 100644 index.html
create mode 100644 jni/Android.mk
create mode 100644 jni/Application.mk
create mode 100644 python/Makefile
create mode 100644 python/index.html
create mode 100644 python/setup.py
create mode 100644 python/tbb.i
create mode 100644 python/tbb.src.py
create mode 100644 src/Makefile
create mode 100644 src/index.html
create mode 100644 src/old/concurrent_queue_v2.cpp
create mode 100644 src/old/concurrent_queue_v2.h
create mode 100644 src/old/concurrent_vector_v2.cpp
create mode 100644 src/old/concurrent_vector_v2.h
create mode 100644 src/old/spin_rw_mutex_v2.cpp
create mode 100644 src/old/spin_rw_mutex_v2.h
create mode 100644 src/old/task_v2.cpp
create mode 100644 src/old/test_concurrent_queue_v2.cpp
create mode 100644 src/old/test_concurrent_vector_v2.cpp
create mode 100644 src/old/test_mutex_v2.cpp
create mode 100644 src/old/test_task_scheduler_observer_v3.cpp
create mode 100644 src/perf/coarse_grained_raii_lru_cache.h
create mode 100644 src/perf/cpq_pdes.cpp
create mode 100644 src/perf/fibonacci_impl_tbb.cpp
create mode 100644 src/perf/perf.cpp
create mode 100644 src/perf/perf.h
create mode 100644 src/perf/perf_sched.cpp
create mode 100644 src/perf/run_statistics.sh
create mode 100644 src/perf/statistics.cpp
create mode 100644 src/perf/statistics.h
create mode 100644 src/perf/statistics_xml.h
create mode 100644 src/perf/time_cpq_throughput_test.cpp
create mode 100644 src/perf/time_fibonacci_cutoff.cpp
create mode 100644 src/perf/time_framework.h
create mode 100644 src/perf/time_hash_map.cpp
create mode 100644 src/perf/time_hash_map_fill.cpp
create mode 100644 src/perf/time_hash_map_fill.html
create mode 100644 src/perf/time_locked_work.cpp
create mode 100644 src/perf/time_lru_cache_throughput.cpp
create mode 100644 src/perf/time_parallel_for_each.cpp
create mode 100644 src/perf/time_sandbox.h
create mode 100644 src/perf/time_split_node.cpp
create mode 100644 src/perf/time_vector.cpp
create mode 100644 src/rml/client/index.html
create mode 100644 src/rml/client/library_assert.h
create mode 100644 src/rml/client/omp_dynamic_link.cpp
create mode 100644 src/rml/client/omp_dynamic_link.h
create mode 100644 src/rml/client/rml_factory.h
create mode 100644 src/rml/client/rml_omp.cpp
create mode 100644 src/rml/client/rml_tbb.cpp
create mode 100644 src/rml/include/index.html
create mode 100644 src/rml/include/rml_base.h
create mode 100644 src/rml/include/rml_omp.h
create mode 100644 src/rml/include/rml_tbb.h
create mode 100644 src/rml/index.html
create mode 100644 src/rml/perfor/omp_nested.cpp
create mode 100644 src/rml/perfor/omp_simple.cpp
create mode 100644 src/rml/perfor/tbb_multi_omp.cpp
create mode 100644 src/rml/perfor/tbb_simple.cpp
create mode 100644 src/rml/perfor/thread_level.h
create mode 100644 src/rml/server/index.html
create mode 100644 src/rml/server/irml.rc
create mode 100644 src/rml/server/job_automaton.h
create mode 100644 src/rml/server/lin-rml-export.def
create mode 100644 src/rml/server/rml_server.cpp
create mode 100644 src/rml/server/thread_monitor.h
create mode 100644 src/rml/server/wait_counter.h
create mode 100644 src/rml/server/win32-rml-export.def
create mode 100644 src/rml/server/win64-rml-export.def
create mode 100644 src/rml/test/rml_omp_stub.cpp
create mode 100644 src/rml/test/test_job_automaton.cpp
create mode 100644 src/rml/test/test_rml_mixed.cpp
create mode 100644 src/rml/test/test_rml_omp.cpp
create mode 100644 src/rml/test/test_rml_omp_c_linkage.c
create mode 100644 src/rml/test/test_rml_tbb.cpp
create mode 100644 src/rml/test/test_server.h
create mode 100644 src/rml/test/test_thread_monitor.cpp
create mode 100644 src/tbb/arena.cpp
create mode 100644 src/tbb/arena.h
create mode 100644 src/tbb/cache_aligned_allocator.cpp
create mode 100644 src/tbb/cilk-tbb-interop.h
create mode 100644 src/tbb/concurrent_hash_map.cpp
create mode 100644 src/tbb/concurrent_monitor.cpp
create mode 100644 src/tbb/concurrent_monitor.h
create mode 100644 src/tbb/concurrent_queue.cpp
create mode 100644 src/tbb/concurrent_vector.cpp
create mode 100644 src/tbb/condition_variable.cpp
create mode 100644 src/tbb/critical_section.cpp
create mode 100644 src/tbb/custom_scheduler.h
create mode 100644 src/tbb/dynamic_link.cpp
create mode 100644 src/tbb/dynamic_link.h
create mode 100644 src/tbb/governor.cpp
create mode 100644 src/tbb/governor.h
create mode 100644 src/tbb/ia32-masm/atomic_support.asm
create mode 100644 src/tbb/ia32-masm/itsx.asm
create mode 100644 src/tbb/ia32-masm/lock_byte.asm
create mode 100644 src/tbb/ia64-gas/atomic_support.s
create mode 100644 src/tbb/ia64-gas/ia64_misc.s
create mode 100644 src/tbb/ia64-gas/lock_byte.s
create mode 100644 src/tbb/ia64-gas/log2.s
create mode 100644 src/tbb/ia64-gas/pause.s
create mode 100644 src/tbb/ibm_aix51/atomic_support.c
create mode 100644 src/tbb/index.html
create mode 100644 src/tbb/intel64-masm/atomic_support.asm
create mode 100644 src/tbb/intel64-masm/intel64_misc.asm
create mode 100644 src/tbb/intel64-masm/itsx.asm
create mode 100644 src/tbb/intrusive_list.h
create mode 100644 src/tbb/itt_notify.cpp
create mode 100644 src/tbb/itt_notify.h
create mode 100644 src/tbb/lin32-tbb-export.def
create mode 100644 src/tbb/lin32-tbb-export.lst
create mode 100644 src/tbb/lin64-tbb-export.def
create mode 100644 src/tbb/lin64-tbb-export.lst
create mode 100644 src/tbb/lin64ipf-tbb-export.def
create mode 100644 src/tbb/lin64ipf-tbb-export.lst
create mode 100644 src/tbb/mac32-tbb-export.def
create mode 100644 src/tbb/mac32-tbb-export.lst
create mode 100644 src/tbb/mac64-tbb-export.def
create mode 100644 src/tbb/mac64-tbb-export.lst
create mode 100644 src/tbb/mailbox.h
create mode 100644 src/tbb/market.cpp
create mode 100644 src/tbb/market.h
create mode 100644 src/tbb/mutex.cpp
create mode 100644 src/tbb/observer_proxy.cpp
create mode 100644 src/tbb/observer_proxy.h
create mode 100644 src/tbb/pipeline.cpp
create mode 100644 src/tbb/private_server.cpp
create mode 100644 src/tbb/queuing_mutex.cpp
create mode 100644 src/tbb/queuing_rw_mutex.cpp
create mode 100644 src/tbb/reader_writer_lock.cpp
create mode 100644 src/tbb/recursive_mutex.cpp
create mode 100644 src/tbb/scheduler.cpp
create mode 100644 src/tbb/scheduler.h
create mode 100644 src/tbb/scheduler_common.h
create mode 100644 src/tbb/scheduler_utility.h
create mode 100644 src/tbb/semaphore.cpp
create mode 100644 src/tbb/semaphore.h
create mode 100644 src/tbb/spin_mutex.cpp
create mode 100644 src/tbb/spin_rw_mutex.cpp
create mode 100644 src/tbb/task.cpp
create mode 100644 src/tbb/task_group_context.cpp
create mode 100644 src/tbb/task_stream.h
create mode 100644 src/tbb/tbb_assert_impl.h
create mode 100644 src/tbb/tbb_main.cpp
create mode 100644 src/tbb/tbb_main.h
create mode 100644 src/tbb/tbb_misc.cpp
create mode 100644 src/tbb/tbb_misc.h
create mode 100644 src/tbb/tbb_misc_ex.cpp
create mode 100644 src/tbb/tbb_resource.rc
create mode 100644 src/tbb/tbb_statistics.cpp
create mode 100644 src/tbb/tbb_statistics.h
create mode 100644 src/tbb/tbb_thread.cpp
create mode 100644 src/tbb/tbb_version.h
create mode 100644 src/tbb/tls.h
create mode 100644 src/tbb/tools_api/disable_warnings.h
create mode 100644 src/tbb/tools_api/ittnotify.h
create mode 100644 src/tbb/tools_api/ittnotify_config.h
create mode 100644 src/tbb/tools_api/ittnotify_static.c
create mode 100644 src/tbb/tools_api/ittnotify_static.h
create mode 100644 src/tbb/tools_api/ittnotify_types.h
create mode 100644 src/tbb/tools_api/legacy/ittnotify.h
create mode 100644 src/tbb/win32-tbb-export.def
create mode 100644 src/tbb/win32-tbb-export.lst
create mode 100644 src/tbb/win64-gcc-tbb-export.def
create mode 100644 src/tbb/win64-gcc-tbb-export.lst
create mode 100644 src/tbb/win64-tbb-export.def
create mode 100644 src/tbb/win64-tbb-export.lst
create mode 100644 src/tbb/winrt-tbb-export.lst
create mode 100644 src/tbb/x86_rtm_rw_mutex.cpp
create mode 100644 src/tbbmalloc/Customize.h
create mode 100644 src/tbbmalloc/MapMemory.h
create mode 100644 src/tbbmalloc/Statistics.h
create mode 100644 src/tbbmalloc/TypeDefinitions.h
create mode 100644 src/tbbmalloc/backend.cpp
create mode 100644 src/tbbmalloc/backref.cpp
create mode 100644 src/tbbmalloc/frontend.cpp
create mode 100644 src/tbbmalloc/index.html
create mode 100644 src/tbbmalloc/large_objects.cpp
create mode 100644 src/tbbmalloc/lin32-proxy-export.def
create mode 100644 src/tbbmalloc/lin32-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/lin64-proxy-export.def
create mode 100644 src/tbbmalloc/lin64-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/lin64ipf-proxy-export.def
create mode 100644 src/tbbmalloc/lin64ipf-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/mac32-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/mac64-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/proxy.cpp
create mode 100644 src/tbbmalloc/proxy.h
create mode 100644 src/tbbmalloc/proxy_overload_osx.h
create mode 100644 src/tbbmalloc/shared_utils.h
create mode 100644 src/tbbmalloc/tbb_function_replacement.cpp
create mode 100644 src/tbbmalloc/tbb_function_replacement.h
create mode 100644 src/tbbmalloc/tbbmalloc.cpp
create mode 100644 src/tbbmalloc/tbbmalloc.rc
create mode 100644 src/tbbmalloc/tbbmalloc_internal.h
create mode 100644 src/tbbmalloc/tbbmalloc_internal_api.h
create mode 100644 src/tbbmalloc/win32-gcc-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/win32-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/win64-gcc-tbbmalloc-export.def
create mode 100644 src/tbbmalloc/win64-tbbmalloc-export.def
create mode 100644 src/tbbproxy/tbbproxy-windows.asm
create mode 100644 src/tbbproxy/tbbproxy.cpp
create mode 100644 src/test/harness.h
create mode 100644 src/test/harness_allocator.h
create mode 100644 src/test/harness_allocator_overload.h
create mode 100644 src/test/harness_assert.h
create mode 100644 src/test/harness_bad_expr.h
create mode 100644 src/test/harness_barrier.h
create mode 100644 src/test/harness_checktype.h
create mode 100644 src/test/harness_concurrency.h
create mode 100644 src/test/harness_concurrency_tracker.h
create mode 100644 src/test/harness_cpu.h
create mode 100644 src/test/harness_defs.h
create mode 100644 src/test/harness_dynamic_libs.h
create mode 100644 src/test/harness_eh.h
create mode 100644 src/test/harness_fp.h
create mode 100644 src/test/harness_graph.h
create mode 100644 src/test/harness_inject_scheduler.h
create mode 100644 src/test/harness_iterator.h
create mode 100644 src/test/harness_m128.h
create mode 100644 src/test/harness_memory.h
create mode 100644 src/test/harness_mic.h
create mode 100644 src/test/harness_preload.h
create mode 100644 src/test/harness_report.h
create mode 100644 src/test/harness_runtime_loader.h
create mode 100644 src/test/harness_state_trackable.h
create mode 100644 src/test/harness_task.h
create mode 100644 src/test/harness_tbb_independence.h
create mode 100644 src/test/harness_test_cases_framework.h
create mode 100644 src/test/harness_tls.h
create mode 100644 src/test/harness_tsx.h
create mode 100644 src/test/test_ScalableAllocator.cpp
create mode 100644 src/test/test_ScalableAllocator_STL.cpp
create mode 100644 src/test/test_aggregator.cpp
create mode 100644 src/test/test_aligned_space.cpp
create mode 100644 src/test/test_allocator.h
create mode 100644 src/test/test_allocator_STL.h
create mode 100644 src/test/test_assembly.cpp
create mode 100644 src/test/test_async_msg.cpp
create mode 100644 src/test/test_async_node.cpp
create mode 100644 src/test/test_atomic.cpp
create mode 100644 src/test/test_blocked_range.cpp
create mode 100644 src/test/test_blocked_range2d.cpp
create mode 100644 src/test/test_blocked_range3d.cpp
create mode 100644 src/test/test_broadcast_node.cpp
create mode 100644 src/test/test_buffer_node.cpp
create mode 100644 src/test/test_cache_aligned_allocator.cpp
create mode 100644 src/test/test_cache_aligned_allocator_STL.cpp
create mode 100644 src/test/test_cilk_common.h
create mode 100644 src/test/test_cilk_dynamic_load.cpp
create mode 100644 src/test/test_cilk_interop.cpp
create mode 100644 src/test/test_combinable.cpp
create mode 100644 src/test/test_composite_node.cpp
create mode 100644 src/test/test_concurrent_hash_map.cpp
create mode 100644 src/test/test_concurrent_lru_cache.cpp
create mode 100644 src/test/test_concurrent_monitor.cpp
create mode 100644 src/test/test_concurrent_priority_queue.cpp
create mode 100644 src/test/test_concurrent_queue.cpp
create mode 100644 src/test/test_concurrent_queue_whitebox.cpp
create mode 100644 src/test/test_concurrent_unordered_common.h
create mode 100644 src/test/test_concurrent_unordered_map.cpp
create mode 100644 src/test/test_concurrent_unordered_set.cpp
create mode 100644 src/test/test_concurrent_vector.cpp
create mode 100644 src/test/test_condition_variable.h
create mode 100644 src/test/test_container_move_support.h
create mode 100644 src/test/test_continue_node.cpp
create mode 100644 src/test/test_critical_section.cpp
create mode 100644 src/test/test_dynamic_link.cpp
create mode 100644 src/test/test_eh_algorithms.cpp
create mode 100644 src/test/test_eh_flow_graph.cpp
create mode 100644 src/test/test_eh_tasks.cpp
create mode 100644 src/test/test_enumerable_thread_specific.cpp
create mode 100644 src/test/test_examples_common_utility.cpp
create mode 100644 src/test/test_fast_random.cpp
create mode 100644 src/test/test_flow_graph.cpp
create mode 100644 src/test/test_flow_graph_whitebox.cpp
create mode 100644 src/test/test_fp.cpp
create mode 100644 src/test/test_function_node.cpp
create mode 100644 src/test/test_gfx_factory.cpp
create mode 100644 src/test/test_global_control.cpp
create mode 100644 src/test/test_global_control_whitebox.cpp
create mode 100644 src/test/test_halt.cpp
create mode 100644 src/test/test_handle_perror.cpp
create mode 100644 src/test/test_hw_concurrency.cpp
create mode 100644 src/test/test_indexer_node.cpp
create mode 100644 src/test/test_initializer_list.h
create mode 100644 src/test/test_inits_loop.cpp
create mode 100644 src/test/test_intrusive_list.cpp
create mode 100644 src/test/test_ittnotify.cpp
create mode 100644 src/test/test_join_node.cpp
create mode 100644 src/test/test_join_node.h
create mode 100644 src/test/test_join_node_key_matching.cpp
create mode 100644 src/test/test_join_node_msg_key_matching.cpp
create mode 100644 src/test/test_lambda.cpp
create mode 100644 src/test/test_limiter_node.cpp
create mode 100644 src/test/test_malloc_atexit.cpp
create mode 100644 src/test/test_malloc_compliance.cpp
create mode 100644 src/test/test_malloc_init_shutdown.cpp
create mode 100644 src/test/test_malloc_lib_unload.cpp
create mode 100644 src/test/test_malloc_overload.cpp
create mode 100644 src/test/test_malloc_pools.cpp
create mode 100644 src/test/test_malloc_pure_c.c
create mode 100644 src/test/test_malloc_regression.cpp
create mode 100644 src/test/test_malloc_used_by_lib.cpp
create mode 100644 src/test/test_malloc_whitebox.cpp
create mode 100644 src/test/test_model_plugin.cpp
create mode 100644 src/test/test_multifunction_node.cpp
create mode 100644 src/test/test_mutex.cpp
create mode 100644 src/test/test_mutex_native_threads.cpp
create mode 100644 src/test/test_opencl_kernel_32.spir
create mode 100644 src/test/test_opencl_kernel_64.spir
create mode 100644 src/test/test_opencl_node.cl
create mode 100644 src/test/test_opencl_node.cpp
create mode 100644 src/test/test_opencl_precompiled_kernel_gpu_32.ir
create mode 100644 src/test/test_opencl_precompiled_kernel_gpu_64.ir
create mode 100644 src/test/test_openmp.cpp
create mode 100644 src/test/test_overwrite_node.cpp
create mode 100644 src/test/test_parallel_do.cpp
create mode 100644 src/test/test_parallel_for.cpp
create mode 100644 src/test/test_parallel_for_each.cpp
create mode 100644 src/test/test_parallel_for_vectorization.cpp
create mode 100644 src/test/test_parallel_invoke.cpp
create mode 100644 src/test/test_parallel_pipeline.cpp
create mode 100644 src/test/test_parallel_reduce.cpp
create mode 100644 src/test/test_parallel_scan.cpp
create mode 100644 src/test/test_parallel_sort.cpp
create mode 100644 src/test/test_parallel_while.cpp
create mode 100644 src/test/test_partitioner.h
create mode 100644 src/test/test_partitioner_whitebox.cpp
create mode 100644 src/test/test_partitioner_whitebox.h
create mode 100644 src/test/test_pipeline.cpp
create mode 100644 src/test/test_pipeline_with_tbf.cpp
create mode 100644 src/test/test_priority_queue_node.cpp
create mode 100644 src/test/test_queue_node.cpp
create mode 100644 src/test/test_range_based_for.h
create mode 100644 src/test/test_reader_writer_lock.cpp
create mode 100644 src/test/test_runtime_loader.cpp
create mode 100644 src/test/test_rwm_upgrade_downgrade.cpp
create mode 100644 src/test/test_semaphore.cpp
create mode 100644 src/test/test_sequencer_node.cpp
create mode 100644 src/test/test_source_node.cpp
create mode 100644 src/test/test_split_node.cpp
create mode 100644 src/test/test_static_assert.cpp
create mode 100644 src/test/test_std_thread.cpp
create mode 100644 src/test/test_streaming_node.cpp
create mode 100644 src/test/test_tagged_msg.cpp
create mode 100644 src/test/test_task.cpp
create mode 100644 src/test/test_task_arena.cpp
create mode 100644 src/test/test_task_assertions.cpp
create mode 100644 src/test/test_task_auto_init.cpp
create mode 100644 src/test/test_task_enqueue.cpp
create mode 100644 src/test/test_task_group.cpp
create mode 100644 src/test/test_task_leaks.cpp
create mode 100644 src/test/test_task_priority.cpp
create mode 100644 src/test/test_task_scheduler_init.cpp
create mode 100644 src/test/test_task_scheduler_observer.cpp
create mode 100644 src/test/test_task_steal_limit.cpp
create mode 100644 src/test/test_tbb_condition_variable.cpp
create mode 100644 src/test/test_tbb_fork.cpp
create mode 100644 src/test/test_tbb_header.cpp
create mode 100644 src/test/test_tbb_thread.cpp
create mode 100644 src/test/test_tbb_version.cpp
create mode 100644 src/test/test_thread.h
create mode 100644 src/test/test_tick_count.cpp
create mode 100644 src/test/test_tuple.cpp
create mode 100644 src/test/test_write_once_node.cpp
create mode 100644 src/test/test_yield.cpp
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..039edb3a9a
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,45 @@
+# Set the default behavior, in case people don't have core.autocrlf set.
+* text=auto
+
+# Explicitly declare text files you want to always be normalized and converted
+# to native line endings on checkout.
+*.c text
+*.h text
+*.cpp text
+*.def text
+*.rc text
+*.i text
+*.sh text
+*.csh text
+*.mk text
+*.java text
+*.csv text
+*.lst text
+*.asm text
+*.cfg text
+*.css text
+*.inc text
+*.js text
+*.rb text
+*.strings text
+*.txt text
+*export.lst text
+*.xml text
+*.py text
+*.md text
+*.classpath text
+*.cproject text
+*.project text
+*.properties text
+*.java text
+*.gradle text
+
+# Declare files that will always have CRLF line endings on checkout.
+*.sln text eol=crlf
+*.bat text eol=crlf
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
+*.ico binary
+*.spir binary
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000..0182b1411b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,86 @@
+# Ignore the debug and release directories created with Makefile builds #
+#########################################################################
+build/*_debug/
+build/*_release/
+
+# Compiled source #
+###################
+*.com
+*.class
+*.dll
+*.lib
+*.pdb
+*.exe
+*.o
+*.so
+*.so.1
+*.so.2
+*.dylib
+*.a
+*.obj
+*.pyc
+
+*.orig
+*.raw
+*.sample
+*.slo
+*.swp
+*.config
+*.la
+*.lai
+*.lo
+*.nhdr
+*.nii.gz
+*.nrrd
+
+# Packages #
+############
+# it's better to unpack these files and commit the raw source
+# git has its own built in compression methods
+*.7z
+*.dmg
+*.gz
+*.iso
+*.jar
+*.rar
+*.tar
+*.tgz
+*.zip
+
+# Logs and databases #
+######################
+*.log
+*.sql
+*.sqlite
+
+# OS generated files #
+######################
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+ehthumbs.db
+Thumbs.db
+
+# IDE generated files #
+######################
+/.ninja_deps
+/.ninja_log
+/build.ninja
+/rules.ninja
+*~
+.emacs.desktop
+
+# Build system generated files #
+################################
+CMakeCache.txt
+CMakeFiles/
+
+# Other #
+#########
+.clang_complete
+.idea
+.svn
+crash*
+*.tmp
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000000..f495d9908c
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,2412 @@
+------------------------------------------------------------------------
+The list of most significant changes made over time in
+Intel(R) Threading Building Blocks (Intel(R) TBB).
+
+Intel TBB 2018
+TBB_INTERFACE_VERSION == 10000
+
+Changes (w.r.t. Intel TBB 2017 Update 7):
+
+- Introduced Parallel STL, an implementation of the C++ standard
+ library algorithms with support for execution policies. For more
+ information, see Getting Started with Parallel STL
+ (https://software.intel.com/en-us/get-started-with-pstl).
+- this_task_arena::isolate() function is now a fully supported feature.
+- this_task_arena::isolate() function and task_arena::execute() method
+ were extended to pass on the value returned by the executed functor
+ (requires C++11).
+- task_arena::enqueue() and task_group::run() methods extended to accept
+ move-only functors.
+- A flow graph now spawns all tasks into the same task arena,
+ and waiting for graph completion also happens in that arena.
+- Improved support for Flow Graph Advisor in async_node, opencl_node,
+ and composite_node.
+- Added support for Android* NDK r15, r15b.
+- Added support for Universal Windows Platform.
+- Increased minimally supported version of macOS*
+ (MACOSX_DEPLOYMENT_TARGET) to 10.11.
+
+Changes affecting backward compatibility:
+
+- Internal layout changes in some flow graph classes;
+- Several undocumented methods are removed from class graph,
+ including set_active() and is_active().
+- Due to incompatible changes, the namespace version is updated
+ for the flow graph; recompilation is recommended for all
+ binaries that use the flow graph classes.
+
+Preview Features:
+
+- opencl_node can be used with any graph object; class opencl_graph
+ is removed.
+- graph::wait_for_all() now automatically waits for all not yet consumed
+ async_msg objects.
+- Improved concurrent_lru_cache::handle_object to support C++11 move
+ semantics, default construction, and conversion to bool.
+
+Bugs fixed:
+
+- Fixed a bug preventing use of streaming_node and opencl_node with
+ Clang; inspired by a contribution from Francisco Facioni.
+- Fixed this_task_arena::isolate() function to work correctly with
+ parallel_invoke and parallel_do algorithms.
+- Fixed a memory leak in composite_node.
+- Fixed an assertion failure in debug tbbmalloc binaries when
+ TBBMALLOC_CLEAN_ALL_BUFFERS is used.
+
+------------------------------------------------------------------------
+Intel TBB 2017 Update 7
+TBB_INTERFACE_VERSION == 9107
+
+Changes (w.r.t. Intel TBB 2017 Update 6):
+
+- In the huge pages mode, the memory allocator now is also able to use
+ transparent huge pages.
+
+Preview Features:
+
+- Added support for Intel TBB integration into CMake-aware
+ projects, with valuable guidance and feedback provided by Brad King
+ (Kitware).
+
+Bugs fixed:
+
+- Fixed scalable_allocation_command(TBBMALLOC_CLEAN_ALL_BUFFERS, 0)
+ to process memory left after exited threads.
+
+------------------------------------------------------------------------
+Intel TBB 2017 Update 6
+TBB_INTERFACE_VERSION == 9106
+
+Changes (w.r.t. Intel TBB 2017 Update 5):
+
+- Added support for Android* NDK r14.
+
+Preview Features:
+
+- Added a blocking terminate extension to the task_scheduler_init class
+ that allows an object to wait for termination of worker threads.
+
+Bugs fixed:
+
+- Fixed compilation and testing issues with MinGW (GCC 6).
+- Fixed compilation with /std:c++latest option of VS 2017
+ (https://github.com/01org/tbb/issues/13).
+
+------------------------------------------------------------------------
+Intel TBB 2017 Update 5
+TBB_INTERFACE_VERSION == 9105
+
+Changes (w.r.t. Intel TBB 2017 Update 4):
+
+- Added support for Microsoft* Visual Studio* 2017.
+- Added graph/matmult example to demonstrate support for compute offload
+ to Intel(R) Graphics Technology in the flow graph API.
+- The "compiler" build option now allows to specify a full path to the
+ compiler.
+
+Changes affecting backward compatibility:
+
+- Constructors for many classes, including graph nodes, concurrent
+ containers, thread-local containers, etc., are declared explicit and
+ cannot be used for implicit conversions anymore.
+
+Bugs fixed:
+
+- Added a workaround for bug 16657 in the GNU C Library (glibc)
+ affecting the debug version of tbb::mutex.
+- Fixed a crash in pool_identify() called for an object allocated in
+ another thread.
+
+------------------------------------------------------------------------
+Intel TBB 2017 Update 4
+TBB_INTERFACE_VERSION == 9104
+
+Changes (w.r.t. Intel TBB 2017 Update 3):
+
+- Added support for C++11 move semantics in parallel_do.
+- Added support for FreeBSD* 11.
+
+Changes affecting backward compatibility:
+
+- Minimal compiler versions required for support of C++11 move semantics
+ raised to GCC 4.5, VS 2012, and Intel(R) C++ Compiler 14.0.
+
+Bugs fixed:
+
+- The workaround for crashes in the library compiled with GCC 6
+ (-flifetime-dse=1) was extended to Windows*.
+
+------------------------------------------------------------------------
+Intel TBB 2017 Update 3
+TBB_INTERFACE_VERSION == 9103
+
+Changes (w.r.t. Intel TBB 2017 Update 2):
+
+- Added support for Android* 7.0 and Android* NDK r13, r13b.
+
+Preview Features:
+
+- Added template class gfx_factory to the flow graph API. It implements
+ the Factory concept for streaming_node to offload computations to
+ Intel(R) processor graphics.
+
+Bugs fixed:
+
+- Fixed a possible deadlock caused by missed wakeup signals in
+ task_arena::execute().
+
+Open-source contributions integrated:
+
+- A build fix for Linux* s390x platform by Jerry J.
+
+------------------------------------------------------------------------
+Intel TBB 2017 Update 2
+TBB_INTERFACE_VERSION == 9102
+
+Changes (w.r.t. Intel TBB 2017 Update 1):
+
+- Removed the long-outdated support for Xbox* consoles.
+
+Bugs fixed:
+
+- Fixed the issue with task_arena::execute() not being processed when
+ the calling thread cannot join the arena.
+- Fixed dynamic memory allocation replacement failure on macOS* 10.12.
+
+------------------------------------------------------------------------
+Intel TBB 2017 Update 1
+TBB_INTERFACE_VERSION == 9101
+
+Changes (w.r.t. Intel TBB 2017):
+
+Bugs fixed:
+
+- Fixed dynamic memory allocation replacement failures on Windows* 10
+ Anniversary Update.
+- Fixed emplace() method of concurrent unordered containers to not
+ require a copy constructor.
+
+------------------------------------------------------------------------
+Intel TBB 2017
+TBB_INTERFACE_VERSION == 9100
+
+Changes (w.r.t. Intel TBB 4.4 Update 5):
+
+- static_partitioner class is now a fully supported feature.
+- async_node class is now a fully supported feature.
+- Improved dynamic memory allocation replacement on Windows* OS to skip
+ DLLs for which replacement cannot be done, instead of aborting.
+- Intel TBB no longer performs dynamic memory allocation replacement
+ for Microsoft* Visual Studio* 2008.
+- For 64-bit platforms, quadrupled the worst-case limit on the amount
+ of memory the Intel TBB allocator can handle.
+- Added TBB_USE_GLIBCXX_VERSION macro to specify the version of GNU
+ libstdc++ when it cannot be properly recognized, e.g. when used
+ with Clang on Linux* OS. Inspired by a contribution from David A.
+- Added graph/stereo example to demostrate tbb::flow::async_msg.
+- Removed a few cases of excessive user data copying in the flow graph.
+- Reworked split_node to eliminate unnecessary overheads.
+- Added support for C++11 move semantics to the argument of
+ tbb::parallel_do_feeder::add() method.
+- Added C++11 move constructor and assignment operator to
+ tbb::combinable template class.
+- Added tbb::this_task_arena::max_concurrency() function and
+ max_concurrency() method of class task_arena returning the maximal
+ number of threads that can work inside an arena.
+- Deprecated tbb::task_arena::current_thread_index() static method;
+ use tbb::this_task_arena::current_thread_index() function instead.
+- All examples for commercial version of library moved online:
+ https://software.intel.com/en-us/product-code-samples. Examples are
+ available as a standalone package or as a part of Intel(R) Parallel
+ Studio XE or Intel(R) System Studio Online Samples packages.
+
+Changes affecting backward compatibility:
+
+- Renamed following methods and types in async_node class:
+ Old New
+ async_gateway_type => gateway_type
+ async_gateway() => gateway()
+ async_try_put() => try_put()
+ async_reserve() => reserve_wait()
+ async_commit() => release_wait()
+- Internal layout of some flow graph nodes has changed; recompilation
+ is recommended for all binaries that use the flow graph.
+
+Preview Features:
+
+- Added template class streaming_node to the flow graph API. It allows
+ a flow graph to offload computations to other devices through
+ streaming or offloading APIs.
+- Template class opencl_node reimplemented as a specialization of
+ streaming_node that works with OpenCL*.
+- Added tbb::this_task_arena::isolate() function to isolate execution
+ of a group of tasks or an algorithm from other tasks submitted
+ to the scheduler.
+
+Bugs fixed:
+
+- Added a workaround for GCC bug #62258 in std::rethrow_exception()
+ to prevent possible problems in case of exception propagation.
+- Fixed parallel_scan to provide correct result if the initial value
+ of an accumulator is not the operation identity value.
+- Fixed a memory corruption in the memory allocator when it meets
+ internal limits.
+- Fixed the memory allocator on 64-bit platforms to align memory
+ to 16 bytes by default for all allocations bigger than 8 bytes.
+- As a workaround for crashes in the Intel TBB library compiled with
+ GCC 6, added -flifetime-dse=1 to compilation options on Linux* OS.
+- Fixed a race in the flow graph implementation.
+
+Open-source contributions integrated:
+
+- Enabling use of C++11 'override' keyword by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.4 Update 6
+TBB_INTERFACE_VERSION == 9006
+
+Changes (w.r.t. Intel TBB 4.4 Update 5):
+
+- For 64-bit platforms, quadrupled the worst-case limit on the amount
+ of memory the Intel TBB allocator can handle.
+
+Bugs fixed:
+
+- Fixed a memory corruption in the memory allocator when it meets
+ internal limits.
+- Fixed the memory allocator on 64-bit platforms to align memory
+ to 16 bytes by default for all allocations bigger than 8 bytes.
+- Fixed parallel_scan to provide correct result if the initial value
+ of an accumulator is not the operation identity value.
+- As a workaround for crashes in the Intel TBB library compiled with
+ GCC 6, added -flifetime-dse=1 to compilation options on Linux* OS.
+
+------------------------------------------------------------------------
+Intel TBB 4.4 Update 5
+TBB_INTERFACE_VERSION == 9005
+
+Changes (w.r.t. Intel TBB 4.4 Update 4):
+
+- Modified graph/fgbzip2 example to remove unnecessary data queuing.
+
+Preview Features:
+
+- Added a Python* module which is able to replace Python's thread pool
+ class with the implementation based on Intel TBB task scheduler.
+
+Bugs fixed:
+
+- Fixed the implementation of 64-bit tbb::atomic for IA-32 architecture
+ to work correctly with GCC 5.2 in C++11/14 mode.
+- Fixed a possible crash when tasks with affinity (e.g. specified via
+ affinity_partitioner) are used simultaneously with task priority
+ changes.
+
+------------------------------------------------------------------------
+Intel TBB 4.4 Update 4
+TBB_INTERFACE_VERSION == 9004
+
+Changes (w.r.t. Intel TBB 4.4 Update 3):
+
+- Removed a few cases of excessive user data copying in the flow graph.
+- Improved robustness of concurrent_bounded_queue::abort() in case of
+ simultaneous push and pop operations.
+
+Preview Features:
+
+- Added tbb::flow::async_msg, a special message type to support
+ communications between the flow graph and external asynchronous
+ activities.
+- async_node modified to support use with C++03 compilers.
+
+Bugs fixed:
+
+- Fixed a bug in dynamic memory allocation replacement for Windows* OS.
+- Fixed excessive memory consumption on Linux* OS caused by enabling
+ zero-copy realloc.
+- Fixed performance regression on Intel(R) Xeon Phi(tm) coprocessor with
+ auto_partitioner.
+
+------------------------------------------------------------------------
+Intel TBB 4.4 Update 3
+TBB_INTERFACE_VERSION == 9003
+
+Changes (w.r.t. Intel TBB 4.4 Update 2):
+
+- Modified parallel_sort to not require a default constructor for values
+ and to use iter_swap() for value swapping.
+- Added support for creating or initializing a task_arena instance that
+ is connected to the arena currently used by the thread.
+- graph/binpack example modified to use multifunction_node.
+- For performance analysis, use Intel(R) VTune(TM) Amplifier XE 2015
+ and higher; older versions are no longer supported.
+- Improved support for compilation with disabled RTTI, by omitting its use
+ in auxiliary code, such as assertions. However some functionality,
+ particularly the flow graph, does not work if RTTI is disabled.
+- The tachyon example for Android* can be built using Android Studio 1.5
+ and higher with experimental Gradle plugin 0.4.0.
+
+Preview Features:
+
+- Added class opencl_subbufer that allows using OpenCL* sub-buffer
+ objects with opencl_node.
+- Class global_control supports the value of 1 for
+ max_allowed_parallelism.
+
+Bugs fixed:
+
+- Fixed a race causing "TBB Warning: setaffinity syscall failed" message.
+- Fixed a compilation issue on OS X* with Intel(R) C++ Compiler 15.0.
+- Fixed a bug in queuing_rw_mutex::downgrade() that could temporarily
+ block new readers.
+- Fixed speculative_spin_rw_mutex to stop using the lazy subscription
+ technique due to its known flaws.
+- Fixed memory leaks in the tool support code.
+
+------------------------------------------------------------------------
+Intel TBB 4.4 Update 2
+TBB_INTERFACE_VERSION == 9002
+
+Changes (w.r.t. Intel TBB 4.4 Update 1):
+
+- Improved interoperability with Intel(R) OpenMP RTL (libiomp) on Linux:
+ OpenMP affinity settings do not affect the default number of threads
+ used in the task scheduler. Intel(R) C++ Compiler 16.0 Update 1
+ or later is required.
+- Added a new flow graph example with different implementations of the
+ Cholesky Factorization algorithm.
+
+Preview Features:
+
+- Added template class opencl_node to the flow graph API. It allows a
+ flow graph to offload computations to OpenCL* devices.
+- Extended join_node to use type-specified message keys. It simplifies
+ the API of the node by obtaining message keys via functions
+ associated with the message type (instead of node ports).
+- Added static_partitioner that minimizes overhead of parallel_for and
+ parallel_reduce for well-balanced workloads.
+- Improved template class async_node in the flow graph API to support
+ user settable concurrency limits.
+
+Bugs fixed:
+
+- Fixed a possible crash in the GUI layer for library examples on Linux.
+
+------------------------------------------------------------------------
+Intel TBB 4.4 Update 1
+TBB_INTERFACE_VERSION == 9001
+
+Changes (w.r.t. Intel TBB 4.4):
+
+- Added support for Microsoft* Visual Studio* 2015.
+- Intel TBB no longer performs dynamic replacement of memory allocation
+ functions for Microsoft Visual Studio 2005 and earlier versions.
+- For GCC 4.7 and higher, the intrinsics-based platform isolation layer
+ uses __atomic_* built-ins instead of the legacy __sync_* ones.
+ This change is inspired by a contribution from Mathieu Malaterre.
+- Improvements in task_arena:
+ Several application threads may join a task_arena and execute tasks
+ simultaneously. The amount of concurrency reserved for application
+ threads at task_arena construction can be set to any value between
+ 0 and the arena concurrency limit.
+- The fractal example was modified to demonstrate class task_arena
+ and moved to examples/task_arena/fractal.
+
+Bugs fixed:
+
+- Fixed a deadlock during destruction of task_scheduler_init objects
+ when one of destructors is set to wait for worker threads.
+- Added a workaround for a possible crash on OS X* when dynamic memory
+ allocator replacement (libtbbmalloc_proxy) is used and memory is
+ released during application startup.
+- Usage of mutable functors with task_group::run_and_wait() and
+ task_arena::enqueue() is disabled. An attempt to pass a functor
+ which operator()() is not const will produce compilation errors.
+- Makefiles and environment scripts now properly recognize GCC 5.0 and
+ higher.
+
+Open-source contributions integrated:
+
+- Improved performance of parallel_for_each for inputs allowing random
+ access, by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.4
+TBB_INTERFACE_VERSION == 9000
+
+Changes (w.r.t. Intel TBB 4.3 Update 6):
+
+- The following features are now fully supported:
+ tbb::flow::composite_node;
+ additional policies of tbb::flow::graph_node::reset().
+- Platform abstraction layer for Windows* OS updated to use compiler
+ intrinsics for most atomic operations.
+- The tbb/compat/thread header updated to automatically include
+ C++11 where available.
+- Fixes and refactoring in the task scheduler and class task_arena.
+- Added key_matching policy to tbb::flow::join_node, which removes
+ the restriction on the type that can be compared-against.
+- For tag_matching join_node, tag_value is redefined to be 64 bits
+ wide on all architectures.
+- Expanded the documentation for the flow graph with details about
+ node semantics and behavior.
+- Added dynamic replacement of C11 standard function aligned_alloc()
+ under Linux* OS.
+- Added C++11 move constructors and assignment operators to
+ tbb::enumerable_thread_specific container.
+- Added hashing support for tbb::tbb_thread::id.
+- On OS X*, binaries that depend on libstdc++ are not provided anymore.
+ In the makefiles, libc++ is now used by default; for building with
+ libstdc++, specify stdlib=libstdc++ in the make command line.
+
+Preview Features:
+
+- Added a new example, graph/fgbzip2, that shows usage of
+ tbb::flow::async_node.
+- Modification to the low-level API for memory pools:
+ added a function for finding a memory pool by an object allocated
+ from that pool.
+- tbb::memory_pool now does not request memory till the first allocation
+ from the pool.
+
+Changes affecting backward compatibility:
+
+- Internal layout of flow graph nodes has changed; recompilation is
+ recommended for all binaries that use the flow graph.
+- Resetting a tbb::flow::source_node will immediately activate it,
+ unless it was created in inactive state.
+
+Bugs fixed:
+
+- Failure at creation of a memory pool will not cause process
+ termination anymore.
+
+Open-source contributions integrated:
+
+- Supported building TBB with Clang on AArch64 with use of built-in
+ intrinsics by David A.
+
+------------------------------------------------------------------------
+Intel TBB 4.3 Update 6
+TBB_INTERFACE_VERSION == 8006
+
+Changes (w.r.t. Intel TBB 4.3 Update 5):
+
+- Supported zero-copy realloc for objects >1MB under Linux* via
+ mremap system call.
+- C++11 move-aware insert and emplace methods have been added to
+ concurrent_hash_map container.
+- install_name is set to @rpath/ on OS X*.
+
+Preview Features:
+
+- Added template class async_node to the flow graph API. It allows a
+ flow graph to communicate with an external activity managed by
+ the user or another runtime.
+- Improved speed of flow::graph::reset() clearing graph edges.
+ rf_extract flag has been renamed rf_clear_edges.
+- extract() method of graph nodes now takes no arguments.
+
+Bugs fixed:
+
+- concurrent_unordered_{set,map} behaves correctly for degenerate
+ hashes.
+- Fixed a race condition in the memory allocator that may lead to
+ excessive memory consumption under high multithreading load.
+
+------------------------------------------------------------------------
+Intel TBB 4.3 Update 5
+TBB_INTERFACE_VERSION == 8005
+
+Changes (w.r.t. Intel TBB 4.3 Update 4):
+
+- Added add_ref_count() method of class tbb::task.
+
+Preview Features:
+
+- Added class global_control for application-wide control of allowed
+ parallelism and thread stack size.
+- memory_pool_allocator now throws the std::bad_alloc exception on
+ allocation failure.
+- Exceptions thrown for by memory pool constructors changed from
+ std::bad_alloc to std::invalid_argument and std::runtime_error.
+
+Bugs fixed:
+
+- scalable_allocator now throws the std::bad_alloc exception on
+ allocation failure.
+- Fixed a race condition in the memory allocator that may lead to
+ excessive memory consumption under high multithreading load.
+- A new scheduler created right after destruction of the previous one
+ might be unable to modify the number of worker threads.
+
+Open-source contributions integrated:
+
+- (Added but not enabled) push_front() method of class tbb::task_list
+ by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.3 Update 4
+TBB_INTERFACE_VERSION == 8004
+
+Changes (w.r.t. Intel TBB 4.3 Update 3):
+
+- Added a C++11 variadic constructor for enumerable_thread_specific.
+ The arguments from this constructor are used to construct
+ thread-local values.
+- Improved exception safety for enumerable_thread_specific.
+- Added documentation for tbb::flow::tagged_msg class and
+ tbb::flow::output_port function.
+- Fixed build errors for systems that do not support dynamic linking.
+- C++11 move-aware insert and emplace methods have been added to
+ concurrent unordered containers.
+
+Preview Features:
+
+- Interface-breaking change: typedefs changed for node predecessor and
+ successor lists, affecting copy_predecessors and copy_successors
+ methods.
+- Added template class composite_node to the flow graph API. It packages
+ a subgraph to represent it as a first-class flow graph node.
+- make_edge and remove_edge now accept multiport nodes as arguments,
+ automatically using the node port with index 0 for an edge.
+
+Open-source contributions integrated:
+
+- Draft code for enumerable_thread_specific constructor with multiple
+ arguments (see above) by Adrien Guinet.
+- Fix for GCC invocation on IBM* Blue Gene*
+ by Jeff Hammond and Raf Schietekat.
+- Extended testing with smart pointers for Clang & libc++
+ by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.3 Update 3
+TBB_INTERFACE_VERSION == 8003
+
+Changes (w.r.t. Intel TBB 4.3 Update 2):
+
+- Move constructor and assignment operator were added to unique_lock.
+
+Preview Features:
+
+- Time overhead for memory pool destruction was reduced.
+
+Open-source contributions integrated:
+
+- Build error fix for iOS* by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.3 Update 2
+TBB_INTERFACE_VERSION == 8002
+
+Changes (w.r.t. Intel TBB 4.3 Update 1):
+
+- Binary files for 64-bit Android* applications were added as part of the
+ Linux* OS package.
+- Exact exception propagation is enabled for Intel C++ Compiler on OS X*.
+- concurrent_vector::shrink_to_fit was optimized for types that support
+ C++11 move semantics.
+
+Bugs fixed:
+
+- Fixed concurrent unordered containers to insert elements much faster
+ in debug mode.
+- Fixed concurrent priority queue to support types that do not have
+ copy constructors.
+- Fixed enumerable_thread_specific to forbid copying from an instance
+ with a different value type.
+
+Open-source contributions integrated:
+
+- Support for PathScale* EKOPath* Compiler by Erik Lindahl.
+
+------------------------------------------------------------------------
+Intel TBB 4.3 Update 1
+TBB_INTERFACE_VERSION == 8001
+
+Changes (w.r.t. Intel TBB 4.3):
+
+- The ability to split blocked_ranges in a proportion, used by
+ affinity_partitioner since version 4.2 Update 4, became a formal
+ extension of the Range concept.
+- More checks for an incorrect address to release added to the debug
+ version of the memory allocator.
+- Different kind of solutions for each TBB example were merged.
+
+Preview Features:
+
+- Task priorities are re-enabled in preview binaries.
+
+Bugs fixed:
+
+- Fixed a duplicate symbol when TBB_PREVIEW_VARIADIC_PARALLEL_INVOKE is
+ used in multiple compilation units.
+- Fixed a crash in __itt_fini_ittlib seen on Ubuntu 14.04.
+- Fixed a crash in memory release after dynamic replacement of the
+ OS X* memory allocator.
+- Fixed incorrect indexing of arrays in seismic example.
+- Fixed a data race in lazy initialization of task_arena.
+
+Open-source contributions integrated:
+
+- Fix for dumping information about gcc and clang compiler versions
+ by Misty De Meo.
+
+------------------------------------------------------------------------
+Intel TBB 4.3
+TBB_INTERFACE_VERSION == 8000
+
+Changes (w.r.t. Intel TBB 4.2 Update 5):
+
+- The following features are now fully supported: flow::indexer_node,
+ task_arena, speculative_spin_rw_mutex.
+- Compatibility with C++11 standard improved for tbb/compat/thread
+ and tbb::mutex.
+- C++11 move constructors have been added to concurrent_queue and
+ concurrent_bounded_queue.
+- C++11 move constructors and assignment operators have been added to
+ concurrent_vector, concurrent_hash_map, concurrent_priority_queue,
+ concurrent_unordered_{set,multiset,map,multimap}.
+- C++11 move-aware emplace/push/pop methods have been added to
+ concurrent_vector, concurrent_queue, concurrent_bounded_queue,
+ concurrent_priority_queue.
+- Methods to insert a C++11 initializer list have been added:
+ concurrent_vector::grow_by(), concurrent_hash_map::insert(),
+ concurrent_unordered_{set,multiset,map,multimap}::insert().
+- Testing for compatibility of containers with some C++11 standard
+ library types has been added.
+- Dynamic replacement of standard memory allocation routines has been
+ added for OS X*.
+- Microsoft* Visual Studio* projects for Intel TBB examples updated
+ to VS 2010.
+- For open-source packages, debugging information (line numbers) in
+ precompiled binaries now matches the source code.
+- Debug information was added to release builds for OS X*, Solaris*,
+ FreeBSD* operating systems and MinGW*.
+- Various improvements in documentation, debug diagnostics and examples.
+
+Preview Features:
+
+- Additional actions on reset of graphs, and extraction of individual
+ nodes from a graph (TBB_PREVIEW_FLOW_GRAPH_FEATURES).
+- Support for an arbitrary number of arguments in parallel_invoke
+ (TBB_PREVIEW_VARIADIC_PARALLEL_INVOKE).
+
+Changes affecting backward compatibility:
+
+- For compatibility with C++11 standard, copy and move constructors and
+ assignment operators are disabled for all mutex classes. To allow
+ the old behavior, use TBB_DEPRECATED_MUTEX_COPYING macro.
+- flow::sequencer_node rejects messages with repeating sequence numbers.
+- Changed internal interface between tbbmalloc and tbbmalloc_proxy.
+- Following deprecated functionality has been removed:
+ old debugging macros TBB_DO_ASSERT & TBB_DO_THREADING_TOOLS;
+ no-op depth-related methods in class task;
+ tbb::deprecated::concurrent_queue;
+ deprecated variants of concurrent_vector methods.
+- register_successor() and remove_successor() are deprecated as methods
+ to add and remove edges in flow::graph; use make_edge() and
+ remove_edge() instead.
+
+Bugs fixed:
+
+- Fixed incorrect scalable_msize() implementation for aligned objects.
+- Flow graph buffering nodes now destroy their copy of forwarded items.
+- Multiple fixes in task_arena implementation, including for:
+ inconsistent task scheduler state inside executed functions;
+ incorrect floating-point settings and exception propagation;
+ possible stalls in concurrent invocations of execute().
+- Fixed floating-point settings propagation when the same instance of
+ task_group_context is used in different arenas.
+- Fixed compilation error in pipeline.h with Intel Compiler on OS X*.
+- Added missed headers for individual components to tbb.h.
+
+Open-source contributions integrated:
+
+- Range interface addition to parallel_do, parallel_for_each and
+ parallel_sort by Stephan Dollberg.
+- Variadic template implementation of parallel_invoke
+ by Kizza George Mbidde (see Preview Features).
+- Improvement in Seismic example for MacBook Pro* with Retina* display
+ by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.2 Update 5
+TBB_INTERFACE_VERSION == 7005
+
+Changes (w.r.t. Intel TBB 4.2 Update 4):
+
+- The second template argument of class aligned_space now is set
+ to 1 by default.
+
+Preview Features:
+
+- Better support for exception safety, task priorities and floating
+ point settings in class task_arena.
+- task_arena::current_slot() has been renamed to
+ task_arena::current_thread_index().
+
+Bugs fixed:
+
+- Task priority change possibly ignored by a worker thread entering
+ a nested parallel construct.
+- Memory leaks inside the task scheduler when running on
+ Intel(R) Xeon Phi(tm) coprocessor.
+
+Open-source contributions integrated:
+
+- Improved detection of X Window support for Intel TBB examples
+ and other feedback by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.2 Update 4
+TBB_INTERFACE_VERSION == 7004
+
+Changes (w.r.t. Intel TBB 4.2 Update 3):
+
+- Added possibility to specify floating-point settings at invocation
+ of most parallel algorithms (including flow::graph) via
+ task_group_context.
+- Added dynamic replacement of malloc_usable_size() under
+ Linux*/Android* and dlmalloc_usable_size() under Android*.
+- Added new methods to concurrent_vector:
+ grow_by() that appends a sequence between two given iterators;
+ grow_to_at_least() that initializes new elements with a given value.
+- Improved affinity_partitioner for better performance on balanced
+ workloads.
+- Improvements in the task scheduler, including better scalability
+ when threads search for a task arena, and better diagnostics.
+- Improved allocation performance for workloads that do intensive
+ allocation/releasing of same-size objects larger than ~8KB from
+ multiple threads.
+- Exception support is enabled by default for 32-bit MinGW compilers.
+- The tachyon example for Android* can be built for all targets
+ supported by the installed NDK.
+- Added Windows Store* version of the tachyon example.
+- GettingStarted/sub_string_finder example ported to offload execution
+ on Windows* for Intel(R) Many Integrated Core Architecture.
+
+Preview Features:
+
+- Removed task_scheduler_observer::on_scheduler_leaving() callback.
+- Added task_scheduler_observer::may_sleep() callback.
+- The CPF or_node has been renamed indexer_node. The input to
+ indexer_node is now a list of types. The output of indexer_node is
+ a tagged_msg type composed of a tag and a value. For indexer_node,
+ the tag is a size_t.
+
+Bugs fixed:
+
+- Fixed data races in preview extensions of task_scheduler_observer.
+- Added noexcept(false) for destructor of task_group_base to avoid
+ crash on cancellation of structured task group in C++11.
+
+Open-source contributions integrated:
+
+- Improved concurrency detection for BG/Q, and other improvements
+ by Raf Schietekat.
+- Fix for crashes in enumerable_thread_specific in case if a contained
+ object is too big to be constructed on the stack by Adrien Guinet.
+
+------------------------------------------------------------------------
+Intel TBB 4.2 Update 3
+TBB_INTERFACE_VERSION == 7003
+
+Changes (w.r.t. Intel TBB 4.2 Update 2):
+
+- Added support for Microsoft* Visual Studio* 2013.
+- Improved Microsoft* PPL-compatible form of parallel_for for better
+ support of auto-vectorization.
+- Added a new example for cancellation and reset in the flow graph:
+ Kohonen self-organizing map (examples/graph/som).
+- Various improvements in source code, tests, and makefiles.
+
+Bugs fixed:
+
+- Added dynamic replacement of _aligned_msize() previously missed.
+- Fixed task_group::run_and_wait() to throw invalid_multiple_scheduling
+ exception if the specified task handle is already scheduled.
+
+Open-source contributions integrated:
+
+- A fix for ARM* processors by Steve Capper.
+- Improvements in std::swap calls by Robert Maynard.
+
+------------------------------------------------------------------------
+Intel TBB 4.2 Update 2
+TBB_INTERFACE_VERSION == 7002
+
+Changes (w.r.t. Intel TBB 4.2 Update 1):
+
+- Enable C++11 features for Microsoft* Visual Studio* 2013 Preview.
+- Added a test for compatibility of TBB containers with C++11
+ range-based for loop.
+
+Changes affecting backward compatibility:
+
+- Internal layout changed for class tbb::flow::limiter_node.
+
+Preview Features:
+
+- Added speculative_spin_rw_mutex, a read-write lock class which uses
+ Intel(R) Transactional Synchronization Extensions.
+
+Bugs fixed:
+
+- When building for Intel(R) Xeon Phi(tm) coprocessor, TBB programs
+ no longer require explicit linking with librt and libpthread.
+
+Open-source contributions integrated:
+
+- Fixes for ARM* processors by Steve Capper, Leif Lindholm
+ and Steven Noonan.
+- Support for Clang on Linux by Raf Schietekat.
+- Typo correction in scheduler.cpp by Julien Schueller.
+
+------------------------------------------------------------------------
+Intel TBB 4.2 Update 1
+TBB_INTERFACE_VERSION == 7001
+
+Changes (w.r.t. Intel TBB 4.2):
+
+- Added project files for Microsoft* Visual Studio* 2010.
+- Initial support of Microsoft* Visual Studio* 2013 Preview.
+- Enable C++11 features available in Intel(R) C++ Compiler 14.0.
+- scalable_allocation_mode(TBBMALLOC_SET_SOFT_HEAP_LIMIT, ) can be
+ used to urge releasing memory from tbbmalloc internal buffers when
+ the given limit is exceeded.
+
+Preview Features:
+
+- Class task_arena no longer requires linking with a preview library,
+ though still remains a community preview feature.
+- The method task_arena::wait_until_empty() is removed.
+- The method task_arena::current_slot() now returns -1 if
+ the task scheduler is not initialized in the thread.
+
+Changes affecting backward compatibility:
+
+- Because of changes in internal layout of graph nodes, the namespace
+ interface number of flow::graph has been incremented from 6 to 7.
+
+Bugs fixed:
+
+- Fixed a race in lazy initialization of task_arena.
+- Fixed flow::graph::reset() to prevent situations where tasks would be
+ spawned in the process of resetting the graph to its initial state.
+- Fixed decrement bug in limiter_node.
+- Fixed a race in arc deletion in the flow graph.
+
+Open-source contributions integrated:
+
+- Improved support for IBM* Blue Gene* by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.2
+TBB_INTERFACE_VERSION == 7000
+
+Changes (w.r.t. Intel TBB 4.1 Update 4):
+
+- Added speculative_spin_mutex, which uses Intel(R) Transactional
+ Synchronization Extensions when they are supported by hardware.
+- Binary files linked with libc++ (the C++ standard library in Clang)
+ were added on OS X*.
+- For OS X* exact exception propagation is supported with Clang;
+ it requires use of libc++ and corresponding Intel TBB binaries.
+- Support for C++11 initializer lists in constructor and assigment
+ has been added to concurrent_hash_map, concurrent_unordered_set,
+ concurrent_unordered_multiset, concurrent_unordered_map,
+ concurrent_unordered_multimap.
+- The memory allocator may now clean its per-thread memory caches
+ when it cannot get more memory.
+- Added the scalable_allocation_command() function for on-demand
+ cleaning of internal memory caches.
+- Reduced the time overhead for freeing memory objects smaller than ~8K.
+- Simplified linking with the debug library for applications that use
+ Intel TBB in code offloaded to Intel(R) Xeon Phi(tm) coprocessors.
+ See an example in
+ examples/GettingStarted/sub_string_finder/Makefile.
+- Various improvements in source code, scripts and makefiles.
+
+Changes affecting backward compatibility:
+
+- tbb::flow::graph has been modified to spawn its tasks;
+ the old behaviour (task enqueuing) is deprecated. This change may
+ impact applications that expected a flow graph to make progress
+ without calling wait_for_all(), which is no longer guaranteed. See
+ the documentation for more details.
+- Changed the return values of the scalable_allocation_mode() function.
+
+Bugs fixed:
+
+- Fixed a leak of parallel_reduce body objects when execution is
+ cancelled or an exception is thrown, as suggested by Darcy Harrison.
+- Fixed a race in the task scheduler which can lower the effective
+ priority despite the existence of higher priority tasks.
+- On Linux an error during destruction of the internal thread local
+ storage no longer results in an exception.
+
+Open-source contributions integrated:
+
+- Fixed task_group_context state propagation to unrelated context trees
+ by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.1 Update 4
+TBB_INTERFACE_VERSION == 6105
+
+Changes (w.r.t. Intel TBB 4.1 Update 3):
+
+- Use /volatile:iso option with VS 2012 to disable extended
+ semantics for volatile variables.
+- Various improvements in affinity_partitioner, scheduler,
+ tests, examples, makefiles.
+- Concurrent_priority_queue class now supports initialization/assignment
+ via C++11 initializer list feature (std::initializer_list).
+
+Bugs fixed:
+
+- Fixed more possible stalls in concurrent invocations of
+ task_arena::execute(), especially waiting for enqueued tasks.
+- Fixed requested number of workers for task_arena(P,0).
+- Fixed interoperability with Intel(R) VTune(TM) Amplifier XE in
+ case of using task_arena::enqueue() from a terminating thread.
+
+Open-source contributions integrated:
+
+- Type fixes, cleanups, and code beautification by Raf Schietekat.
+- Improvements in atomic operations for big endian platforms
+ by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 4.1 Update 3
+TBB_INTERFACE_VERSION == 6103
+
+Changes (w.r.t. Intel TBB 4.1 Update 2):
+
+- Binary files for Android* applications were added to the Linux* OS
+ package.
+- Binary files for Windows Store* applications were added to the
+ Windows* OS package.
+- Exact exception propagation (exception_ptr) support on Linux OS is
+ now turned on by default for GCC 4.4 and higher.
+- Stopped implicit use of large memory pages by tbbmalloc (Linux-only).
+ Now use of large pages must be explicitly enabled with
+ scalable_allocation_mode() function or TBB_MALLOC_USE_HUGE_PAGES
+ environment variable.
+
+Community Preview Features:
+
+- Extended class task_arena constructor and method initialize() to
+ allow some concurrency to be reserved strictly for application
+ threads.
+- New methods terminate() and is_active() were added to class
+ task_arena.
+
+Bugs fixed:
+
+- Fixed initialization of hashing helper constant in the hash
+ containers.
+- Fixed possible stalls in concurrent invocations of
+ task_arena::execute() when no worker thread is available to make
+ progress.
+- Fixed incorrect calculation of hardware concurrency in the presence
+ of inactive processor groups, particularly on systems running
+ Windows* 8 and Windows* Server 2012.
+
+Open-source contributions integrated:
+
+- The fix for the GUI examples on OS X* systems by Raf Schietekat.
+- Moved some power-of-2 calculations to functions to improve readability
+ by Raf Schietekat.
+- C++11/Clang support improvements by arcata.
+- ARM* platform isolation layer by Steve Capper, Leif Lindholm, Leo Lara
+ (ARM).
+
+------------------------------------------------------------------------
+Intel TBB 4.1 Update 2
+TBB_INTERFACE_VERSION == 6102
+
+Changes (w.r.t. Intel TBB 4.1 Update 1):
+
+- Objects up to 128 MB are now cached by the tbbmalloc. Previously
+ the threshold was 8MB. Objects larger than 128 MB are still
+ processed by direct OS calls.
+- concurrent_unordered_multiset and concurrent_unordered_multimap
+ have been added, based on Microsoft* PPL prototype.
+- Ability to value-initialize a tbb::atomic variable on construction
+ in C++11, with const expressions properly supported.
+
+Community Preview Features:
+
+- Added a possibility to wait until all worker threads terminate.
+ This is necessary before calling fork() from an application.
+
+Bugs fixed:
+
+- Fixed data race in tbbmalloc that might lead to memory leaks
+ for large object allocations.
+- Fixed task_arena::enqueue() to use task_group_context of target arena.
+- Improved implementation of 64 bit atomics on ia32.
+
+------------------------------------------------------------------------
+Intel TBB 4.1 Update 1
+TBB_INTERFACE_VERSION == 6101
+
+Changes (w.r.t. Intel TBB 4.1):
+
+- concurrent_vector class now supports initialization/assignment
+ via C++11 initializer list feature (std::initializer_list)
+- Added implementation of the platform isolation layer based on
+ Intel compiler atomic built-ins; it is supposed to work on
+ any platform supported by compiler version 12.1 and newer.
+- Using GetNativeSystemInfo() instead of GetSystemInfo() to support
+ more than 32 processors for 32-bit applications under WOW64.
+- The following form of parallel_for:
+ parallel_for(first, last, [step,] f[, context]) now accepts an
+ optional partitioner parameter after the function f.
+
+Backward-incompatible API changes:
+
+- The library no longer injects tuple in to namespace std.
+ In previous releases, tuple was injected into namespace std by
+ flow_graph.h when std::tuple was not available. In this release,
+ flow_graph.h now uses tbb::flow::tuple. On platforms where
+ std::tuple is available, tbb::flow::tuple is typedef'ed to
+ std::tuple. On all other platforms, tbb::flow::tuple provides
+ a subset of the functionality defined by std::tuple. Users of
+ flow_graph.h may need to change their uses of std::tuple to
+ tbb::flow::tuple to ensure compatibility with non-C++11 compliant
+ compilers.
+
+Bugs fixed:
+
+- Fixed local observer to be able to override propagated CPU state and
+ to provide correct value of task_arena::current_slot() in callbacks.
+
+------------------------------------------------------------------------
+Intel TBB 4.1
+TBB_INTERFACE_VERSION == 6100
+
+Changes (w.r.t. Intel TBB 4.0 Update 5):
+
+- _WIN32_WINNT must be set to 0x0501 or greater in order to use TBB
+ on Microsoft* Windows*.
+- parallel_deterministic_reduce template function is fully supported.
+- TBB headers can be used with C++0x/C++11 mode (-std=c++0x) of GCC
+ and Intel(R) Compiler.
+- C++11 std::make_exception_ptr is used where available, instead of
+ std::copy_exception from earlier C++0x implementations.
+- Improvements in the TBB allocator to reduce extra memory consumption.
+- Partial refactoring of the task scheduler data structures.
+- TBB examples allow more flexible specification of the thread number,
+ including arithmetic and geometric progression.
+
+Bugs fixed:
+
+- On Linux & OS X*, pre-built TBB binaries do not yet support exact
+ exception propagation via C++11 exception_ptr. To prevent run time
+ errors, by default TBB headers disable exact exception propagation
+ even if the C++ implementation provides exception_ptr.
+
+Community Preview Features:
+
+- Added: class task_arena, for work submission by multiple application
+ threads with thread-independent control of concurrency level.
+- Added: task_scheduler_observer can be created as local to a master
+ thread, to observe threads that work on behalf of that master.
+ Local observers may have new on_scheduler_leaving() callback.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 5
+TBB_INTERFACE_VERSION == 6005
+
+Changes (w.r.t. Intel TBB 4.0 Update 4):
+
+- Parallel pipeline optimization (directly storing small objects in the
+ interstage data buffers) limited to trivially-copyable types for
+ C++11 and a short list of types for earlier compilers.
+- _VARIADIC_MAX switch is honored for TBB tuple implementation
+ and flow::graph nodes based on tuple.
+- Support of Cocoa framework was added to the GUI examples on OS X*
+ systems.
+
+Bugs fixed:
+
+- Fixed a tv_nsec overflow bug in condition_variable::wait_for.
+- Fixed execution order of enqueued tasks with different priorities.
+- Fixed a bug with task priority changes causing lack of progress
+ for fire-and-forget tasks when TBB was initialized to use 1 thread.
+- Fixed duplicate symbol problem when linking multiple compilation
+ units that include flow_graph.h on VC 10.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 4
+TBB_INTERFACE_VERSION == 6004
+
+Changes (w.r.t. Intel TBB 4.0 Update 3):
+
+- The TBB memory allocator transparently supports large pages on Linux.
+- A new flow_graph example, logic_sim, was added.
+- Support for DirectX* 9 was added to GUI examples.
+
+Community Preview Features:
+
+- Added: aggregator, a new concurrency control mechanism.
+
+Bugs fixed:
+
+- The abort operation on concurrent_bounded_queue now leaves the queue
+ in a reusable state. If a bad_alloc or bad_last_alloc exception is
+ thrown while the queue is recovering from an abort, that exception
+ will be reported instead of user_abort on the thread on which it
+ occurred, and the queue will not be reusable.
+- Steal limiting heuristic fixed to avoid premature stealing disabling
+ when large amount of __thread data is allocated on thread stack.
+- Fixed a low-probability leak of arenas in the task scheduler.
+- In STL-compatible allocator classes, the method construct() was fixed
+ to comply with C++11 requirements.
+- Fixed a bug that prevented creation of fixed-size memory pools
+ smaller than 2M.
+- Significantly reduced the amount of warnings from various compilers.
+
+Open-source contributions integrated:
+
+- Multiple improvements by Raf Schietekat.
+- Basic support for Clang on OS X* by Blas Rodriguez Somoza.
+- Fixes for warnings and corner-case bugs by Blas Rodriguez Somoza
+ and Edward Lam.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 3
+TBB_INTERFACE_VERSION == 6003
+
+Changes (w.r.t. Intel TBB 4.0 Update 2):
+
+- Modifications to the low-level API for memory pools:
+ added support for aligned allocations;
+ pool policies reworked to allow backward-compatible extensions;
+ added a policy to not return memory space till destruction;
+ pool_reset() does not return memory space anymore.
+- Class tbb::flow::graph_iterator added to iterate over all nodes
+ registered with a graph instance.
+- multioutput_function_node has been renamed multifunction_node.
+ multifunction_node and split_node are now fully-supported features.
+- For the tagged join node, the policy for try_put of an item with
+ already existing tag has been defined: the item will be rejected.
+- Matching the behavior on Windows, on other platforms the optional
+ shared libraries (libtbbmalloc, libirml) now are also searched
+ only in the directory where libtbb is located.
+- The platform isolation layer based on GCC built-ins is extended.
+
+Backward-incompatible API changes:
+
+- a graph reference parameter is now required to be passed to the
+ constructors of the following flow graph nodes: overwrite_node,
+ write_once_node, broadcast_node, and the CPF or_node.
+- the following tbb::flow node methods and typedefs have been renamed:
+ Old New
+ join_node and or_node:
+ inputs() -> input_ports()
+ input_ports_tuple_type -> input_ports_type
+ multifunction_node and split_node:
+ ports_type -> output_ports_type
+
+Bugs fixed:
+
+- Not all logical processors were utilized on systems with more than
+ 64 cores split by Windows into several processor groups.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 6002
+
+Changes (w.r.t. Intel TBB 4.0 Update 1 commercial-aligned release):
+
+- concurrent_bounded_queue now has an abort() operation that releases
+ threads involved in pending push or pop operations. The released
+ threads will receive a tbb::user_abort exception.
+- Added Community Preview Feature: concurrent_lru_cache container,
+ a concurrent implementation of LRU (least-recently-used) cache.
+
+Bugs fixed:
+
+- fixed a race condition in the TBB scalable allocator.
+- concurrent_queue counter wraparound bug was fixed, which occurred when
+ the number of push and pop operations exceeded ~>4 billion on IA32.
+- fixed races in the TBB scheduler that could put workers asleep too
+ early, especially in presence of affinitized tasks.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 6000 (forgotten to increment)
+
+Changes (w.r.t. Intel TBB 4.0 commercial-aligned release):
+
+- Memory leaks fixed in binpack example.
+- Improvements and fixes in the TBB allocator.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 commercial-aligned release
+TBB_INTERFACE_VERSION == 6000
+
+Changes (w.r.t. Intel TBB 3.0 Update 8 commercial-aligned release):
+
+- concurrent_priority_queue is now a fully supported feature.
+ Capacity control methods were removed.
+- Flow graph is now a fully supported feature.
+- A new memory backend has been implemented in the TBB allocator.
+ It can reuse freed memory for both small and large objects, and
+ returns unused memory blocks to the OS more actively.
+- Improved partitioning algorithms for parallel_for and parallel_reduce
+ to better handle load imbalance.
+- The convex_hull example has been refactored for reproducible
+ performance results.
+- The major interface version has changed from 5 to 6.
+ Deprecated interfaces might be removed in future releases.
+
+Community Preview Features:
+
+- Added: serial subset, i.e. sequential implementations of TBB generic
+ algorithms (currently, only provided for parallel_for).
+- Preview of new flow graph nodes:
+ or_node (accepts multiple inputs, forwards each input separately
+ to all successors),
+ split_node (accepts tuples, and forwards each element of a tuple
+ to a corresponding successor), and
+ multioutput_function_node (accepts one input, and passes the input
+ and a tuple of output ports to the function body to support outputs
+ to multiple successors).
+- Added: memory pools for more control on memory source, grouping,
+ and collective deallocation.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 8 commercial-aligned release
+TBB_INTERFACE_VERSION == 5008
+
+Changes (w.r.t. Intel TBB 3.0 Update 7 commercial-aligned release):
+
+- Task priorities become an official feature of TBB,
+ not community preview as before.
+- Atomics API extended, and implementation refactored.
+- Added task::set_parent() method.
+- Added concurrent_unordered_set container.
+
+Open-source contributions integrated:
+
+- PowerPC support by Raf Schietekat.
+- Fix of potential task pool overrun and other improvements
+ in the task scheduler by Raf Schietekat.
+- Fix in parallel_for_each to work with std::set in Visual* C++ 2010.
+
+Community Preview Features:
+
+- Graph community preview feature was renamed to flow graph.
+ Multiple improvements in the implementation.
+ Binpack example was added for the feature.
+- A number of improvements to concurrent_priority_queue.
+ Shortpath example was added for the feature.
+- TBB runtime loaded functionality was added (Windows*-only).
+ It allows to specify which versions of TBB should be used,
+ as well as to set directories for the library search.
+- parallel_deterministic_reduce template function was added.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 7 commercial-aligned release
+TBB_INTERFACE_VERSION == 5006 (forgotten to increment)
+
+Changes (w.r.t. Intel TBB 3.0 Update 6 commercial-aligned release):
+
+- Added implementation of the platform isolation layer based on
+ GCC atomic built-ins; it is supposed to work on any platform
+ where GCC has these built-ins.
+
+Community Preview Features:
+
+- Graph's dining_philosophers example added.
+- A number of improvements to graph and concurrent_priority_queue.
+
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 6 commercial-aligned release
+TBB_INTERFACE_VERSION == 5006
+
+Changes (w.r.t. Intel TBB 3.0 Update 5 commercial-aligned release):
+
+- Added Community Preview feature: task and task group priority, and
+ Fractal example demonstrating it.
+- parallel_pipeline optimized for data items of small and large sizes.
+- Graph's join_node is now parametrized with a tuple of up to 10 types.
+- Improved performance of concurrent_priority_queue.
+
+Open-source contributions integrated:
+
+- Initial NetBSD support by Aleksej Saushev.
+
+Bugs fixed:
+
+- Failure to enable interoperability with Intel(R) Cilk(tm) Plus runtime
+ library, and a crash caused by invoking the interoperability layer
+ after one of the libraries was unloaded.
+- Data race that could result in concurrent_unordered_map structure
+ corruption after call to clear() method.
+- Stack corruption caused by PIC version of 64-bit CAS compiled by Intel
+ compiler on Linux.
+- Inconsistency of exception propagation mode possible when application
+ built with Microsoft* Visual Studio* 2008 or earlier uses TBB built
+ with Microsoft* Visual Studio* 2010.
+- Affinitizing master thread to a subset of available CPUs after TBB
+ scheduler was initialized tied all worker threads to the same CPUs.
+- Method is_stolen_task() always returned 'false' for affinitized tasks.
+- write_once_node and overwrite_node did not immediately send buffered
+ items to successors
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 5 commercial-aligned release
+TBB_INTERFACE_VERSION == 5005
+
+Changes (w.r.t. Intel TBB 3.0 Update 4 commercial-aligned release):
+
+- Added Community Preview feature: graph.
+- Added automatic propagation of master thread FPU settings to
+ TBB worker threads.
+- Added a public function to perform a sequentially consistent full
+ memory fence: tbb::atomic_fence() in tbb/atomic.h.
+
+Bugs fixed:
+
+- Data race that could result in scheduler data structures corruption
+ when using fire-and-forget tasks.
+- Potential referencing of destroyed concurrent_hash_map element after
+ using erase(accessor&A) method with A acquired as const_accessor.
+- Fixed a correctness bug in the convex hull example.
+
+Open-source contributions integrated:
+
+- Patch for calls to internal::atomic_do_once() by Andrey Semashev.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 4 commercial-aligned release
+TBB_INTERFACE_VERSION == 5004
+
+Changes (w.r.t. Intel TBB 3.0 Update 3 commercial-aligned release):
+
+- Added Community Preview feature: concurrent_priority_queue.
+- Fixed library loading to avoid possibility for remote code execution,
+ see http://www.microsoft.com/technet/security/advisory/2269637.mspx.
+- Added support of more than 64 cores for appropriate Microsoft*
+ Windows* versions. For more details, see
+ http://msdn.microsoft.com/en-us/library/dd405503.aspx.
+- Default number of worker threads is adjusted in accordance with
+ process affinity mask.
+
+Bugs fixed:
+
+- Calls of scalable_* functions from inside the allocator library
+ caused issues if the functions were overridden by another module.
+- A crash occurred if methods run() and wait() were called concurrently
+ for an empty tbb::task_group (1736).
+- The tachyon example exhibited build problems associated with
+ bug 554339 on Microsoft* Visual Studio* 2010. Project files were
+ modified as a partial workaround to overcome the problem. See
+ http://connect.microsoft.com/VisualStudio/feedback/details/554339.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 3 commercial-aligned release
+TBB_INTERFACE_VERSION == 5003
+
+Changes (w.r.t. Intel TBB 3.0 Update 2 commercial-aligned release):
+
+- cache_aligned_allocator class reworked to use scalable_aligned_malloc.
+- Improved performance of count() and equal_range() methods
+ in concurrent_unordered_map.
+- Improved implementation of 64-bit atomic loads and stores on 32-bit
+ platforms, including compilation with VC 7.1.
+- Added implementation of atomic operations on top of OSAtomic API
+ provided by OS X*.
+- Removed gratuitous try/catch blocks surrounding thread function calls
+ in tbb_thread.
+- Xcode* projects were added for sudoku and game_of_life examples.
+- Xcode* projects were updated to work without TBB framework.
+
+Bugs fixed:
+
+- Fixed a data race in task scheduler destruction that on rare occasion
+ could result in memory corruption.
+- Fixed idle spinning in thread bound filters in tbb::pipeline (1670).
+
+Open-source contributions integrated:
+
+- MinGW-64 basic support by brsomoza (partially).
+- Patch for atomic.h by Andrey Semashev.
+- Support for AIX & GCC on PowerPC by Giannis Papadopoulos.
+- Various improvements by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 5002
+
+Changes (w.r.t. Intel TBB 3.0 Update 1 commercial-aligned release):
+
+- Destructor of tbb::task_group class throws missing_wait exception
+ if there are tasks running when it is invoked.
+- Interoperability layer with Intel Cilk Plus runtime library added
+ to protect TBB TLS in case of nested usage with Intel Cilk Plus.
+- Compilation fix for dependent template names in concurrent_queue.
+- Memory allocator code refactored to ease development and maintenance.
+
+Bugs fixed:
+
+- Improved interoperability with other Intel software tools on Linux in
+ case of dynamic replacement of memory allocator (1700)
+- Fixed install issues that prevented installation on
+ Mac OS* X 10.6.4 (1711).
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 5000 (forgotten to increment)
+
+Changes (w.r.t. Intel TBB 3.0 commercial-aligned release):
+
+- Decreased memory fragmentation by allocations bigger than 8K.
+- Lazily allocate worker threads, to avoid creating unnecessary stacks.
+
+Bugs fixed:
+
+- TBB allocator used much more memory than malloc (1703) - see above.
+- Deadlocks happened in some specific initialization scenarios
+ of the TBB allocator (1701, 1704).
+- Regression in enumerable_thread_specific: excessive requirements
+ for object constructors.
+- A bug in construction of parallel_pipeline filters when body instance
+ was a temporary object.
+- Incorrect usage of memory fences on PowerPC and XBOX360 platforms.
+- A subtle issue in task group context binding that could result
+ in cancellation signal being missed by nested task groups.
+- Incorrect construction of concurrent_unordered_map if specified
+ number of buckets is not power of two.
+- Broken count() and equal_range() of concurrent_unordered_map.
+- Return type of postfix form of operator++ for hash map's iterators.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 commercial-aligned release
+TBB_INTERFACE_VERSION == 5000
+
+Changes (w.r.t. Intel TBB 2.2 Update 3 commercial-aligned release):
+
+- All open-source-release changes down to TBB 2.2 U3 below
+ were incorporated into this release.
+
+------------------------------------------------------------------------
+20100406 open-source release
+
+Changes (w.r.t. 20100310 open-source release):
+
+- Added support for Microsoft* Visual Studio* 2010, including binaries.
+- Added a PDF file with recommended Design Patterns for TBB.
+- Added parallel_pipeline function and companion classes and functions
+ that provide a strongly typed lambda-friendly pipeline interface.
+- Reworked enumerable_thread_specific to use a custom implementation of
+ hash map that is more efficient for ETS usage models.
+- Added example for class task_group; see examples/task_group/sudoku.
+- Removed two examples, as they were long outdated and superceded:
+ pipeline/text_filter (use pipeline/square);
+ parallel_while/parallel_preorder (use parallel_do/parallel_preorder).
+- PDF documentation updated.
+- Other fixes and changes in code, tests, and examples.
+
+Bugs fixed:
+
+- Eliminated build errors with MinGW32.
+- Fixed post-build step and other issues in VS projects for examples.
+- Fixed discrepancy between scalable_realloc and scalable_msize that
+ caused crashes with malloc replacement on Windows.
+
+------------------------------------------------------------------------
+20100310 open-source release
+
+Changes (w.r.t. Intel TBB 2.2 Update 3 commercial-aligned release):
+
+- Version macros changed in anticipation of a future release.
+- Directory structure aligned with Intel(R) C++ Compiler;
+ now TBB binaries reside in //[bin|lib]
+ (in TBB 2.x, it was [bin|lib]//).
+- Visual Studio projects changed for examples: instead of separate set
+ of files for each VS version, now there is single 'msvs' directory
+ that contains workspaces for MS C++ compiler (_cl.sln) and
+ Intel C++ compiler (_icl.sln). Works with VS 2005 and above.
+- The name versioning scheme for backward compatibility was improved;
+ now compatibility-breaking changes are done in a separate namespace.
+- Added concurrent_unordered_map implementation based on a prototype
+ developed in Microsoft for a future version of PPL.
+- Added PPL-compatible writer-preference RW lock (reader_writer_lock).
+- Added TBB_IMPLEMENT_CPP0X macro to control injection of C++0x names
+ implemented in TBB into namespace std.
+- Added almost-C++0x-compatible std::condition_variable, plus a bunch
+ of other C++0x classes required by condition_variable.
+- With TBB_IMPLEMENT_CPP0X, tbb_thread can be also used as std::thread.
+- task.cpp was split into several translation units to structure
+ TBB scheduler sources layout. Static data layout and library
+ initialization logic were also updated.
+- TBB scheduler reworked to prevent master threads from stealing
+ work belonging to other masters.
+- Class task was extended with enqueue() method, and slightly changed
+ semantics of methods spawn() and destroy(). For exact semantics,
+ refer to TBB Reference manual.
+- task_group_context now allows for destruction by non-owner threads.
+- Added TBB_USE_EXCEPTIONS macro to control use of exceptions in TBB
+ headers. It turns off (i.e. sets to 0) automatically if specified
+ compiler options disable exception handling.
+- TBB is enabled to run on top of Microsoft's Concurrency Runtime
+ on Windows* 7 (via our worker dispatcher known as RML).
+- Removed old unused busy-waiting code in concurrent_queue.
+- Described the advanced build & test options in src/index.html.
+- Warning level for GCC raised with -Wextra and a few other options.
+- Multiple fixes and improvements in code, tests, examples, and docs.
+
+Open-source contributions integrated:
+
+- Xbox support by Roman Lut (Deep Shadows), though further changes are
+ required to make it working; e.g. post-2.1 entry points are missing.
+- "Eventcount" by Dmitry Vyukov evolved into concurrent_monitor,
+ an internal class used in the implementation of concurrent_queue.
+
+------------------------------------------------------------------------
+Intel TBB 2.2 Update 3 commercial-aligned release
+TBB_INTERFACE_VERSION == 4003
+
+Changes (w.r.t. Intel TBB 2.2 Update 2 commercial-aligned release):
+
+- PDF documentation updated.
+
+Bugs fixed:
+
+- concurrent_hash_map compatibility issue exposed on Linux in case
+ two versions of the container were used by different modules.
+- enforce 16 byte stack alignment for consistence with GCC; required
+ to work correctly with 128-bit variables processed by SSE.
+- construct() methods of allocator classes now use global operator new.
+
+------------------------------------------------------------------------
+Intel TBB 2.2 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 4002
+
+Changes (w.r.t. Intel TBB 2.2 Update 1 commercial-aligned release):
+
+- parallel_invoke and parallel_for_each now take function objects
+ by const reference, not by value.
+- Building TBB with /MT is supported, to avoid dependency on particular
+ versions of Visual C++* runtime DLLs. TBB DLLs built with /MT
+ are located in vc_mt directory.
+- Class critical_section introduced.
+- Improvements in exception support: new exception classes introduced,
+ all exceptions are thrown via an out-of-line internal method.
+- Improvements and fixes in the TBB allocator and malloc replacement,
+ including robust memory identification, and more reliable dynamic
+ function substitution on Windows*.
+- Method swap() added to class tbb_thread.
+- Methods rehash() and bucket_count() added to concurrent_hash_map.
+- Added support for Visual Studio* 2010 Beta2. No special binaries
+ provided, but CRT-independent DLLs (vc_mt) should work.
+- Other fixes and improvements in code, tests, examples, and docs.
+
+Open-source contributions integrated:
+
+- The fix to build 32-bit TBB on Mac OS* X 10.6.
+- GCC-based port for SPARC Solaris by Michailo Matijkiw, with use of
+ earlier work by Raf Schietekat.
+
+Bugs fixed:
+
+- 159 - TBB build for PowerPC* running Mac OS* X.
+- 160 - IBM* Java segfault if used with TBB allocator.
+- crash in concurrent_queue (1616).
+
+------------------------------------------------------------------------
+Intel TBB 2.2 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 4001
+
+Changes (w.r.t. Intel TBB 2.2 commercial-aligned release):
+
+- Incorporates all changes from open-source releases below.
+- Documentation was updated.
+- TBB scheduler auto-initialization now covers all possible use cases.
+- concurrent_queue: made argument types of sizeof used in paddings
+ consistent with those actually used.
+- Memory allocator was improved: supported corner case of user's malloc
+ calling scalable_malloc (non-Windows), corrected processing of
+ memory allocation requests during tbb memory allocator startup
+ (Linux).
+- Windows malloc replacement has got better support for static objects.
+- In pipeline setups that do not allow actual parallelism, execution
+ by a single thread is guaranteed, idle spinning eliminated, and
+ performance improved.
+- RML refactoring and clean-up.
+- New constructor for concurrent_hash_map allows reserving space for
+ a number of items.
+- Operator delete() added to the TBB exception classes.
+- Lambda support was improved in parallel_reduce.
+- gcc 4.3 warnings were fixed for concurrent_queue.
+- Fixed possible initialization deadlock in modules using TBB entities
+ during construction of global static objects.
+- Copy constructor in concurrent_hash_map was fixed.
+- Fixed a couple of rare crashes in the scheduler possible before
+ in very specific use cases.
+- Fixed a rare crash in the TBB allocator running out of memory.
+- New tests were implemented, including test_lambda.cpp that checks
+ support for lambda expressions.
+- A few other small changes in code, tests, and documentation.
+
+------------------------------------------------------------------------
+20090809 open-source release
+
+Changes (w.r.t. Intel TBB 2.2 commercial-aligned release):
+
+- Fixed known exception safety issues in concurrent_vector.
+- Better concurrency of simultaneous grow requests in concurrent_vector.
+- TBB allocator further improves performance of large object allocation.
+- Problem with source of text relocations was fixed on Linux
+- Fixed bugs related to malloc replacement under Windows
+- A few other small changes in code and documentation.
+
+------------------------------------------------------------------------
+Intel TBB 2.2 commercial-aligned release
+TBB_INTERFACE_VERSION == 4000
+
+Changes (w.r.t. Intel TBB 2.1 U4 commercial-aligned release):
+
+- Incorporates all changes from open-source releases below.
+- Architecture folders renamed from em64t to intel64 and from itanium
+ to ia64.
+- Major Interface version changed from 3 to 4. Deprecated interfaces
+ might be removed in future releases.
+- Parallel algorithms that use partitioners have switched to use
+ the auto_partitioner by default.
+- Improved memory allocator performance for allocations bigger than 8K.
+- Added new thread-bound filters functionality for pipeline.
+- New implementation of concurrent_hash_map that improves performance
+ significantly.
+- A few other small changes in code and documentation.
+
+------------------------------------------------------------------------
+20090511 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Basic support for MinGW32 development kit.
+- Added tbb::zero_allocator class that initializes memory with zeros.
+ It can be used as an adaptor to any STL-compatible allocator class.
+- Added tbb::parallel_for_each template function as alias to parallel_do.
+- Added more overloads for tbb::parallel_for.
+- Added support for exact exception propagation (can only be used with
+ compilers that support C++0x std::exception_ptr).
+- tbb::atomic template class can be used with enumerations.
+- mutex, recursive_mutex, spin_mutex, spin_rw_mutex classes extended
+ with explicit lock/unlock methods.
+- Fixed size() and grow_to_at_least() methods of tbb::concurrent_vector
+ to provide space allocation guarantees. More methods added for
+ compatibility with std::vector, including some from C++0x.
+- Preview of a lambda-friendly interface for low-level use of tasks.
+- scalable_msize function added to the scalable allocator (Windows only).
+- Rationalized internal auxiliary functions for spin-waiting and backoff.
+- Several tests undergo decent refactoring.
+
+Changes affecting backward compatibility:
+
+- Improvements in concurrent_queue, including limited API changes.
+ The previous version is deprecated; its functionality is accessible
+ via methods of the new tbb::concurrent_bounded_queue class.
+- grow* and push_back methods of concurrent_vector changed to return
+ iterators; old semantics is deprecated.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 4 commercial-aligned release
+TBB_INTERFACE_VERSION == 3016
+
+Changes (w.r.t. Intel TBB 2.1 U3 commercial-aligned release):
+
+- Added tests for aligned memory allocations and malloc replacement.
+- Several improvements for better bundling with Intel(R) C++ Compiler.
+- A few other small changes in code and documentaion.
+
+Bugs fixed:
+
+- 150 - request to build TBB examples with debug info in release mode.
+- backward compatibility issue with concurrent_queue on Windows.
+- dependency on VS 2005 SP1 runtime libraries removed.
+- compilation of GUI examples under Xcode* 3.1 (1577).
+- On Windows, TBB allocator classes can be instantiated with const types
+ for compatibility with MS implementation of STL containers (1566).
+
+------------------------------------------------------------------------
+20090313 open-source release
+
+Changes (w.r.t. 20081109 open-source release):
+
+- Includes all changes introduced in TBB 2.1 Update 2 & Update 3
+ commercial-aligned releases (see below for details).
+- Added tbb::parallel_invoke template function. It runs up to 10
+ user-defined functions in parallel and waits for them to complete.
+- Added a special library providing ability to replace the standard
+ memory allocation routines in Microsoft* C/C++ RTL (malloc/free,
+ global new/delete, etc.) with the TBB memory allocator.
+ Usage details are described in include/tbb/tbbmalloc_proxy.h file.
+- Task scheduler switched to use new implementation of its core
+ functionality (deque based task pool, new structure of arena slots).
+- Preview of Microsoft* Visual Studio* 2005 project files for
+ building the library is available in build/vsproject folder.
+- Added tests for aligned memory allocations and malloc replacement.
+- Added parallel_for/game_of_life.net example (for Windows only)
+ showing TBB usage in a .NET application.
+- A number of other fixes and improvements to code, tests, makefiles,
+ examples and documents.
+
+Bugs fixed:
+
+- The same list as in TBB 2.1 Update 4 right above.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 3 commercial-aligned release
+TBB_INTERFACE_VERSION == 3015
+
+Changes (w.r.t. Intel TBB 2.1 U2 commercial-aligned release):
+
+- Added support for aligned allocations to the TBB memory allocator.
+- Added a special library to use with LD_PRELOAD on Linux* in order to
+ replace the standard memory allocation routines in C/C++ with the
+ TBB memory allocator.
+- Added null_mutex and null_rw_mutex: no-op classes interface-compliant
+ to other TBB mutexes.
+- Improved performance of parallel_sort, to close most of the serial gap
+ with std::sort, and beat it on 2 and more cores.
+- A few other small changes.
+
+Bugs fixed:
+
+- the problem where parallel_for hanged after exception throw
+ if affinity_partitioner was used (1556).
+- get rid of VS warnings about mbstowcs deprecation (1560),
+ as well as some other warnings.
+- operator== for concurrent_vector::iterator fixed to work correctly
+ with different vector instances.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 3014
+
+Changes (w.r.t. Intel TBB 2.1 U1 commercial-aligned release):
+
+- Incorporates all open-source-release changes down to TBB 2.1 U1,
+ except for:
+ - 20081019 addition of enumerable_thread_specific;
+- Warning level for Microsoft* Visual C++* compiler raised to /W4 /Wp64;
+ warnings found on this level were cleaned or suppressed.
+- Added TBB_runtime_interface_version API function.
+- Added new example: pipeline/square.
+- Added exception handling and cancellation support
+ for parallel_do and pipeline.
+- Added copy constructor and [begin,end) constructor to concurrent_queue.
+- Added some support for beta version of Intel(R) Parallel Amplifier.
+- Added scripts to set environment for cross-compilation of 32-bit
+ applications on 64-bit Linux with Intel(R) C++ Compiler.
+- Fixed semantics of concurrent_vector::clear() to not deallocate
+ internal arrays. Fixed compact() to perform such deallocation later.
+- Fixed the issue with atomic when T is incomplete type.
+- Improved support for PowerPC* Macintosh*, including the fix
+ for a bug in masked compare-and-swap reported by a customer.
+- As usual, a number of other improvements everywhere.
+
+------------------------------------------------------------------------
+20081109 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Added new serial out of order filter for tbb::pipeline.
+- Fixed the issue with atomic::operator= reported at the forum.
+- Fixed the issue with using tbb::task::self() in task destructor
+ reported at the forum.
+- A number of other improvements to code, tests, makefiles, examples
+ and documents.
+
+Open-source contributions integrated:
+- Changes in the memory allocator were partially integrated.
+
+------------------------------------------------------------------------
+20081019 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Introduced enumerable_thread_specific. This new class provides a
+ wrapper around native thread local storage as well as iterators and
+ ranges for accessing the thread local copies (1533).
+- Improved support for Intel(R) Threading Analysis Tools
+ on Intel(R) 64 architecture.
+- Dependency from Microsoft* CRT was integrated to the libraries using
+ manifests, to avoid issues if called from code that uses different
+ version of Visual C++* runtime than the library.
+- Introduced new defines TBB_USE_ASSERT, TBB_USE_DEBUG,
+ TBB_USE_PERFORMANCE_WARNINGS, TBB_USE_THREADING_TOOLS.
+- A number of other improvements to code, tests, makefiles, examples
+ and documents.
+
+Open-source contributions integrated:
+
+- linker optimization: /incremental:no .
+
+------------------------------------------------------------------------
+20080925 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Same fix for a memory leak in the memory allocator as in TBB 2.1 U1.
+- Improved support for lambda functions.
+- Fixed more concurrent_queue issues reported at the forum.
+- A number of other improvements to code, tests, makefiles, examples
+ and documents.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 3013
+
+Changes (w.r.t. Intel TBB 2.1 commercial-aligned release):
+
+- Fixed small memory leak in the memory allocator.
+- Incorporates all open-source-release changes since TBB 2.1,
+ except for:
+ - 20080825 changes for parallel_do;
+
+------------------------------------------------------------------------
+20080825 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Added exception handling and cancellation support for parallel_do.
+- Added default HashCompare template argument for concurrent_hash_map.
+- Fixed concurrent_queue.clear() issues due to incorrect assumption
+ about clear() being private method.
+- Added the possibility to use TBB in applications that change
+ default calling conventions (Windows* only).
+- Many improvements to code, tests, examples, makefiles and documents.
+
+Bugs fixed:
+
+- 120, 130 - memset declaration missed in concurrent_hash_map.h
+
+------------------------------------------------------------------------
+20080724 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Inline assembly for atomic operations improved for gcc 4.3
+- A few more improvements to the code.
+
+------------------------------------------------------------------------
+20080709 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- operator=() was added to the tbb_thread class according to
+ the current working draft for std::thread.
+- Recognizing SPARC* in makefiles for Linux* and Sun Solaris*.
+
+Bugs fixed:
+
+- 127 - concurrent_hash_map::range fixed to split correctly.
+
+Open-source contributions integrated:
+
+- fix_set_midpoint.diff by jyasskin
+- SPARC* support in makefiles by Raf Schietekat
+
+------------------------------------------------------------------------
+20080622 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Fixed a hang that rarely happened on Linux
+ during deinitialization of the TBB scheduler.
+- Improved support for Intel(R) Thread Checker.
+- A few more improvements to the code.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 commercial-aligned release
+TBB_INTERFACE_VERSION == 3011
+
+Changes (w.r.t. Intel TBB 2.0 U3 commercial-aligned release):
+
+- All open-source-release changes down to, and including, TBB 2.0 below,
+ were incorporated into this release.
+
+------------------------------------------------------------------------
+20080605 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Explicit control of exported symbols by version scripts added on Linux.
+- Interfaces polished for exception handling & algorithm cancellation.
+- Cache behavior improvements in the scalable allocator.
+- Improvements in text_filter, polygon_overlay, and other examples.
+- A lot of other stability improvements in code, tests, and makefiles.
+- First release where binary packages include headers/docs/examples, so
+ binary packages are now self-sufficient for using TBB.
+
+Open-source contributions integrated:
+
+- atomics patch (partially).
+- tick_count warning patch.
+
+Bugs fixed:
+
+- 118 - fix for boost compatibility.
+- 123 - fix for tbb_machine.h.
+
+------------------------------------------------------------------------
+20080512 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Fixed a problem with backward binary compatibility
+ of debug Linux builds.
+- Sun* Studio* support added.
+- soname support added on Linux via linker script. To restore backward
+ binary compatibility, *.so -> *.so.2 softlinks should be created.
+- concurrent_hash_map improvements - added few new forms of insert()
+ method and fixed precondition and guarantees of erase() methods.
+ Added runtime warning reporting about bad hash function used for
+ the container. Various improvements for performance and concurrency.
+- Cancellation mechanism reworked so that it does not hurt scalability.
+- Algorithm parallel_do reworked. Requirement for Body::argument_type
+ definition removed, and work item argument type can be arbitrarily
+ cv-qualified.
+- polygon_overlay example added.
+- A few more improvements to code, tests, examples and Makefiles.
+
+Open-source contributions integrated:
+
+- Soname support patch for Bugzilla #112.
+
+Bugs fixed:
+
+- 112 - fix for soname support.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 U3 commercial-aligned release (package 017, April 20, 2008)
+
+Corresponds to commercial 019 (for Linux*, 020; for Mac OS* X, 018)
+packages.
+
+Changes (w.r.t. Intel TBB 2.0 U2 commercial-aligned release):
+
+- Does not contain open-source-release changes below; this release is
+ only a minor update of TBB 2.0 U2.
+- Removed spin-waiting in pipeline and concurrent_queue.
+- A few more small bug fixes from open-source releases below.
+
+------------------------------------------------------------------------
+20080408 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- count_strings example reworked: new word generator implemented, hash
+ function replaced, and tbb_allocator is used with std::string class.
+- Static methods of spin_rw_mutex were replaced by normal member
+ functions, and the class name was versioned.
+- tacheon example was renamed to tachyon.
+- Improved support for Intel(R) Thread Checker.
+- A few more minor improvements.
+
+Open-source contributions integrated:
+
+- Two sets of Sun patches for IA Solaris support.
+
+------------------------------------------------------------------------
+20080402 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Exception handling and cancellation support for tasks and algorithms
+ fully enabled.
+- Exception safety guaranties defined and fixed for all concurrent
+ containers.
+- User-defined memory allocator support added to all concurrent
+ containers.
+- Performance improvement of concurrent_hash_map, spin_rw_mutex.
+- Critical fix for a rare race condition during scheduler
+ initialization/de-initialization.
+- New methods added for concurrent containers to be closer to STL,
+ as well as automatic filters removal from pipeline
+ and __TBB_AtomicAND function.
+- The volatile keyword dropped from where it is not really needed.
+- A few more minor improvements.
+
+------------------------------------------------------------------------
+20080319 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Support for gcc version 4.3 was added.
+- tbb_thread class, near compatible with std::thread expected in C++0x,
+ was added.
+
+Bugs fixed:
+
+- 116 - fix for compilation issues with gcc version 4.2.1.
+- 120 - fix for compilation issues with gcc version 4.3.
+
+------------------------------------------------------------------------
+20080311 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- An enumerator added for pipeline filter types (serial vs. parallel).
+- New task_scheduler_observer class introduced, to observe when
+ threads start and finish interacting with the TBB task scheduler.
+- task_scheduler_init reverted to not use internal versioned class;
+ binary compatibility guaranteed with stable releases only.
+- Various improvements to code, tests, examples and Makefiles.
+
+------------------------------------------------------------------------
+20080304 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Task-to-thread affinity support, previously kept under a macro,
+ now fully legalized.
+- Work-in-progress on cache_aligned_allocator improvements.
+- Pipeline really supports parallel input stage; it's no more serialized.
+- Various improvements to code, tests, examples and Makefiles.
+
+Bugs fixed:
+
+- 119 - fix for scalable_malloc sometimes failing to return a big block.
+- TR575 - fixed a deadlock occurring on Windows in startup/shutdown
+ under some conditions.
+
+------------------------------------------------------------------------
+20080226 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Introduced tbb_allocator to select between standard allocator and
+ tbb::scalable_allocator when available.
+- Removed spin-waiting in pipeline and concurrent_queue.
+- Improved performance of concurrent_hash_map by using tbb_allocator.
+- Improved support for Intel(R) Thread Checker.
+- Various improvements to code, tests, examples and Makefiles.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 U2 commercial-aligned release (package 017, February 14, 2008)
+
+Corresponds to commercial 017 (for Linux*, 018; for Mac OS* X, 016)
+packages.
+
+Changes (w.r.t. Intel TBB 2.0 U1 commercial-aligned release):
+
+- Does not contain open-source-release changes below; this release is
+ only a minor update of TBB 2.0 U1.
+- Add support for Microsoft* Visual Studio* 2008, including binary
+ libraries and VS2008 projects for examples.
+- Use SwitchToThread() not Sleep() to yield threads on Windows*.
+- Enhancements to Doxygen-readable comments in source code.
+- A few more small bug fixes from open-source releases below.
+
+Bugs fixed:
+
+- TR569 - Memory leak in concurrent_queue.
+
+------------------------------------------------------------------------
+20080207 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Improvements and minor fixes in VS2008 projects for examples.
+- Improvements in code for gating worker threads that wait for work,
+ previously consolidated under #if IMPROVED_GATING, now legalized.
+- Cosmetic changes in code, examples, tests.
+
+Bugs fixed:
+
+- 113 - Iterators and ranges should be convertible to their const
+ counterparts.
+- TR569 - Memory leak in concurrent_queue.
+
+------------------------------------------------------------------------
+20080122 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Updated examples/parallel_for/seismic to improve the visuals and to
+ use the affinity_partitioner (20071127 and forward) for better
+ performance.
+- Minor improvements to unittests and performance tests.
+
+------------------------------------------------------------------------
+20080115 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Cleanup, simplifications and enhancements to the Makefiles for
+ building the libraries (see build/index.html for high-level
+ changes) and the examples.
+- Use SwitchToThread() not Sleep() to yield threads on Windows*.
+- Engineering work-in-progress on exception safety/support.
+- Engineering work-in-progress on affinity_partitioner for
+ parallel_reduce.
+- Engineering work-in-progress on improved gating for worker threads
+ (idle workers now block in the OS instead of spinning).
+- Enhancements to Doxygen-readable comments in source code.
+
+Bugs fixed:
+
+- 102 - Support for parallel build with gmake -j
+- 114 - /Wp64 build warning on Windows*.
+
+------------------------------------------------------------------------
+20071218 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Full support for Microsoft* Visual Studio* 2008 in open-source.
+ Binaries for vc9/ will be available in future stable releases.
+- New recursive_mutex class.
+- Full support for 32-bit PowerMac including export files for builds.
+- Improvements to parallel_do.
+
+------------------------------------------------------------------------
+20071206 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Support for Microsoft* Visual Studio* 2008 in building libraries
+ from source as well as in vc9/ projects for examples.
+- Small fixes to the affinity_partitioner first introduced in 20071127.
+- Small fixes to the thread-stack size hook first introduced in 20071127.
+- Engineering work in progress on concurrent_vector.
+- Engineering work in progress on exception behavior.
+- Unittest improvements.
+
+------------------------------------------------------------------------
+20071127 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Task-to-thread affinity support (affinity partitioner) first appears.
+- More work on concurrent_vector.
+- New parallel_do algorithm (function-style version of parallel while)
+ and parallel_do/parallel_preorder example.
+- New task_scheduler_init() hooks for getting default_num_threads() and
+ for setting thread stack size.
+- Support for weak memory consistency models in the code base.
+- Futex usage in the task scheduler (Linux).
+- Started adding 32-bit PowerMac support.
+- Intel(R) 9.1 compilers are now the base supported Intel(R) compiler
+ version.
+- TBB libraries added to link line automatically on Microsoft Windows*
+ systems via #pragma comment linker directives.
+
+Open-source contributions integrated:
+
+- FreeBSD platform support patches.
+- AIX weak memory model patch.
+
+Bugs fixed:
+
+- 108 - Removed broken affinity.h reference.
+- 101 - Does not build on Debian Lenny (replaced arch with uname -m).
+
+------------------------------------------------------------------------
+20071030 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- More work on concurrent_vector.
+- Better support for building with -Wall -Werror (or not) as desired.
+- A few fixes to eliminate extraneous warnings.
+- Begin introduction of versioning hooks so that the internal/API
+ version is tracked via TBB_INTERFACE_VERSION. The newest binary
+ libraries should always work with previously-compiled code when-
+ ever possible.
+- Engineering work in progress on using futex inside the mutexes (Linux).
+- Engineering work in progress on exception behavior.
+- Engineering work in progress on a new parallel_do algorithm.
+- Unittest improvements.
+
+------------------------------------------------------------------------
+20070927 open-source release
+
+Changes (w.r.t. Intel TBB 2.0 U1 commercial-aligned release):
+
+- Minor update to TBB 2.0 U1 below.
+- Begin introduction of new concurrent_vector interfaces not released
+ with TBB 2.0 U1.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 U1 commercial-aligned release (package 014, October 1, 2007)
+
+Corresponds to commercial 014 (for Linux*, 016) packages.
+
+Changes (w.r.t. Intel TBB 2.0 commercial-aligned release):
+
+- All open-source-release changes down to, and including, TBB 2.0
+ below, were incorporated into this release.
+- Made a number of changes to the officially supported OS list:
+ Added Linux* OSs:
+ Asianux* 3, Debian* 4.0, Fedora Core* 6, Fedora* 7,
+ Turbo Linux* 11, Ubuntu* 7.04;
+ Dropped Linux* OSs:
+ Asianux* 2, Fedora Core* 4, Haansoft* Linux 2006 Server,
+ Mandriva/Mandrake* 10.1, Miracle Linux* 4.0,
+ Red Flag* DC Server 5.0;
+ Only Mac OS* X 10.4.9 (and forward) and Xcode* tool suite 2.4.1 (and
+ forward) are now supported.
+- Commercial installers on Linux* fixed to recommend the correct
+ binaries to use in more cases, with less unnecessary warnings.
+- Changes to eliminate spurious build warnings.
+
+Open-source contributions integrated:
+
+- Two small header guard macro patches; it also fixed bug #94.
+- New blocked_range3d class.
+
+Bugs fixed:
+
+- 93 - Removed misleading comments in task.h.
+- 94 - See above.
+
+------------------------------------------------------------------------
+20070815 open-source release
+
+Changes:
+
+- Changes to eliminate spurious build warnings.
+- Engineering work in progress on concurrent_vector allocator behavior.
+- Added hooks to use the Intel(R) compiler code coverage tools.
+
+Open-source contributions integrated:
+
+- Mac OS* X build warning patch.
+
+Bugs fixed:
+
+- 88 - Fixed TBB compilation errors if both VS2005 and Windows SDK are
+ installed.
+
+------------------------------------------------------------------------
+20070719 open-source release
+
+Changes:
+
+- Minor update to TBB 2.0 commercial-aligned release below.
+- Changes to eliminate spurious build warnings.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 commercial-aligned release (package 010, July 19, 2007)
+
+Corresponds to commercial 010 (for Linux*, 012) packages.
+
+- TBB open-source debut release.
+
+------------------------------------------------------------------------
+Intel TBB 1.1 commercial release (April 10, 2007)
+
+Changes (w.r.t. Intel TBB 1.0 commercial release):
+
+- auto_partitioner which offered an automatic alternative to specifying
+ a grain size parameter to estimate the best granularity for tasks.
+- The release was added to the Intel(R) C++ Compiler 10.0 Pro.
+
+------------------------------------------------------------------------
+Intel TBB 1.0 Update 2 commercial release
+
+Changes (w.r.t. Intel TBB 1.0 Update 1 commercial release):
+
+- Mac OS* X 64-bit support added.
+- Source packages for commercial releases introduced.
+
+------------------------------------------------------------------------
+Intel TBB 1.0 Update 1 commercial-aligned release
+
+Changes (w.r.t. Intel TBB 1.0 commercial release):
+
+- Fix for critical package issue on Mac OS* X.
+
+------------------------------------------------------------------------
+Intel TBB 1.0 commercial release (August 29, 2006)
+
+Changes (w.r.t. Intel TBB 1.0 beta commercial release):
+
+- New namespace (and compatibility headers for old namespace).
+ Namespaces are tbb and tbb::internal and all classes are in the
+ underscore_style not the WindowsStyle.
+- New class: scalable_allocator (and cache_aligned_allocator using that
+ if it exists).
+- Added parallel_for/tacheon example.
+- Removed C-style casts from headers for better C++ compliance.
+- Bug fixes.
+- Documentation improvements.
+- Improved performance of the concurrent_hash_map class.
+- Upgraded parallel_sort() to support STL-style random-access iterators
+ instead of just pointers.
+- The Windows vs7_1 directories renamed to vs7.1 in examples.
+- New class: spin version of reader-writer lock.
+- Added push_back() interface to concurrent_vector().
+
+------------------------------------------------------------------------
+Intel TBB 1.0 beta commercial release
+
+Initial release.
+
+Features / APIs:
+
+- Concurrent containers: ConcurrentHashTable, ConcurrentVector,
+ ConcurrentQueue.
+- Parallel algorithms: ParallelFor, ParallelReduce, ParallelScan,
+ ParallelWhile, Pipeline, ParallelSort.
+- Support: AlignedSpace, BlockedRange (i.e., 1D), BlockedRange2D
+- Task scheduler with multi-master support.
+- Atomics: read, write, fetch-and-store, fetch-and-add, compare-and-swap.
+- Locks: spin, reader-writer, queuing, OS-wrapper.
+- Memory allocation: STL-style memory allocator that avoids false
+ sharing.
+- Timers.
+
+Tools Support:
+- Intel(R) Thread Checker 3.0.
+- Intel(R) Thread Profiler 3.0.
+
+Documentation:
+- First Use Documents: README.txt, INSTALL.txt, Release_Notes.txt,
+ Doc_Index.html, Getting_Started.pdf, Tutorial.pdf, Reference.pdf.
+- Class hierarchy HTML pages (Doxygen).
+- Tree of index.html pages for navigating the installed package, esp.
+ for the examples.
+
+Examples:
+- One for each of these TBB features: ConcurrentHashTable, ParallelFor,
+ ParallelReduce, ParallelWhile, Pipeline, Task.
+- Live copies of examples from Getting_Started.pdf.
+- TestAll example that exercises every class and header in the package
+ (i.e., a "liveness test").
+- Compilers: see Release_Notes.txt.
+- APIs: OpenMP, WinThreads, Pthreads.
+
+Packaging:
+- Package for Windows installs IA-32 and EM64T bits.
+- Package for Linux installs IA-32, EM64T and IPF bits.
+- Package for Mac OS* X installs IA-32 bits.
+- All packages support Intel(R) software setup assistant (ISSA) and
+ install-time FLEXlm license checking.
+- ISSA support allows license file to be specified directly in case of
+ no Internet connection or problems with IRC or serial #s.
+- Linux installer allows root or non-root, RPM or non-RPM installs.
+- FLEXlm license servers (for those who need floating/counted licenses)
+ are provided separately on Intel(R) Premier.
+
+------------------------------------------------------------------------
+Intel, the Intel logo, Xeon, Intel Xeon Phi, and Cilk are registered
+trademarks or trademarks of Intel Corporation or its subsidiaries in
+the United States and other countries.
+
+* Other names and brands may be claimed as the property of others.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000..261eeb9e9f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..40ca412a43
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,84 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+tbb_root?=.
+include $(tbb_root)/build/common.inc
+.PHONY: default all tbb tbbmalloc tbbproxy test examples
+
+#workaround for non-depend targets tbb and tbbmalloc which both depend on version_string.ver
+#According to documentation, recursively invoked make commands can process their targets in parallel
+.NOTPARALLEL: tbb tbbmalloc tbbproxy
+
+default: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
+
+all: tbb tbbmalloc tbbproxy test examples
+
+tbb: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbb cfg=debug
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
+
+tbbmalloc: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc
+
+tbbproxy: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=debug tbbproxy
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=release tbbproxy
+
+test: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
+ -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test
+ -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug
+ -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test
+ -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release
+
+rml: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release
+
+
+examples: tbb tbbmalloc
+ $(MAKE) -C examples -r -f Makefile tbb_root=.. release test
+
+python: mkdir
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
+ bash -c ". $(work_dir)_release$(SLASH)tbbvars.sh && $(MAKE) -rC '$(full_tbb_root)/python' CXX=$(compiler) install test-install"
+
+.PHONY: clean clean_examples mkdir info
+
+clean: clean_examples
+ $(shell $(RM) $(work_dir)_release$(SLASH)*.* >$(NUL) 2>$(NUL))
+ $(shell $(RD) $(work_dir)_release >$(NUL) 2>$(NUL))
+ $(shell $(RM) $(work_dir)_debug$(SLASH)*.* >$(NUL) 2>$(NUL))
+ $(shell $(RD) $(work_dir)_debug >$(NUL) 2>$(NUL))
+ @echo clean done
+
+clean_examples:
+ $(shell $(MAKE) -s -i -r -C examples -f Makefile tbb_root=.. clean >$(NUL) 2>$(NUL))
+
+mkdir:
+ $(shell $(MD) "$(work_dir)_release" >$(NUL) 2>$(NUL))
+ $(shell $(MD) "$(work_dir)_debug" >$(NUL) 2>$(NUL))
+ @echo Created $(work_dir)_release and ..._debug directories
+
+info:
+ @echo OS: $(tbb_os)
+ @echo arch=$(arch)
+ @echo compiler=$(compiler)
+ @echo runtime=$(runtime)
+ @echo tbb_build_prefix=$(tbb_build_prefix)
+
diff --git a/README b/README
new file mode 100644
index 0000000000..fcc87af0c9
--- /dev/null
+++ b/README
@@ -0,0 +1,11 @@
+Intel(R) Threading Building Blocks - README
+
+See index.html for directions and documentation.
+
+If source is present (./Makefile and src/ directories),
+type 'gmake' in this directory to build and test.
+
+See examples/index.html for runnable examples and directions.
+
+See http://threadingbuildingblocks.org for full documentation
+and software information.
diff --git a/README.md b/README.md
index 10ba698691..1ca379d029 100644
--- a/README.md
+++ b/README.md
@@ -1,30 +1,27 @@
-# Intel(R) Threading Building Blocks
+# Intel(R) Threading Building Blocks 2018
+[![Stable release](https://img.shields.io/badge/version-2018-green.svg)](https://github.com/01org/tbb/releases/tag/2018)
+[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take
full advantage of multicore performance, that are portable, composable and have future-proof scalability.
-## Intel(R) TBB Distribution
-* Commercial version: [https://software.intel.com/en-us/intel-tbb](https://software.intel.com/en-us/intel-tbb)
-* Community licensing: [https://software.intel.com/sites/campaigns/nest/](https://software.intel.com/sites/campaigns/nest/)
-* Open source version: [https://www.threadingbuildingblocks.org/](https://www.threadingbuildingblocks.org/)
-* Intel(R) TBB for Python\*: [http://anaconda.org/intel/tbb](http://anaconda.org/intel/tbb)
+## Release Information
+Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues).
-## Repository Content
-This is an official Intel(R) TBB public GitHub repository. All source and binary packages starting from Intel(R) TBB 4.4
-can be found at the [Release page](https://github.com/01org/tbb/releases). Links to the packages with older versions of
-Intel(R) TBB can be found in the [download.md](download.md) file.
+## Documentation
+* Intel(R) TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial)
+* Intel(R) TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation)
+and [latest](https://www.threadingbuildingblocks.org/docs/help/index.htm)
-## Repository Structure
-The Master branch is empty and contains only README.md and download.md files.
+## Support
+Please report issues and suggestions via
+[GitHub issues](https://github.com/01org/tbb/issues) or start a topic on the
+[Intel(R) TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).
-tbb_\ - branch for the new major version. All minor versions of the major release will be committed in this branch.
+## How to Contribute
+Please, read the instructions on the official [Intel(R) TBB open source site](https://www.threadingbuildingblocks.org/submit-contribution).
-For example:
-* Intel(R) TBB 2017 initial release goes to branch tbb_2017.
-* Intel(R) TBB 2017 Update 1 will go to branch tbb_2017 too.
-* Intel(R) TBB 2018 initial release will go to branch tbb_2018.
-
-## Сontact engineering team
+## Engineering team contacts
* [E-mail us.](mailto:inteltbbdevelopers@intel.com)
------------------------------------------------------------------------
diff --git a/build/AIX.gcc.inc b/build/AIX.gcc.inc
new file mode 100644
index 0000000000..18e6e6ad9c
--- /dev/null
+++ b/build/AIX.gcc.inc
@@ -0,0 +1,75 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+DYLIB_KEY = -shared
+LIBDL = -ldl
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread -ldl
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -O2 -DUSE_PTHREAD -pthread
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -pthread
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (powerpc,$(arch))
+ CPLUS_FLAGS += -maix64 -Wl,-G
+ LIB_LINK_FLAGS += -maix64 -Wl,-b64 -Wl,-brtl -Wl,-G
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+
+ASSEMBLY_SOURCE=ibm_aix51
+ifeq (powerpc,$(arch))
+ TBB_ASM.OBJ = atomic_support.o
+endif
+
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/AIX.inc b/build/AIX.inc
new file mode 100644
index 0000000000..abe12d52a0
--- /dev/null
+++ b/build/AIX.inc
@@ -0,0 +1,66 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+ifndef arch
+ arch:=$(shell uname -p)
+ export arch
+endif
+
+ifndef runtime
+ gcc_version:=$(shell gcc -dumpversion)
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+ export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CMD=$(SHELL) -c
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= /dev/null
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_aix.sh $(VERSION_FLAGS) >version_string.ver
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LIBPATH
+ export LIBPATH := .:$(LIBPATH)
+else
+ export LIBPATH := .
+endif
+
+####### Build settings ########################################################
+
+OBJ = o
+DLL = so
+
+TBB.LST =
+TBB.DEF =
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/build/FreeBSD.clang.inc b/build/FreeBSD.clang.inc
new file mode 100644
index 0000000000..3579603db9
--- /dev/null
+++ b/build/FreeBSD.clang.inc
@@ -0,0 +1,110 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+TEST_WARNING_KEY = -Wextra -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
+WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor -Wno-dangling-else
+DYLIB_KEY = -shared
+EXPORT_KEY = -Wl,--version-script,
+LIBDL =
+
+CPLUS = clang++
+CONLY = clang
+LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+LIBS += -lpthread -lrt
+LINK_FLAGS = -Wl,-rpath-link=. -Wl,-rpath=. -rdynamic
+C_FLAGS = $(CPLUS_FLAGS)
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+endif
+
+ifneq (,$(stdlib))
+ CPLUS_FLAGS += -stdlib=$(stdlib)
+ LIB_LINK_FLAGS += -stdlib=$(stdlib)
+endif
+
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ifeq (intel64,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ ITT_NOTIFY = -DDO_ITT_NOTIFY
+ CPLUS_FLAGS += -m32 -march=pentium4
+ LIB_LINK_FLAGS += -m32
+endif
+
+ifeq (ppc64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ppc32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+ifeq (bg,$(arch))
+ CPLUS = bgclang++
+ CONLY = bgclang
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASM = as
+ifeq (intel64,$(arch))
+ ASM_FLAGS += --64
+endif
+ifeq (ia32,$(arch))
+ ASM_FLAGS += --32
+endif
+ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+endif
+
+ASSEMBLY_SOURCE=$(arch)-gas
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/FreeBSD.gcc.inc b/build/FreeBSD.gcc.inc
new file mode 100644
index 0000000000..794cb7c410
--- /dev/null
+++ b/build/FreeBSD.gcc.inc
@@ -0,0 +1,93 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+DYLIB_KEY = -shared
+WARNING_SUPPRESS = -Wno-parentheses
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread
+C_FLAGS = $(CPLUS_FLAGS)
+
+# gcc 6.0 and later have -flifetime-dse option that controls
+# elimination of stores done outside the object lifetime
+ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
+ # keep pre-contruction stores for zero initialization
+ DSE_KEY = -flifetime-dse=1
+endif
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ifeq (ia64,$(arch))
+# Position-independent code (PIC) is a must on IA-64 architecture, even for regular (not shared) executables
+ CPLUS_FLAGS += $(PIC_KEY)
+endif
+
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (ia64,$(arch))
+ ASM=as
+ TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+ MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o
+endif
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/FreeBSD.inc b/build/FreeBSD.inc
new file mode 100644
index 0000000000..3bd6a06403
--- /dev/null
+++ b/build/FreeBSD.inc
@@ -0,0 +1,74 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+ifndef arch
+ ifeq ($(shell uname -m),i386)
+ export arch:=ia32
+ endif
+ ifeq ($(shell uname -m),ia64)
+ export arch:=ia64
+ endif
+ ifeq ($(shell uname -m),amd64)
+ export arch:=intel64
+ endif
+endif
+
+ifndef runtime
+ clang_version:=$(shell clang -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/")
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+ export runtime:=cc$(clang_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := clang
+export compiler ?= clang
+debugger ?= gdb
+
+CMD=$(SHELL) -c
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= /dev/null
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(VERSION_FLAGS) >version_string.ver
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+ export LD_LIBRARY_PATH := .
+endif
+
+####### Build settings ########################################################
+
+OBJ = o
+DLL = so
+LIBEXT=so
+
+TBB.LST =
+TBB.DEF =
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/build/Makefile.rml b/build/Makefile.rml
new file mode 100644
index 0000000000..241d4bfbbf
--- /dev/null
+++ b/build/Makefile.rml
@@ -0,0 +1,166 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+# TODO: investigate why version_string.ver is not complete when $(RML_SERVER.OBJ) is being compiled.
+.NOTPARALLEL:
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+TEST_RESOURCE = $(RML.RES)
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+ifeq (android,$(target))
+$(error "RML is not supported on Android")
+endif
+
+# default target
+default_rml: rml rml_test
+
+RML_ROOT ?= $(tbb_root)/src/rml
+RML_SERVER_ROOT = $(RML_ROOT)/server
+
+VPATH = $(tbb_root)/src/tbb $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE)
+VPATH += $(RML_ROOT)/server $(RML_ROOT)/client $(RML_ROOT)/test $(tbb_root)/src/test
+
+include $(tbb_root)/build/common_rules.inc
+
+#--------------------------------------------------------------------------
+# Define rules for making the RML server shared library and client objects.
+#--------------------------------------------------------------------------
+
+# Object files that make up RML server
+RML_SERVER.OBJ = rml_server.$(OBJ)
+
+# Object files that RML clients need
+RML_TBB_CLIENT.OBJ ?= rml_tbb.$(OBJ) dynamic_link_rml.$(OBJ)
+RML_OMP_CLIENT.OBJ ?= rml_omp.$(OBJ) omp_dynamic_link.$(OBJ)
+
+RML.OBJ = $(RML_SERVER.OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
+ifeq (windows,$(tbb_os))
+RML_ASM.OBJ = $(if $(findstring intel64,$(arch)),$(TBB_ASM.OBJ))
+endif
+ifeq (linux,$(tbb_os))
+RML_ASM.OBJ = $(if $(findstring ia64,$(arch)),$(TBB_ASM.OBJ))
+endif
+
+RML_TBB_DEP= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) concurrent_vector_rml.$(OBJ) semaphore_rml.$(OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
+TBB_DEP_NON_RML_TEST?= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
+ifeq ($(cfg),debug)
+RML_TBB_DEP+= spin_mutex_rml.$(OBJ)
+TBB_DEP_RML_TEST?= $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ)
+else
+TBB_DEP_RML_TEST?= $(RML_ASM.OBJ)
+endif
+LIBS += $(LIBDL)
+
+INCLUDES += $(INCLUDE_KEY)$(RML_ROOT)/include $(INCLUDE_KEY).
+T_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(tbb_root)/src/test $(INCLUDE_KEY)$(RML_SERVER_ROOT)
+
+ifeq ($(rml_wcrm),1)
+CPLUS_FLAGS+=/DRML_USE_WCRM
+endif
+
+# Suppress superfluous warnings for RML compilation
+R_CPLUS_FLAGS = $(subst DO_ITT_NOTIFY,DO_ITT_NOTIFY=0,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) \
+ $(DEFINE_KEY)TBB_USE_THREADING_TOOLS=0 $(DEFINE_KEY)__TBB_RML_STATIC=1 $(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1
+
+%.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(INCLUDES) $<
+
+ifeq (linux,$(tbb_os))
+omp_dynamic_link.$(OBJ): CPLUS_FLAGS+=-fno-exceptions
+endif
+
+tbb_misc_rml.$(OBJ) $(RML_SERVER.OBJ): version_string.ver
+
+RML_TEST.OBJ = test_job_automaton.$(OBJ) test_thread_monitor.$(OBJ) test_rml_tbb.$(OBJ) test_rml_omp.$(OBJ) test_rml_mixed.$(OBJ)
+
+$(RML_TBB_DEP): %_rml.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(R_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(INCLUDES) $<
+
+$(RML_TEST.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(T_INCLUDES) $<
+
+ifneq (,$(RML.DEF))
+rml.def: $(RML.DEF)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
+
+LIB_LINK_FLAGS += $(EXPORT_KEY)rml.def
+$(RML.DLL): rml.def
+endif
+
+$(RML.DLL): CPLUS_FLAGS += $(SDL_FLAGS)
+$(RML.DLL): BUILDING_LIBRARY = $(RML.DLL)
+$(RML.DLL): $(RML_TBB_DEP) $(RML_SERVER.OBJ) $(RML.RES) $(RML_NO_VERSION.DLL) $(RML_ASM.OBJ)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(RML.DLL) $(RML_SERVER.OBJ) $(RML_TBB_DEP) $(RML_ASM.OBJ) $(RML.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
+
+ifneq (,$(RML_NO_VERSION.DLL))
+$(RML_NO_VERSION.DLL):
+ echo "INPUT ($(RML.DLL))" > $(RML_NO_VERSION.DLL)
+endif
+
+rml: $(RML.DLL) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
+
+#------------------------------------------------------
+# End of rules for making the RML server shared library
+#------------------------------------------------------
+
+#------------------------------------------------------
+# Define rules for making the RML unit tests
+#------------------------------------------------------
+
+add_debug=$(basename $(1))_debug$(suffix $(1))
+cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
+
+RML_TESTS = test_job_automaton.$(TEST_EXT) test_thread_monitor.$(TEST_EXT)
+RML_CUSTOM_TESTS = test_rml_tbb.$(TEST_EXT) test_rml_omp.$(TEST_EXT) test_rml_mixed.$(TEST_EXT) test_rml_omp_c_linkage.$(TEST_EXT)
+
+test_rml_tbb.$(TEST_EXT): test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+test_rml_omp.$(TEST_EXT): test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+test_rml_mixed.$(TEST_EXT): test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+rml_omp_stub.$(OBJ): rml_omp_stub.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(T_INCLUDES) $(PIC_KEY) $<
+
+test_rml_omp_c_linkage.$(TEST_EXT): test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ)
+ $(CONLY) $(C_FLAGS) $(OUTPUT_KEY)$@ test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ) $(LIBS) $(LINK_FLAGS)
+
+$(RML_TESTS): %.$(TEST_EXT): %.$(OBJ) $(TBB_DEP_NON_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+### run_cmd is usually empty
+rml_test: $(call cross_suffix,$(RML.DLL)) $(TEST_PREREQUISITE) $(RML_TESTS) $(RML_CUSTOM_TESTS)
+ $(run_cmd) ./test_job_automaton.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_thread_monitor.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_tbb.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_omp.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_mixed.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_omp_c_linkage.$(TEST_EXT) $(args)
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
+# Include automatically generated dependencies
+-include *.d
diff --git a/build/Makefile.tbb b/build/Makefile.tbb
new file mode 100644
index 0000000000..857aacc766
--- /dev/null
+++ b/build/Makefile.tbb
@@ -0,0 +1,118 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+#------------------------------------------------------------------------------
+# Define rules for making the TBB shared library.
+#------------------------------------------------------------------------------
+
+tbb_root ?= "$(TBBROOT)"
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+CPLUS_FLAGS += $(SDL_FLAGS)
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+#------------------------------------------------------------
+# Define static pattern rules dealing with .cpp source files
+#------------------------------------------------------------
+$(warning CONFIG: cfg=$(cfg) arch=$(arch) compiler=$(compiler) target=$(target) runtime=$(runtime))
+
+default_tbb: $(TBB.DLL)
+.PHONY: default_tbb tbbvars clean
+.PRECIOUS: %.$(OBJ)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/old $(tbb_root)/src/rml/client
+
+CPLUS_FLAGS += $(PIC_KEY) $(DSE_KEY) $(DEFINE_KEY)__TBB_BUILD=1
+
+# Object files (that were compiled from C++ code) that gmake up TBB
+TBB_CPLUS.OBJ = concurrent_hash_map.$(OBJ) \
+ concurrent_queue.$(OBJ) \
+ concurrent_vector.$(OBJ) \
+ dynamic_link.$(OBJ) \
+ itt_notify.$(OBJ) \
+ cache_aligned_allocator.$(OBJ) \
+ pipeline.$(OBJ) \
+ queuing_mutex.$(OBJ) \
+ queuing_rw_mutex.$(OBJ) \
+ reader_writer_lock.$(OBJ) \
+ spin_rw_mutex.$(OBJ) \
+ x86_rtm_rw_mutex.$(OBJ) \
+ spin_mutex.$(OBJ) \
+ critical_section.$(OBJ) \
+ mutex.$(OBJ) \
+ recursive_mutex.$(OBJ) \
+ condition_variable.$(OBJ) \
+ tbb_thread.$(OBJ) \
+ concurrent_monitor.$(OBJ) \
+ semaphore.$(OBJ) \
+ private_server.$(OBJ) \
+ rml_tbb.$(OBJ) \
+ tbb_misc.$(OBJ) \
+ tbb_misc_ex.$(OBJ) \
+ task.$(OBJ) \
+ task_group_context.$(OBJ) \
+ governor.$(OBJ) \
+ market.$(OBJ) \
+ arena.$(OBJ) \
+ scheduler.$(OBJ) \
+ observer_proxy.$(OBJ) \
+ tbb_statistics.$(OBJ) \
+ tbb_main.$(OBJ)
+
+# OLD/Legacy object files for backward binary compatibility
+ifeq (,$(findstring $(DEFINE_KEY)TBB_NO_LEGACY,$(CPLUS_FLAGS)))
+TBB_CPLUS_OLD.OBJ = \
+ concurrent_vector_v2.$(OBJ) \
+ concurrent_queue_v2.$(OBJ) \
+ spin_rw_mutex_v2.$(OBJ) \
+ task_v2.$(OBJ)
+endif
+
+# Object files that gmake up TBB (TBB_ASM.OBJ is platform-specific)
+TBB.OBJ = $(TBB_CPLUS.OBJ) $(TBB_CPLUS_OLD.OBJ) $(TBB_ASM.OBJ)
+
+# Suppress superfluous warnings for TBB compilation
+WARNING_KEY += $(WARNING_SUPPRESS)
+
+include $(tbb_root)/build/common_rules.inc
+
+ifneq (,$(TBB.DEF))
+tbb.def: $(TBB.DEF) $(TBB.LST)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
+
+LIB_LINK_FLAGS += $(EXPORT_KEY)tbb.def
+$(TBB.DLL): tbb.def
+endif
+
+tbbvars.sh:
+ $(MAKE_TBBVARS)
+
+$(TBB.DLL): BUILDING_LIBRARY = $(TBB.DLL)
+$(TBB.DLL): $(TBB.OBJ) $(TBB.RES) tbbvars.sh $(TBB_NO_VERSION.DLL)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(TBB.DLL) $(TBB.OBJ) $(TBB.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
+
+ifneq (,$(TBB_NO_VERSION.DLL))
+$(TBB_NO_VERSION.DLL):
+ echo "INPUT ($(TBB.DLL))" > $(TBB_NO_VERSION.DLL)
+endif
+
+#clean:
+# $(RM) *.$(OBJ) *.$(DLL) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d core core.*[0-9][0-9] *.ver
+
+# Include automatically generated dependencies
+-include *.d
diff --git a/build/Makefile.tbbmalloc b/build/Makefile.tbbmalloc
new file mode 100644
index 0000000000..dedcfa5666
--- /dev/null
+++ b/build/Makefile.tbbmalloc
@@ -0,0 +1,240 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+# default target
+default_malloc: malloc malloc_test
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+TEST_RESOURCE = $(MALLOC.RES)
+TESTFILE=tbbmalloc
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,$(call cross_cfg,_$(cfg)))
+
+MALLOC_ROOT ?= $(tbb_root)/src/tbbmalloc
+MALLOC_SOURCE_ROOT ?= $(MALLOC_ROOT)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
+VPATH += $(MALLOC_ROOT) $(MALLOC_SOURCE_ROOT)
+
+CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBBMALLOC_NO_IMPLICIT_LINKAGE=1)
+
+TEST_SUFFIXES=proxy
+TEST_PREREQUISITE+=$(MALLOC.LIB)
+LINK_FILES+=$(LINK_MALLOC.LIB)
+include $(tbb_root)/build/common_rules.inc
+
+ORIG_CPLUS_FLAGS:=$(CPLUS_FLAGS)
+ORIG_INCLUDES:=$(INCLUDES)
+ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
+
+#------------------------------------------------------
+# Define rules for making the TBBMalloc shared library.
+#------------------------------------------------------
+
+# Object files that make up TBBMalloc
+MALLOC_CPLUS.OBJ = backend.$(OBJ) large_objects.$(OBJ) backref.$(OBJ) tbbmalloc.$(OBJ)
+MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) itt_notify_malloc.$(OBJ) frontend.$(OBJ)
+PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
+M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(DEFINE_KEY)__TBBMALLOC_BUILD=1
+M_INCLUDES := $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
+
+# Suppress superfluous warnings for TBBMalloc compilation
+$(MALLOC.OBJ): M_CPLUS_FLAGS += $(WARNING_SUPPRESS)
+# Suppress superfluous warnings for TBBMalloc proxy compilation
+$(PROXY.OBJ): CPLUS_FLAGS += $(WARNING_SUPPRESS)
+
+frontend.$(OBJ): frontend.cpp version_string.ver
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(M_INCLUDES) $(INCLUDE_KEY). $<
+
+$(PROXY.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(DEFINE_KEY)__TBBMALLOC_BUILD=1 $(M_INCLUDES) $<
+
+$(MALLOC_CPLUS.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(M_INCLUDES) $<
+
+itt_notify_malloc.$(OBJ): itt_notify.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(OUTPUTOBJ_KEY)$@ $(INCLUDES) $<
+
+MALLOC_LINK_FLAGS = $(LIB_LINK_FLAGS)
+PROXY_LINK_FLAGS = $(LIB_LINK_FLAGS)
+
+ifneq (,$(MALLOC.DEF))
+tbbmalloc.def: $(MALLOC.DEF)
+ $(CPLUS) $(PREPROC_ONLY) $< $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(INCLUDES) > $@
+
+MALLOC_LINK_FLAGS += $(EXPORT_KEY)tbbmalloc.def
+$(MALLOC.DLL): tbbmalloc.def
+endif
+
+$(MALLOC.DLL) $(MALLOCPROXY.DLL): CPLUS_FLAGS += $(SDL_FLAGS)
+$(MALLOC.DLL) $(MALLOCPROXY.DLL): M_CPLUS_FLAGS += $(SDL_FLAGS)
+$(MALLOC.DLL): BUILDING_LIBRARY = $(MALLOC.DLL)
+$(MALLOC.DLL): $(MALLOC.OBJ) $(MALLOC.RES) $(MALLOC_NO_VERSION.DLL)
+ $(subst $(CPLUS),$(CONLY),$(LIB_LINK_CMD)) $(LIB_OUTPUT_KEY)$(MALLOC.DLL) $(MALLOC.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(MALLOC_LINK_FLAGS)
+
+ifneq (,$(MALLOCPROXY.DEF))
+tbbmallocproxy.def: $(MALLOCPROXY.DEF)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(WARNING_SUPPRESS) $(INCLUDES) > $@
+
+PROXY_LINK_FLAGS += $(EXPORT_KEY)tbbmallocproxy.def
+$(MALLOCPROXY.DLL): tbbmallocproxy.def
+endif
+
+ifneq (,$(MALLOCPROXY.DLL))
+$(MALLOCPROXY.DLL): BUILDING_LIBRARY = $(MALLOCPROXY.DLL)
+$(MALLOCPROXY.DLL): $(PROXY.OBJ) $(MALLOCPROXY_NO_VERSION.DLL) $(MALLOC.DLL) $(MALLOC.RES)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(MALLOCPROXY.DLL) $(PROXY.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(LINK_MALLOC.LIB) $(PROXY_LINK_FLAGS)
+endif
+
+ifneq (,$(MALLOC_NO_VERSION.DLL))
+$(MALLOC_NO_VERSION.DLL):
+ echo "INPUT ($(MALLOC.DLL))" > $(MALLOC_NO_VERSION.DLL)
+endif
+
+ifneq (,$(MALLOCPROXY_NO_VERSION.DLL))
+$(MALLOCPROXY_NO_VERSION.DLL):
+ echo "INPUT ($(MALLOCPROXY.DLL))" > $(MALLOCPROXY_NO_VERSION.DLL)
+endif
+
+malloc: $(MALLOC.DLL) $(MALLOCPROXY.DLL)
+
+malloc_dll: $(MALLOC.DLL)
+
+malloc_proxy_dll: $(MALLOCPROXY.DLL)
+
+.PHONY: malloc malloc_dll malloc_proxy_dll
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc shared library
+#------------------------------------------------------
+
+#------------------------------------------------------
+# Define rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
+# --------- The list of TBBMalloc unit tests ----------
+MALLOC_TESTS = test_ScalableAllocator.$(TEST_EXT) \
+ test_ScalableAllocator_STL.$(TEST_EXT) \
+ test_malloc_compliance.$(TEST_EXT) \
+ test_malloc_regression.$(TEST_EXT) \
+ test_malloc_init_shutdown.$(TEST_EXT) \
+ test_malloc_pools.$(TEST_EXT) \
+ test_malloc_pure_c.$(TEST_EXT) \
+ test_malloc_whitebox.$(TEST_EXT) \
+ test_malloc_used_by_lib.$(TEST_EXT) \
+ test_malloc_lib_unload.$(TEST_EXT)
+ifneq (,$(MALLOCPROXY.DLL))
+MALLOC_TESTS += test_malloc_overload.$(TEST_EXT) \
+ test_malloc_overload_proxy.$(TEST_EXT) \
+ test_malloc_atexit.$(TEST_EXT)
+endif
+# -----------------------------------------------------
+
+# ------------ Set test specific variables ------------
+# TODO: implement accurate warning suppression for tests to unify with Makefile.test.
+$(MALLOC_TESTS): CPLUS_FLAGS += $(TEST_WARNING_KEY) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
+$(MALLOC_TESTS): M_CPLUS_FLAGS += $(TEST_WARNING_KEY) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
+$(MALLOC_TESTS): INCLUDES += $(INCLUDE_TEST_HEADERS)
+$(MALLOC_TESTS): M_INCLUDES += $(INCLUDE_TEST_HEADERS)
+
+ifeq (windows.gcc,$(tbb_os).$(compiler))
+test_malloc_overload.$(TEST_EXT): LIBS += $(MALLOCPROXY.LIB)
+endif
+
+MALLOC_M_CPLUS_TESTS = test_malloc_whitebox.$(TEST_EXT) test_malloc_lib_unload.$(TEST_EXT) \
+ test_malloc_used_by_lib.$(TEST_EXT)
+MALLOC_NO_LIB_TESTS = test_malloc_whitebox.$(TEST_EXT) test_malloc_lib_unload.$(TEST_EXT) \
+ test_malloc_used_by_lib.$(TEST_EXT) test_malloc_overload.$(TEST_EXT)
+MALLOC_LINK_PROXY_TESTS = test_malloc_overload_proxy.$(TEST_EXT)
+MALLOC_ADD_DLL_TESTS = test_malloc_lib_unload.$(TEST_EXT) test_malloc_used_by_lib.$(TEST_EXT) \
+ test_malloc_atexit.$(TEST_EXT)
+
+$(MALLOC_M_CPLUS_TESTS): CPLUS_FLAGS=$(M_CPLUS_FLAGS)
+$(MALLOC_M_CPLUS_TESTS): INCLUDES=$(M_INCLUDES)
+$(MALLOC_NO_LIB_TESTS): LINK_MALLOC.LIB=
+$(MALLOC_NO_LIB_TESTS): LINK_FLAGS+=$(LIBDL)
+$(MALLOC_LINK_PROXY_TESTS): LINK_MALLOC.LIB=$(LINK_MALLOCPROXY.LIB)
+ifneq (,$(DYLIB_KEY))
+$(MALLOC_ADD_DLL_TESTS): %.$(TEST_EXT): %_dll.$(DLL)
+$(MALLOC_ADD_DLL_TESTS): TEST_LIBS+=$(@:.$(TEST_EXT)=_dll.$(LIBEXT))
+endif
+
+test_malloc_over%.$(TEST_EXT): CPLUS_FLAGS=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
+test_malloc_over%.$(TEST_EXT): INCLUDES=$(M_INCLUDES)
+test_malloc_overload_proxy.$(TEST_EXT): LINK_FLAGS+=$(LIBDL)
+
+test_malloc_atexit_dll.$(DLL): CPLUS_FLAGS=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
+test_malloc_atexit.$(TEST_EXT): CPLUS_FLAGS=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
+test_malloc_atexit.$(TEST_EXT): LINK_FLAGS+=$(LIBDL)
+# on Ubuntu 11.10 linker called with --as-needed, so dependency on libtbbmalloc_proxy
+# is not created, and malloc overload via linking with -ltbbmalloc_proxy is not working.
+# Overcome with --no-as-needed.
+ifeq (linux.gcc,$(tbb_os).$(compiler))
+test_malloc_atexit.$(TEST_EXT): MALLOCPROXY.LIB := -Wl,--no-as-needed $(MALLOCPROXY.LIB)
+endif
+# The test isn't added to MALLOC_LINK_PROXY_TESTS, because we need both
+# tbbmalloc and proxy libs. For platforms other than Android it's enough
+# to modify LINK_MALLOC.LIB for TEST_EXT target only. But under Android build
+# of DLL and TEST_EXT can be requested independently, so there is no chance
+# to set LINK_MALLOC.LIB in TEST_EXT build rule, and affect DLL build.
+test_malloc_atexit.$(TEST_EXT): LINK_MALLOC.LIB := $(LINK_MALLOC.LIB) $(LINK_MALLOCPROXY.LIB)
+test_malloc_atexit_dll.$(DLL): LINK_MALLOC.LIB := $(LINK_MALLOC.LIB) $(LINK_MALLOCPROXY.LIB)
+
+test_malloc_whitebox.$(TEST_EXT): $(MALLOC_ASM.OBJ) version_string.ver
+test_malloc_whitebox.$(TEST_EXT): INCLUDES+=$(INCLUDE_KEY).
+test_malloc_whitebox.$(TEST_EXT): LINK_FILES+=$(MALLOC_ASM.OBJ)
+
+# Some _dll targets need to restore variables since they are changed by parent
+# target-specific rule of its .exe targets
+test_malloc_lib_unload_dll.$(DLL): CPLUS_FLAGS=$(ORIG_CPLUS_FLAGS) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
+test_malloc_lib_unload_dll.$(DLL): INCLUDES=$(ORIG_INCLUDES) $(INCLUDE_TEST_HEADERS)
+
+test_malloc_used_by_lib_dll.$(DLL): CPLUS_FLAGS=$(subst /MT,/LD,$(M_CPLUS_FLAGS))
+test_malloc_used_by_lib_dll.$(DLL): LINK_FILES+=$(ORIG_LINK_MALLOC.LIB)
+test_malloc_used_by_lib_dll.$(DLL): LIBDL=
+# -----------------------------------------------------
+
+# ---- The list of TBBMalloc test running commands ----
+# run_cmd is usually empty
+malloc_test: $(MALLOC.DLL) malloc_test_no_depends
+
+malloc_test_no_depends: $(TEST_PREREQUISITE) $(MALLOC_TESTS)
+ $(run_cmd) ./test_malloc_pools.$(TEST_EXT) $(args) 1:4
+ifneq (,$(MALLOCPROXY.DLL))
+ $(run_cmd) ./test_malloc_atexit.$(TEST_EXT) $(args)
+ $(run_cmd) $(TEST_LAUNCHER) -l $(MALLOCPROXY.DLL) ./test_malloc_overload.$(TEST_EXT) $(args)
+ $(run_cmd) $(TEST_LAUNCHER) ./test_malloc_overload_proxy.$(TEST_EXT) $(args)
+endif
+ $(run_cmd) $(TEST_LAUNCHER) ./test_malloc_lib_unload.$(TEST_EXT) $(args)
+ $(run_cmd) $(TEST_LAUNCHER) ./test_malloc_used_by_lib.$(TEST_EXT)
+ $(run_cmd) ./test_malloc_whitebox.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) $(TEST_LAUNCHER) -u ./test_malloc_compliance.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_ScalableAllocator.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_ScalableAllocator_STL.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_malloc_regression.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_malloc_init_shutdown.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_malloc_pure_c.$(TEST_EXT) $(args)
+# -----------------------------------------------------
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
+# Include automatically generated dependencies
+-include *.d
diff --git a/build/Makefile.tbbproxy b/build/Makefile.tbbproxy
new file mode 100644
index 0000000000..eb2e0fd652
--- /dev/null
+++ b/build/Makefile.tbbproxy
@@ -0,0 +1,109 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+# default target
+default_tbbproxy: tbbproxy tbbproxy_test
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+PROXY_ROOT ?= $(tbb_root)/src/tbbproxy
+PROXY_SOURCE_ROOT ?= $(PROXY_ROOT)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
+VPATH += $(PROXY_ROOT) $(PROXY_SOURCE_ROOT)
+
+CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DLL_NAME=$(TBB.DLL)
+CPLUS_FLAGS += $(DEFINE_KEY)__TBB_LST=$(TBB.LST)
+CPLUS_FLAGS += $(foreach dir,$(VPATH),$(INCLUDE_KEY)$(dir))
+CPLUS_FLAGS += $(PIC_KEY) $(DSE_KEY)
+
+include $(tbb_root)/build/common_rules.inc
+
+#------------------------------------------------------
+# Define rules for making the TBB Proxy static library.
+#------------------------------------------------------
+
+# Object files that make up TBB Proxy
+PROXY_CPLUS.OBJ = tbbproxy.$(OBJ)
+PROXY_ASM.OBJ = tbbproxy-asm.$(OBJ)
+PROXY.OBJ := $(PROXY_CPLUS.OBJ) $(PROXY_ASM.OBJ)
+
+# Not using intrinsics prevents undesired dependence on ICL libraries (e.g. libirc).
+# Not using default libs prevents link issues caused by different CRT versions in tbbproxy and in an app.
+$(PROXY.OBJ): CPLUS_FLAGS += $(DEFINE_KEY)ARCH_$(arch) $(DEFINE_KEY)OS_$(tbb_os) $(NOINTRINSIC_KEY) $(NODEFAULTLIB_KEY)
+
+$(PROXY_CPLUS.OBJ): CPLUS_FLAGS+=$(if $(filter windows.%cl,$(tbb_os).$(compiler)),/Fdtbbproxy$(DEBUG_SUFFIX).pdb)
+$(PROXY_CPLUS.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(INCLUDES) $<
+
+$(PROXY.LIB): $(PROXY.OBJ)
+ $(AR) $(AR_FLAGS) $(AR_OUTPUT_KEY)$@ $^
+
+.PRECIOUS : %.$(ASMEXT)
+tbbproxy-asm.$(ASMEXT) : tbbproxy-$(tbb_os).$(ASMEXT) $(TBB.LST) $(TBB-OBJECTS.LST)
+ $(CPLUS) $(PREPROC_ONLY) $< $(INCLUDES) $(CPLUS_FLAGS) $(DEFINE_KEY)__TBB_BUILD=1 > $@
+
+.PHONY: tbbproxy
+ifeq (windows,$(tbb_os))
+tbbproxy: $(PROXY.LIB)
+else
+tbbproxy:
+endif
+
+#------------------------------------------------------
+# End of rules for making the TBB Proxy static library
+#------------------------------------------------------
+
+#------------------------------------------------------
+# Define rules for making the TBB Proxy unit tests
+#------------------------------------------------------
+
+add_debug=$(basename $(1))_debug$(suffix $(1))
+cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
+
+PROXY_LIB = $(call cross_suffix,$(PROXY.LIB))
+PROXY_TESTS_SRCS = test_runtime_loader.cpp
+PROXY_TESTS_OBJS = $(PROXY_TESTS_SRCS:.cpp=.$(OBJ))
+PROXY_TESTS_EXES = $(PROXY_TESTS_OBJS:.$(OBJ)=.$(TEST_EXT))
+
+# Run rules.
+.PHONY: tbbproxy_test
+ifeq (windows,$(tbb_os))
+tbbproxy_test: $(call cross_suffix,$(PROXY.LIB)) $(TEST_PREREQUISITE) $(PROXY_TESTS_EXES)
+ $(run_cmd) ./test_runtime_loader.$(TEST_EXT) $(args)
+else
+tbbproxy_test:
+endif
+
+# Link rules.
+$(PROXY_TESTS_EXES): %.$(TEST_EXT): %.$(OBJ) $(PROXY_LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(PROXY_LIB) $(LIBS) $(LIBDL) $(LINK_FLAGS)
+
+# Compilation rules.
+$(PROXY_TESTS_OBJS): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $(OUTPUT_KEY)$@ $<
+
+#------------------------------------------------------
+# End of rules for making the TBB Proxy unit tests
+#------------------------------------------------------
+
+# Include automatically generated dependencies
+-include *.d
diff --git a/build/Makefile.test b/build/Makefile.test
new file mode 100644
index 0000000000..9de7860d6a
--- /dev/null
+++ b/build/Makefile.test
@@ -0,0 +1,317 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+#------------------------------------------------------------------------------
+# Define rules for making the TBB tests.
+#------------------------------------------------------------------------------
+.PHONY: default test_tbb_plain test_tbb_openmp test_tbb_cilk test_tbb_old clean
+
+default: test_tbb_plain test_tbb_openmp test_tbb_cilk test_tbb_old
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+TEST_RESOURCE = $(TBB.RES)
+TESTFILE=test
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,$(call cross_cfg,_$(cfg)))
+
+#------------------------------------------------------------
+# Define static pattern rules dealing with .cpp source files
+#------------------------------------------------------------
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/rml/client $(tbb_root)/src/old $(tbb_root)/src/test $(tbb_root)/src/perf
+CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1) \
+ $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1) \
+ $(if $(LINK_TBB.LIB),$(DEFINE_KEY)TEST_USES_TBB=1)
+
+TEST_PREREQUISITE+=$(TBB.LIB)
+LINK_FILES+=$(LINK_TBB.LIB)
+
+ifdef use_proxy
+ USE_PROXY_FLAG = $(DEFINE_KEY)HARNESS_USE_RUNTIME_LOADER
+ CPLUS_FLAGS += $(USE_PROXY_FLAG)
+ LINK_TBB.LIB = $(PROXY.LIB)
+ LIBS += $(LIBDL)
+endif
+
+TEST_SUFFIXES=secondary compiler_builtins pic
+include $(tbb_root)/build/common_rules.inc
+
+# Rules for the tests, which use TBB in a dynamically loadable library
+test_model_plugin.$(TEST_EXT): LINK_TBB.LIB =
+test_model_plugin.$(TEST_EXT): CPLUS_FLAGS := $(CPLUS_FLAGS:$(USE_PROXY_FLAG)=)
+test_model_plugin.$(TEST_EXT): LIBS += $(LIBDL)
+ifneq (,$(DYLIB_KEY))
+test_model_plugin.$(TEST_EXT): test_model_plugin_dll.$(DLL)
+endif
+
+# tbb_misc.$(OBJ) has to be specified here (instead of harness_inject_scheduler.h) because it carries dependency on version_string.ver
+SCHEDULER_DEPENDENCIES = $(TBB_ASM.OBJ) tbb_misc.$(OBJ)
+
+# These executables don't depend on the TBB library, but include core .cpp files directly
+SCHEDULER_DIRECTLY_INCLUDED = test_task_leaks.$(TEST_EXT) \
+ test_task_assertions.$(TEST_EXT) \
+ test_fast_random.$(TEST_EXT) \
+ test_global_control_whitebox.$(TEST_EXT) \
+ test_concurrent_queue_whitebox.$(TEST_EXT)
+
+# Necessary to locate version_string.ver referenced from directly included tbb_misc.cpp
+INCLUDES += $(INCLUDE_KEY). $(INCLUDE_TEST_HEADERS)
+
+$(SCHEDULER_DIRECTLY_INCLUDED): CPLUS_FLAGS += $(DSE_KEY)
+$(SCHEDULER_DIRECTLY_INCLUDED): WARNING_KEY += $(WARNING_SUPPRESS)
+$(SCHEDULER_DIRECTLY_INCLUDED): LIBS += $(LIBDL)
+#tbb.lib must not be linked to scheduler white box tests in order to not violate ODR
+$(SCHEDULER_DIRECTLY_INCLUDED): LINK_TBB.LIB =
+$(SCHEDULER_DIRECTLY_INCLUDED): LINK_FILES += $(SCHEDULER_DEPENDENCIES)
+$(SCHEDULER_DIRECTLY_INCLUDED): $(SCHEDULER_DEPENDENCIES)
+
+# test_tbb_header detects "multiple definition" linker error using the test that covers the whole library
+TWICE_LINKED_TESTS = test_tbb_header.$(TEST_EXT) \
+ test_concurrent_unordered_set.$(TEST_EXT)
+
+%_secondary.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_SECONDARY=1
+
+# Detecting "multiple definition" linker error using the test that covers the whole library
+$(TWICE_LINKED_TESTS): %.$(TEST_EXT): %.$(OBJ) %_secondary.$(OBJ)
+$(TWICE_LINKED_TESTS): LINK_FILES+=$(@:.$(TEST_EXT)=_secondary.$(OBJ))
+
+# Checks that TBB works correctly in position independent code
+%_pic.$(OBJ): CPLUS_FLAGS+=$(PIC_KEY)
+%_pic.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_PIC=1
+
+# Test of generic gcc port and icc intrinsics port
+%_compiler_builtins.$(TEST_EXT): LINK_TBB.LIB =
+%_compiler_builtins.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_BUILTINS=1 $(DEFINE_KEY)TBB_USE_ASSERT=0
+
+# dynamic_link tests don't depend on the TBB library
+test_dynamic_link%.$(TEST_EXT): LINK_TBB.LIB =
+test_dynamic_link.$(TEST_EXT): LIBS += $(LIBDL)
+
+# Resolving issue with the number of sections that an object file can contain
+ifneq (,$(BIGOBJ_KEY))
+TEST_BIGOBJ = test_opencl_node.$(TEST_EXT) \
+ test_atomic.$(TEST_EXT) \
+ test_concurrent_unordered_set.$(TEST_EXT) \
+ test_concurrent_unordered_map.$(TEST_EXT) \
+ test_join_node_key_matching.$(TEST_EXT) \
+ test_join_node_msg_key_matching.$(TEST_EXT) \
+ test_join_node.$(TEST_EXT)
+$(TEST_BIGOBJ): override CXXFLAGS += $(BIGOBJ_KEY)
+endif
+
+# TODO: remove repetition of .$(TEST_EXT) in the list bellow
+# The main list of TBB tests
+TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
+ test_global_control.$(TEST_EXT) \
+ test_tbb_fork.$(TEST_EXT) \
+ test_assembly_compiler_builtins.$(TEST_EXT) \
+ test_aligned_space.$(TEST_EXT) \
+ test_atomic.$(TEST_EXT) \
+ test_atomic_pic.$(TEST_EXT) \
+ test_atomic_compiler_builtins.$(TEST_EXT) \
+ test_blocked_range.$(TEST_EXT) \
+ test_blocked_range2d.$(TEST_EXT) \
+ test_blocked_range3d.$(TEST_EXT) \
+ test_concurrent_queue.$(TEST_EXT) \
+ test_concurrent_vector.$(TEST_EXT) \
+ test_concurrent_unordered_set.$(TEST_EXT) \
+ test_concurrent_unordered_map.$(TEST_EXT) \
+ test_concurrent_hash_map.$(TEST_EXT) \
+ test_enumerable_thread_specific.$(TEST_EXT) \
+ test_handle_perror.$(TEST_EXT) \
+ test_halt.$(TEST_EXT) \
+ test_model_plugin.$(TEST_EXT) \
+ test_mutex.$(TEST_EXT) \
+ test_mutex_native_threads.$(TEST_EXT) \
+ test_rwm_upgrade_downgrade.$(TEST_EXT) \
+ test_cache_aligned_allocator.$(TEST_EXT) \
+ test_cache_aligned_allocator_STL.$(TEST_EXT) \
+ test_parallel_for.$(TEST_EXT) \
+ test_parallel_reduce.$(TEST_EXT) \
+ test_parallel_sort.$(TEST_EXT) \
+ test_parallel_scan.$(TEST_EXT) \
+ test_parallel_while.$(TEST_EXT) \
+ test_parallel_do.$(TEST_EXT) \
+ test_pipeline.$(TEST_EXT) \
+ test_pipeline_with_tbf.$(TEST_EXT) \
+ test_parallel_pipeline.$(TEST_EXT) \
+ test_lambda.$(TEST_EXT) \
+ test_task_scheduler_init.$(TEST_EXT) \
+ test_task_scheduler_observer.$(TEST_EXT) \
+ test_task.$(TEST_EXT) \
+ test_tbb_thread.$(TEST_EXT) \
+ test_std_thread.$(TEST_EXT) \
+ test_tick_count.$(TEST_EXT) \
+ test_inits_loop.$(TEST_EXT) \
+ test_yield.$(TEST_EXT) \
+ test_eh_tasks.$(TEST_EXT) \
+ test_eh_algorithms.$(TEST_EXT) \
+ test_eh_flow_graph.$(TEST_EXT) \
+ test_parallel_invoke.$(TEST_EXT) \
+ test_task_group.$(TEST_EXT) \
+ test_ittnotify.$(TEST_EXT) \
+ test_parallel_for_each.$(TEST_EXT) \
+ test_tbb_header.$(TEST_EXT) \
+ test_combinable.$(TEST_EXT) \
+ test_task_auto_init.$(TEST_EXT) \
+ test_task_arena.$(TEST_EXT) \
+ test_concurrent_monitor.$(TEST_EXT) \
+ test_semaphore.$(TEST_EXT) \
+ test_critical_section.$(TEST_EXT) \
+ test_reader_writer_lock.$(TEST_EXT) \
+ test_tbb_condition_variable.$(TEST_EXT) \
+ test_intrusive_list.$(TEST_EXT) \
+ test_concurrent_priority_queue.$(TEST_EXT) \
+ test_task_priority.$(TEST_EXT) \
+ test_task_enqueue.$(TEST_EXT) \
+ test_task_steal_limit.$(TEST_EXT) \
+ test_hw_concurrency.$(TEST_EXT) \
+ test_fp.$(TEST_EXT) \
+ test_tuple.$(TEST_EXT) \
+ test_flow_graph.$(TEST_EXT) \
+ test_broadcast_node.$(TEST_EXT) \
+ test_continue_node.$(TEST_EXT) \
+ test_function_node.$(TEST_EXT) \
+ test_limiter_node.$(TEST_EXT) \
+ test_join_node.$(TEST_EXT) \
+ test_join_node_key_matching.$(TEST_EXT) \
+ test_join_node_msg_key_matching.$(TEST_EXT) \
+ test_buffer_node.$(TEST_EXT) \
+ test_queue_node.$(TEST_EXT) \
+ test_priority_queue_node.$(TEST_EXT) \
+ test_sequencer_node.$(TEST_EXT) \
+ test_source_node.$(TEST_EXT) \
+ test_overwrite_node.$(TEST_EXT) \
+ test_write_once_node.$(TEST_EXT) \
+ test_indexer_node.$(TEST_EXT) \
+ test_multifunction_node.$(TEST_EXT) \
+ test_split_node.$(TEST_EXT) \
+ test_static_assert.$(TEST_EXT) \
+ test_aggregator.$(TEST_EXT) \
+ test_concurrent_lru_cache.$(TEST_EXT) \
+ test_examples_common_utility.$(TEST_EXT) \
+ test_dynamic_link.$(TEST_EXT) \
+ test_parallel_for_vectorization.$(TEST_EXT) \
+ test_tagged_msg.$(TEST_EXT) \
+ test_partitioner_whitebox.$(TEST_EXT) \
+ test_flow_graph_whitebox.$(TEST_EXT) \
+ test_composite_node.$(TEST_EXT) \
+ test_async_node.$(TEST_EXT) \
+ test_async_msg.$(TEST_EXT) \
+ test_tbb_version.$(TEST_EXT) # insert new files right above
+
+# These tests depend on other technologies
+TEST_TBB_SPECIAL.EXE = test_openmp.$(TEST_EXT) \
+ test_cilk_interop.$(TEST_EXT) \
+ test_gfx_factory.$(TEST_EXT) \
+ test_opencl_node.$(TEST_EXT)
+
+# skip mode_plugin for now
+skip_tests += test_model_plugin
+
+ifdef OPENMP_FLAG
+test_openmp.$(TEST_EXT): CPLUS_FLAGS += $(OPENMP_FLAG)
+
+test_tbb_openmp: $(TEST_PREREQUISITE) test_openmp.$(TEST_EXT)
+ $(run_cmd) ./test_openmp.$(TEST_EXT) 1:4
+else
+test_tbb_openmp:
+ @echo "OpenMP is not available"
+endif
+
+ifdef CILK_AVAILABLE
+# Workaround on cilkrts linkage known issue (see Intel(R) C++ Composer XE 2011 Release Notes)
+# The issue reveals itself if a version of binutils is prior to 2.17
+ifeq (linux_icc,$(tbb_os)_$(compiler))
+test_cilk_interop.$(TEST_EXT): LIBS += -lcilkrts
+test_gfx_factory.$(TEST_EXT): LIBS += -lcilkrts
+endif
+test_tbb_cilk: test_cilk_interop.$(TEST_EXT)
+ $(run_cmd) ./test_cilk_interop.$(TEST_EXT) $(args)
+else
+test_tbb_cilk:
+ @echo "Intel(R) Cilk(TM) Plus is not available"
+endif
+
+test_opencl_node.$(TEST_EXT): LIBS += $(OPENCL.LIB)
+
+$(TEST_TBB_PLAIN.EXE) $(TEST_TBB_SPECIAL.EXE): WARNING_KEY += $(TEST_WARNING_KEY)
+
+# Run tests that are in SCHEDULER_DIRECTLY_INCLUDED and TEST_TBB_PLAIN.EXE but not in skip_tests (which is specified by user)
+TESTS_TO_RUN := $(filter-out $(addsuffix .$(TEST_EXT),$(skip_tests)),$(TEST_TBB_PLAIN.EXE) $(SCHEDULER_DIRECTLY_INCLUDED))
+
+# This definition intentionally consists of two blank lines
+define eol
+
+
+endef
+
+# First build the targets, then run them
+# Form a list of commands separated with end of line
+# Note that usually run_cmd is empty, and tests run directly
+
+test_tbb_plain: $(TEST_PREREQUISITE) $(TESTS_TO_RUN)
+ $(foreach test, $(TESTS_TO_RUN), $(run_cmd) ./$(test) $(args) $(eol))
+
+
+# For deprecated files, we don't mind warnings etc., thus compilation rules are most relaxed
+CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)__TBB_TEST_DEPRECATED=1 $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
+TEST_TBB_OLD.OBJ = test_concurrent_vector_v2.$(OBJ) test_concurrent_queue_v2.$(OBJ) test_mutex_v2.$(OBJ) test_task_scheduler_observer_v3.$(OBJ)
+
+$(TEST_TBB_OLD.OBJ): CPLUS_FLAGS := $(CPLUS_FLAGS_DEPRECATED)
+
+TEST_TBB_OLD.EXE = $(subst .$(OBJ),.$(TEST_EXT),$(TEST_TBB_OLD.OBJ))
+
+ifeq (,$(NO_LEGACY_TESTS))
+test_tbb_old: $(TEST_PREREQUISITE) $(TEST_TBB_OLD.EXE)
+ $(run_cmd) ./test_concurrent_vector_v2.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_concurrent_queue_v2.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 1
+ $(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 2
+ $(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 4
+ $(run_cmd) ./test_task_scheduler_observer_v3.$(TEST_EXT) $(args) 1:4
+else
+test_tbb_old:
+ @echo Legacy tests skipped
+endif
+
+ifneq (,$(codecov))
+codecov_gen:
+ profmerge
+ codecov $(if $(findstring -,$(codecov)),$(codecov),) -demang -comp $(tbb_root)/build/codecov.txt
+endif
+
+time_%: time_%.$(TEST_EXT) $(TEST_PREREQUISITE)
+ $(run_cmd) ./$< $(args)
+
+
+# for some reason, "perf_%.$(TEST_EXT): perf_dll.$(DLL)" does not work TODO: find out how to apply pattern here
+perf_sched.$(TEST_EXT): perf_dll.$(DLL)
+perf_%.$(TEST_EXT): TEST_LIBS = perf_dll.$(LIBEXT)
+perf_%: perf_%.$(TEST_EXT) $(TEST_PREREQUISITE)
+ $(run_cmd) ./$< $(args)
+
+clean_%:
+ $(RM) $*.$(OBJ) $*.exe $*.$(DLL) $*.$(LIBEXT) $*.res $*.map $*.ilk $*.pdb $*.exp $*.*manifest $*.tmp $*.d *.ver
+
+clean:
+ $(RM) *.$(OBJ) *.exe *.$(DLL) *.$(LIBEXT) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d pgopti.* *.dyn core core.*[0-9][0-9] *.ver
+
+# Include automatically generated dependencies
+-include *.d
diff --git a/build/SunOS.gcc.inc b/build/SunOS.gcc.inc
new file mode 100644
index 0000000000..d487015dce
--- /dev/null
+++ b/build/SunOS.gcc.inc
@@ -0,0 +1,92 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
+WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
+DYLIB_KEY = -shared
+LIBDL = -ldl
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread -lrt -ldl
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (ia64,$(arch))
+# Position-independent code (PIC) is a must for IA-64
+ CPLUS_FLAGS += $(PIC_KEY)
+endif
+
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify)
+ifeq (sparc,$(arch))
+ CPLUS_FLAGS += -mcpu=v9 -m64
+ LIB_LINK_FLAGS += -mcpu=v9 -m64
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (ia64,$(arch))
+ ASM=ias
+ TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+endif
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/SunOS.inc b/build/SunOS.inc
new file mode 100644
index 0000000000..447e059e1a
--- /dev/null
+++ b/build/SunOS.inc
@@ -0,0 +1,83 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+ifndef arch
+ arch:=$(shell uname -p)
+ ifeq ($(arch),i386)
+ ifeq ($(shell isainfo -b),64)
+ arch:=intel64
+ else
+ arch:=ia32
+ endif
+ endif
+ export arch
+# For non-IA systems running Sun OS, 'arch' will contain whatever is printed by uname -p.
+# In particular, for SPARC architecture it will contain "sparc".
+endif
+
+ifndef runtime
+ gcc_version:=$(shell gcc -dumpversion)
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+ export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+endif
+
+ifeq ($(arch),sparc)
+ native_compiler := gcc
+ export compiler ?= gcc
+else
+ native_compiler := suncc
+ export compiler ?= suncc
+endif
+# debugger ?= gdb
+
+CMD=$(SHELL) -c
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= /dev/null
+SLASH=/
+MAKE_VERSIONS=bash $(tbb_root)/build/version_info_sunos.sh $(VERSION_FLAGS) >version_string.ver
+MAKE_TBBVARS=bash $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+ export LD_LIBRARY_PATH := .
+endif
+
+####### Build settings ########################################################
+
+OBJ = o
+DLL = so
+LIBEXT=so
+
+TBB.LST =
+TBB.DEF =
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+
+TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/build/SunOS.suncc.inc b/build/SunOS.suncc.inc
new file mode 100644
index 0000000000..a99e86b502
--- /dev/null
+++ b/build/SunOS.suncc.inc
@@ -0,0 +1,92 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+COMPILE_ONLY = -c -xMMD -errtags
+PREPROC_ONLY = -E -xMMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -KPIC
+DYLIB_KEY = -G
+LIBDL = -ldl
+# WARNING_AS_ERROR_KEY = -errwarn=%all
+WARNING_AS_ERROR_KEY = Warning as error
+# Supported Solaris Studio* 12.2 and above, remove ',inlasmpnu' in the line below to build by compiler prior Solaris Studio* 12.2
+WARNING_SUPPRESS = -erroff=unassigned,attrskipunsup,badargtype2w,badbinaryopw,wbadasg,wvarhidemem,inlasmpnu
+tbb_strict=0
+
+CPLUS = CC
+CONLY = cc
+
+OPENMP_FLAG = -xopenmp
+LIB_LINK_FLAGS = -G -R . -M$(tbb_root)/build/suncc.map.pause
+LINK_FLAGS += -M$(tbb_root)/build/suncc.map.pause
+LIBS = -lpthread -lrt -R .
+C_FLAGS = $(CPLUS_FLAGS)
+
+#TODO: the $(stdlib) instead of hard-wiring STLPort
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -mt -xO2 -g -library=stlport4 -DUSE_PTHREAD $(WARNING_SUPPRESS)
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -mt -DTBB_USE_DEBUG -g -library=stlport4 -DUSE_PTHREAD $(WARNING_SUPPRESS)
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ ASM_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+# TODO: verify whether -m64 implies V9 on relevant Sun Studio versions
+# (those that handle gcc assembler syntax)
+ifeq (sparc,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+export TBB_CUSTOM_VARS_SH=export CXXFLAGS="-I$${TBBROOT}/include -library=stlport4 $(CXXFLAGS) -M$${TBBROOT}/build/suncc.map.pause"
+export TBB_CUSTOM_VARS_CSH=setenv CXXFLAGS "-I$${TBBROOT}/include -library=stlport4 $(CXXFLAGS) -M$${TBBROOT}/build/suncc.map.pause"
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-fbe
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS)
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/android.clang.inc b/build/android.clang.inc
new file mode 100644
index 0000000000..a935968c9c
--- /dev/null
+++ b/build/android.clang.inc
@@ -0,0 +1,118 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+SDL_FLAGS = -fPIE -fPIC -fstack-protector -Wformat -Wformat-security
+TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
+
+WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
+DYLIB_KEY = -shared
+EXPORT_KEY = -Wl,--version-script,
+LIBDL = -ldl
+
+CPLUS = $(TARGET_CXX)
+CONLY = $(TARGET_CC)
+
+# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK
+LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
+
+# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
+PIE_FLAG = -pie
+ifeq ($(APP_PIE), false)
+ PIE_FLAG=
+endif
+
+LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+C_FLAGS = $(CPLUS_FLAGS)
+
+ifeq ($(cfg), release)
+ SDL_FLAGS += -D_FORTIFY_SOURCE=2
+ CPLUS_FLAGS = -O2
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG
+endif
+
+CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H
+
+ifneq (,$(findstring $(arch),ia32 intel64))
+ CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY
+endif
+
+ifeq (0, $(dynamic_load))
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
+endif
+
+# Paths to the NDK prebuilt tools and libraries
+CPLUS_FLAGS += --sysroot=$(SYSROOT)
+LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
+LIBS = -L$(CPLUS_LIB_PATH) -lc++_shared
+ifeq (,$(findstring $(ndk_version),$(foreach v, 7 8 9 10 11,r$(v) r$(v)b r$(v)c r$(v)d r$(v)e)))
+ LIBS += -lc++abi
+ ifeq (arm,$(arch))
+ LIBS += -lunwind
+ endif
+endif
+
+ifeq (arm,$(arch))
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0
+endif
+
+CPLUS_FLAGS += $(TARGET_CFLAGS)
+LIB_LINK_FLAGS += $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -L$(CPLUS_LIB_PATH)
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ASM = $(tbb_tool_prefix)as
+ifeq (intel64,$(arch))
+ ASM_FLAGS += --64
+endif
+ifeq (ia32,$(arch))
+ ASM_FLAGS += --32
+endif
+ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+endif
+
+ASSEMBLY_SOURCE=$(arch)-gas
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/android.gcc.inc b/build/android.gcc.inc
new file mode 100644
index 0000000000..973ca3f0ae
--- /dev/null
+++ b/build/android.gcc.inc
@@ -0,0 +1,117 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
+
+WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
+DYLIB_KEY = -shared
+EXPORT_KEY = -Wl,--version-script,
+LIBDL = -ldl
+
+CPLUS = $(tbb_tool_prefix)g++
+CONLY = $(tbb_tool_prefix)gcc
+
+# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK
+LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+
+# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
+PIE_FLAG = -pie
+ifeq ($(APP_PIE), false)
+ PIE_FLAG=
+endif
+
+LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+C_FLAGS = $(CPLUS_FLAGS)
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -O2
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG
+endif
+
+CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H
+
+ifneq (,$(findstring $(arch),ia32 intel64))
+ CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY
+endif
+
+ifeq (0, $(dynamic_load))
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
+endif
+
+
+# Paths to the NDK prebuilt tools and libraries
+CPLUS_FLAGS += --sysroot=$(SYSROOT)
+LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
+LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared
+
+ifeq (ia32,$(arch))
+ # TODO: Determine best setting of -march and add to CPLUS_FLAGS
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+else ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+else ifeq (arm,$(arch))
+ CPLUS_FLAGS += -march=armv7-a $(DEFINE_KEY)TBB_USE_GCC_BUILTINS=1 $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0
+else ifeq (arm64,$(arch))
+ CPLUS_FLAGS += -march=armv8-a
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ASM = $(tbb_tool_prefix)as
+ifeq (intel64,$(arch))
+ ASM_FLAGS += --64
+endif
+ifeq (ia32,$(arch))
+ ASM_FLAGS += --32
+endif
+ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+endif
+
+ASSEMBLY_SOURCE=$(arch)-gas
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/android.icc.inc b/build/android.icc.inc
new file mode 100644
index 0000000000..64da9fd169
--- /dev/null
+++ b/build/android.icc.inc
@@ -0,0 +1,120 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY =
+TEST_WARNING_KEY = -Wshadow -Woverloaded-virtual -Wextra
+
+WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
+DYLIB_KEY = -shared
+EXPORT_KEY = -Wl,--version-script,
+LIBDL = -ldl
+
+CPLUS = icpc
+CONLY = icc
+
+# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK
+LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+
+# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
+PIE_FLAG = -pie
+ifeq ($(APP_PIE), false)
+ PIE_FLAG=
+endif
+
+LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+C_FLAGS = $(CPLUS_FLAGS)
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -O2
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG
+endif
+
+CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H
+
+ifneq (,$(findstring $(arch),ia32 intel64))
+ CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY
+endif
+
+ifeq (0, $(dynamic_load))
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
+endif
+
+
+# Paths to the NDK prebuilt tools and libraries
+CPLUS_FLAGS += --sysroot=$(SYSROOT)
+LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
+# the -static-intel flag is to remove the need to copy Intel-specific libs to the device.
+LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared -static-intel
+
+ifeq (ia32,$(arch))
+ # TODO: Determine best setting of -march and add to CPLUS_FLAGS
+ CPLUS_FLAGS += -m32 -march=pentium4 -falign-stack=maintain-16-byte
+ LIB_LINK_FLAGS += -m32
+else
+ ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+ endif
+endif
+
+ifeq (arm,$(findstring arm,$(arch)))
+ $(error "Unsupported architecture $(arch) for icc compiler")
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ASM = $(tbb_tool_prefix)as
+ifeq (intel64,$(arch))
+ ASM_FLAGS += --64
+endif
+ifeq (ia32,$(arch))
+ ASM_FLAGS += --32
+endif
+ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+endif
+
+ASSEMBLY_SOURCE=$(arch)-gas
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/build/android.inc b/build/android.inc
new file mode 100644
index 0000000000..aeeb68c5f7
--- /dev/null
+++ b/build/android.inc
@@ -0,0 +1,63 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+#
+# Extra gmake command-line parameters for use with Android:
+#
+# dlopen_workaround: Some OS versions need workaround for dlopen to avoid recursive calls.
+#
+
+####### Detections and Commands ###############################################
+
+ifeq (android,$(findstring android,$(tbb_os)))
+ $(error TBB only supports cross-compilation for Android. Specify "target=android" instead.)
+endif
+
+ifndef BUILDING_PHASE
+ ifneq ("command line","$(origin arch)")
+ ifeq (icc,$(compiler))
+ export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version')
+ ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION)))
+ export arch:=ia32
+ else ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION)))
+ export arch:=intel64
+ else
+ $(error "No support for Android in $(COMPILER_VERSION)")
+ endif
+
+ else
+ ifdef ANDROID_SERIAL
+ uname_m:=$(shell adb shell uname -m)
+ ifeq (i686,$(uname_m))
+ export arch:=ia32
+ else
+ export arch:=$(uname_m)
+ endif
+ endif
+ endif
+ endif
+endif
+
+ifeq ("$(arch)","")
+ $(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set")
+endif
+
+# Android platform only supported from TBB 4.1 forward
+NO_LEGACY_TESTS = 1
+
+
diff --git a/build/android.linux.inc b/build/android.linux.inc
new file mode 100644
index 0000000000..7d022434aa
--- /dev/null
+++ b/build/android.linux.inc
@@ -0,0 +1,67 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+####### Detections and Commands ###############################################
+
+# Must set def_prefix according to target architecture detected above
+ifeq (ia32,$(arch))
+ def_prefix = lin32
+endif
+ifeq (arm,$(findstring arm,$(arch)))
+ def_prefix = lin32
+endif
+ifeq (64,$(findstring 64,$(arch)))
+ def_prefix = lin64
+endif
+
+ifdef ndk_version
+ $(warning "NDK version $(ndk_version)")
+else
+ $(warning "NDK version not set in environment, using \'unknown\' instead.")
+ ndk_version:=unknown
+endif
+
+export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
+
+AR = $(tbb_tool_prefix)ar
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(VERSION_FLAGS) >version_string.ver
+
+####### Build settings ########################################################
+
+# No SONAME_SUFFIX for Android allowed in library names
+TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
+TBB.DEF = $(TBB.LST:.lst=.def)
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+TBB_NO_VERSION.DLL=
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+MALLOC_NO_VERSION.DLL=
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+MALLOCPROXY_NO_VERSION.DLL=
+MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
+LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
+
+TEST_LAUNCHER=
+run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
diff --git a/build/android.linux.launcher.sh b/build/android.linux.launcher.sh
new file mode 100644
index 0000000000..b3cf876457
--- /dev/null
+++ b/build/android.linux.launcher.sh
@@ -0,0 +1,148 @@
+#!/bin/sh
+#
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+# Usage:
+# android.linux.launcher.sh [-v] [-q] [-s] [-r ] [-u] [-l ]
+# where: -v enables verbose output
+# where: -q enables quiet mode
+# where: -s runs the test in stress mode (until non-zero exit code or ctrl-c pressed)
+# where: -r specifies number of times to repeat execution
+# where: -u is ignored on Android
+# where: -l specifies the library name to be assigned to LD_PRELOAD
+#
+# Libs and executable necessary for testing should be present in the current directory before running.
+# ANDROID_SERIAL must be set to the connected Android target device name for file transfer and test runs.
+# ANDROID_TEST_DIRECTORY may be set to the directory used for testing on the Android target device; otherwise,
+# the default directory used is "/data/local/tmp/$(basename $PWD)".
+# Note: Do not remove the redirections to '/dev/null' in the script, otherwise the nightly test system will fail.
+
+do_cleanup() #
+{ #
+ adb pull $targetdir/events.txt events.txt > /dev/null 2>&1 #
+ # Remove target directory on the device
+ adb shell "rm -r ${targetdir}; mkdir -p ${targetdir}" > /dev/null 2>&1 #
+} #
+do_trap_cleanup() #
+{ #
+ do_cleanup #
+ exit -1 #
+} #
+while getopts "qvsr:ul:" flag #
+do case $flag in #
+ s ) # Stress testing mode
+ echo Doing stress testing. Press Ctrl-C to terminate
+ run_env='stressed() { while $*; do :; done; }; ' #
+ run_prefix="stressed $run_prefix" ;; #
+ r ) # Repeats test n times
+ run_env="repeated() { for i in $(seq -s ' ' 1 $OPTARG) ; do echo \$i of $OPTARG:; \$*; done; }; " #
+ run_prefix="repeated $run_prefix" ;; #
+ l ) # Additional library
+ ldpreload="$OPTARG " ;; #
+ u ) # Stack limit
+ ;; #
+ q ) # Quiet mode, removes 'done' but prepends any other output by test name
+ OUTPUT='2>&1 | sed -e "s/done//;/^[[:space:]]*$/d;s!^!$exename: !"' ;; #
+ v ) # Verbose mode
+ SUPPRESS='' #
+ verbose=1 ;; #
+esac done #
+shift `expr $OPTIND - 1` #
+[ -z "$OUTPUT" ] && OUTPUT='| sed -e "s/\\r$//"' #
+[ $verbose ] || SUPPRESS='>/dev/null' #
+# Collect the executable name
+exename=$(basename $1) #
+shift #
+# Prepare the target directory on the device
+currentdir=$(basename $PWD) #
+targetdir=${ANDROID_TEST_DIRECTORY:-/data/local/tmp/$currentdir} #
+do_cleanup #
+trap do_trap_cleanup INT # if someone hits control-c, cleanup the device
+# Collect the list of files to transfer to the target device, starting with executable itself.
+fnamelist="$exename" #
+# Add the C++ standard library from the NDK, which is required for all tests on Android.
+if [ ! -z "${LIB_STL_ANDROID}" ]; then #
+ fnamelist="$fnamelist ${LIB_STL_ANDROID}" #
+else #
+ fnamelist="$fnamelist libc++_shared.so" #
+fi #
+# Find the TBB libraries and add them to the list.
+# Add TBB libraries from the current directory that contains libtbb* files
+files="$(ls libtbb* 2> /dev/null)" #
+[ -z "$files" ] || fnamelist="$fnamelist $files" #
+# Add any libraries built for specific tests.
+exeroot=${exename%\.*} #
+files="$(ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)" #
+[ -z "$files" ] || fnamelist="$fnamelist $files" #
+# TODO: Add extra libraries from the Intel(R) Compiler for certain tests
+# found=$(echo $exename | egrep 'test_malloc_atexit\|test_malloc_lib_unload' 2> /dev/null)
+# if [ ! -z $found ] ; then
+# fnamelist="$fnamelist ${compiler_path_lib}/libimf.so \
+# ${compiler_path_lib}/libsvml.so \
+# ${compiler_path_lib}/libintlc.so.5"
+# fi
+
+# Transfer collected executable and library files to the target device.
+transfers_ok=1 #
+for fullname in $fnamelist; do { #
+ if [ -r $fullname ]; then { #
+ # Transfer the executable and libraries to top-level target directory
+ [ $verbose ] && echo -n "Pushing $fullname: " #
+ eval "adb push $fullname ${targetdir}/$(basename $fullname) $SUPPRESS 2>&1" #
+ }; else { #
+ echo "Error: required file ${currentdir}/${fullname} for test $exename not available for transfer." #
+ transfers_ok=0 #
+ }; fi #
+}; done #
+if [ "${transfers_ok}" = "0" ]; then { #
+ do_cleanup #
+ exit -1 #
+}; fi #
+# Transfer input files used by example codes by scanning the executable argument list.
+for fullname in "$@"; do { #
+ if [ -r $fullname ]; then { #
+ directory=$(dirname $fullname) #
+ filename=$(basename $fullname) #
+ # strip leading "." from fullname if present
+ if [ "$directory" = "\." ]; then { #
+ directory="" #
+ fullname=$filename #
+ }; fi #
+ # Create the target directory to hold input file if necessary
+ if [ ! -z $directory ]; then { #
+ eval "adb shell 'mkdir $directory' $SUPPRESS 2>&1" #
+ }; fi #
+ # Transfer the input file to corresponding directory on target device
+ [ $verbose ] && echo -n "Pushing $fullname: " #
+ eval "adb push $fullname ${targetdir}/$fullname $SUPPRESS 2>&1" #
+ }; fi #
+}; done #
+# Set LD_PRELOAD if necessary
+[ -z "$ldpreload" ] || run_prefix="LD_PRELOAD='$ldpreload' $run_prefix" #
+[ $verbose ] && echo Running $run_prefix ./$exename $* #
+run_env="$run_env cd $targetdir; export LD_LIBRARY_PATH=." #
+[ -z "$VIRTUAL_MACHINE" ] || run_env="$run_env; export VIRTUAL_MACHINE=$VIRTUAL_MACHINE" #
+# The return_code file is the best way found to return the status of the test execution when using adb shell.
+eval 'adb shell "$run_env; $run_prefix ./$exename $* || echo -n \$? >error_code"' "${OUTPUT}" #
+# Capture the return code string and remove the trailing \r from the return_code file contents
+err=`adb shell "cat $targetdir/error_code 2>/dev/null"` #
+[ -z $err ] || echo $exename: exited with error $err #
+do_cleanup #
+# Return the exit code of the test.
+exit $err #
diff --git a/build/android.macos.inc b/build/android.macos.inc
new file mode 100644
index 0000000000..bf84578a43
--- /dev/null
+++ b/build/android.macos.inc
@@ -0,0 +1,76 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+####### Detections and Commands ###############################################
+
+# Must set def_prefix according to target architecture detected above
+ifeq (ia32,$(arch))
+ def_prefix = lin32
+endif
+ifeq (arm,$(findstring arm,$(arch)))
+ def_prefix = lin32
+endif
+ifeq (64,$(findstring 64,$(arch)))
+ def_prefix = lin64
+endif
+
+ifdef ndk_version
+ $(warning "NDK version $(ndk_version)")
+else
+ $(warning "NDK version not set in environment, using \'unknown\' instead.")
+ ndk_version:=unknown
+endif
+
+export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
+
+AR = $(tbb_tool_prefix)ar
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(VERSION_FLAGS) >version_string.ver
+
+####### Build settings ########################################################
+
+# No SONAME_SUFFIX for Android allowed in library names
+TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
+TBB.DEF = $(TBB.LST:.lst=.def)
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+TBB_NO_VERSION.DLL=
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+MALLOC_NO_VERSION.DLL=
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+MALLOCPROXY_NO_VERSION.DLL=
+MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
+LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
+
+TBB.RES =
+MALLOC.RES =
+RML.RES =
+TBB.MANIFEST =
+MALLOC.MANIFEST =
+RML.MANIFEST =
+OBJ = o
+DLL = so
+
+TEST_LAUNCHER=
+run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
diff --git a/build/android.windows.inc b/build/android.windows.inc
new file mode 100644
index 0000000000..f58e5d52fb
--- /dev/null
+++ b/build/android.windows.inc
@@ -0,0 +1,78 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+####### Detections and Commands ###############################################
+
+# Must set def_prefix according to target architecture detected above
+ifeq (ia32,$(arch))
+ def_prefix = lin32
+endif
+ifeq (arm,$(findstring arm,$(arch)))
+ def_prefix = lin32
+endif
+ifeq (64,$(findstring 64,$(arch)))
+ def_prefix = lin64
+endif
+
+ifdef ndk_version
+ $(warning "NDK version $(ndk_version)")
+else
+ $(warning "NDK version not set in environment, using \'unknown\' instead.")
+ ndk_version:=unknown
+endif
+
+export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
+
+AR = $(tbb_tool_prefix)ar
+MAKE_VERSIONS = cmd /C cscript /nologo /E:jscript $(subst \,/,$(tbb_root))/build/version_info_windows.js $(CONLY) $(arch) $(subst \,/,"$(VERSION_FLAGS)") > version_string.ver
+
+####### Build settings ########################################################
+
+# No SONAME_SUFFIX for Android allowed in library names
+TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
+TBB.DEF = $(TBB.LST:.lst=.def)
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+TBB_NO_VERSION.DLL=
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+MALLOC_NO_VERSION.DLL=
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+MALLOCPROXY_NO_VERSION.DLL=
+MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
+
+TBB.RES =
+MALLOC.RES =
+RML.RES =
+TBB.MANIFEST =
+MALLOC.MANIFEST =
+RML.MANIFEST =
+OBJ = o
+DLL = so
+
+TEST_LAUNCHER=
+run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
+export UNIXMODE = 1
+# Clang for Android* uses the INCLUDE variable (instead of CPATH)
+export USE_INCLUDE_ENV = 1
diff --git a/build/big_iron.inc b/build/big_iron.inc
new file mode 100644
index 0000000000..efed212536
--- /dev/null
+++ b/build/big_iron.inc
@@ -0,0 +1,76 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+#------------------------------------------------------------------------------
+# Defines settings for building the TBB run-time as a static library.
+# Use these only on platforms where dynamic linking is impractical.
+#
+# IF YOU USE TBB AS A STATIC LIBRARY, YOU MUST GUARANTEE THAT ONLY ONE COPY OF
+# THE TBB RUN-TIME IS LINKED INTO AN APPLICATION! LINKING IN MULTIPLE COPIES
+# OF THE TBB RUN-TIME, DIRECTLY OR INDIRECTLY, MAY CAUSE PROGRAM FAILURE!
+#------------------------------------------------------------------------------
+
+# Note that ITT_NOTIFY allows to selectively remove the definition of
+# DO_ITT_NOTIFY without sabotaging deferred expansion of CPLUS_FLAGS.
+# TODO: currently only in linux.{gcc,xl}.inc
+
+# Note that -pthread with xl gives "1501-210 (W) command option t contains an incorrect subargument";
+# multithreading is instead achieved by using the _r affix in the compiler name.
+# TODO: is -lpthread still relevant/needed with XL and _r affix?
+
+# Note that usage of dynamic (shared) libraries is disabled
+# (via -D__TBB_DYNAMIC_LOAD_ENABLED=0 and LIBDL emptied) primarily for performance.
+
+# OS specific settings =>
+ LIB_LINK_CMD = ar rcs
+ LIB_LINK_FLAGS =
+ LIB_LINK_LIBS =
+ LIB_OUTPUT_KEY =
+ DYLIB_KEY =
+ ifeq ($(tbb_os),linux)
+ ifeq ($(compiler),clang)
+ LIBS = -pthread -lrt
+ endif
+ ifeq ($(compiler),gcc)
+ LIBS = -pthread -lrt
+ endif
+ ifeq ($(compiler),xl)
+ LIBS = -lpthread -lrt
+ endif
+ LINK_FLAGS =
+ endif
+ override CXXFLAGS += -D__TBB_DYNAMIC_LOAD_ENABLED=0 -D__TBB_SOURCE_DIRECTLY_INCLUDED=1
+ ITT_NOTIFY =
+ DLL = a
+ LIBEXT = a
+ LIBPREF = lib
+ LIBDL =
+# <= OS specific settings
+
+TBB.DLL = $(LIBPREF)tbb$(DEBUG_SUFFIX).$(LIBEXT)
+LINK_TBB.LIB = $(TBB.DLL)
+TBB.LST =
+TBB.DEF =
+TBB_NO_VERSION.DLL =
+
+MALLOC.DLL = $(LIBPREF)tbbmalloc$(DEBUG_SUFFIX).$(LIBEXT)
+LINK_MALLOC.LIB = $(MALLOC.DLL)
+MALLOC.DEF =
+MALLOC_NO_VERSION.DLL =
+MALLOCPROXY.DLL =
+MALLOCPROXY.DEF =
diff --git a/build/codecov.txt b/build/codecov.txt
new file mode 100644
index 0000000000..e22f8059a2
--- /dev/null
+++ b/build/codecov.txt
@@ -0,0 +1,7 @@
+src/tbb
+src/tbbmalloc
+include/tbb
+src/rml/server
+src/rml/client
+src/rml/include
+source/malloc
diff --git a/build/common.inc b/build/common.inc
new file mode 100644
index 0000000000..b2c20de697
--- /dev/null
+++ b/build/common.inc
@@ -0,0 +1,166 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+ifndef tbb_os
+
+ # Windows sets environment variable OS; for other systems, ask uname
+ ifeq ($(OS),)
+ OS:=$(shell uname)
+ ifeq ($(OS),)
+ $(error "Cannot detect operating system")
+ endif
+ export tbb_os=$(OS)
+ endif
+
+ ifeq ($(OS), Windows_NT)
+ export tbb_os=windows
+ endif
+ ifeq ($(OS), Linux)
+ export tbb_os=linux
+ endif
+ ifeq ($(OS), Darwin)
+ export tbb_os=macos
+ endif
+
+endif # !tbb_os
+
+ifeq (1,$(tbb_cpf))
+ export CPF_SUFFIX ?=_preview
+endif
+
+ifeq (0,$(exceptions))
+# Inverse the value, for simplicity of use
+ export no_exceptions=1
+endif
+
+ifdef cpp0x
+ $(warning "Warning: deprecated cpp0x=$(cpp0x) is used, stdver must be used instead. Building in stdver=c++0x mode.")
+ export stdver?=c++0x
+ override cpp0x=
+endif
+
+ifneq (,$(stdver))
+ ifeq (,$(findstring ++, $(stdver)))
+ $(warning "Warning: unexpected stdver=$(stdver) is used.")
+ endif
+ CXX_STD_FLAGS=-std=$(stdver)
+endif
+
+# The requested option is added unconditionally.
+# If it is not supported, a compiler warning or error is expected.
+# Note that CXX_STD_FLAGS can be changed in ..inc.
+CXX_ONLY_FLAGS+=$(CXX_STD_FLAGS)
+
+ifeq (,$(wildcard $(tbb_root)/build/$(tbb_os).inc))
+ $(error "$(tbb_os)" is not supported. Add build/$(tbb_os).inc file with os-specific settings )
+endif
+
+# detect arch and runtime versions, provide common host-specific definitions
+include $(tbb_root)/build/$(tbb_os).inc
+
+ifeq ($(arch),)
+ $(error Architecture not detected)
+endif
+ifeq ($(runtime),)
+ $(error Runtime version not detected)
+endif
+
+# process target-dependent compilation and testing configurations
+ifdef target
+ # optionally process target-dependent options for compilation and testing
+ ifneq (,$(wildcard $(tbb_root)/build/$(target).inc))
+ include $(tbb_root)/build/$(target).inc
+ endif
+
+ # optionally process host-dependent environment for target-dependent compilation and testing
+ ifneq (,$(wildcard $(tbb_root)/build/$(target).$(tbb_os).inc))
+ include $(tbb_root)/build/$(target).$(tbb_os).inc
+ endif
+
+ # insure at least one target-dependent configuration file was found for compilation and testing
+ ifeq (,$(wildcard $(tbb_root)/build/$(target).inc)$(wildcard $(tbb_root)/build/$(target).$(tbb_os).inc))
+ $(error "$(target)" is not supported. Add build/$(target).inc or build/$(target).$(tbb_os).inc file)
+ endif
+endif #target
+
+# Support for running debug tests to release library and vice versa
+flip_cfg=$(subst _flipcfg,_release,$(subst _release,_debug,$(subst _debug,_flipcfg,$(1))))
+cross_cfg = $(if $(crosstest),$(call flip_cfg,$(1)),$(1))
+# Setting default configuration to release
+cfg?=release
+
+compiler_name=$(notdir $(compiler))
+ifdef BUILDING_PHASE
+ ifndef target
+ target:=$(tbb_os)
+ endif
+ # process host/target compiler-dependent build configuration
+ ifeq (,$(wildcard $(tbb_root)/build/$(target).$(compiler_name).inc))
+ $(error "$(compiler_name)" is not supported on $(target). Add build/$(target).$(compiler_name).inc file with compiler-specific settings. )
+ endif
+ include $(tbb_root)/build/$(target).$(compiler_name).inc
+endif
+
+ifneq ($(BUILDING_PHASE),1)
+ # definitions for top-level Makefiles
+ origin_build_dir:=$(origin tbb_build_dir)
+ tbb_build_dir?=$(tbb_root)$(SLASH)build
+ export tbb_build_prefix?=$(tbb_os)_$(arch)_$(compiler_name)_$(runtime)$(CPF_SUFFIX)
+ work_dir=$(tbb_build_dir)$(SLASH)$(tbb_build_prefix)
+endif # BUILDING_PHASE != 1
+
+ifdef offload
+ extra_inc=$(offload).offload.inc
+endif
+ifdef extra_inc
+ ifneq (,$(wildcard $(tbb_root)/build/$(extra_inc)))
+ include $(tbb_root)/build/$(extra_inc)
+ else
+ $(error specified build file: "build/$(extra_inc)" is not found. )
+ endif
+endif
+
+ifndef BUILDING_PHASE
+ work_dir:=$(work_dir)
+ # assign new value for tbb_root if path is not absolute (the filter keeps only /* paths)
+ ifeq ($(filter /% $(SLASH)%, $(subst :, ,$(tbb_root)) ),)
+ full_tbb_root:=$(CURDIR)/$(tbb_root)
+ ifeq ($(origin_build_dir),undefined)
+ #relative path are needed here as a workaround to support whitespaces in path
+ override tbb_root:=../..
+ else
+ override tbb_root:=$(full_tbb_root)
+ endif
+ export tbb_root
+ endif
+ endif # !BUILDING_PHASE
+
+.DELETE_ON_ERROR: # Make will delete target if error occurred when building it.
+
+# MAKEOVERRIDES contains the command line variable definitions. Reseting it to
+# empty allows propogating all exported overridden variables to nested makes.
+# NOTEs:
+# 1. All variable set in command line are propagated to nested makes.
+# 2. All variables declared with the "export" keyword are propagated to
+# nested makes.
+# 3. "override" allows changing variables set in command line. But it doesn't
+# propagate new values to nested makes. For propagation, the "export" keyword
+# should be used.
+# 4. gmake v3.80 doesn't support exporting of target-specific variables using
+# the "export" keyword
+MAKEOVERRIDES =
diff --git a/build/common_rules.inc b/build/common_rules.inc
new file mode 100644
index 0000000000..3922413df3
--- /dev/null
+++ b/build/common_rules.inc
@@ -0,0 +1,168 @@
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+
+ifeq ($(tbb_strict),1)
+ ifeq ($(WARNING_AS_ERROR_KEY),)
+ $(error WARNING_AS_ERROR_KEY is empty)
+ endif
+ # Do not remove line below!
+ WARNING_KEY += $(WARNING_AS_ERROR_KEY)
+endif
+
+ifneq (,$(findstring s,$(MAKEFLAGS)))
+ override largs+=-q
+endif
+ifneq (,$(repeat))
+ override largs+=-r $(repeat)
+endif
+ifneq (,$(largs)$(run_prefix))
+ override run_cmd:=$(run_cmd) $(TEST_LAUNCHER)
+ TEST_LAUNCHER=
+ ifeq (,$(strip $(run_cmd)))
+ $(warning Test launcher is not defined for the platform, ignoring launcher arguments)
+ endif
+endif
+
+ifndef TEST_EXT
+ TEST_EXT = exe
+endif
+
+INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
+
+CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
+ifeq (1,$(tbb_cpf))
+CPLUS_FLAGS += $(DEFINE_KEY)__TBB_CPF_BUILD=1
+endif
+ifeq (0,$(exceptions))
+CPLUS_FLAGS += $(DEFINE_KEY)TBB_USE_EXCEPTIONS=0
+endif
+LINK_FLAGS += $(LDFLAGS)
+LIB_LINK_FLAGS += $(LDFLAGS)
+
+LIB_LINK_CMD ?= $(CPLUS) $(PIC_KEY)
+ifeq ($(origin LIB_OUTPUT_KEY), undefined)
+ LIB_OUTPUT_KEY = $(OUTPUT_KEY)
+endif
+ifeq ($(origin LIB_LINK_LIBS), undefined)
+ LIB_LINK_LIBS = $(LIBDL) $(LIBS)
+endif
+
+CONLY ?= $(CPLUS)
+
+# The most generic rules
+#$(1) - is the target pattern
+define make-cxx-obj
+$1: %.cpp
+ $$(CPLUS) $$(OUTPUTOBJ_KEY)$$@ $$(COMPILE_ONLY) $$(CPLUS_FLAGS) $$(CXX_ONLY_FLAGS) $$(CXX_WARN_SUPPRESS) $$(INCLUDES) $$<
+endef
+
+TEST_AFFIXES_OBJS=$(addsuffix .$(OBJ),$(addprefix %_,$(TEST_SUFFIXES)) $(addsuffix _%,$(TEST_PREFIXES)))
+
+# Make will not process the same recipe for each test pattern (since the dependency on the same %.cpp)
+# thus the separated recipes should be provided
+$(foreach t,%.$(OBJ) $(TEST_AFFIXES_OBJS),$(eval $(call make-cxx-obj,$(t))))
+
+.PRECIOUS: %.$(OBJ) %.$(TEST_EXT) %.res $(TEST_AFFIXES_OBJS)
+
+# Rules for generating a test DLL
+%_dll.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(CPLUS_FLAGS) $(PIC_KEY) $(DEFINE_KEY)_USRDLL $(INCLUDES) $<
+
+#$(1) - is the binary name
+#$(2) - is the input obj files and libraries
+define make-test-binary
+ $(CPLUS) $(OUTPUT_KEY)$(strip $1) $(CPLUS_FLAGS) $(2) $(LIBS) $(LINK_FLAGS)
+endef
+
+# LINK_FILES the list of options to link test specific files (libraries and object files)
+LINK_FILES+=$(TEST_LIBS)
+# Rule for generating executable test
+%.$(TEST_EXT): %.$(OBJ) $(TEST_LIBS) $(TEST_PREREQUISITE) $(if $(use_proxy),$(PROXY.LIB))
+ $(call make-test-binary,$@,$< $(LINK_FILES) $(PIE_FLAG))
+
+# Rules for generating a test DLL
+%_dll.$(DLL): LINK_FLAGS += $(PIC_KEY) $(DYLIB_KEY)
+%_dll.$(DLL): TEST_LIBS := $(subst %_dll.$(DLL),,$(TEST_LIBS))
+%_dll.$(DLL): %_dll.$(OBJ)
+ $(call make-test-binary,$@,$< $(LINK_FILES))
+.PRECIOUS: %_dll.$(OBJ) %_dll.$(DLL)
+
+%.$(OBJ): %.c
+ $(CONLY) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(C_FLAGS) $(INCLUDES) $<
+
+%.$(OBJ): %.asm
+ $(ASM) $(ASM_FLAGS) $<
+
+%.$(OBJ): %.s
+ cpp <$< | grep -v '^#' >$*.tmp
+ $(ASM) $(ASM_FLAGS) -o $@ $*.tmp
+
+# Rule for generating .E file if needed for visual inspection
+# Note that ICL treats an argument after PREPROC_ONLY as a file to open,
+# so all uses of PREPROC_ONLY should be immediately followed by a file name
+%.E: %.cpp
+ $(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $(PREPROC_ONLY) $< >$@
+
+# TODO Rule for generating .asm file if needed for visual inspection
+%.asm: %.cpp
+ $(CPLUS) /c /FAs /Fa $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
+
+# TODO Rule for generating .s file if needed for visual inspection
+%.s: %.cpp
+ $(CPLUS) -S $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
+
+# Customizations
+$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+
+tbb_misc.$(OBJ): version_string.ver
+tbb_misc.$(OBJ): INCLUDES+=$(INCLUDE_KEY).
+
+tbb_misc.E: tbb_misc.cpp version_string.ver
+ $(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDE_KEY). $(INCLUDES) $(PREPROC_ONLY) $< >$@
+
+%.res: %.rc version_string.ver $(TBB.MANIFEST)
+ rc /Fo$@ $(INCLUDES) $(filter /D%,$(CPLUS_FLAGS)) $<
+
+# TODO: add $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS) (in a separate line?) and remove useless $(INCLUDES)
+VERSION_FLAGS=$(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES)
+
+ifneq (,$(TBB.MANIFEST))
+$(TBB.MANIFEST):
+ cmd /C "echo #include ^ >tbbmanifest.c"
+ cmd /C "echo int main(){return 0;} >>tbbmanifest.c"
+ cl /nologo $(C_FLAGS) tbbmanifest.c
+
+version_string.ver: $(TBB.MANIFEST)
+ $(MAKE_VERSIONS)
+ cmd /C "echo #define TBB_MANIFEST 1 >> version_string.ver"
+# TODO: fix parallel build by writing to a temporary file and rename it when complete
+else
+# TODO: make version strings directly representative for all the libraries
+version_string.ver:
+ $(MAKE_VERSIONS)
+endif
+
+test_% debug_%: test_%.$(TEST_EXT) $(TEST_PREREQUISITE)
+ $(run_cmd) ./$< $(args)
+ifneq (,$(codecov))
+ profmerge
+ codecov $(if $(findstring -,$(codecov)),$(codecov),) -demang -comp $(tbb_root)/build/codecov.txt
+endif
+
diff --git a/build/detect.js b/build/detect.js
new file mode 100644
index 0000000000..b2a0943bc5
--- /dev/null
+++ b/build/detect.js
@@ -0,0 +1,199 @@
+// Copyright (c) 2005-2017 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+//
+
+function readAllFromFile(fname) {
+ var fso = new ActiveXObject("Scripting.FileSystemObject");
+ var file = null;
+ try {
+ file = fso.OpenTextFile(fname, 1, 0);
+ return (file.readAll());
+ } finally {
+ // Close the file in the finally section to guarantee that it will be closed in any case
+ // (if the exception is thrown or not).
+ file.Close();
+ }
+}
+
+function doWork() {
+ var WshShell = WScript.CreateObject("WScript.Shell");
+
+ var tmpExec = WshShell.Run("cmd /c echo int main(){return 0;} >detect.c", 0, true);
+
+ // The next block deals with GCC (MinGW)
+ if (WScript.Arguments.Count() > 1) {
+ var compilerPath = WScript.Arguments(1);
+ // The RegExp matches everything up to and including the last slash (it uses a greedy approach.)
+ var compilerName = compilerPath.replace(/^.*[\/\\]/, "");
+ if (compilerName.match(/gcc/i) != null) {
+ if (WScript.Arguments(0) == "/arch") {
+ // Get predefined macros
+ tmpExec = WshShell.Run("cmd /C " + compilerPath + " -dM -E detect.c > detect.map", 0, true);
+ var defs = readAllFromFile("detect.map");
+ //detect target architecture
+ var intel64 = /x86_64|amd64/mgi;
+ var ia32 = /i386/mgi;
+ if (defs.match(intel64)) {
+ WScript.Echo("intel64");
+ } else if (defs.match(ia32)) {
+ WScript.Echo("ia32");
+ } else {
+ WScript.Echo("unknown");
+ }
+ } else {
+ tmpExec = WshShell.Exec(compilerPath + " -dumpversion");
+ var gccVersion = tmpExec.StdOut.ReadLine();
+ if (WScript.Arguments(0) == "/runtime") {
+ WScript.Echo("mingw" + gccVersion);
+ }
+ else if (WScript.Arguments(0) == "/minversion") {
+ // Comparing strings, not numbers; will not work for two-digit versions
+ if (gccVersion >= WScript.Arguments(2)) {
+ WScript.Echo("ok");
+ } else {
+ WScript.Echo("fail");
+ }
+ }
+ }
+ return;
+ }
+ }
+
+ //Compile binary
+ tmpExec = WshShell.Exec("cl /MD detect.c /link /MAP");
+ while (tmpExec.Status == 0) {
+ WScript.Sleep(100);
+ }
+ //compiler banner that includes version and target arch was printed to stderr
+ var clVersion = tmpExec.StdErr.ReadAll();
+
+ if (WScript.Arguments(0) == "/arch") {
+ //detect target architecture
+ var intel64 = /AMD64|EM64T|x64/mgi;
+ var ia32 = /[80|\s]x86/mgi;
+ var arm = /ARM/mgi;
+ if (clVersion.match(intel64)) {
+ WScript.Echo("intel64");
+ } else if (clVersion.match(ia32)) {
+ WScript.Echo("ia32");
+ } else if (clVersion.match(arm)) {
+ WScript.Echo("armv7");
+ } else {
+ WScript.Echo("unknown");
+ }
+ return;
+ }
+
+ if (WScript.Arguments(0) == "/runtime") {
+ //read map-file
+ var mapContext = readAllFromFile("detect.map");
+ //detect runtime
+ var vc71 = /MSVCR71\.DLL/mgi;
+ var vc80 = /MSVCR80\.DLL/mgi;
+ var vc90 = /MSVCR90\.DLL/mgi;
+ var vc100 = /MSVCR100\.DLL/mgi;
+ var vc110 = /MSVCR110\.DLL/mgi;
+ var vc120 = /MSVCR120\.DLL/mgi;
+ var vc140 = /VCRUNTIME140\.DLL/mgi;
+ var psdk = /MSVCRT\.DLL/mgi;
+ if (mapContext.match(vc71)) {
+ WScript.Echo("vc7.1");
+ } else if (mapContext.match(vc80)) {
+ WScript.Echo("vc8");
+ } else if (mapContext.match(vc90)) {
+ WScript.Echo("vc9");
+ } else if (mapContext.match(vc100)) {
+ WScript.Echo("vc10");
+ } else if (mapContext.match(vc110)) {
+ WScript.Echo("vc11");
+ } else if (mapContext.match(vc120)) {
+ WScript.Echo("vc12");
+ } else if (mapContext.match(vc140)) {
+ if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "15.0")
+ WScript.Echo("vc14.1");
+ else
+ WScript.Echo("vc14");
+ } else {
+ WScript.Echo("unknown");
+ }
+ return;
+ }
+
+ if (WScript.Arguments(0) == "/minversion") {
+ var compilerVersion;
+ var compilerUpdate;
+ if (WScript.Arguments(1) == "cl") {
+ compilerVersion = clVersion.match(/Compiler Version ([0-9.]+)\s/mi)[1];
+ // compilerVersion is in xx.xx.xxxxx.xx format, i.e. a string.
+ // It will compare well with major.minor versions where major has two digits,
+ // which is sufficient as the versions of interest start from 13 (for VC7).
+ } else if (WScript.Arguments(1) == "icl") {
+ // Get predefined ICL macros
+ tmpExec = WshShell.Run("cmd /C icl /QdM /E detect.c > detect.map", 0, true);
+ var defs = readAllFromFile("detect.map");
+ // In #define __INTEL_COMPILER XXYY, XX is the major ICL version, YY is minor
+ compilerVersion = defs.match(/__INTEL_COMPILER[ \t]*([0-9]+).*$/mi)[1] / 100;
+ compilerUpdate = defs.match(/__INTEL_COMPILER_UPDATE[ \t]*([0-9]+).*$/mi)[1];
+ // compiler version is a number; it compares well with another major.minor
+ // version number, where major has one, two, and perhaps more digits (9.1, 11, etc).
+ }
+ var requestedVersion = WScript.Arguments(2);
+ var requestedUpdate = 0;
+ if (WScript.Arguments.Count() > 3)
+ requestedUpdate = WScript.Arguments(3);
+ if (compilerVersion < requestedVersion) {
+ WScript.Echo("fail");
+ } else if (compilerVersion == requestedVersion && compilerUpdate < requestedUpdate) {
+ WScript.Echo("fail");
+ } else {
+ WScript.Echo("ok");
+ }
+ return;
+ }
+}
+
+function doClean() {
+ var fso = new ActiveXObject("Scripting.FileSystemObject");
+ // delete intermediate files
+ if (fso.FileExists("detect.c"))
+ fso.DeleteFile("detect.c", false);
+ if (fso.FileExists("detect.obj"))
+ fso.DeleteFile("detect.obj", false);
+ if (fso.FileExists("detect.map"))
+ fso.DeleteFile("detect.map", false);
+ if (fso.FileExists("detect.exe"))
+ fso.DeleteFile("detect.exe", false);
+ if (fso.FileExists("detect.exe.manifest"))
+ fso.DeleteFile("detect.exe.manifest", false);
+}
+
+if (WScript.Arguments.Count() > 0) {
+
+ try {
+ doWork();
+ } catch (error) {
+ WScript.Echo("unknown");
+ }
+ doClean();
+
+} else {
+ WScript.Echo("Supported options:\n"
+ + "\t/arch [compiler]\n"
+ + "\t/runtime [compiler]\n"
+ + "\t/minversion compiler version");
+}
+
diff --git a/build/generate_tbbvars.bat b/build/generate_tbbvars.bat
new file mode 100644
index 0000000000..8925f577b1
--- /dev/null
+++ b/build/generate_tbbvars.bat
@@ -0,0 +1,66 @@
+@echo off
+REM
+REM Copyright (c) 2005-2017 Intel Corporation
+REM
+REM Licensed under the Apache License, Version 2.0 (the "License");
+REM you may not use this file except in compliance with the License.
+REM You may obtain a copy of the License at
+REM
+REM http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing, software
+REM distributed under the License is distributed on an "AS IS" BASIS,
+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM See the License for the specific language governing permissions and
+REM limitations under the License.
+REM
+REM
+REM
+REM
+REM
+setlocal
+for %%D in ("%tbb_root%") do set actual_root=%%~fD
+set fslash_root=%actual_root:\=/%
+set bin_dir=%CD%
+set fslash_bin_dir=%bin_dir:\=/%
+set _INCLUDE=INCLUDE& set _LIB=LIB
+if not x%UNIXMODE%==x set _INCLUDE=CPATH& set _LIB=LIBRARY_PATH
+if not x%USE_INCLUDE_ENV%==x set _INCLUDE=INCLUDE
+
+echo Generating local tbbvars.bat
+echo @echo off>tbbvars.bat
+echo SET TBBROOT=%actual_root%>>tbbvars.bat
+echo SET TBB_ARCH_PLATFORM=%arch%\%runtime%>>tbbvars.bat
+echo SET TBB_TARGET_ARCH=%arch%>>tbbvars.bat
+echo SET %_INCLUDE%=%%TBBROOT%%\include;%%%_INCLUDE%%%>>tbbvars.bat
+echo SET %_LIB%=%bin_dir%;%%%_LIB%%%>>tbbvars.bat
+echo SET PATH=%bin_dir%;%%PATH%%>>tbbvars.bat
+if not x%UNIXMODE%==x echo SET LD_LIBRARY_PATH=%bin_dir%;%%LD_LIBRARY_PATH%%>>tbbvars.bat
+
+echo Generating local tbbvars.sh
+echo #!/bin/sh>tbbvars.sh
+echo export TBBROOT="%fslash_root%">>tbbvars.sh
+echo export TBB_ARCH_PLATFORM="%arch%\%runtime%">>tbbvars.sh
+echo export TBB_TARGET_ARCH="%arch%">>tbbvars.sh
+echo export %_INCLUDE%="${TBBROOT}/include;$%_INCLUDE%">>tbbvars.sh
+echo export %_LIB%="%fslash_bin_dir%;$%_LIB%">>tbbvars.sh
+echo export PATH="%fslash_bin_dir%;$PATH">>tbbvars.sh
+if not x%UNIXMODE%==x echo export LD_LIBRARY_PATH="%fslash_bin_dir%;$LD_LIBRARY_PATH">>tbbvars.sh
+
+echo Generating local tbbvars.csh
+echo #!/bin/csh>tbbvars.csh
+echo setenv TBBROOT "%actual_root%">>tbbvars.csh
+echo setenv TBB_ARCH_PLATFORM "%arch%\%runtime%">>tbbvars.csh
+echo setenv TBB_TARGET_ARCH "%arch%">>tbbvars.csh
+echo setenv %_INCLUDE% "${TBBROOT}\include;$%_INCLUDE%">>tbbvars.csh
+echo setenv %_LIB% "%bin_dir%;$%_LIB%">>tbbvars.csh
+echo setenv PATH "%bin_dir%;$PATH">>tbbvars.csh
+if not x%UNIXMODE%==x echo setenv LD_LIBRARY_PATH "%bin_dir%;$LD_LIBRARY_PATH">>tbbvars.csh
+
+if not x%LIB_STL_ANDROID%==x (
+REM Workaround for copying Android* specific stl shared library to work folder
+copy /Y "%LIB_STL_ANDROID:/=\%" .
+)
+
+endlocal
+exit
diff --git a/build/generate_tbbvars.sh b/build/generate_tbbvars.sh
new file mode 100644
index 0000000000..0ca0965acf
--- /dev/null
+++ b/build/generate_tbbvars.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+#
+# Copyright (c) 2005-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+# Script used to generate tbbvars.[c]sh scripts
+bin_dir="$PWD" #
+cd "$tbb_root" # keep this comments here
+tbb_root="$PWD" # to make it unsensible
+cd "$bin_dir" # to EOL encoding
+cat >./tbbvars.sh <./tbbvars.csh <
+
+
+Overview
+This directory contains the internal Makefile infrastructure for Intel® Threading Building Blocks (Intel® TBB).
+
+
+See below for how to build Intel TBB and how to port Intel TBB
+to a new platform, operating system or architecture.
+
+
+Files
+The files here are not intended to be used directly. See below for usage.
+
+- Makefile.tbb
+
- Main Makefile to build the Intel TBB library.
+ Invoked via 'make tbb' from top-level Makefile.
+
- Makefile.tbbmalloc
+
- Main Makefile to build the Intel TBB scalable memory allocator library as well as its tests.
+ Invoked via 'make tbbmalloc' from top-level Makefile.
+
- Makefile.test
+
- Main Makefile to build and run the tests for the Intel TBB library.
+ Invoked via 'make test' from top-level Makefile.
+
- common.inc
+
- Main common included Makefile that includes OS-specific and compiler-specific Makefiles.
+
- <os>.inc
+
- OS-specific Makefile for a particular <os>.
+
- <os>.<compiler>.inc
+
- Compiler-specific Makefile for a particular <os> / <compiler> combination.
+
- *.sh
+
- Infrastructure utilities for Linux* OS, macOS*, and UNIX*-related operating systems.
+
- *.js, *.bat
+
- Infrastructure utilities for Windows* OS.
+
+
+To Build
+
+To port Intel TBB to a new platform, operating system or architecture, see the porting directions below.
+
+
+Software prerequisites:
+
+- C++ compiler for the platform, operating system and architecture of interest.
+ Either the native compiler for your system, or, optionally, the appropriate Intel® C++ Compiler, may be used.
+
- GNU make utility. On Windows OS, if a UNIX* emulator is used to run GNU make,
+ it should be able to run Windows OS utilities and commands. On Linux OS, macOS, etc.,
+ shell commands issued by GNU make should execute in a Bourne or BASH compatible shell.
+ In the following examples, replace make with the correct GNU make command for
+ your system (for example, gmake). GNU make version 3.80 and more recent are supported.
+
+
+
+Intel TBB libraries can be built by performing the following steps.
+On systems that support only one ABI (e.g., 32-bit), these steps build the libraries for that ABI.
+On systems that support both 64-bit and 32-bit libraries, these steps build the 64-bit libraries
+(Linux OS, macOS, and related systems) or whichever ABI is selected in the development environment (Windows OS).
+
+
+- Change to the top-level directory of the installed software.
+
- If using the Intel® C++ Compiler, make sure the appropriate compiler is available in your PATH
+ (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+
- Invoke GNU make using no arguments, for example, make.
+
+
+
+To build Intel TBB libraries for other than the default ABI (e.g., to build 32-bit libraries on Linux OS, macOS,
+or related systems that support both 64-bit and 32-bit libraries), perform the following steps:
+
+
+- Change to the top-level directory of the installed software.
+
- If using the Intel® C++ Compiler, make sure the appropriate compiler is available in your PATH
+ (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+
- Explicitly specify the architecture when invoking GNU make, e.g. make arch=ia32.
+
+
+The default make target will build the release and debug versions of the Intel TBB library.
+Other targets are available in the top-level Makefile. You might find the following targets useful:
+
+- make test will build and run Intel TBB unit-tests;
+
- make examples will build and run Intel TBB examples. Available in the open-source version only.
+For the commercial version, you can download Intel TBB Samples at the Intel® Software Product Samples and Tutorials website;
+
- make all will do all of the above. Available in the open-source version only.
+
+See also the list of other targets below.
+
+
+
+By default, the libraries will be built in sub-directories within the build/ directory.
+The sub-directories are named according to the operating system, architecture, compiler and software environment used
+(the sub-directory names also distinguish release vs. debug libraries). On Linux OS, the software environment comprises
+the GCC, libc and kernel version used. On macOS, the software environment comprises the GCC and OS version used.
+On Windows OS, the software environment comprises the Microsoft* Visual Studio* version used.
+See below for how to change the default build directory.
+
+
+
+To perform different build and/or test operations, use the following steps.
+
+
+- Change to the top-level directory of the installed software.
+
- If using the Intel® C++ Compiler, make sure the appropriate compiler is available in your PATH
+ (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+
- Invoke GNU make by using one or more of the following commands.
+
+ - make
+
- Default build. Equivalent to make tbb tbbmalloc.
+
- make all
+
- Equivalent to make tbb tbbmalloc test examples. Available in the open-source version only.
+
- cd src;make release
+
- Build and test release libraries only.
+
- cd src;make debug
+
- Build and test debug libraries only.
+
- make tbb
+
- Make Intel TBB release and debug libraries.
+
- make tbbmalloc
+
- Make Intel TBB scalable memory allocator libraries.
+
- make test
+
- Compile and run unit-tests
+
- make examples
+
- Build libraries and run all examples, like doing make debug clean release from the general example Makefile.
+ Available in the open-source version only.
+
- make python
+
- Build, install, and test Python* API for Intel TBB. See details here.
+
- make compiler={icl, icc, gcc, clang} [(above options or targets)]
+
- Build and run as above, but use specified compilers instead of default, native compilers
+
+ - {icl, icc} - to use Intel® compilers (icl on Windows OS, icc on Linux OS or macOS).
+ - gcc - to use g++ (e.g. MinGW on Windows OS)
+ - clang - to use Clang compiler
+
+ - make compiler=clang stdlib=libc++ [(above options or targets)]
+
- Build and run as above, but use libc++ as a standard c++ library for clang.
+
- make stdver={c++11, c++14, ...} [(above options or targets)]
+
- Build and run as above, but additionally specify the version of the C++ standard or dialect to be used by
+ the compiler. The specified value of stdver will be used as a parameter to the appropriate
+ compiler option (such as -std); the behavior in case of unsupported value is compiler-specific.
+
- make target_app={win8ui, uwp} [target_mode=store] [(above options or targets)]
+
- Build and run as above, but use API that is compliant with Universal Windows* applications. Use win8ui option, if you want to use Intel TBB in Windows* 8 Universal application and uwp in case of Windows* 10 Universal Windows application.
+ target_mode=store is used to produce binaries that are compliant with Windows Store* application container. In later case they won't work with Intel TBB unit tests but work only with Windows Store* applications.
+
- ndk-build target=android [(above options or targets)]
+
- Build and run as above, but build libraries for Android* OS by Android NDK that should be installed. Makefiles were tested with revision 8.
+
- make arch={ia32, intel64, ia64} [(above options or targets)]
+
- Build and run as above, but build libraries for the selected ABI.
+ Might be useful for cross-compilation; ensure proper environment is set before running this command.
+
- make tbb_root={(Intel TBB directory)} [(above options or targets)]
+
- Build and run as above; for use when invoking make from a directory other than the top-level directory.
+
- make tbb_build_dir={(build directory)} [(above options or targets)]
+
- Build and run as above, but place the built libraries in the specified directory, rather than in the default sub-directory within the build/ directory. This command might have troubles with the build in case the sources installed to the directory with spaces in the path.
+
- make tbb_build_prefix={(build sub-directory)} [(above options or targets)]
+
- Build and run as above, but place the built libraries in the specified sub-directory within the build/ directory, rather than using the default sub-directory name.
+
- make tbb_cpf=1 [(above options or targets)]
+
- Build and run as above, but build and use libraries with the Community Preview Features enabled, rather than the default libraries.
+
- make [(above options)] clean
+
- Remove any executables or intermediate files produced by the above commands.
+ Includes build directories, object files, libraries and test executables.
+
+
+
+To Port
+
+This section provides information on how to port Intel TBB to a new platform, operating system or architecture.
+A subset or a superset of these steps may be required for porting to a given platform.
+
+
+To port the Intel TBB source code:
+
+- If porting to a new architecture, create a file that describes the architecture-specific details for that architecture.
+
+ - Create a <os>_<architecture>.h file in the include/tbb/machine directory
+ that describes these details.
+
+ - The <os>_<architecture>.h is named after the operating system and architecture as recognized by
+ include/tbb/tbb_machine.h and the Makefile infrastructure.
+
- This file defines the implementations of synchronization operations, and also the
+ scheduler yield function, for the operating system and architecture.
+
- Several examples of <os>_<architecture>.h files can be found in the
+ include/tbb/machine directory.
+
+ - A minimal implementation defines the 4-byte and 8-byte compare-and-swap operations,
+ and the scheduler yield function. See include/tbb/machine/mac_ppc.h
+ for an example of a minimal implementation.
+
- More complex implementation examples can also be found in the
+ include/tbb/machine directory
+ that implement all the individual variants of synchronization operations that Intel TBB uses.
+ Such implementations are more verbose but may achieve better performance on a given architecture.
+
- In a given implementation, any synchronization operation that is not defined is implemented, by default,
+ in terms of 4-byte or 8-byte compare-and-swap. More operations can thus be added incrementally to increase
+ the performance of an implementation.
+
- In most cases, synchronization operations are implemented as inline assembly code; examples also exist,
+ (e.g., for Intel® Itanium® processors) that use out-of-line assembly code in *.s or *.asm files
+ (see the assembly code sub-directories in the src/tbb directory).
+
+
+ - Modify include/tbb/tbb_machine.h, if needed, to invoke the appropriate
+ <os>_<architecture>.h file in the include/tbb/machine directory.
+
+ - Add an implementation of DetectNumberOfWorkers() in src/tbb/tbb_misc.h,
+ that returns the number of cores found on the system in case it is not supported by the current implementation.
+ This is used to determine the default number of threads for the Intel TBB task scheduler.
+
- Either properly define FillDynamicLinks for use in
+ src/tbb/cache_aligned_allocator.cpp,
+ or hardcode the allocator to be used.
+
- Additional types might be required in the union defined in
+ include/tbb/aligned_space.h
+ to ensure proper alignment on your platform.
+
- Changes may be required in include/tbb/tick_count.h
+ for systems that do not provide gettimeofday.
+
+
+To port the Makefile infrastructure:
+Modify the appropriate files in the Makefile infrastructure to add a new platform, operating system or architecture as needed.
+See the Makefile infrastructure files for examples.
+
+- The top-level Makefile includes common.inc to determine the operating system.
+
+ - To add a new operating system, add the appropriate test to common.inc, and create the needed <os>.inc and <os>.<compiler>.inc files (see below).
+
+ - The <os>.inc file makes OS-specific settings for a particular operating systems.
+
+ - For example, linux.inc makes settings specific to Linux operating systems.
+
- This file performs OS-dependent tests to determine the specific platform and/or architecture, and sets other platform-dependent values.
+
- Add a new <os>.inc file for each new operating system added.
+
+ - The <os>.<compiler>.inc file makes compiler-specific settings for a particular
+ <os> / <compiler> combination.
+
+ - For example, linux.gcc.inc makes specific settings for using GCC on Linux OS, and linux.icc.inc makes specific settings for using the Intel® C++ compiler on Linux OS.
+
- This file sets particular compiler, assembler and linker options required when using a particular <os> / <compiler> combination.
+
- Add a new <os>.<compiler>.inc file for each new <os> / <compiler> combination added.
+
+
+
+
+Up to parent directory
+
+Copyright © 2005-2017 Intel Corporation. All Rights Reserved.
+
+Intel, the Intel logo and Itanium are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
+
+* Other names and brands may be claimed as the property of others.
+
+