webruby 0.2.7 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1537) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webruby/environment.rb +24 -8
  3. data/lib/webruby/rake/files.rake +6 -22
  4. data/lib/webruby/rake/general.rake +1 -1
  5. data/lib/webruby/rake/mruby.rake +1 -0
  6. data/lib/webruby/utility.rb +14 -0
  7. data/modules/mruby/AUTHORS +14 -0
  8. data/modules/mruby/CONTRIBUTING.md +7 -4
  9. data/modules/mruby/INSTALL +28 -11
  10. data/modules/mruby/MITL +13 -13
  11. data/modules/mruby/Makefile +4 -5
  12. data/modules/mruby/README.md +54 -49
  13. data/modules/mruby/Rakefile +36 -6
  14. data/modules/mruby/benchmark/ao-render.rb +1 -2
  15. data/modules/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
  16. data/modules/mruby/benchmark/fib39.rb +0 -0
  17. data/modules/mruby/bintest/mrbc.rb +12 -0
  18. data/modules/mruby/build_config.rb +32 -2
  19. data/modules/mruby/doc/api/README.md +30 -0
  20. data/modules/mruby/doc/api/mruby.h.md +69 -0
  21. data/modules/mruby/doc/compile/README.md +208 -99
  22. data/modules/mruby/doc/debugger/README.md +370 -0
  23. data/modules/mruby/doc/language/Core.md +1590 -0
  24. data/modules/mruby/doc/language/README.md +9 -0
  25. data/modules/mruby/doc/language/generator.rb +15 -0
  26. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_analyze.rb +231 -0
  27. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_docu.rb +118 -0
  28. data/modules/mruby/doc/language/mrbdoc/mrbdoc.rb +38 -0
  29. data/modules/mruby/doc/mrbconf/README.md +160 -0
  30. data/modules/mruby/doc/mrbgems/README.md +136 -66
  31. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
  32. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +1 -1
  33. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
  34. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +1 -1
  35. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
  36. data/modules/mruby/examples/targets/{ArduinoDue.rb → build_config_ArduinoDue.rb} +32 -6
  37. data/modules/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
  38. data/modules/mruby/examples/targets/{chipKitMax32.rb → build_config_chipKITMax32.rb} +26 -7
  39. data/modules/mruby/include/mrbconf.h +25 -1
  40. data/modules/mruby/include/mruby/array.h +32 -22
  41. data/modules/mruby/include/mruby/boxing_nan.h +94 -0
  42. data/modules/mruby/include/mruby/boxing_no.h +49 -0
  43. data/modules/mruby/include/mruby/boxing_word.h +119 -0
  44. data/modules/mruby/include/mruby/class.h +15 -13
  45. data/modules/mruby/include/mruby/compile.h +43 -36
  46. data/modules/mruby/include/mruby/data.h +13 -5
  47. data/modules/mruby/include/mruby/debug.h +9 -9
  48. data/modules/mruby/include/mruby/dump.h +32 -23
  49. data/modules/mruby/include/mruby/error.h +36 -0
  50. data/modules/mruby/include/mruby/gc.h +11 -6
  51. data/modules/mruby/include/mruby/hash.h +12 -12
  52. data/modules/mruby/include/mruby/irep.h +9 -3
  53. data/modules/mruby/include/mruby/khash.h +58 -41
  54. data/modules/mruby/include/mruby/numeric.h +38 -4
  55. data/modules/mruby/include/mruby/object.h +55 -0
  56. data/modules/mruby/include/mruby/opcode.h +160 -0
  57. data/modules/mruby/include/mruby/proc.h +19 -5
  58. data/modules/mruby/include/mruby/range.h +4 -3
  59. data/modules/mruby/include/mruby/re.h +20 -0
  60. data/modules/mruby/include/mruby/string.h +86 -47
  61. data/modules/mruby/include/mruby/value.h +100 -374
  62. data/modules/mruby/include/mruby/variable.h +34 -32
  63. data/modules/mruby/include/mruby/version.h +40 -0
  64. data/modules/mruby/include/mruby.h +211 -139
  65. data/modules/mruby/minirake +16 -9
  66. data/modules/mruby/mrbgems/default.gembox +12 -0
  67. data/modules/mruby/mrbgems/full-core.gembox +3 -3
  68. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -0
  69. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +488 -8
  70. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +57 -31
  71. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +231 -45
  72. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
  73. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
  74. data/modules/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
  75. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +516 -0
  76. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  77. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +235 -0
  78. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  79. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
  80. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  81. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +428 -0
  82. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +501 -0
  83. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
  84. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +54 -0
  85. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +746 -0
  86. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +163 -0
  87. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
  88. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
  89. data/modules/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
  90. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +14 -1
  91. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +154 -72
  92. data/modules/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +46 -0
  93. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
  94. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +37 -28
  95. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
  96. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +16 -0
  97. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +30 -0
  98. data/modules/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
  99. data/modules/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
  100. data/modules/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
  101. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -0
  102. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +555 -21
  103. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +119 -0
  104. data/modules/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  105. data/modules/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +150 -0
  106. data/modules/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +47 -0
  107. data/modules/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
  108. data/modules/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +636 -0
  109. data/modules/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +537 -0
  110. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -0
  111. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +243 -4
  112. data/modules/mruby/mrbgems/mruby-eval/test/eval.rb +80 -0
  113. data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +1 -0
  114. data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +1 -1
  115. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -0
  116. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +157 -51
  117. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +179 -35
  118. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +3 -0
  119. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +241 -1
  120. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +11 -19
  121. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +138 -1
  122. data/modules/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  123. data/modules/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +183 -0
  124. data/modules/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +53 -0
  125. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -0
  126. data/modules/mruby/mrbgems/mruby-math/src/math.c +107 -14
  127. data/modules/mruby/mrbgems/mruby-math/test/math.rb +16 -0
  128. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -0
  129. data/modules/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +5 -0
  130. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +9 -1
  131. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -0
  132. data/modules/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
  133. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +5 -8
  134. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +16 -0
  135. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -0
  136. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +121 -53
  137. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +27 -4
  138. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -0
  139. data/modules/mruby/mrbgems/mruby-print/src/print.c +3 -5
  140. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -0
  141. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +89 -19
  142. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.c +56 -0
  143. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +47 -0
  144. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -0
  145. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +30 -25
  146. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +6 -3
  147. data/modules/mruby/mrbgems/mruby-random/src/random.c +157 -137
  148. data/modules/mruby/mrbgems/mruby-random/src/random.h +3 -3
  149. data/modules/mruby/mrbgems/mruby-random/test/random.rb +9 -9
  150. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -0
  151. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +57 -3
  152. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +9 -0
  153. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -0
  154. data/modules/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
  155. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +29 -23
  156. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +7 -2
  157. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -0
  158. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +250 -11
  159. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +220 -5
  160. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +326 -4
  161. data/modules/mruby/mrbgems/mruby-string-utf8/mrbgem.rake +2 -0
  162. data/modules/mruby/mrbgems/mruby-string-utf8/src/string.c +486 -52
  163. data/modules/mruby/mrbgems/mruby-string-utf8/test/string.rb +97 -14
  164. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -0
  165. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +31 -0
  166. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +178 -196
  167. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +115 -61
  168. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -0
  169. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +22 -17
  170. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +20 -11
  171. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +14 -0
  172. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -0
  173. data/modules/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
  174. data/modules/mruby/mrbgems/mruby-time/src/time.c +98 -37
  175. data/modules/mruby/mrbgems/mruby-time/test/time.rb +152 -148
  176. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -0
  177. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +1 -1
  178. data/modules/mruby/mrblib/array.rb +110 -4
  179. data/modules/mruby/mrblib/class.rb +1 -22
  180. data/modules/mruby/mrblib/compar.rb +10 -30
  181. data/modules/mruby/mrblib/enum.rb +64 -52
  182. data/modules/mruby/mrblib/error.rb +9 -4
  183. data/modules/mruby/mrblib/hash.rb +164 -23
  184. data/modules/mruby/mrblib/kernel.rb +26 -22
  185. data/modules/mruby/mrblib/mrblib.rake +4 -4
  186. data/modules/mruby/mrblib/numeric.rb +22 -9
  187. data/modules/mruby/mrblib/range.rb +24 -2
  188. data/modules/mruby/mrblib/string.rb +15 -3
  189. data/modules/mruby/src/array.c +279 -339
  190. data/modules/mruby/src/backtrace.c +68 -16
  191. data/modules/mruby/src/class.c +539 -379
  192. data/modules/mruby/src/codegen.c +424 -207
  193. data/modules/mruby/src/compar.c +1 -1
  194. data/modules/mruby/src/crc.c +7 -6
  195. data/modules/mruby/src/debug.c +37 -36
  196. data/modules/mruby/src/dump.c +463 -213
  197. data/modules/mruby/src/enum.c +1 -1
  198. data/modules/mruby/src/error.c +91 -92
  199. data/modules/mruby/src/error.h +3 -19
  200. data/modules/mruby/src/etc.c +85 -82
  201. data/modules/mruby/src/gc.c +134 -108
  202. data/modules/mruby/src/hash.c +161 -565
  203. data/modules/mruby/src/init.c +2 -13
  204. data/modules/mruby/src/kernel.c +217 -251
  205. data/modules/mruby/src/load.c +280 -283
  206. data/modules/mruby/src/mrb_throw.h +41 -0
  207. data/modules/mruby/src/mruby_core.rake +57 -7
  208. data/modules/mruby/src/node.h +104 -104
  209. data/modules/mruby/src/numeric.c +221 -208
  210. data/modules/mruby/src/object.c +41 -42
  211. data/modules/mruby/src/opcode.h +2 -160
  212. data/modules/mruby/src/parse.y +3430 -3223
  213. data/modules/mruby/src/pool.c +13 -9
  214. data/modules/mruby/src/print.c +20 -17
  215. data/modules/mruby/src/proc.c +77 -21
  216. data/modules/mruby/src/range.c +55 -45
  217. data/modules/mruby/src/state.c +95 -31
  218. data/modules/mruby/src/string.c +462 -468
  219. data/modules/mruby/src/symbol.c +95 -85
  220. data/modules/mruby/src/variable.c +104 -74
  221. data/modules/mruby/src/version.c +13 -0
  222. data/modules/mruby/src/vm.c +528 -296
  223. data/modules/mruby/tasks/libmruby.rake +9 -5
  224. data/modules/mruby/tasks/mrbgem_spec.rake +130 -26
  225. data/modules/mruby/tasks/mrbgems.rake +21 -11
  226. data/modules/mruby/tasks/mrbgems_test.rake +46 -40
  227. data/modules/mruby/tasks/mruby_build.rake +54 -12
  228. data/modules/mruby/tasks/mruby_build_commands.rake +34 -5
  229. data/modules/mruby/tasks/mruby_build_gem.rake +25 -3
  230. data/modules/mruby/tasks/ruby_ext.rake +11 -2
  231. data/modules/mruby/tasks/toolchains/clang.rake +2 -1
  232. data/modules/mruby/tasks/toolchains/gcc.rake +26 -3
  233. data/modules/mruby/tasks/toolchains/visualcpp.rake +17 -8
  234. data/modules/mruby/test/assert.rb +30 -8
  235. data/modules/mruby/test/bintest.rb +10 -0
  236. data/modules/mruby/test/driver.c +74 -24
  237. data/modules/mruby/test/init_mrbtest.c +21 -2
  238. data/modules/mruby/test/mrbtest.rake +27 -5
  239. data/modules/mruby/test/t/argumenterror.rb +0 -5
  240. data/modules/mruby/test/t/array.rb +23 -7
  241. data/modules/mruby/test/t/bs_block.rb +32 -0
  242. data/modules/mruby/test/t/class.rb +29 -5
  243. data/modules/mruby/test/t/comparable.rb +20 -12
  244. data/modules/mruby/test/t/enumerable.rb +33 -7
  245. data/modules/mruby/test/t/exception.rb +63 -38
  246. data/modules/mruby/test/t/false.rb +2 -4
  247. data/modules/mruby/test/t/float.rb +39 -4
  248. data/modules/mruby/test/t/hash.rb +40 -6
  249. data/modules/mruby/test/t/indexerror.rb +0 -4
  250. data/modules/mruby/test/t/integer.rb +41 -5
  251. data/modules/mruby/test/t/kernel.rb +90 -3
  252. data/modules/mruby/test/t/localjumperror.rb +4 -4
  253. data/modules/mruby/test/t/methods.rb +1 -1
  254. data/modules/mruby/test/t/module.rb +43 -13
  255. data/modules/mruby/test/t/nameerror.rb +0 -4
  256. data/modules/mruby/test/t/nil.rb +5 -0
  257. data/modules/mruby/test/t/nomethoderror.rb +11 -2
  258. data/modules/mruby/test/t/numeric.rb +18 -4
  259. data/modules/mruby/test/t/proc.rb +59 -6
  260. data/modules/mruby/test/t/range.rb +15 -5
  261. data/modules/mruby/test/t/rangeerror.rb +0 -4
  262. data/modules/mruby/test/t/standarderror.rb +0 -4
  263. data/modules/mruby/test/t/string.rb +56 -12
  264. data/modules/mruby/test/t/superclass.rb +46 -0
  265. data/modules/mruby/test/t/symbol.rb +0 -4
  266. data/modules/mruby/test/t/syntax.rb +134 -1
  267. data/modules/mruby/test/t/true.rb +2 -4
  268. data/modules/mruby/test/t/typeerror.rb +0 -5
  269. data/modules/mruby/test/t/unicode.rb +35 -0
  270. data/modules/mruby/tools/mrbc/mrbc.c +9 -12
  271. data/modules/mruby/travis_config.rb +22 -2
  272. metadata +98 -1299
  273. data/modules/emscripten/AUTHORS +0 -117
  274. data/modules/emscripten/CONTRIBUTING.markdown +0 -5
  275. data/modules/emscripten/ChangeLog +0 -468
  276. data/modules/emscripten/LICENSE +0 -94
  277. data/modules/emscripten/README.markdown +0 -14
  278. data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +0 -26
  279. data/modules/emscripten/cmake/Platform/Emscripten.cmake +0 -228
  280. data/modules/emscripten/em++ +0 -12
  281. data/modules/emscripten/em++.bat +0 -2
  282. data/modules/emscripten/em-config +0 -24
  283. data/modules/emscripten/em-config.bat +0 -2
  284. data/modules/emscripten/emar +0 -24
  285. data/modules/emscripten/emar.bat +0 -2
  286. data/modules/emscripten/emcc +0 -2069
  287. data/modules/emscripten/emcc.bat +0 -2
  288. data/modules/emscripten/emcc.py +0 -5
  289. data/modules/emscripten/emconfigure +0 -27
  290. data/modules/emscripten/emconfigure.bat +0 -2
  291. data/modules/emscripten/emlink.py +0 -33
  292. data/modules/emscripten/emmake +0 -29
  293. data/modules/emscripten/emmake.bat +0 -2
  294. data/modules/emscripten/emranlib +0 -9
  295. data/modules/emscripten/emranlib.bat +0 -2
  296. data/modules/emscripten/emrun +0 -1087
  297. data/modules/emscripten/emrun.bat +0 -2
  298. data/modules/emscripten/emscons +0 -20
  299. data/modules/emscripten/emscripten.py +0 -1347
  300. data/modules/emscripten/package.json +0 -7
  301. data/modules/emscripten/patches/README +0 -4
  302. data/modules/emscripten/patches/series +0 -2
  303. data/modules/emscripten/scons-tools/closure.py +0 -28
  304. data/modules/emscripten/scons-tools/emscripten.py +0 -364
  305. data/modules/emscripten/scons-tools/llvm.py +0 -34
  306. data/modules/emscripten/src/analyzer.js +0 -1781
  307. data/modules/emscripten/src/closure-externs.js +0 -110
  308. data/modules/emscripten/src/compiler.html +0 -48
  309. data/modules/emscripten/src/compiler.js +0 -331
  310. data/modules/emscripten/src/compiler_phase.html +0 -33
  311. data/modules/emscripten/src/corruptionCheck.js +0 -98
  312. data/modules/emscripten/src/determinstic.js +0 -20
  313. data/modules/emscripten/src/embind/embind.js +0 -1677
  314. data/modules/emscripten/src/embind/emval.js +0 -284
  315. data/modules/emscripten/src/emrun_postjs.js +0 -20
  316. data/modules/emscripten/src/emrun_prejs.js +0 -5
  317. data/modules/emscripten/src/emscripten-source-map.min.js +0 -31
  318. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +0 -97
  319. data/modules/emscripten/src/experimental/batching.diff +0 -44
  320. data/modules/emscripten/src/experimental/functypeopt.diff +0 -113
  321. data/modules/emscripten/src/experimental/multiple_heaps.diff +0 -175
  322. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +0 -197
  323. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +0 -124
  324. data/modules/emscripten/src/experimental/remove__label__s.diff +0 -140
  325. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +0 -99
  326. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +0 -57
  327. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +0 -336
  328. data/modules/emscripten/src/experimental/stringCache.diff +0 -147
  329. data/modules/emscripten/src/fastLong.js +0 -299
  330. data/modules/emscripten/src/gl-matrix.js +0 -1952
  331. data/modules/emscripten/src/headless.js +0 -295
  332. data/modules/emscripten/src/headlessCanvas.js +0 -618
  333. data/modules/emscripten/src/hello_world.js +0 -92
  334. data/modules/emscripten/src/intertyper.js +0 -1228
  335. data/modules/emscripten/src/jsifier.js +0 -1969
  336. data/modules/emscripten/src/library.js +0 -9196
  337. data/modules/emscripten/src/library_browser.js +0 -988
  338. data/modules/emscripten/src/library_egl.js +0 -564
  339. data/modules/emscripten/src/library_fs.js +0 -1619
  340. data/modules/emscripten/src/library_gc.js +0 -236
  341. data/modules/emscripten/src/library_gl.js +0 -5194
  342. data/modules/emscripten/src/library_glfw.js +0 -585
  343. data/modules/emscripten/src/library_glut.js +0 -504
  344. data/modules/emscripten/src/library_idbfs.js +0 -216
  345. data/modules/emscripten/src/library_jansson.js +0 -320
  346. data/modules/emscripten/src/library_memfs.js +0 -303
  347. data/modules/emscripten/src/library_nodefs.js +0 -286
  348. data/modules/emscripten/src/library_openal.js +0 -915
  349. data/modules/emscripten/src/library_path.js +0 -133
  350. data/modules/emscripten/src/library_sdl.js +0 -2728
  351. data/modules/emscripten/src/library_sockfs.js +0 -578
  352. data/modules/emscripten/src/library_strtok_r.c +0 -97
  353. data/modules/emscripten/src/library_tty.js +0 -146
  354. data/modules/emscripten/src/library_uuid.js +0 -140
  355. data/modules/emscripten/src/library_xlib.js +0 -23
  356. data/modules/emscripten/src/long.js +0 -1609
  357. data/modules/emscripten/src/modules.js +0 -543
  358. data/modules/emscripten/src/parseTools.js +0 -2723
  359. data/modules/emscripten/src/postamble.js +0 -239
  360. data/modules/emscripten/src/postamble_sharedlib.js +0 -16
  361. data/modules/emscripten/src/preamble.js +0 -1233
  362. data/modules/emscripten/src/preamble_sharedlib.js +0 -25
  363. data/modules/emscripten/src/proxyClient.js +0 -82
  364. data/modules/emscripten/src/proxyWorker.js +0 -143
  365. data/modules/emscripten/src/relooper/README.markdown +0 -14
  366. data/modules/emscripten/src/relooper/Relooper.cpp +0 -1301
  367. data/modules/emscripten/src/relooper/Relooper.h +0 -257
  368. data/modules/emscripten/src/relooper/doit.sh +0 -70
  369. data/modules/emscripten/src/relooper/emscripten/glue.js +0 -67
  370. data/modules/emscripten/src/relooper/emscripten/test.js +0 -44
  371. data/modules/emscripten/src/relooper/fuzzer.py +0 -131
  372. data/modules/emscripten/src/relooper/ministring.h +0 -35
  373. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  374. data/modules/emscripten/src/relooper/test.cpp +0 -290
  375. data/modules/emscripten/src/relooper/test.txt +0 -317
  376. data/modules/emscripten/src/relooper/test2.c +0 -44
  377. data/modules/emscripten/src/relooper/test2.txt +0 -26
  378. data/modules/emscripten/src/relooper/test3.c +0 -42
  379. data/modules/emscripten/src/relooper/test3.txt +0 -56
  380. data/modules/emscripten/src/relooper/test4.cpp +0 -40
  381. data/modules/emscripten/src/relooper/test4.txt +0 -44
  382. data/modules/emscripten/src/relooper/test5.cpp +0 -40
  383. data/modules/emscripten/src/relooper/test5.txt +0 -56
  384. data/modules/emscripten/src/relooper/test6.cpp +0 -31
  385. data/modules/emscripten/src/relooper/test6.txt +0 -26
  386. data/modules/emscripten/src/relooper/test_dead.cpp +0 -28
  387. data/modules/emscripten/src/relooper/test_dead.txt +0 -9
  388. data/modules/emscripten/src/relooper/test_debug.cpp +0 -30
  389. data/modules/emscripten/src/relooper/test_debug.txt +0 -142
  390. data/modules/emscripten/src/relooper/test_fuzz1.cpp +0 -52
  391. data/modules/emscripten/src/relooper/test_fuzz1.txt +0 -72
  392. data/modules/emscripten/src/relooper/test_fuzz2.cpp +0 -34
  393. data/modules/emscripten/src/relooper/test_fuzz2.txt +0 -30
  394. data/modules/emscripten/src/relooper/test_fuzz3.cpp +0 -36
  395. data/modules/emscripten/src/relooper/test_fuzz3.txt +0 -25
  396. data/modules/emscripten/src/relooper/test_fuzz4.cpp +0 -38
  397. data/modules/emscripten/src/relooper/test_fuzz4.txt +0 -41
  398. data/modules/emscripten/src/relooper/test_fuzz5.cpp +0 -57
  399. data/modules/emscripten/src/relooper/test_fuzz5.txt +0 -86
  400. data/modules/emscripten/src/relooper/test_fuzz6.cpp +0 -322
  401. data/modules/emscripten/src/relooper/test_fuzz6.txt +0 -291
  402. data/modules/emscripten/src/relooper/test_inf.cpp +0 -813
  403. data/modules/emscripten/src/relooper/test_inf.txt +0 -1131
  404. data/modules/emscripten/src/relooper/testit.sh +0 -62
  405. data/modules/emscripten/src/relooper/updateit.sh +0 -17
  406. data/modules/emscripten/src/runtime.js +0 -604
  407. data/modules/emscripten/src/settings.js +0 -476
  408. data/modules/emscripten/src/shell.html +0 -95
  409. data/modules/emscripten/src/shell.js +0 -173
  410. data/modules/emscripten/src/shell_sharedlib.js +0 -29
  411. data/modules/emscripten/src/simd.js +0 -1128
  412. data/modules/emscripten/src/socket.io.js +0 -3870
  413. data/modules/emscripten/src/struct_info.json +0 -1077
  414. data/modules/emscripten/src/utility.js +0 -411
  415. data/modules/emscripten/src/wrtcp.js +0 -821
  416. data/modules/emscripten/system/bin/sdl-config +0 -13
  417. data/modules/emscripten/system/include/AL/al.h +0 -172
  418. data/modules/emscripten/system/include/AL/alc.h +0 -84
  419. data/modules/emscripten/system/include/EGL/egl.h +0 -329
  420. data/modules/emscripten/system/include/EGL/eglext.h +0 -398
  421. data/modules/emscripten/system/include/EGL/eglplatform.h +0 -141
  422. data/modules/emscripten/system/include/GL/freeglut_std.h +0 -628
  423. data/modules/emscripten/system/include/GL/gl.h +0 -2241
  424. data/modules/emscripten/system/include/GL/glew.h +0 -6
  425. data/modules/emscripten/system/include/GL/glext.h +0 -11127
  426. data/modules/emscripten/system/include/GL/glfw.h +0 -518
  427. data/modules/emscripten/system/include/GL/glu.h +0 -353
  428. data/modules/emscripten/system/include/GL/glut.h +0 -21
  429. data/modules/emscripten/system/include/GLES/gl.h +0 -770
  430. data/modules/emscripten/system/include/GLES/glext.h +0 -1278
  431. data/modules/emscripten/system/include/GLES/glplatform.h +0 -30
  432. data/modules/emscripten/system/include/GLES2/gl2.h +0 -621
  433. data/modules/emscripten/system/include/GLES2/gl2ext.h +0 -803
  434. data/modules/emscripten/system/include/GLES2/gl2platform.h +0 -30
  435. data/modules/emscripten/system/include/KHR/khrplatform.h +0 -277
  436. data/modules/emscripten/system/include/SDL/COPYING +0 -19
  437. data/modules/emscripten/system/include/SDL/SDL.h +0 -162
  438. data/modules/emscripten/system/include/SDL/SDL_assert.h +0 -241
  439. data/modules/emscripten/system/include/SDL/SDL_atomic.h +0 -318
  440. data/modules/emscripten/system/include/SDL/SDL_audio.h +0 -509
  441. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +0 -60
  442. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +0 -75
  443. data/modules/emscripten/system/include/SDL/SDL_compat.h +0 -365
  444. data/modules/emscripten/system/include/SDL/SDL_config.h +0 -48
  445. data/modules/emscripten/system/include/SDL/SDL_config.h.in +0 -297
  446. data/modules/emscripten/system/include/SDL/SDL_config_android.h +0 -133
  447. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +0 -148
  448. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +0 -172
  449. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +0 -74
  450. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +0 -129
  451. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +0 -125
  452. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +0 -207
  453. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +0 -119
  454. data/modules/emscripten/system/include/SDL/SDL_copying.h +0 -20
  455. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +0 -150
  456. data/modules/emscripten/system/include/SDL/SDL_endian.h +0 -248
  457. data/modules/emscripten/system/include/SDL/SDL_error.h +0 -77
  458. data/modules/emscripten/system/include/SDL/SDL_events.h +0 -640
  459. data/modules/emscripten/system/include/SDL/SDL_gesture.h +0 -91
  460. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +0 -246
  461. data/modules/emscripten/system/include/SDL/SDL_haptic.h +0 -1200
  462. data/modules/emscripten/system/include/SDL/SDL_hints.h +0 -206
  463. data/modules/emscripten/system/include/SDL/SDL_image.h +0 -138
  464. data/modules/emscripten/system/include/SDL/SDL_input.h +0 -87
  465. data/modules/emscripten/system/include/SDL/SDL_joystick.h +0 -208
  466. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +0 -169
  467. data/modules/emscripten/system/include/SDL/SDL_keycode.h +0 -344
  468. data/modules/emscripten/system/include/SDL/SDL_loadso.h +0 -85
  469. data/modules/emscripten/system/include/SDL/SDL_log.h +0 -211
  470. data/modules/emscripten/system/include/SDL/SDL_main.h +0 -98
  471. data/modules/emscripten/system/include/SDL/SDL_mixer.h +0 -634
  472. data/modules/emscripten/system/include/SDL/SDL_mouse.h +0 -213
  473. data/modules/emscripten/system/include/SDL/SDL_mutex.h +0 -248
  474. data/modules/emscripten/system/include/SDL/SDL_name.h +0 -11
  475. data/modules/emscripten/system/include/SDL/SDL_opengl.h +0 -11116
  476. data/modules/emscripten/system/include/SDL/SDL_opengles.h +0 -38
  477. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +0 -38
  478. data/modules/emscripten/system/include/SDL/SDL_pixels.h +0 -423
  479. data/modules/emscripten/system/include/SDL/SDL_platform.h +0 -160
  480. data/modules/emscripten/system/include/SDL/SDL_power.h +0 -79
  481. data/modules/emscripten/system/include/SDL/SDL_quit.h +0 -58
  482. data/modules/emscripten/system/include/SDL/SDL_rect.h +0 -136
  483. data/modules/emscripten/system/include/SDL/SDL_render.h +0 -615
  484. data/modules/emscripten/system/include/SDL/SDL_revision.h +0 -2
  485. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +0 -2
  486. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +0 -123
  487. data/modules/emscripten/system/include/SDL/SDL_rwops.h +0 -220
  488. data/modules/emscripten/system/include/SDL/SDL_scancode.h +0 -398
  489. data/modules/emscripten/system/include/SDL/SDL_shape.h +0 -147
  490. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +0 -764
  491. data/modules/emscripten/system/include/SDL/SDL_surface.h +0 -499
  492. data/modules/emscripten/system/include/SDL/SDL_syswm.h +0 -241
  493. data/modules/emscripten/system/include/SDL/SDL_thread.h +0 -182
  494. data/modules/emscripten/system/include/SDL/SDL_timer.h +0 -108
  495. data/modules/emscripten/system/include/SDL/SDL_touch.h +0 -124
  496. data/modules/emscripten/system/include/SDL/SDL_ttf.h +0 -249
  497. data/modules/emscripten/system/include/SDL/SDL_types.h +0 -29
  498. data/modules/emscripten/system/include/SDL/SDL_version.h +0 -166
  499. data/modules/emscripten/system/include/SDL/SDL_video.h +0 -820
  500. data/modules/emscripten/system/include/SDL/begin_code.h +0 -135
  501. data/modules/emscripten/system/include/SDL/close_code.h +0 -37
  502. data/modules/emscripten/system/include/X11/X.h +0 -717
  503. data/modules/emscripten/system/include/X11/Xatom.h +0 -79
  504. data/modules/emscripten/system/include/X11/Xfuncproto.h +0 -127
  505. data/modules/emscripten/system/include/X11/Xlib.h +0 -4023
  506. data/modules/emscripten/system/include/X11/Xosdefs.h +0 -116
  507. data/modules/emscripten/system/include/X11/Xutil.h +0 -826
  508. data/modules/emscripten/system/include/X11/keysym.h +0 -73
  509. data/modules/emscripten/system/include/X11/keysymdef.h +0 -2389
  510. data/modules/emscripten/system/include/compat/ctype.h +0 -34
  511. data/modules/emscripten/system/include/compat/malloc.h +0 -48
  512. data/modules/emscripten/system/include/compat/math.h +0 -14
  513. data/modules/emscripten/system/include/compat/netdb.h +0 -22
  514. data/modules/emscripten/system/include/compat/stdarg.h +0 -16
  515. data/modules/emscripten/system/include/compat/stdlib.h +0 -16
  516. data/modules/emscripten/system/include/compat/string.h +0 -17
  517. data/modules/emscripten/system/include/compat/sys/socketvar.h +0 -14
  518. data/modules/emscripten/system/include/compat/sys/stat.h +0 -20
  519. data/modules/emscripten/system/include/compat/sys/timeb.h +0 -35
  520. data/modules/emscripten/system/include/compat/time.h +0 -18
  521. data/modules/emscripten/system/include/compat/unistd.h +0 -16
  522. data/modules/emscripten/system/include/compat/wchar.h +0 -23
  523. data/modules/emscripten/system/include/compat/wctype.h +0 -23
  524. data/modules/emscripten/system/include/compat/xlocale.h +0 -19
  525. data/modules/emscripten/system/include/emscripten/bind.h +0 -1210
  526. data/modules/emscripten/system/include/emscripten/emmintrin.h +0 -87
  527. data/modules/emscripten/system/include/emscripten/emscripten.h +0 -519
  528. data/modules/emscripten/system/include/emscripten/val.h +0 -311
  529. data/modules/emscripten/system/include/emscripten/vector.h +0 -34
  530. data/modules/emscripten/system/include/emscripten/wire.h +0 -393
  531. data/modules/emscripten/system/include/emscripten/xmmintrin.h +0 -131
  532. data/modules/emscripten/system/include/execinfo.h +0 -44
  533. data/modules/emscripten/system/include/gc.h +0 -70
  534. data/modules/emscripten/system/include/gfx/png.h +0 -3798
  535. data/modules/emscripten/system/include/gfx/pngconf.h +0 -1665
  536. data/modules/emscripten/system/include/gfx/tiff.h +0 -654
  537. data/modules/emscripten/system/include/gfx/tiffconf.h +0 -104
  538. data/modules/emscripten/system/include/gfx/tiffio.h +0 -526
  539. data/modules/emscripten/system/include/gfx/tiffvers.h +0 -9
  540. data/modules/emscripten/system/include/jansson.h +0 -323
  541. data/modules/emscripten/system/include/jansson_config.h +0 -54
  542. data/modules/emscripten/system/include/libc/aio.h +0 -69
  543. data/modules/emscripten/system/include/libc/alloca.h +0 -21
  544. data/modules/emscripten/system/include/libc/ar.h +0 -25
  545. data/modules/emscripten/system/include/libc/arpa/ftp.h +0 -35
  546. data/modules/emscripten/system/include/libc/arpa/inet.h +0 -36
  547. data/modules/emscripten/system/include/libc/arpa/nameser.h +0 -467
  548. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +0 -2
  549. data/modules/emscripten/system/include/libc/arpa/telnet.h +0 -251
  550. data/modules/emscripten/system/include/libc/arpa/tftp.h +0 -31
  551. data/modules/emscripten/system/include/libc/assert.h +0 -19
  552. data/modules/emscripten/system/include/libc/bits/alltypes.h +0 -397
  553. data/modules/emscripten/system/include/libc/bits/endian.h +0 -1
  554. data/modules/emscripten/system/include/libc/bits/errno.h +0 -134
  555. data/modules/emscripten/system/include/libc/bits/fcntl.h +0 -38
  556. data/modules/emscripten/system/include/libc/bits/fenv.h +0 -34
  557. data/modules/emscripten/system/include/libc/bits/float.h +0 -17
  558. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  559. data/modules/emscripten/system/include/libc/bits/ioctl.h +0 -197
  560. data/modules/emscripten/system/include/libc/bits/ipc.h +0 -14
  561. data/modules/emscripten/system/include/libc/bits/limits.h +0 -8
  562. data/modules/emscripten/system/include/libc/bits/mman.h +0 -62
  563. data/modules/emscripten/system/include/libc/bits/msg.h +0 -16
  564. data/modules/emscripten/system/include/libc/bits/posix.h +0 -2
  565. data/modules/emscripten/system/include/libc/bits/reg.h +0 -19
  566. data/modules/emscripten/system/include/libc/bits/setjmp.h +0 -1
  567. data/modules/emscripten/system/include/libc/bits/shm.h +0 -18
  568. data/modules/emscripten/system/include/libc/bits/signal.h +0 -112
  569. data/modules/emscripten/system/include/libc/bits/socket.h +0 -17
  570. data/modules/emscripten/system/include/libc/bits/stat.h +0 -22
  571. data/modules/emscripten/system/include/libc/bits/statfs.h +0 -7
  572. data/modules/emscripten/system/include/libc/bits/stdarg.h +0 -4
  573. data/modules/emscripten/system/include/libc/bits/stdint.h +0 -20
  574. data/modules/emscripten/system/include/libc/bits/syscall.h +0 -696
  575. data/modules/emscripten/system/include/libc/bits/termios.h +0 -160
  576. data/modules/emscripten/system/include/libc/bits/user.h +0 -48
  577. data/modules/emscripten/system/include/libc/byteswap.h +0 -26
  578. data/modules/emscripten/system/include/libc/complex.h +0 -125
  579. data/modules/emscripten/system/include/libc/cpio.h +0 -29
  580. data/modules/emscripten/system/include/libc/crypt.h +0 -20
  581. data/modules/emscripten/system/include/libc/ctype.h +0 -67
  582. data/modules/emscripten/system/include/libc/dirent.h +0 -79
  583. data/modules/emscripten/system/include/libc/dlfcn.h +0 -42
  584. data/modules/emscripten/system/include/libc/elf.h +0 -2555
  585. data/modules/emscripten/system/include/libc/endian.h +0 -82
  586. data/modules/emscripten/system/include/libc/err.h +0 -25
  587. data/modules/emscripten/system/include/libc/errno.h +0 -27
  588. data/modules/emscripten/system/include/libc/fcntl.h +0 -175
  589. data/modules/emscripten/system/include/libc/features.h +0 -32
  590. data/modules/emscripten/system/include/libc/fenv.h +0 -28
  591. data/modules/emscripten/system/include/libc/float.h +0 -34
  592. data/modules/emscripten/system/include/libc/fnmatch.h +0 -29
  593. data/modules/emscripten/system/include/libc/ftw.h +0 -42
  594. data/modules/emscripten/system/include/libc/getopt.h +0 -31
  595. data/modules/emscripten/system/include/libc/glob.h +0 -48
  596. data/modules/emscripten/system/include/libc/grp.h +0 -52
  597. data/modules/emscripten/system/include/libc/iconv.h +0 -24
  598. data/modules/emscripten/system/include/libc/ifaddrs.h +0 -35
  599. data/modules/emscripten/system/include/libc/inttypes.h +0 -227
  600. data/modules/emscripten/system/include/libc/iso646.h +0 -20
  601. data/modules/emscripten/system/include/libc/langinfo.h +0 -88
  602. data/modules/emscripten/system/include/libc/lastlog.h +0 -1
  603. data/modules/emscripten/system/include/libc/libgen.h +0 -15
  604. data/modules/emscripten/system/include/libc/libintl.h +0 -25
  605. data/modules/emscripten/system/include/libc/limits.h +0 -146
  606. data/modules/emscripten/system/include/libc/link.h +0 -54
  607. data/modules/emscripten/system/include/libc/locale.h +0 -82
  608. data/modules/emscripten/system/include/libc/malloc.h +0 -0
  609. data/modules/emscripten/system/include/libc/math.h +0 -422
  610. data/modules/emscripten/system/include/libc/memory.h +0 -1
  611. data/modules/emscripten/system/include/libc/mntent.h +0 -44
  612. data/modules/emscripten/system/include/libc/monetary.h +0 -23
  613. data/modules/emscripten/system/include/libc/mqueue.h +0 -36
  614. data/modules/emscripten/system/include/libc/net/ethernet.h +0 -55
  615. data/modules/emscripten/system/include/libc/net/if.h +0 -135
  616. data/modules/emscripten/system/include/libc/net/if_arp.h +0 -133
  617. data/modules/emscripten/system/include/libc/net/route.h +0 -124
  618. data/modules/emscripten/system/include/libc/netdb.h +0 -161
  619. data/modules/emscripten/system/include/libc/netinet/ether.h +0 -14
  620. data/modules/emscripten/system/include/libc/netinet/icmp6.h +0 -305
  621. data/modules/emscripten/system/include/libc/netinet/if_ether.h +0 -126
  622. data/modules/emscripten/system/include/libc/netinet/in.h +0 -336
  623. data/modules/emscripten/system/include/libc/netinet/in_systm.h +0 -9
  624. data/modules/emscripten/system/include/libc/netinet/ip.h +0 -186
  625. data/modules/emscripten/system/include/libc/netinet/ip6.h +0 -142
  626. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +0 -192
  627. data/modules/emscripten/system/include/libc/netinet/tcp.h +0 -71
  628. data/modules/emscripten/system/include/libc/netinet/udp.h +0 -35
  629. data/modules/emscripten/system/include/libc/netpacket/packet.h +0 -44
  630. data/modules/emscripten/system/include/libc/nl_types.h +0 -22
  631. data/modules/emscripten/system/include/libc/paths.h +0 -32
  632. data/modules/emscripten/system/include/libc/poll.h +0 -46
  633. data/modules/emscripten/system/include/libc/pthread.h +0 -222
  634. data/modules/emscripten/system/include/libc/pty.h +0 -18
  635. data/modules/emscripten/system/include/libc/pwd.h +0 -49
  636. data/modules/emscripten/system/include/libc/readme.txt +0 -3
  637. data/modules/emscripten/system/include/libc/regex.h +0 -62
  638. data/modules/emscripten/system/include/libc/resolv.h +0 -144
  639. data/modules/emscripten/system/include/libc/sched.h +0 -132
  640. data/modules/emscripten/system/include/libc/search.h +0 -51
  641. data/modules/emscripten/system/include/libc/semaphore.h +0 -35
  642. data/modules/emscripten/system/include/libc/setjmp.h +0 -42
  643. data/modules/emscripten/system/include/libc/shadow.h +0 -44
  644. data/modules/emscripten/system/include/libc/signal.h +0 -255
  645. data/modules/emscripten/system/include/libc/spawn.h +0 -74
  646. data/modules/emscripten/system/include/libc/stdalign.h +0 -15
  647. data/modules/emscripten/system/include/libc/stdarg.h +0 -25
  648. data/modules/emscripten/system/include/libc/stdbool.h +0 -14
  649. data/modules/emscripten/system/include/libc/stddef.h +0 -18
  650. data/modules/emscripten/system/include/libc/stdint.h +0 -117
  651. data/modules/emscripten/system/include/libc/stdio.h +0 -199
  652. data/modules/emscripten/system/include/libc/stdio_ext.h +0 -34
  653. data/modules/emscripten/system/include/libc/stdlib.h +0 -171
  654. data/modules/emscripten/system/include/libc/stdnoreturn.h +0 -5
  655. data/modules/emscripten/system/include/libc/string.h +0 -102
  656. data/modules/emscripten/system/include/libc/strings.h +0 -35
  657. data/modules/emscripten/system/include/libc/stropts.h +0 -139
  658. data/modules/emscripten/system/include/libc/sys/acct.h +0 -75
  659. data/modules/emscripten/system/include/libc/sys/cachectl.h +0 -22
  660. data/modules/emscripten/system/include/libc/sys/dir.h +0 -2
  661. data/modules/emscripten/system/include/libc/sys/epoll.h +0 -67
  662. data/modules/emscripten/system/include/libc/sys/errno.h +0 -2
  663. data/modules/emscripten/system/include/libc/sys/eventfd.h +0 -26
  664. data/modules/emscripten/system/include/libc/sys/fcntl.h +0 -2
  665. data/modules/emscripten/system/include/libc/sys/file.h +0 -21
  666. data/modules/emscripten/system/include/libc/sys/fsuid.h +0 -20
  667. data/modules/emscripten/system/include/libc/sys/inotify.h +0 -57
  668. data/modules/emscripten/system/include/libc/sys/io.h +0 -17
  669. data/modules/emscripten/system/include/libc/sys/ioctl.h +0 -14
  670. data/modules/emscripten/system/include/libc/sys/ipc.h +0 -42
  671. data/modules/emscripten/system/include/libc/sys/klog.h +0 -14
  672. data/modules/emscripten/system/include/libc/sys/mman.h +0 -55
  673. data/modules/emscripten/system/include/libc/sys/mount.h +0 -72
  674. data/modules/emscripten/system/include/libc/sys/msg.h +0 -52
  675. data/modules/emscripten/system/include/libc/sys/mtio.h +0 -188
  676. data/modules/emscripten/system/include/libc/sys/param.h +0 -35
  677. data/modules/emscripten/system/include/libc/sys/personality.h +0 -46
  678. data/modules/emscripten/system/include/libc/sys/poll.h +0 -2
  679. data/modules/emscripten/system/include/libc/sys/prctl.h +0 -101
  680. data/modules/emscripten/system/include/libc/sys/procfs.h +0 -65
  681. data/modules/emscripten/system/include/libc/sys/ptrace.h +0 -96
  682. data/modules/emscripten/system/include/libc/sys/reboot.h +0 -20
  683. data/modules/emscripten/system/include/libc/sys/reg.h +0 -9
  684. data/modules/emscripten/system/include/libc/sys/resource.h +0 -103
  685. data/modules/emscripten/system/include/libc/sys/select.h +0 -42
  686. data/modules/emscripten/system/include/libc/sys/sem.h +0 -82
  687. data/modules/emscripten/system/include/libc/sys/sendfile.h +0 -22
  688. data/modules/emscripten/system/include/libc/sys/shm.h +0 -61
  689. data/modules/emscripten/system/include/libc/sys/signal.h +0 -2
  690. data/modules/emscripten/system/include/libc/sys/signalfd.h +0 -44
  691. data/modules/emscripten/system/include/libc/sys/socket.h +0 -299
  692. data/modules/emscripten/system/include/libc/sys/stat.h +0 -114
  693. data/modules/emscripten/system/include/libc/sys/statfs.h +0 -32
  694. data/modules/emscripten/system/include/libc/sys/statvfs.h +0 -57
  695. data/modules/emscripten/system/include/libc/sys/stropts.h +0 -1
  696. data/modules/emscripten/system/include/libc/sys/swap.h +0 -21
  697. data/modules/emscripten/system/include/libc/sys/syscall.h +0 -6
  698. data/modules/emscripten/system/include/libc/sys/sysctl.h +0 -17
  699. data/modules/emscripten/system/include/libc/sys/sysinfo.h +0 -36
  700. data/modules/emscripten/system/include/libc/sys/syslog.h +0 -1
  701. data/modules/emscripten/system/include/libc/sys/sysmacros.h +0 -15
  702. data/modules/emscripten/system/include/libc/sys/termios.h +0 -2
  703. data/modules/emscripten/system/include/libc/sys/time.h +0 -57
  704. data/modules/emscripten/system/include/libc/sys/timerfd.h +0 -24
  705. data/modules/emscripten/system/include/libc/sys/times.h +0 -26
  706. data/modules/emscripten/system/include/libc/sys/timex.h +0 -98
  707. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +0 -39
  708. data/modules/emscripten/system/include/libc/sys/types.h +0 -91
  709. data/modules/emscripten/system/include/libc/sys/ucontext.h +0 -1
  710. data/modules/emscripten/system/include/libc/sys/uio.h +0 -48
  711. data/modules/emscripten/system/include/libc/sys/un.h +0 -32
  712. data/modules/emscripten/system/include/libc/sys/user.h +0 -16
  713. data/modules/emscripten/system/include/libc/sys/utsname.h +0 -30
  714. data/modules/emscripten/system/include/libc/sys/vfs.h +0 -1
  715. data/modules/emscripten/system/include/libc/sys/wait.h +0 -55
  716. data/modules/emscripten/system/include/libc/sys/xattr.h +0 -30
  717. data/modules/emscripten/system/include/libc/syscall.h +0 -1
  718. data/modules/emscripten/system/include/libc/sysexits.h +0 -21
  719. data/modules/emscripten/system/include/libc/syslog.h +0 -104
  720. data/modules/emscripten/system/include/libc/tar.h +0 -33
  721. data/modules/emscripten/system/include/libc/termios.h +0 -46
  722. data/modules/emscripten/system/include/libc/tgmath.h +0 -270
  723. data/modules/emscripten/system/include/libc/time.h +0 -132
  724. data/modules/emscripten/system/include/libc/ucontext.h +0 -25
  725. data/modules/emscripten/system/include/libc/ulimit.h +0 -17
  726. data/modules/emscripten/system/include/libc/unistd.h +0 -519
  727. data/modules/emscripten/system/include/libc/utime.h +0 -24
  728. data/modules/emscripten/system/include/libc/utmp.h +0 -47
  729. data/modules/emscripten/system/include/libc/utmpx.h +0 -58
  730. data/modules/emscripten/system/include/libc/values.h +0 -39
  731. data/modules/emscripten/system/include/libc/wchar.h +0 -183
  732. data/modules/emscripten/system/include/libc/wctype.h +0 -77
  733. data/modules/emscripten/system/include/libc/wordexp.h +0 -42
  734. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +0 -123
  735. data/modules/emscripten/system/include/libcxx/LICENSE.txt +0 -76
  736. data/modules/emscripten/system/include/libcxx/__bit_reference +0 -1287
  737. data/modules/emscripten/system/include/libcxx/__config +0 -610
  738. data/modules/emscripten/system/include/libcxx/__debug +0 -218
  739. data/modules/emscripten/system/include/libcxx/__functional_03 +0 -2130
  740. data/modules/emscripten/system/include/libcxx/__functional_base +0 -615
  741. data/modules/emscripten/system/include/libcxx/__functional_base_03 +0 -1087
  742. data/modules/emscripten/system/include/libcxx/__hash_table +0 -2457
  743. data/modules/emscripten/system/include/libcxx/__locale +0 -1445
  744. data/modules/emscripten/system/include/libcxx/__mutex_base +0 -407
  745. data/modules/emscripten/system/include/libcxx/__split_buffer +0 -654
  746. data/modules/emscripten/system/include/libcxx/__sso_allocator +0 -77
  747. data/modules/emscripten/system/include/libcxx/__std_stream +0 -359
  748. data/modules/emscripten/system/include/libcxx/__tree +0 -2309
  749. data/modules/emscripten/system/include/libcxx/__tuple +0 -305
  750. data/modules/emscripten/system/include/libcxx/__tuple_03 +0 -27
  751. data/modules/emscripten/system/include/libcxx/__undef_min_max +0 -27
  752. data/modules/emscripten/system/include/libcxx/algorithm +0 -5679
  753. data/modules/emscripten/system/include/libcxx/array +0 -342
  754. data/modules/emscripten/system/include/libcxx/atomic +0 -1531
  755. data/modules/emscripten/system/include/libcxx/bitset +0 -1081
  756. data/modules/emscripten/system/include/libcxx/cassert +0 -25
  757. data/modules/emscripten/system/include/libcxx/ccomplex +0 -29
  758. data/modules/emscripten/system/include/libcxx/cctype +0 -164
  759. data/modules/emscripten/system/include/libcxx/cerrno +0 -393
  760. data/modules/emscripten/system/include/libcxx/cfenv +0 -82
  761. data/modules/emscripten/system/include/libcxx/cfloat +0 -78
  762. data/modules/emscripten/system/include/libcxx/chrono +0 -1027
  763. data/modules/emscripten/system/include/libcxx/cinttypes +0 -259
  764. data/modules/emscripten/system/include/libcxx/ciso646 +0 -25
  765. data/modules/emscripten/system/include/libcxx/climits +0 -48
  766. data/modules/emscripten/system/include/libcxx/clocale +0 -53
  767. data/modules/emscripten/system/include/libcxx/cmath +0 -1690
  768. data/modules/emscripten/system/include/libcxx/codecvt +0 -550
  769. data/modules/emscripten/system/include/libcxx/complex +0 -1567
  770. data/modules/emscripten/system/include/libcxx/complex.h +0 -35
  771. data/modules/emscripten/system/include/libcxx/condition_variable +0 -256
  772. data/modules/emscripten/system/include/libcxx/csetjmp +0 -52
  773. data/modules/emscripten/system/include/libcxx/csignal +0 -58
  774. data/modules/emscripten/system/include/libcxx/cstdarg +0 -48
  775. data/modules/emscripten/system/include/libcxx/cstdbool +0 -32
  776. data/modules/emscripten/system/include/libcxx/cstddef +0 -103
  777. data/modules/emscripten/system/include/libcxx/cstdint +0 -191
  778. data/modules/emscripten/system/include/libcxx/cstdio +0 -182
  779. data/modules/emscripten/system/include/libcxx/cstdlib +0 -172
  780. data/modules/emscripten/system/include/libcxx/cstring +0 -112
  781. data/modules/emscripten/system/include/libcxx/ctgmath +0 -29
  782. data/modules/emscripten/system/include/libcxx/ctime +0 -72
  783. data/modules/emscripten/system/include/libcxx/cwchar +0 -217
  784. data/modules/emscripten/system/include/libcxx/cwctype +0 -213
  785. data/modules/emscripten/system/include/libcxx/deque +0 -2873
  786. data/modules/emscripten/system/include/libcxx/dynarray +0 -311
  787. data/modules/emscripten/system/include/libcxx/exception +0 -250
  788. data/modules/emscripten/system/include/libcxx/ext/__hash +0 -46
  789. data/modules/emscripten/system/include/libcxx/ext/hash_map +0 -1007
  790. data/modules/emscripten/system/include/libcxx/ext/hash_set +0 -661
  791. data/modules/emscripten/system/include/libcxx/forward_list +0 -1663
  792. data/modules/emscripten/system/include/libcxx/fstream +0 -1431
  793. data/modules/emscripten/system/include/libcxx/functional +0 -2418
  794. data/modules/emscripten/system/include/libcxx/future +0 -2615
  795. data/modules/emscripten/system/include/libcxx/initializer_list +0 -118
  796. data/modules/emscripten/system/include/libcxx/iomanip +0 -651
  797. data/modules/emscripten/system/include/libcxx/ios +0 -1023
  798. data/modules/emscripten/system/include/libcxx/iosfwd +0 -194
  799. data/modules/emscripten/system/include/libcxx/iostream +0 -60
  800. data/modules/emscripten/system/include/libcxx/istream +0 -1716
  801. data/modules/emscripten/system/include/libcxx/iterator +0 -1568
  802. data/modules/emscripten/system/include/libcxx/limits +0 -813
  803. data/modules/emscripten/system/include/libcxx/list +0 -2355
  804. data/modules/emscripten/system/include/libcxx/locale +0 -4465
  805. data/modules/emscripten/system/include/libcxx/map +0 -2045
  806. data/modules/emscripten/system/include/libcxx/memory +0 -5448
  807. data/modules/emscripten/system/include/libcxx/mutex +0 -566
  808. data/modules/emscripten/system/include/libcxx/new +0 -146
  809. data/modules/emscripten/system/include/libcxx/numeric +0 -197
  810. data/modules/emscripten/system/include/libcxx/optional +0 -697
  811. data/modules/emscripten/system/include/libcxx/ostream +0 -1295
  812. data/modules/emscripten/system/include/libcxx/queue +0 -717
  813. data/modules/emscripten/system/include/libcxx/random +0 -6725
  814. data/modules/emscripten/system/include/libcxx/ratio +0 -487
  815. data/modules/emscripten/system/include/libcxx/readme.txt +0 -1
  816. data/modules/emscripten/system/include/libcxx/regex +0 -6487
  817. data/modules/emscripten/system/include/libcxx/scoped_allocator +0 -578
  818. data/modules/emscripten/system/include/libcxx/set +0 -1189
  819. data/modules/emscripten/system/include/libcxx/shared_mutex +0 -419
  820. data/modules/emscripten/system/include/libcxx/sstream +0 -972
  821. data/modules/emscripten/system/include/libcxx/stack +0 -292
  822. data/modules/emscripten/system/include/libcxx/stdexcept +0 -162
  823. data/modules/emscripten/system/include/libcxx/streambuf +0 -564
  824. data/modules/emscripten/system/include/libcxx/string +0 -4198
  825. data/modules/emscripten/system/include/libcxx/strstream +0 -400
  826. data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +0 -99
  827. data/modules/emscripten/system/include/libcxx/support/ibm/support.h +0 -54
  828. data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +0 -326
  829. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +0 -5
  830. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +0 -38
  831. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +0 -146
  832. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +0 -79
  833. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +0 -129
  834. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +0 -115
  835. data/modules/emscripten/system/include/libcxx/support/win32/support.h +0 -119
  836. data/modules/emscripten/system/include/libcxx/system_error +0 -642
  837. data/modules/emscripten/system/include/libcxx/tgmath.h +0 -29
  838. data/modules/emscripten/system/include/libcxx/thread +0 -458
  839. data/modules/emscripten/system/include/libcxx/tuple +0 -1102
  840. data/modules/emscripten/system/include/libcxx/type_traits +0 -3292
  841. data/modules/emscripten/system/include/libcxx/typeindex +0 -103
  842. data/modules/emscripten/system/include/libcxx/typeinfo +0 -124
  843. data/modules/emscripten/system/include/libcxx/unordered_map +0 -2078
  844. data/modules/emscripten/system/include/libcxx/unordered_set +0 -1379
  845. data/modules/emscripten/system/include/libcxx/utility +0 -768
  846. data/modules/emscripten/system/include/libcxx/valarray +0 -4779
  847. data/modules/emscripten/system/include/libcxx/vector +0 -3246
  848. data/modules/emscripten/system/include/unwind.h +0 -154
  849. data/modules/emscripten/system/include/uuid/uuid.h +0 -35
  850. data/modules/emscripten/system/include/zconf.h +0 -428
  851. data/modules/emscripten/system/include/zlib.h +0 -1613
  852. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +0 -97
  853. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +0 -47
  854. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +0 -116
  855. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +0 -46
  856. data/modules/emscripten/system/lib/compiler-rt/int_math.h +0 -67
  857. data/modules/emscripten/system/lib/compiler-rt/int_types.h +0 -140
  858. data/modules/emscripten/system/lib/compiler-rt/int_util.h +0 -29
  859. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +0 -56
  860. data/modules/emscripten/system/lib/compiler-rt/readme.txt +0 -20
  861. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +0 -36
  862. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +0 -251
  863. data/modules/emscripten/system/lib/debugging.cpp +0 -24
  864. data/modules/emscripten/system/lib/dlmalloc.c +0 -6297
  865. data/modules/emscripten/system/lib/embind/bind.cpp +0 -63
  866. data/modules/emscripten/system/lib/libc/gen/err.c +0 -49
  867. data/modules/emscripten/system/lib/libc/gen/errx.c +0 -49
  868. data/modules/emscripten/system/lib/libc/gen/verr.c +0 -58
  869. data/modules/emscripten/system/lib/libc/gen/verrx.c +0 -51
  870. data/modules/emscripten/system/lib/libc/gen/vwarn.c +0 -55
  871. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +0 -48
  872. data/modules/emscripten/system/lib/libc/gen/warn.c +0 -49
  873. data/modules/emscripten/system/lib/libc/gen/warnx.c +0 -49
  874. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +0 -92
  875. data/modules/emscripten/system/lib/libc/musl/readme.txt +0 -9
  876. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +0 -125
  877. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +0 -7
  878. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +0 -14
  879. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +0 -8
  880. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +0 -10
  881. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +0 -63
  882. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +0 -9
  883. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +0 -7
  884. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +0 -6
  885. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +0 -19
  886. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +0 -12
  887. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +0 -19
  888. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +0 -6
  889. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +0 -7
  890. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +0 -62
  891. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +0 -109
  892. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +0 -268
  893. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +0 -8
  894. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +0 -16
  895. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +0 -29
  896. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +0 -42
  897. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +0 -22
  898. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +0 -71
  899. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +0 -5
  900. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +0 -92
  901. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +0 -1085
  902. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +0 -238
  903. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +0 -1836
  904. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +0 -390
  905. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +0 -454
  906. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +0 -6
  907. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +0 -6
  908. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +0 -6
  909. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +0 -6
  910. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +0 -9
  911. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +0 -6
  912. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +0 -6
  913. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +0 -6
  914. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +0 -6
  915. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +0 -6
  916. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +0 -6
  917. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +0 -6
  918. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +0 -6
  919. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +0 -550
  920. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +0 -640
  921. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +0 -39
  922. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +0 -101
  923. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +0 -18
  924. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +0 -6
  925. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +0 -9
  926. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +0 -9
  927. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +0 -16
  928. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +0 -6
  929. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +0 -21
  930. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +0 -6
  931. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +0 -6
  932. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +0 -9
  933. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +0 -7
  934. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +0 -38
  935. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +0 -22
  936. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +0 -17
  937. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +0 -18
  938. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +0 -57
  939. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +0 -17
  940. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +0 -65
  941. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +0 -100
  942. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +0 -7
  943. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +0 -53
  944. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +0 -38
  945. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +0 -52
  946. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +0 -58
  947. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +0 -7
  948. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +0 -8
  949. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +0 -18
  950. data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +0 -3352
  951. data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +0 -35
  952. data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +0 -1011
  953. data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +0 -158
  954. data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +0 -231
  955. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +0 -13
  956. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +0 -14
  957. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +0 -361
  958. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +0 -53
  959. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +0 -7
  960. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +0 -13
  961. data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +0 -19
  962. data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +0 -25
  963. data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +0 -8
  964. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +0 -6
  965. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +0 -6
  966. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +0 -7
  967. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +0 -6
  968. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +0 -7
  969. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +0 -8
  970. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +0 -7
  971. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +0 -8
  972. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +0 -10
  973. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +0 -11
  974. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +0 -8
  975. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +0 -9
  976. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +0 -6
  977. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +0 -10
  978. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +0 -7
  979. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +0 -9
  980. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +0 -8
  981. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +0 -7
  982. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +0 -8
  983. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +0 -8
  984. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +0 -108
  985. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +0 -12
  986. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +0 -6
  987. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +0 -8
  988. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +0 -8
  989. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +0 -9
  990. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +0 -12
  991. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +0 -9
  992. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +0 -511
  993. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +0 -305
  994. data/modules/emscripten/system/lib/libc.symbols +0 -81
  995. data/modules/emscripten/system/lib/libcextra.symbols +0 -115
  996. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +0 -123
  997. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +0 -76
  998. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +0 -84
  999. data/modules/emscripten/system/lib/libcxx/bind.cpp +0 -30
  1000. data/modules/emscripten/system/lib/libcxx/chrono.cpp +0 -132
  1001. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +0 -81
  1002. data/modules/emscripten/system/lib/libcxx/debug.cpp +0 -530
  1003. data/modules/emscripten/system/lib/libcxx/exception.cpp +0 -307
  1004. data/modules/emscripten/system/lib/libcxx/future.cpp +0 -291
  1005. data/modules/emscripten/system/lib/libcxx/hash.cpp +0 -570
  1006. data/modules/emscripten/system/lib/libcxx/ios.cpp +0 -460
  1007. data/modules/emscripten/system/lib/libcxx/iostream.cpp +0 -68
  1008. data/modules/emscripten/system/lib/libcxx/locale.cpp +0 -6169
  1009. data/modules/emscripten/system/lib/libcxx/memory.cpp +0 -223
  1010. data/modules/emscripten/system/lib/libcxx/mutex.cpp +0 -253
  1011. data/modules/emscripten/system/lib/libcxx/new.cpp +0 -239
  1012. data/modules/emscripten/system/lib/libcxx/optional.cpp +0 -25
  1013. data/modules/emscripten/system/lib/libcxx/random.cpp +0 -74
  1014. data/modules/emscripten/system/lib/libcxx/readme.txt +0 -1
  1015. data/modules/emscripten/system/lib/libcxx/regex.cpp +0 -325
  1016. data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +0 -101
  1017. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +0 -200
  1018. data/modules/emscripten/system/lib/libcxx/string.cpp +0 -530
  1019. data/modules/emscripten/system/lib/libcxx/strstream.cpp +0 -329
  1020. data/modules/emscripten/system/lib/libcxx/support/solaris/README +0 -4
  1021. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +0 -76
  1022. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +0 -93
  1023. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +0 -245
  1024. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +0 -95
  1025. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +0 -166
  1026. data/modules/emscripten/system/lib/libcxx/symbols +0 -2699
  1027. data/modules/emscripten/system/lib/libcxx/system_error.cpp +0 -205
  1028. data/modules/emscripten/system/lib/libcxx/thread.cpp +0 -225
  1029. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +0 -73
  1030. data/modules/emscripten/system/lib/libcxx/utility.cpp +0 -17
  1031. data/modules/emscripten/system/lib/libcxx/valarray.cpp +0 -56
  1032. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +0 -38
  1033. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +0 -76
  1034. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +0 -167
  1035. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +0 -175
  1036. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +0 -99
  1037. data/modules/emscripten/system/lib/libcxxabi/readme.txt +0 -1
  1038. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +0 -50
  1039. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +0 -33
  1040. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +0 -34
  1041. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +0 -11036
  1042. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +0 -622
  1043. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +0 -123
  1044. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +0 -91
  1045. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +0 -231
  1046. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +0 -125
  1047. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +0 -54
  1048. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +0 -242
  1049. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +0 -1055
  1050. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +0 -27
  1051. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +0 -367
  1052. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +0 -31
  1053. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +0 -41
  1054. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +0 -174
  1055. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +0 -1146
  1056. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +0 -248
  1057. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +0 -169
  1058. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +0 -53
  1059. data/modules/emscripten/system/lib/libcxxabi/symbols +0 -236
  1060. data/modules/emscripten/system/lib/sdl.cpp +0 -13
  1061. data/modules/emscripten/system/lib/sdl.symbols +0 -1
  1062. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +0 -2347
  1063. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +0 -4
  1064. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +0 -657
  1065. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +0 -147
  1066. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +0 -74
  1067. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +0 -249
  1068. data/modules/emscripten/third_party/CppHeaderParser/README.html +0 -544
  1069. data/modules/emscripten/third_party/CppHeaderParser/README.txt +0 -226
  1070. data/modules/emscripten/third_party/CppHeaderParser/setup.py +0 -43
  1071. data/modules/emscripten/third_party/ansidecl.h +0 -371
  1072. data/modules/emscripten/third_party/closure-compiler/COPYING +0 -202
  1073. data/modules/emscripten/third_party/closure-compiler/README +0 -292
  1074. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  1075. data/modules/emscripten/third_party/closure-compiler/readme.txt +0 -3
  1076. data/modules/emscripten/third_party/cp-demangle.h +0 -161
  1077. data/modules/emscripten/third_party/demangle.h +0 -549
  1078. data/modules/emscripten/third_party/demangler.py +0 -49
  1079. data/modules/emscripten/third_party/gcc_demangler.c +0 -4226
  1080. data/modules/emscripten/third_party/gcc_demangler.js +0 -21282
  1081. data/modules/emscripten/third_party/jni/emjvm.cpp +0 -133
  1082. data/modules/emscripten/third_party/jni/emjvm.h +0 -8
  1083. data/modules/emscripten/third_party/jni/emjvm.js +0 -185
  1084. data/modules/emscripten/third_party/jni/jni.h +0 -1154
  1085. data/modules/emscripten/third_party/libiberty.h +0 -634
  1086. data/modules/emscripten/third_party/lzma.js/README.markdown +0 -37
  1087. data/modules/emscripten/third_party/lzma.js/doit.bat +0 -4
  1088. data/modules/emscripten/third_party/lzma.js/doit.sh +0 -44
  1089. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +0 -7
  1090. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +0 -676
  1091. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +0 -201
  1092. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +0 -56
  1093. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +0 -160
  1094. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +0 -138
  1095. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +0 -22
  1096. data/modules/emscripten/third_party/lzma.js/lzip/README +0 -77
  1097. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +0 -204
  1098. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +0 -106
  1099. data/modules/emscripten/third_party/lzma.js/lzip/configure +0 -192
  1100. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +0 -252
  1101. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +0 -268
  1102. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +0 -643
  1103. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +0 -582
  1104. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +0 -378
  1105. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +0 -171
  1106. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +0 -264
  1107. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +0 -545
  1108. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +0 -27
  1109. data/modules/emscripten/third_party/lzma.js/lzma-full.js +0 -27
  1110. data/modules/emscripten/third_party/lzma.js/native_test.sh +0 -5
  1111. data/modules/emscripten/third_party/lzma.js/post.js +0 -13
  1112. data/modules/emscripten/third_party/lzma.js/pre.js +0 -13
  1113. data/modules/emscripten/third_party/lzma.js/test-decoder.js +0 -39
  1114. data/modules/emscripten/third_party/lzma.js/test-full.html +0 -9
  1115. data/modules/emscripten/third_party/lzma.js/test-full.js +0 -78
  1116. data/modules/emscripten/third_party/ply/ANNOUNCE +0 -40
  1117. data/modules/emscripten/third_party/ply/CHANGES +0 -1093
  1118. data/modules/emscripten/third_party/ply/PKG-INFO +0 -22
  1119. data/modules/emscripten/third_party/ply/README +0 -271
  1120. data/modules/emscripten/third_party/ply/TODO +0 -16
  1121. data/modules/emscripten/third_party/ply/doc/internal.html +0 -874
  1122. data/modules/emscripten/third_party/ply/doc/makedoc.py +0 -194
  1123. data/modules/emscripten/third_party/ply/doc/ply.html +0 -3262
  1124. data/modules/emscripten/third_party/ply/example/BASIC/README +0 -79
  1125. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +0 -71
  1126. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +0 -74
  1127. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +0 -79
  1128. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +0 -441
  1129. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +0 -424
  1130. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +0 -14
  1131. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +0 -5
  1132. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +0 -22
  1133. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +0 -13
  1134. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +0 -4
  1135. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +0 -17
  1136. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +0 -12
  1137. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +0 -13
  1138. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +0 -4
  1139. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +0 -20
  1140. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +0 -18
  1141. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +0 -5
  1142. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +0 -4
  1143. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +0 -709
  1144. data/modules/emscripten/third_party/ply/example/GardenSnake/README +0 -5
  1145. data/modules/emscripten/third_party/ply/example/README +0 -10
  1146. data/modules/emscripten/third_party/ply/example/ansic/README +0 -2
  1147. data/modules/emscripten/third_party/ply/example/ansic/clex.py +0 -164
  1148. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +0 -863
  1149. data/modules/emscripten/third_party/ply/example/calc/calc.py +0 -107
  1150. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +0 -113
  1151. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +0 -157
  1152. data/modules/emscripten/third_party/ply/example/cleanup.sh +0 -2
  1153. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +0 -130
  1154. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +0 -48
  1155. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +0 -160
  1156. data/modules/emscripten/third_party/ply/example/optcalc/README +0 -9
  1157. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +0 -119
  1158. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +0 -117
  1159. data/modules/emscripten/third_party/ply/example/yply/README +0 -41
  1160. data/modules/emscripten/third_party/ply/example/yply/ylex.py +0 -112
  1161. data/modules/emscripten/third_party/ply/example/yply/yparse.py +0 -217
  1162. data/modules/emscripten/third_party/ply/example/yply/yply.py +0 -53
  1163. data/modules/emscripten/third_party/ply/ply/__init__.py +0 -4
  1164. data/modules/emscripten/third_party/ply/ply/cpp.py +0 -898
  1165. data/modules/emscripten/third_party/ply/ply/ctokens.py +0 -133
  1166. data/modules/emscripten/third_party/ply/ply/lex.py +0 -1058
  1167. data/modules/emscripten/third_party/ply/ply/yacc.py +0 -3276
  1168. data/modules/emscripten/third_party/ply/setup.py +0 -31
  1169. data/modules/emscripten/third_party/ply/test/README +0 -7
  1170. data/modules/emscripten/third_party/ply/test/calclex.py +0 -49
  1171. data/modules/emscripten/third_party/ply/test/cleanup.sh +0 -4
  1172. data/modules/emscripten/third_party/ply/test/lex_closure.py +0 -54
  1173. data/modules/emscripten/third_party/ply/test/lex_doc1.py +0 -26
  1174. data/modules/emscripten/third_party/ply/test/lex_dup1.py +0 -29
  1175. data/modules/emscripten/third_party/ply/test/lex_dup2.py +0 -33
  1176. data/modules/emscripten/third_party/ply/test/lex_dup3.py +0 -31
  1177. data/modules/emscripten/third_party/ply/test/lex_empty.py +0 -20
  1178. data/modules/emscripten/third_party/ply/test/lex_error1.py +0 -24
  1179. data/modules/emscripten/third_party/ply/test/lex_error2.py +0 -26
  1180. data/modules/emscripten/third_party/ply/test/lex_error3.py +0 -27
  1181. data/modules/emscripten/third_party/ply/test/lex_error4.py +0 -27
  1182. data/modules/emscripten/third_party/ply/test/lex_hedit.py +0 -47
  1183. data/modules/emscripten/third_party/ply/test/lex_ignore.py +0 -31
  1184. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +0 -29
  1185. data/modules/emscripten/third_party/ply/test/lex_literal1.py +0 -25
  1186. data/modules/emscripten/third_party/ply/test/lex_literal2.py +0 -25
  1187. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +0 -27
  1188. data/modules/emscripten/third_party/ply/test/lex_module.py +0 -10
  1189. data/modules/emscripten/third_party/ply/test/lex_module_import.py +0 -42
  1190. data/modules/emscripten/third_party/ply/test/lex_object.py +0 -55
  1191. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +0 -54
  1192. data/modules/emscripten/third_party/ply/test/lex_optimize.py +0 -50
  1193. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +0 -50
  1194. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +0 -52
  1195. data/modules/emscripten/third_party/ply/test/lex_re1.py +0 -27
  1196. data/modules/emscripten/third_party/ply/test/lex_re2.py +0 -27
  1197. data/modules/emscripten/third_party/ply/test/lex_re3.py +0 -29
  1198. data/modules/emscripten/third_party/ply/test/lex_rule1.py +0 -27
  1199. data/modules/emscripten/third_party/ply/test/lex_rule2.py +0 -29
  1200. data/modules/emscripten/third_party/ply/test/lex_rule3.py +0 -27
  1201. data/modules/emscripten/third_party/ply/test/lex_state1.py +0 -40
  1202. data/modules/emscripten/third_party/ply/test/lex_state2.py +0 -40
  1203. data/modules/emscripten/third_party/ply/test/lex_state3.py +0 -42
  1204. data/modules/emscripten/third_party/ply/test/lex_state4.py +0 -41
  1205. data/modules/emscripten/third_party/ply/test/lex_state5.py +0 -40
  1206. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +0 -39
  1207. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +0 -40
  1208. data/modules/emscripten/third_party/ply/test/lex_state_try.py +0 -45
  1209. data/modules/emscripten/third_party/ply/test/lex_token1.py +0 -19
  1210. data/modules/emscripten/third_party/ply/test/lex_token2.py +0 -22
  1211. data/modules/emscripten/third_party/ply/test/lex_token3.py +0 -24
  1212. data/modules/emscripten/third_party/ply/test/lex_token4.py +0 -26
  1213. data/modules/emscripten/third_party/ply/test/lex_token5.py +0 -31
  1214. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +0 -29
  1215. data/modules/emscripten/third_party/ply/test/testlex.py +0 -606
  1216. data/modules/emscripten/third_party/ply/test/testyacc.py +0 -347
  1217. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +0 -68
  1218. data/modules/emscripten/third_party/ply/test/yacc_badid.py +0 -77
  1219. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +0 -64
  1220. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +0 -68
  1221. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +0 -68
  1222. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +0 -68
  1223. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +0 -68
  1224. data/modules/emscripten/third_party/ply/test/yacc_dup.py +0 -68
  1225. data/modules/emscripten/third_party/ply/test/yacc_error1.py +0 -68
  1226. data/modules/emscripten/third_party/ply/test/yacc_error2.py +0 -68
  1227. data/modules/emscripten/third_party/ply/test/yacc_error3.py +0 -67
  1228. data/modules/emscripten/third_party/ply/test/yacc_error4.py +0 -72
  1229. data/modules/emscripten/third_party/ply/test/yacc_inf.py +0 -56
  1230. data/modules/emscripten/third_party/ply/test/yacc_literal.py +0 -69
  1231. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +0 -68
  1232. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +0 -68
  1233. data/modules/emscripten/third_party/ply/test/yacc_nested.py +0 -33
  1234. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +0 -67
  1235. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +0 -66
  1236. data/modules/emscripten/third_party/ply/test/yacc_nop.py +0 -68
  1237. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +0 -66
  1238. data/modules/emscripten/third_party/ply/test/yacc_notok.py +0 -67
  1239. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +0 -68
  1240. data/modules/emscripten/third_party/ply/test/yacc_rr.py +0 -72
  1241. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +0 -30
  1242. data/modules/emscripten/third_party/ply/test/yacc_simple.py +0 -68
  1243. data/modules/emscripten/third_party/ply/test/yacc_sr.py +0 -63
  1244. data/modules/emscripten/third_party/ply/test/yacc_term1.py +0 -68
  1245. data/modules/emscripten/third_party/ply/test/yacc_unused.py +0 -77
  1246. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +0 -72
  1247. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +0 -63
  1248. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +0 -63
  1249. data/modules/emscripten/third_party/readme.txt +0 -7
  1250. data/modules/emscripten/third_party/stb_image.c +0 -4673
  1251. data/modules/emscripten/third_party/websockify/CHANGES.txt +0 -23
  1252. data/modules/emscripten/third_party/websockify/LICENSE.txt +0 -16
  1253. data/modules/emscripten/third_party/websockify/MANIFEST.in +0 -1
  1254. data/modules/emscripten/third_party/websockify/Makefile +0 -11
  1255. data/modules/emscripten/third_party/websockify/README.md +0 -168
  1256. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +0 -39
  1257. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +0 -24
  1258. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +0 -61
  1259. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +0 -19
  1260. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +0 -129
  1261. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +0 -36
  1262. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +0 -37
  1263. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +0 -41
  1264. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +0 -75
  1265. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +0 -20
  1266. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +0 -621
  1267. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +0 -165
  1268. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +0 -373
  1269. data/modules/emscripten/third_party/websockify/docs/TODO +0 -9
  1270. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +0 -4
  1271. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +0 -114
  1272. data/modules/emscripten/third_party/websockify/docs/notes +0 -17
  1273. data/modules/emscripten/third_party/websockify/docs/release.txt +0 -9
  1274. data/modules/emscripten/third_party/websockify/docs/websockify.1 +0 -110
  1275. data/modules/emscripten/third_party/websockify/include/VT100.js +0 -919
  1276. data/modules/emscripten/third_party/websockify/include/base64.js +0 -114
  1277. data/modules/emscripten/third_party/websockify/include/keysym.js +0 -99
  1278. data/modules/emscripten/third_party/websockify/include/util.js +0 -359
  1279. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +0 -109
  1280. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  1281. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +0 -4
  1282. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +0 -391
  1283. data/modules/emscripten/third_party/websockify/include/websock.js +0 -422
  1284. data/modules/emscripten/third_party/websockify/include/webutil.js +0 -216
  1285. data/modules/emscripten/third_party/websockify/include/wsirc.js +0 -235
  1286. data/modules/emscripten/third_party/websockify/include/wstelnet.js +0 -335
  1287. data/modules/emscripten/third_party/websockify/other/Makefile +0 -14
  1288. data/modules/emscripten/third_party/websockify/other/README.md +0 -51
  1289. data/modules/emscripten/third_party/websockify/other/launch.sh +0 -108
  1290. data/modules/emscripten/third_party/websockify/other/project.clj +0 -13
  1291. data/modules/emscripten/third_party/websockify/other/websocket.c +0 -802
  1292. data/modules/emscripten/third_party/websockify/other/websocket.h +0 -84
  1293. data/modules/emscripten/third_party/websockify/other/websocket.rb +0 -456
  1294. data/modules/emscripten/third_party/websockify/other/websockify.c +0 -385
  1295. data/modules/emscripten/third_party/websockify/other/websockify.clj +0 -233
  1296. data/modules/emscripten/third_party/websockify/other/websockify.js +0 -196
  1297. data/modules/emscripten/third_party/websockify/other/websockify.rb +0 -171
  1298. data/modules/emscripten/third_party/websockify/other/wswrap +0 -22
  1299. data/modules/emscripten/third_party/websockify/rebind +0 -18
  1300. data/modules/emscripten/third_party/websockify/rebind.c +0 -94
  1301. data/modules/emscripten/third_party/websockify/run +0 -5
  1302. data/modules/emscripten/third_party/websockify/setup.py +0 -30
  1303. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +0 -29
  1304. data/modules/emscripten/third_party/websockify/tests/base64.html +0 -91
  1305. data/modules/emscripten/third_party/websockify/tests/base64.js +0 -12
  1306. data/modules/emscripten/third_party/websockify/tests/echo.html +0 -148
  1307. data/modules/emscripten/third_party/websockify/tests/echo.py +0 -75
  1308. data/modules/emscripten/third_party/websockify/tests/echo.rb +0 -62
  1309. data/modules/emscripten/third_party/websockify/tests/latency.html +0 -290
  1310. data/modules/emscripten/third_party/websockify/tests/latency.py +0 -75
  1311. data/modules/emscripten/third_party/websockify/tests/load.html +0 -250
  1312. data/modules/emscripten/third_party/websockify/tests/load.py +0 -167
  1313. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +0 -168
  1314. data/modules/emscripten/third_party/websockify/tests/simple.html +0 -68
  1315. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +0 -22
  1316. data/modules/emscripten/third_party/websockify/websockify/__init__.py +0 -2
  1317. data/modules/emscripten/third_party/websockify/websockify/websocket.py +0 -982
  1318. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +0 -393
  1319. data/modules/emscripten/third_party/websockify/websockify.py +0 -5
  1320. data/modules/emscripten/third_party/websockify/wsirc.html +0 -99
  1321. data/modules/emscripten/third_party/websockify/wstelnet.html +0 -74
  1322. data/modules/emscripten/tools/__init__.py +0 -0
  1323. data/modules/emscripten/tools/asm_module.py +0 -275
  1324. data/modules/emscripten/tools/autodebugger.py +0 -291
  1325. data/modules/emscripten/tools/autodebugger_c.py +0 -37
  1326. data/modules/emscripten/tools/autodebugger_indenter.py +0 -18
  1327. data/modules/emscripten/tools/autodebugger_js.py +0 -47
  1328. data/modules/emscripten/tools/autodediffer.py +0 -60
  1329. data/modules/emscripten/tools/bindings_generator.py +0 -832
  1330. data/modules/emscripten/tools/bisect_pair.py +0 -88
  1331. data/modules/emscripten/tools/cache.py +0 -196
  1332. data/modules/emscripten/tools/clean_webconsole.py +0 -34
  1333. data/modules/emscripten/tools/crunch-worker.js +0 -124
  1334. data/modules/emscripten/tools/diff_autodebugger.py +0 -15
  1335. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -307
  1336. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -382
  1337. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +0 -6136
  1338. data/modules/emscripten/tools/eliminator/eliminator-test.js +0 -8879
  1339. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +0 -888
  1340. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +0 -463
  1341. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +0 -317
  1342. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +0 -75
  1343. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +0 -75
  1344. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +0 -1363
  1345. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +0 -2005
  1346. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +0 -51
  1347. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +0 -22
  1348. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +0 -28
  1349. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +0 -402
  1350. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +0 -1
  1351. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +0 -1
  1352. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +0 -1
  1353. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +0 -1
  1354. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +0 -1
  1355. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +0 -1
  1356. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +0 -1
  1357. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +0 -1
  1358. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +0 -1
  1359. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +0 -1
  1360. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +0 -1
  1361. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +0 -1
  1362. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +0 -1
  1363. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +0 -1
  1364. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +0 -1
  1365. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +0 -1
  1366. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +0 -1
  1367. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +0 -1
  1368. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +0 -1
  1369. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +0 -1
  1370. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +0 -1
  1371. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +0 -1
  1372. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +0 -1
  1373. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +0 -1
  1374. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +0 -1
  1375. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +0 -1
  1376. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +0 -1
  1377. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +0 -1
  1378. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +0 -1
  1379. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +0 -1
  1380. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +0 -1
  1381. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +0 -1
  1382. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +0 -1
  1383. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +0 -1
  1384. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +0 -1
  1385. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +0 -1
  1386. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +0 -1
  1387. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +0 -1
  1388. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +0 -3
  1389. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +0 -4
  1390. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +0 -4
  1391. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +0 -6
  1392. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +0 -20
  1393. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +0 -3
  1394. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +0 -5
  1395. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +0 -4
  1396. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +0 -10
  1397. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +0 -6
  1398. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +0 -9
  1399. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +0 -16
  1400. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +0 -1
  1401. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +0 -3
  1402. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +0 -1
  1403. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +0 -1
  1404. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +0 -1
  1405. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +0 -4
  1406. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +0 -1
  1407. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +0 -6
  1408. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +0 -7
  1409. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +0 -1
  1410. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +0 -3
  1411. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +0 -1
  1412. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +0 -3
  1413. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +0 -3
  1414. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +0 -3
  1415. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +0 -1
  1416. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +0 -9
  1417. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +0 -1
  1418. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +0 -3
  1419. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +0 -5
  1420. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +0 -1
  1421. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +0 -4
  1422. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +0 -5
  1423. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +0 -3
  1424. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +0 -3
  1425. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +0 -2
  1426. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +0 -55
  1427. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +0 -33
  1428. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +0 -97
  1429. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +0 -138
  1430. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +0 -16
  1431. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +0 -17
  1432. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +0 -85
  1433. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +0 -103
  1434. data/modules/emscripten/tools/emconfiguren.py +0 -19
  1435. data/modules/emscripten/tools/emmaken.py +0 -230
  1436. data/modules/emscripten/tools/emmakenxx.py +0 -18
  1437. data/modules/emscripten/tools/exec_llvm.py +0 -50
  1438. data/modules/emscripten/tools/file2json.py +0 -49
  1439. data/modules/emscripten/tools/file_packager.py +0 -719
  1440. data/modules/emscripten/tools/find_bigfuncs.py +0 -23
  1441. data/modules/emscripten/tools/find_bigis.py +0 -18
  1442. data/modules/emscripten/tools/find_bigvars.py +0 -24
  1443. data/modules/emscripten/tools/fix_closure.py +0 -88
  1444. data/modules/emscripten/tools/gen_struct_info.py +0 -509
  1445. data/modules/emscripten/tools/ie7_fix.py +0 -14
  1446. data/modules/emscripten/tools/js-optimizer.js +0 -4023
  1447. data/modules/emscripten/tools/js_optimizer.py +0 -357
  1448. data/modules/emscripten/tools/jsrun.py +0 -37
  1449. data/modules/emscripten/tools/ll-strip.py +0 -56
  1450. data/modules/emscripten/tools/make_file.py +0 -19
  1451. data/modules/emscripten/tools/make_minigzip.py +0 -13
  1452. data/modules/emscripten/tools/merge_asm.py +0 -26
  1453. data/modules/emscripten/tools/namespacer.py +0 -95
  1454. data/modules/emscripten/tools/nativize_llvm.py +0 -34
  1455. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +0 -58
  1456. data/modules/emscripten/tools/node_modules/source-map/LICENSE +0 -28
  1457. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +0 -166
  1458. data/modules/emscripten/tools/node_modules/source-map/README.md +0 -347
  1459. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +0 -56
  1460. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +0 -152
  1461. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1462. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1463. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +0 -8
  1464. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1465. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +0 -21
  1466. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +0 -8
  1467. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +0 -3
  1468. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +0 -96
  1469. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  1470. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +0 -42
  1471. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  1472. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -430
  1473. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +0 -381
  1474. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +0 -353
  1475. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +0 -117
  1476. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +0 -8
  1477. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  1478. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1479. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1480. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +0 -33
  1481. data/modules/emscripten/tools/node_modules/source-map/package.json +0 -74
  1482. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +0 -73
  1483. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +0 -26
  1484. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +0 -71
  1485. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  1486. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +0 -35
  1487. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  1488. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  1489. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -306
  1490. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -391
  1491. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +0 -282
  1492. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +0 -152
  1493. data/modules/emscripten/tools/reproduceriter.js +0 -216
  1494. data/modules/emscripten/tools/reproduceriter.py +0 -160
  1495. data/modules/emscripten/tools/response_file.py +0 -34
  1496. data/modules/emscripten/tools/scan_js.py +0 -20
  1497. data/modules/emscripten/tools/scan_ll.py +0 -18
  1498. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +0 -3
  1499. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +0 -46
  1500. data/modules/emscripten/tools/settings_template_readonly.py +0 -49
  1501. data/modules/emscripten/tools/shared.py +0 -1705
  1502. data/modules/emscripten/tools/source-maps/sourcemap2json.js +0 -15
  1503. data/modules/emscripten/tools/source-maps/sourcemapper.js +0 -208
  1504. data/modules/emscripten/tools/split.py +0 -105
  1505. data/modules/emscripten/tools/split_asm.py +0 -30
  1506. data/modules/emscripten/tools/tempfiles.py +0 -41
  1507. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +0 -75
  1508. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +0 -91
  1509. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +0 -2
  1510. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +0 -8
  1511. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +0 -929
  1512. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +0 -351
  1513. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +0 -793
  1514. data/modules/emscripten/tools/test-js-optimizer-asm-outline2.js +0 -606
  1515. data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +0 -28
  1516. data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +0 -30
  1517. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -522
  1518. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -533
  1519. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +0 -36
  1520. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +0 -37
  1521. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +0 -106
  1522. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +0 -110
  1523. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +0 -9
  1524. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +0 -12
  1525. data/modules/emscripten/tools/test-js-optimizer-output.js +0 -291
  1526. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +0 -232
  1527. data/modules/emscripten/tools/test-js-optimizer-regs.js +0 -237
  1528. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +0 -91
  1529. data/modules/emscripten/tools/test-js-optimizer-t2.js +0 -92
  1530. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +0 -17
  1531. data/modules/emscripten/tools/test-js-optimizer-t2c.js +0 -18
  1532. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +0 -49
  1533. data/modules/emscripten/tools/test-js-optimizer-t3.js +0 -50
  1534. data/modules/emscripten/tools/test-js-optimizer.js +0 -401
  1535. data/modules/emscripten/tools/validate_asmjs.py +0 -82
  1536. data/modules/mruby/mrblib/print.rb +0 -18
  1537. data/modules/mruby/src/re.h +0 -12
@@ -1,2457 +0,0 @@
1
- // -*- C++ -*-
2
- //===----------------------------------------------------------------------===//
3
- //
4
- // The LLVM Compiler Infrastructure
5
- //
6
- // This file is dual licensed under the MIT and the University of Illinois Open
7
- // Source Licenses. See LICENSE.TXT for details.
8
- //
9
- //===----------------------------------------------------------------------===//
10
-
11
- #ifndef _LIBCPP__HASH_TABLE
12
- #define _LIBCPP__HASH_TABLE
13
-
14
- #include <__config>
15
- #include <initializer_list>
16
- #include <memory>
17
- #include <iterator>
18
- #include <algorithm>
19
- #include <cmath>
20
-
21
- #include <__undef_min_max>
22
-
23
- #ifdef _LIBCPP_DEBUG
24
- # include <__debug>
25
- #else
26
- # define _LIBCPP_ASSERT(x, m) ((void)0)
27
- #endif
28
-
29
- #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
30
- #pragma GCC system_header
31
- #endif
32
-
33
- _LIBCPP_BEGIN_NAMESPACE_STD
34
-
35
- _LIBCPP_FUNC_VIS
36
- size_t __next_prime(size_t __n);
37
-
38
- template <class _NodePtr>
39
- struct __hash_node_base
40
- {
41
- typedef __hash_node_base __first_node;
42
-
43
- _NodePtr __next_;
44
-
45
- _LIBCPP_INLINE_VISIBILITY __hash_node_base() _NOEXCEPT : __next_(nullptr) {}
46
- };
47
-
48
- template <class _Tp, class _VoidPtr>
49
- struct __hash_node
50
- : public __hash_node_base
51
- <
52
- typename pointer_traits<_VoidPtr>::template
53
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
54
- rebind<__hash_node<_Tp, _VoidPtr> >
55
- #else
56
- rebind<__hash_node<_Tp, _VoidPtr> >::other
57
- #endif
58
- >
59
- {
60
- typedef _Tp value_type;
61
-
62
- size_t __hash_;
63
- value_type __value_;
64
- };
65
-
66
- inline _LIBCPP_INLINE_VISIBILITY
67
- bool
68
- __is_power2(size_t __bc)
69
- {
70
- return __bc > 2 && !(__bc & (__bc - 1));
71
- }
72
-
73
- inline _LIBCPP_INLINE_VISIBILITY
74
- size_t
75
- __constrain_hash(size_t __h, size_t __bc)
76
- {
77
- return !(__bc & (__bc - 1)) ? __h & (__bc - 1) : __h % __bc;
78
- }
79
-
80
- inline _LIBCPP_INLINE_VISIBILITY
81
- size_t
82
- __next_pow2(size_t __n)
83
- {
84
- return size_t(1) << (std::numeric_limits<size_t>::digits - __clz(__n-1));
85
- }
86
-
87
- template <class _Tp, class _Hash, class _Equal, class _Alloc> class __hash_table;
88
- template <class _ConstNodePtr> class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
89
- template <class _HashIterator> class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator;
90
- template <class _HashIterator> class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
91
- template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
92
- class _LIBCPP_TYPE_VIS_ONLY unordered_map;
93
-
94
- template <class _NodePtr>
95
- class _LIBCPP_TYPE_VIS_ONLY __hash_iterator
96
- {
97
- typedef _NodePtr __node_pointer;
98
-
99
- __node_pointer __node_;
100
-
101
- public:
102
- typedef forward_iterator_tag iterator_category;
103
- typedef typename pointer_traits<__node_pointer>::element_type::value_type value_type;
104
- typedef typename pointer_traits<__node_pointer>::difference_type difference_type;
105
- typedef value_type& reference;
106
- typedef typename pointer_traits<__node_pointer>::template
107
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
108
- rebind<value_type>
109
- #else
110
- rebind<value_type>::other
111
- #endif
112
- pointer;
113
-
114
- _LIBCPP_INLINE_VISIBILITY __hash_iterator() _NOEXCEPT
115
- #if _LIBCPP_STD_VER > 11
116
- : __node_(nullptr)
117
- #endif
118
- {
119
- #if _LIBCPP_DEBUG_LEVEL >= 2
120
- __get_db()->__insert_i(this);
121
- #endif
122
- }
123
-
124
- #if _LIBCPP_DEBUG_LEVEL >= 2
125
-
126
- _LIBCPP_INLINE_VISIBILITY
127
- __hash_iterator(const __hash_iterator& __i)
128
- : __node_(__i.__node_)
129
- {
130
- __get_db()->__iterator_copy(this, &__i);
131
- }
132
-
133
- _LIBCPP_INLINE_VISIBILITY
134
- ~__hash_iterator()
135
- {
136
- __get_db()->__erase_i(this);
137
- }
138
-
139
- _LIBCPP_INLINE_VISIBILITY
140
- __hash_iterator& operator=(const __hash_iterator& __i)
141
- {
142
- if (this != &__i)
143
- {
144
- __get_db()->__iterator_copy(this, &__i);
145
- __node_ = __i.__node_;
146
- }
147
- return *this;
148
- }
149
-
150
- #endif // _LIBCPP_DEBUG_LEVEL >= 2
151
-
152
- _LIBCPP_INLINE_VISIBILITY
153
- reference operator*() const
154
- {
155
- #if _LIBCPP_DEBUG_LEVEL >= 2
156
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
157
- "Attempted to dereference a non-dereferenceable unordered container iterator");
158
- #endif
159
- return __node_->__value_;
160
- }
161
- _LIBCPP_INLINE_VISIBILITY
162
- pointer operator->() const
163
- {
164
- #if _LIBCPP_DEBUG_LEVEL >= 2
165
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
166
- "Attempted to dereference a non-dereferenceable unordered container iterator");
167
- #endif
168
- return pointer_traits<pointer>::pointer_to(__node_->__value_);
169
- }
170
-
171
- _LIBCPP_INLINE_VISIBILITY
172
- __hash_iterator& operator++()
173
- {
174
- #if _LIBCPP_DEBUG_LEVEL >= 2
175
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
176
- "Attempted to increment non-incrementable unordered container iterator");
177
- #endif
178
- __node_ = __node_->__next_;
179
- return *this;
180
- }
181
-
182
- _LIBCPP_INLINE_VISIBILITY
183
- __hash_iterator operator++(int)
184
- {
185
- __hash_iterator __t(*this);
186
- ++(*this);
187
- return __t;
188
- }
189
-
190
- friend _LIBCPP_INLINE_VISIBILITY
191
- bool operator==(const __hash_iterator& __x, const __hash_iterator& __y)
192
- {
193
- return __x.__node_ == __y.__node_;
194
- }
195
- friend _LIBCPP_INLINE_VISIBILITY
196
- bool operator!=(const __hash_iterator& __x, const __hash_iterator& __y)
197
- {return !(__x == __y);}
198
-
199
- private:
200
- #if _LIBCPP_DEBUG_LEVEL >= 2
201
- _LIBCPP_INLINE_VISIBILITY
202
- __hash_iterator(__node_pointer __node, const void* __c) _NOEXCEPT
203
- : __node_(__node)
204
- {
205
- __get_db()->__insert_ic(this, __c);
206
- }
207
- #else
208
- _LIBCPP_INLINE_VISIBILITY
209
- __hash_iterator(__node_pointer __node) _NOEXCEPT
210
- : __node_(__node)
211
- {}
212
- #endif
213
-
214
- template <class, class, class, class> friend class __hash_table;
215
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
216
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator;
217
- template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
218
- template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
219
- };
220
-
221
- template <class _ConstNodePtr>
222
- class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator
223
- {
224
- typedef _ConstNodePtr __node_pointer;
225
-
226
- __node_pointer __node_;
227
-
228
- typedef typename remove_const<
229
- typename pointer_traits<__node_pointer>::element_type
230
- >::type __node;
231
-
232
- public:
233
- typedef forward_iterator_tag iterator_category;
234
- typedef typename __node::value_type value_type;
235
- typedef typename pointer_traits<__node_pointer>::difference_type difference_type;
236
- typedef const value_type& reference;
237
- typedef typename pointer_traits<__node_pointer>::template
238
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
239
- rebind<const value_type>
240
- #else
241
- rebind<const value_type>::other
242
- #endif
243
- pointer;
244
- typedef typename pointer_traits<__node_pointer>::template
245
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
246
- rebind<__node>
247
- #else
248
- rebind<__node>::other
249
- #endif
250
- __non_const_node_pointer;
251
- typedef __hash_iterator<__non_const_node_pointer> __non_const_iterator;
252
-
253
- _LIBCPP_INLINE_VISIBILITY __hash_const_iterator() _NOEXCEPT
254
- #if _LIBCPP_STD_VER > 11
255
- : __node_(nullptr)
256
- #endif
257
- {
258
- #if _LIBCPP_DEBUG_LEVEL >= 2
259
- __get_db()->__insert_i(this);
260
- #endif
261
- }
262
- _LIBCPP_INLINE_VISIBILITY
263
- __hash_const_iterator(const __non_const_iterator& __x) _NOEXCEPT
264
- : __node_(__x.__node_)
265
- {
266
- #if _LIBCPP_DEBUG_LEVEL >= 2
267
- __get_db()->__iterator_copy(this, &__x);
268
- #endif
269
- }
270
-
271
- #if _LIBCPP_DEBUG_LEVEL >= 2
272
-
273
- _LIBCPP_INLINE_VISIBILITY
274
- __hash_const_iterator(const __hash_const_iterator& __i)
275
- : __node_(__i.__node_)
276
- {
277
- __get_db()->__iterator_copy(this, &__i);
278
- }
279
-
280
- _LIBCPP_INLINE_VISIBILITY
281
- ~__hash_const_iterator()
282
- {
283
- __get_db()->__erase_i(this);
284
- }
285
-
286
- _LIBCPP_INLINE_VISIBILITY
287
- __hash_const_iterator& operator=(const __hash_const_iterator& __i)
288
- {
289
- if (this != &__i)
290
- {
291
- __get_db()->__iterator_copy(this, &__i);
292
- __node_ = __i.__node_;
293
- }
294
- return *this;
295
- }
296
-
297
- #endif // _LIBCPP_DEBUG_LEVEL >= 2
298
-
299
- _LIBCPP_INLINE_VISIBILITY
300
- reference operator*() const
301
- {
302
- #if _LIBCPP_DEBUG_LEVEL >= 2
303
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
304
- "Attempted to dereference a non-dereferenceable unordered container const_iterator");
305
- #endif
306
- return __node_->__value_;
307
- }
308
- _LIBCPP_INLINE_VISIBILITY
309
- pointer operator->() const
310
- {
311
- #if _LIBCPP_DEBUG_LEVEL >= 2
312
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
313
- "Attempted to dereference a non-dereferenceable unordered container const_iterator");
314
- #endif
315
- return pointer_traits<pointer>::pointer_to(__node_->__value_);
316
- }
317
-
318
- _LIBCPP_INLINE_VISIBILITY
319
- __hash_const_iterator& operator++()
320
- {
321
- #if _LIBCPP_DEBUG_LEVEL >= 2
322
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
323
- "Attempted to increment non-incrementable unordered container const_iterator");
324
- #endif
325
- __node_ = __node_->__next_;
326
- return *this;
327
- }
328
-
329
- _LIBCPP_INLINE_VISIBILITY
330
- __hash_const_iterator operator++(int)
331
- {
332
- __hash_const_iterator __t(*this);
333
- ++(*this);
334
- return __t;
335
- }
336
-
337
- friend _LIBCPP_INLINE_VISIBILITY
338
- bool operator==(const __hash_const_iterator& __x, const __hash_const_iterator& __y)
339
- {
340
- return __x.__node_ == __y.__node_;
341
- }
342
- friend _LIBCPP_INLINE_VISIBILITY
343
- bool operator!=(const __hash_const_iterator& __x, const __hash_const_iterator& __y)
344
- {return !(__x == __y);}
345
-
346
- private:
347
- #if _LIBCPP_DEBUG_LEVEL >= 2
348
- _LIBCPP_INLINE_VISIBILITY
349
- __hash_const_iterator(__node_pointer __node, const void* __c) _NOEXCEPT
350
- : __node_(__node)
351
- {
352
- __get_db()->__insert_ic(this, __c);
353
- }
354
- #else
355
- _LIBCPP_INLINE_VISIBILITY
356
- __hash_const_iterator(__node_pointer __node) _NOEXCEPT
357
- : __node_(__node)
358
- {}
359
- #endif
360
-
361
- template <class, class, class, class> friend class __hash_table;
362
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
363
- template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
364
- template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
365
- };
366
-
367
- template <class _ConstNodePtr> class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
368
-
369
- template <class _NodePtr>
370
- class _LIBCPP_TYPE_VIS_ONLY __hash_local_iterator
371
- {
372
- typedef _NodePtr __node_pointer;
373
-
374
- __node_pointer __node_;
375
- size_t __bucket_;
376
- size_t __bucket_count_;
377
-
378
- typedef pointer_traits<__node_pointer> __pointer_traits;
379
- public:
380
- typedef forward_iterator_tag iterator_category;
381
- typedef typename __pointer_traits::element_type::value_type value_type;
382
- typedef typename __pointer_traits::difference_type difference_type;
383
- typedef value_type& reference;
384
- typedef typename __pointer_traits::template
385
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
386
- rebind<value_type>
387
- #else
388
- rebind<value_type>::other
389
- #endif
390
- pointer;
391
-
392
- _LIBCPP_INLINE_VISIBILITY __hash_local_iterator() _NOEXCEPT
393
- {
394
- #if _LIBCPP_DEBUG_LEVEL >= 2
395
- __get_db()->__insert_i(this);
396
- #endif
397
- }
398
-
399
- #if _LIBCPP_DEBUG_LEVEL >= 2
400
-
401
- _LIBCPP_INLINE_VISIBILITY
402
- __hash_local_iterator(const __hash_local_iterator& __i)
403
- : __node_(__i.__node_),
404
- __bucket_(__i.__bucket_),
405
- __bucket_count_(__i.__bucket_count_)
406
- {
407
- __get_db()->__iterator_copy(this, &__i);
408
- }
409
-
410
- _LIBCPP_INLINE_VISIBILITY
411
- ~__hash_local_iterator()
412
- {
413
- __get_db()->__erase_i(this);
414
- }
415
-
416
- _LIBCPP_INLINE_VISIBILITY
417
- __hash_local_iterator& operator=(const __hash_local_iterator& __i)
418
- {
419
- if (this != &__i)
420
- {
421
- __get_db()->__iterator_copy(this, &__i);
422
- __node_ = __i.__node_;
423
- __bucket_ = __i.__bucket_;
424
- __bucket_count_ = __i.__bucket_count_;
425
- }
426
- return *this;
427
- }
428
-
429
- #endif // _LIBCPP_DEBUG_LEVEL >= 2
430
-
431
- _LIBCPP_INLINE_VISIBILITY
432
- reference operator*() const
433
- {
434
- #if _LIBCPP_DEBUG_LEVEL >= 2
435
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
436
- "Attempted to dereference a non-dereferenceable unordered container local_iterator");
437
- #endif
438
- return __node_->__value_;
439
- }
440
- _LIBCPP_INLINE_VISIBILITY
441
- pointer operator->() const
442
- {
443
- #if _LIBCPP_DEBUG_LEVEL >= 2
444
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
445
- "Attempted to dereference a non-dereferenceable unordered container local_iterator");
446
- #endif
447
- return pointer_traits<pointer>::pointer_to(__node_->__value_);
448
- }
449
-
450
- _LIBCPP_INLINE_VISIBILITY
451
- __hash_local_iterator& operator++()
452
- {
453
- #if _LIBCPP_DEBUG_LEVEL >= 2
454
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
455
- "Attempted to increment non-incrementable unordered container local_iterator");
456
- #endif
457
- __node_ = __node_->__next_;
458
- if (__node_ != nullptr && __constrain_hash(__node_->__hash_, __bucket_count_) != __bucket_)
459
- __node_ = nullptr;
460
- return *this;
461
- }
462
-
463
- _LIBCPP_INLINE_VISIBILITY
464
- __hash_local_iterator operator++(int)
465
- {
466
- __hash_local_iterator __t(*this);
467
- ++(*this);
468
- return __t;
469
- }
470
-
471
- friend _LIBCPP_INLINE_VISIBILITY
472
- bool operator==(const __hash_local_iterator& __x, const __hash_local_iterator& __y)
473
- {
474
- return __x.__node_ == __y.__node_;
475
- }
476
- friend _LIBCPP_INLINE_VISIBILITY
477
- bool operator!=(const __hash_local_iterator& __x, const __hash_local_iterator& __y)
478
- {return !(__x == __y);}
479
-
480
- private:
481
- #if _LIBCPP_DEBUG_LEVEL >= 2
482
- _LIBCPP_INLINE_VISIBILITY
483
- __hash_local_iterator(__node_pointer __node, size_t __bucket,
484
- size_t __bucket_count, const void* __c) _NOEXCEPT
485
- : __node_(__node),
486
- __bucket_(__bucket),
487
- __bucket_count_(__bucket_count)
488
- {
489
- __get_db()->__insert_ic(this, __c);
490
- if (__node_ != nullptr)
491
- __node_ = __node_->__next_;
492
- }
493
- #else
494
- _LIBCPP_INLINE_VISIBILITY
495
- __hash_local_iterator(__node_pointer __node, size_t __bucket,
496
- size_t __bucket_count) _NOEXCEPT
497
- : __node_(__node),
498
- __bucket_(__bucket),
499
- __bucket_count_(__bucket_count)
500
- {
501
- if (__node_ != nullptr)
502
- __node_ = __node_->__next_;
503
- }
504
- #endif
505
- template <class, class, class, class> friend class __hash_table;
506
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
507
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator;
508
- };
509
-
510
- template <class _ConstNodePtr>
511
- class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator
512
- {
513
- typedef _ConstNodePtr __node_pointer;
514
-
515
- __node_pointer __node_;
516
- size_t __bucket_;
517
- size_t __bucket_count_;
518
-
519
- typedef pointer_traits<__node_pointer> __pointer_traits;
520
- typedef typename __pointer_traits::element_type __node;
521
- typedef typename remove_const<__node>::type __non_const_node;
522
- typedef typename pointer_traits<__node_pointer>::template
523
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
524
- rebind<__non_const_node>
525
- #else
526
- rebind<__non_const_node>::other
527
- #endif
528
- __non_const_node_pointer;
529
- typedef __hash_local_iterator<__non_const_node_pointer>
530
- __non_const_iterator;
531
- public:
532
- typedef forward_iterator_tag iterator_category;
533
- typedef typename remove_const<
534
- typename __pointer_traits::element_type::value_type
535
- >::type value_type;
536
- typedef typename __pointer_traits::difference_type difference_type;
537
- typedef const value_type& reference;
538
- typedef typename __pointer_traits::template
539
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
540
- rebind<const value_type>
541
- #else
542
- rebind<const value_type>::other
543
- #endif
544
- pointer;
545
-
546
- _LIBCPP_INLINE_VISIBILITY __hash_const_local_iterator() _NOEXCEPT
547
- {
548
- #if _LIBCPP_DEBUG_LEVEL >= 2
549
- __get_db()->__insert_i(this);
550
- #endif
551
- }
552
-
553
- _LIBCPP_INLINE_VISIBILITY
554
- __hash_const_local_iterator(const __non_const_iterator& __x) _NOEXCEPT
555
- : __node_(__x.__node_),
556
- __bucket_(__x.__bucket_),
557
- __bucket_count_(__x.__bucket_count_)
558
- {
559
- #if _LIBCPP_DEBUG_LEVEL >= 2
560
- __get_db()->__iterator_copy(this, &__x);
561
- #endif
562
- }
563
-
564
- #if _LIBCPP_DEBUG_LEVEL >= 2
565
-
566
- _LIBCPP_INLINE_VISIBILITY
567
- __hash_const_local_iterator(const __hash_const_local_iterator& __i)
568
- : __node_(__i.__node_),
569
- __bucket_(__i.__bucket_),
570
- __bucket_count_(__i.__bucket_count_)
571
- {
572
- __get_db()->__iterator_copy(this, &__i);
573
- }
574
-
575
- _LIBCPP_INLINE_VISIBILITY
576
- ~__hash_const_local_iterator()
577
- {
578
- __get_db()->__erase_i(this);
579
- }
580
-
581
- _LIBCPP_INLINE_VISIBILITY
582
- __hash_const_local_iterator& operator=(const __hash_const_local_iterator& __i)
583
- {
584
- if (this != &__i)
585
- {
586
- __get_db()->__iterator_copy(this, &__i);
587
- __node_ = __i.__node_;
588
- __bucket_ = __i.__bucket_;
589
- __bucket_count_ = __i.__bucket_count_;
590
- }
591
- return *this;
592
- }
593
-
594
- #endif // _LIBCPP_DEBUG_LEVEL >= 2
595
-
596
- _LIBCPP_INLINE_VISIBILITY
597
- reference operator*() const
598
- {
599
- #if _LIBCPP_DEBUG_LEVEL >= 2
600
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
601
- "Attempted to dereference a non-dereferenceable unordered container const_local_iterator");
602
- #endif
603
- return __node_->__value_;
604
- }
605
- _LIBCPP_INLINE_VISIBILITY
606
- pointer operator->() const
607
- {
608
- #if _LIBCPP_DEBUG_LEVEL >= 2
609
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
610
- "Attempted to dereference a non-dereferenceable unordered container const_local_iterator");
611
- #endif
612
- return pointer_traits<pointer>::pointer_to(__node_->__value_);
613
- }
614
-
615
- _LIBCPP_INLINE_VISIBILITY
616
- __hash_const_local_iterator& operator++()
617
- {
618
- #if _LIBCPP_DEBUG_LEVEL >= 2
619
- _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
620
- "Attempted to increment non-incrementable unordered container const_local_iterator");
621
- #endif
622
- __node_ = __node_->__next_;
623
- if (__node_ != nullptr && __constrain_hash(__node_->__hash_, __bucket_count_) != __bucket_)
624
- __node_ = nullptr;
625
- return *this;
626
- }
627
-
628
- _LIBCPP_INLINE_VISIBILITY
629
- __hash_const_local_iterator operator++(int)
630
- {
631
- __hash_const_local_iterator __t(*this);
632
- ++(*this);
633
- return __t;
634
- }
635
-
636
- friend _LIBCPP_INLINE_VISIBILITY
637
- bool operator==(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y)
638
- {
639
- return __x.__node_ == __y.__node_;
640
- }
641
- friend _LIBCPP_INLINE_VISIBILITY
642
- bool operator!=(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y)
643
- {return !(__x == __y);}
644
-
645
- private:
646
- #if _LIBCPP_DEBUG_LEVEL >= 2
647
- _LIBCPP_INLINE_VISIBILITY
648
- __hash_const_local_iterator(__node_pointer __node, size_t __bucket,
649
- size_t __bucket_count, const void* __c) _NOEXCEPT
650
- : __node_(__node),
651
- __bucket_(__bucket),
652
- __bucket_count_(__bucket_count)
653
- {
654
- __get_db()->__insert_ic(this, __c);
655
- if (__node_ != nullptr)
656
- __node_ = __node_->__next_;
657
- }
658
- #else
659
- _LIBCPP_INLINE_VISIBILITY
660
- __hash_const_local_iterator(__node_pointer __node, size_t __bucket,
661
- size_t __bucket_count) _NOEXCEPT
662
- : __node_(__node),
663
- __bucket_(__bucket),
664
- __bucket_count_(__bucket_count)
665
- {
666
- if (__node_ != nullptr)
667
- __node_ = __node_->__next_;
668
- }
669
- #endif
670
- template <class, class, class, class> friend class __hash_table;
671
- template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
672
- };
673
-
674
- template <class _Alloc>
675
- class __bucket_list_deallocator
676
- {
677
- typedef _Alloc allocator_type;
678
- typedef allocator_traits<allocator_type> __alloc_traits;
679
- typedef typename __alloc_traits::size_type size_type;
680
-
681
- __compressed_pair<size_type, allocator_type> __data_;
682
- public:
683
- typedef typename __alloc_traits::pointer pointer;
684
-
685
- _LIBCPP_INLINE_VISIBILITY
686
- __bucket_list_deallocator()
687
- _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
688
- : __data_(0) {}
689
-
690
- _LIBCPP_INLINE_VISIBILITY
691
- __bucket_list_deallocator(const allocator_type& __a, size_type __size)
692
- _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
693
- : __data_(__size, __a) {}
694
-
695
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
696
-
697
- _LIBCPP_INLINE_VISIBILITY
698
- __bucket_list_deallocator(__bucket_list_deallocator&& __x)
699
- _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
700
- : __data_(_VSTD::move(__x.__data_))
701
- {
702
- __x.size() = 0;
703
- }
704
-
705
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
706
-
707
- _LIBCPP_INLINE_VISIBILITY
708
- size_type& size() _NOEXCEPT {return __data_.first();}
709
- _LIBCPP_INLINE_VISIBILITY
710
- size_type size() const _NOEXCEPT {return __data_.first();}
711
-
712
- _LIBCPP_INLINE_VISIBILITY
713
- allocator_type& __alloc() _NOEXCEPT {return __data_.second();}
714
- _LIBCPP_INLINE_VISIBILITY
715
- const allocator_type& __alloc() const _NOEXCEPT {return __data_.second();}
716
-
717
- _LIBCPP_INLINE_VISIBILITY
718
- void operator()(pointer __p) _NOEXCEPT
719
- {
720
- __alloc_traits::deallocate(__alloc(), __p, size());
721
- }
722
- };
723
-
724
- template <class _Alloc> class __hash_map_node_destructor;
725
-
726
- template <class _Alloc>
727
- class __hash_node_destructor
728
- {
729
- typedef _Alloc allocator_type;
730
- typedef allocator_traits<allocator_type> __alloc_traits;
731
- typedef typename __alloc_traits::value_type::value_type value_type;
732
- public:
733
- typedef typename __alloc_traits::pointer pointer;
734
- private:
735
-
736
- allocator_type& __na_;
737
-
738
- __hash_node_destructor& operator=(const __hash_node_destructor&);
739
-
740
- public:
741
- bool __value_constructed;
742
-
743
- _LIBCPP_INLINE_VISIBILITY
744
- explicit __hash_node_destructor(allocator_type& __na,
745
- bool __constructed = false) _NOEXCEPT
746
- : __na_(__na),
747
- __value_constructed(__constructed)
748
- {}
749
-
750
- _LIBCPP_INLINE_VISIBILITY
751
- void operator()(pointer __p) _NOEXCEPT
752
- {
753
- if (__value_constructed)
754
- __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_));
755
- if (__p)
756
- __alloc_traits::deallocate(__na_, __p, 1);
757
- }
758
-
759
- template <class> friend class __hash_map_node_destructor;
760
- };
761
-
762
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
763
- class __hash_table
764
- {
765
- public:
766
- typedef _Tp value_type;
767
- typedef _Hash hasher;
768
- typedef _Equal key_equal;
769
- typedef _Alloc allocator_type;
770
-
771
- private:
772
- typedef allocator_traits<allocator_type> __alloc_traits;
773
- public:
774
- typedef value_type& reference;
775
- typedef const value_type& const_reference;
776
- typedef typename __alloc_traits::pointer pointer;
777
- typedef typename __alloc_traits::const_pointer const_pointer;
778
- typedef typename __alloc_traits::size_type size_type;
779
- typedef typename __alloc_traits::difference_type difference_type;
780
- public:
781
- // Create __node
782
- typedef __hash_node<value_type, typename __alloc_traits::void_pointer> __node;
783
- typedef typename __alloc_traits::template
784
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
785
- rebind_alloc<__node>
786
- #else
787
- rebind_alloc<__node>::other
788
- #endif
789
- __node_allocator;
790
- typedef allocator_traits<__node_allocator> __node_traits;
791
- typedef typename __node_traits::pointer __node_pointer;
792
- typedef typename __node_traits::pointer __node_const_pointer;
793
- typedef __hash_node_base<__node_pointer> __first_node;
794
- typedef typename pointer_traits<__node_pointer>::template
795
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
796
- rebind<__first_node>
797
- #else
798
- rebind<__first_node>::other
799
- #endif
800
- __node_base_pointer;
801
-
802
- private:
803
-
804
- typedef typename __node_traits::template
805
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
806
- rebind_alloc<__node_pointer>
807
- #else
808
- rebind_alloc<__node_pointer>::other
809
- #endif
810
- __pointer_allocator;
811
- typedef __bucket_list_deallocator<__pointer_allocator> __bucket_list_deleter;
812
- typedef unique_ptr<__node_pointer[], __bucket_list_deleter> __bucket_list;
813
- typedef allocator_traits<__pointer_allocator> __pointer_alloc_traits;
814
- typedef typename __bucket_list_deleter::pointer __node_pointer_pointer;
815
-
816
- // --- Member data begin ---
817
- __bucket_list __bucket_list_;
818
- __compressed_pair<__first_node, __node_allocator> __p1_;
819
- __compressed_pair<size_type, hasher> __p2_;
820
- __compressed_pair<float, key_equal> __p3_;
821
- // --- Member data end ---
822
-
823
- _LIBCPP_INLINE_VISIBILITY
824
- size_type& size() _NOEXCEPT {return __p2_.first();}
825
- public:
826
- _LIBCPP_INLINE_VISIBILITY
827
- size_type size() const _NOEXCEPT {return __p2_.first();}
828
-
829
- _LIBCPP_INLINE_VISIBILITY
830
- hasher& hash_function() _NOEXCEPT {return __p2_.second();}
831
- _LIBCPP_INLINE_VISIBILITY
832
- const hasher& hash_function() const _NOEXCEPT {return __p2_.second();}
833
-
834
- _LIBCPP_INLINE_VISIBILITY
835
- float& max_load_factor() _NOEXCEPT {return __p3_.first();}
836
- _LIBCPP_INLINE_VISIBILITY
837
- float max_load_factor() const _NOEXCEPT {return __p3_.first();}
838
-
839
- _LIBCPP_INLINE_VISIBILITY
840
- key_equal& key_eq() _NOEXCEPT {return __p3_.second();}
841
- _LIBCPP_INLINE_VISIBILITY
842
- const key_equal& key_eq() const _NOEXCEPT {return __p3_.second();}
843
-
844
- _LIBCPP_INLINE_VISIBILITY
845
- __node_allocator& __node_alloc() _NOEXCEPT {return __p1_.second();}
846
- _LIBCPP_INLINE_VISIBILITY
847
- const __node_allocator& __node_alloc() const _NOEXCEPT
848
- {return __p1_.second();}
849
-
850
- public:
851
- typedef __hash_iterator<__node_pointer> iterator;
852
- typedef __hash_const_iterator<__node_pointer> const_iterator;
853
- typedef __hash_local_iterator<__node_pointer> local_iterator;
854
- typedef __hash_const_local_iterator<__node_pointer> const_local_iterator;
855
-
856
- __hash_table()
857
- _NOEXCEPT_(
858
- is_nothrow_default_constructible<__bucket_list>::value &&
859
- is_nothrow_default_constructible<__first_node>::value &&
860
- is_nothrow_default_constructible<__node_allocator>::value &&
861
- is_nothrow_default_constructible<hasher>::value &&
862
- is_nothrow_default_constructible<key_equal>::value);
863
- __hash_table(const hasher& __hf, const key_equal& __eql);
864
- __hash_table(const hasher& __hf, const key_equal& __eql,
865
- const allocator_type& __a);
866
- explicit __hash_table(const allocator_type& __a);
867
- __hash_table(const __hash_table& __u);
868
- __hash_table(const __hash_table& __u, const allocator_type& __a);
869
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
870
- __hash_table(__hash_table&& __u)
871
- _NOEXCEPT_(
872
- is_nothrow_move_constructible<__bucket_list>::value &&
873
- is_nothrow_move_constructible<__first_node>::value &&
874
- is_nothrow_move_constructible<__node_allocator>::value &&
875
- is_nothrow_move_constructible<hasher>::value &&
876
- is_nothrow_move_constructible<key_equal>::value);
877
- __hash_table(__hash_table&& __u, const allocator_type& __a);
878
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
879
- ~__hash_table();
880
-
881
- __hash_table& operator=(const __hash_table& __u);
882
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
883
- __hash_table& operator=(__hash_table&& __u)
884
- _NOEXCEPT_(
885
- __node_traits::propagate_on_container_move_assignment::value &&
886
- is_nothrow_move_assignable<__node_allocator>::value &&
887
- is_nothrow_move_assignable<hasher>::value &&
888
- is_nothrow_move_assignable<key_equal>::value);
889
- #endif
890
- template <class _InputIterator>
891
- void __assign_unique(_InputIterator __first, _InputIterator __last);
892
- template <class _InputIterator>
893
- void __assign_multi(_InputIterator __first, _InputIterator __last);
894
-
895
- _LIBCPP_INLINE_VISIBILITY
896
- size_type max_size() const _NOEXCEPT
897
- {
898
- return allocator_traits<__pointer_allocator>::max_size(
899
- __bucket_list_.get_deleter().__alloc());
900
- }
901
-
902
- pair<iterator, bool> __node_insert_unique(__node_pointer __nd);
903
- iterator __node_insert_multi(__node_pointer __nd);
904
- iterator __node_insert_multi(const_iterator __p,
905
- __node_pointer __nd);
906
-
907
- #if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
908
- template <class... _Args>
909
- pair<iterator, bool> __emplace_unique(_Args&&... __args);
910
- template <class... _Args>
911
- iterator __emplace_multi(_Args&&... __args);
912
- template <class... _Args>
913
- iterator __emplace_hint_multi(const_iterator __p, _Args&&... __args);
914
- #endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)
915
-
916
- pair<iterator, bool> __insert_unique(const value_type& __x);
917
-
918
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
919
- template <class _Pp>
920
- pair<iterator, bool> __insert_unique(_Pp&& __x);
921
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
922
-
923
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
924
- template <class _Pp>
925
- iterator __insert_multi(_Pp&& __x);
926
- template <class _Pp>
927
- iterator __insert_multi(const_iterator __p, _Pp&& __x);
928
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
929
- iterator __insert_multi(const value_type& __x);
930
- iterator __insert_multi(const_iterator __p, const value_type& __x);
931
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
932
-
933
- void clear() _NOEXCEPT;
934
- void rehash(size_type __n);
935
- _LIBCPP_INLINE_VISIBILITY void reserve(size_type __n)
936
- {rehash(static_cast<size_type>(ceil(__n / max_load_factor())));}
937
-
938
- _LIBCPP_INLINE_VISIBILITY
939
- size_type bucket_count() const _NOEXCEPT
940
- {
941
- return __bucket_list_.get_deleter().size();
942
- }
943
-
944
- iterator begin() _NOEXCEPT;
945
- iterator end() _NOEXCEPT;
946
- const_iterator begin() const _NOEXCEPT;
947
- const_iterator end() const _NOEXCEPT;
948
-
949
- template <class _Key>
950
- _LIBCPP_INLINE_VISIBILITY
951
- size_type bucket(const _Key& __k) const
952
- {
953
- _LIBCPP_ASSERT(bucket_count() > 0,
954
- "unordered container::bucket(key) called when bucket_count() == 0");
955
- return __constrain_hash(hash_function()(__k), bucket_count());
956
- }
957
-
958
- template <class _Key>
959
- iterator find(const _Key& __x);
960
- template <class _Key>
961
- const_iterator find(const _Key& __x) const;
962
-
963
- typedef __hash_node_destructor<__node_allocator> _Dp;
964
- typedef unique_ptr<__node, _Dp> __node_holder;
965
-
966
- iterator erase(const_iterator __p);
967
- iterator erase(const_iterator __first, const_iterator __last);
968
- template <class _Key>
969
- size_type __erase_unique(const _Key& __k);
970
- template <class _Key>
971
- size_type __erase_multi(const _Key& __k);
972
- __node_holder remove(const_iterator __p) _NOEXCEPT;
973
-
974
- template <class _Key>
975
- size_type __count_unique(const _Key& __k) const;
976
- template <class _Key>
977
- size_type __count_multi(const _Key& __k) const;
978
-
979
- template <class _Key>
980
- pair<iterator, iterator>
981
- __equal_range_unique(const _Key& __k);
982
- template <class _Key>
983
- pair<const_iterator, const_iterator>
984
- __equal_range_unique(const _Key& __k) const;
985
-
986
- template <class _Key>
987
- pair<iterator, iterator>
988
- __equal_range_multi(const _Key& __k);
989
- template <class _Key>
990
- pair<const_iterator, const_iterator>
991
- __equal_range_multi(const _Key& __k) const;
992
-
993
- void swap(__hash_table& __u)
994
- _NOEXCEPT_(
995
- (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value ||
996
- __is_nothrow_swappable<__pointer_allocator>::value) &&
997
- (!__node_traits::propagate_on_container_swap::value ||
998
- __is_nothrow_swappable<__node_allocator>::value) &&
999
- __is_nothrow_swappable<hasher>::value &&
1000
- __is_nothrow_swappable<key_equal>::value);
1001
-
1002
- _LIBCPP_INLINE_VISIBILITY
1003
- size_type max_bucket_count() const _NOEXCEPT
1004
- {return __pointer_alloc_traits::max_size(__bucket_list_.get_deleter().__alloc());}
1005
- size_type bucket_size(size_type __n) const;
1006
- _LIBCPP_INLINE_VISIBILITY float load_factor() const _NOEXCEPT
1007
- {
1008
- size_type __bc = bucket_count();
1009
- return __bc != 0 ? (float)size() / __bc : 0.f;
1010
- }
1011
- _LIBCPP_INLINE_VISIBILITY void max_load_factor(float __mlf) _NOEXCEPT
1012
- {
1013
- _LIBCPP_ASSERT(__mlf > 0,
1014
- "unordered container::max_load_factor(lf) called with lf <= 0");
1015
- max_load_factor() = _VSTD::max(__mlf, load_factor());
1016
- }
1017
-
1018
- _LIBCPP_INLINE_VISIBILITY
1019
- local_iterator
1020
- begin(size_type __n)
1021
- {
1022
- _LIBCPP_ASSERT(__n < bucket_count(),
1023
- "unordered container::begin(n) called with n >= bucket_count()");
1024
- #if _LIBCPP_DEBUG_LEVEL >= 2
1025
- return local_iterator(__bucket_list_[__n], __n, bucket_count(), this);
1026
- #else
1027
- return local_iterator(__bucket_list_[__n], __n, bucket_count());
1028
- #endif
1029
- }
1030
-
1031
- _LIBCPP_INLINE_VISIBILITY
1032
- local_iterator
1033
- end(size_type __n)
1034
- {
1035
- _LIBCPP_ASSERT(__n < bucket_count(),
1036
- "unordered container::end(n) called with n >= bucket_count()");
1037
- #if _LIBCPP_DEBUG_LEVEL >= 2
1038
- return local_iterator(nullptr, __n, bucket_count(), this);
1039
- #else
1040
- return local_iterator(nullptr, __n, bucket_count());
1041
- #endif
1042
- }
1043
-
1044
- _LIBCPP_INLINE_VISIBILITY
1045
- const_local_iterator
1046
- cbegin(size_type __n) const
1047
- {
1048
- _LIBCPP_ASSERT(__n < bucket_count(),
1049
- "unordered container::cbegin(n) called with n >= bucket_count()");
1050
- #if _LIBCPP_DEBUG_LEVEL >= 2
1051
- return const_local_iterator(__bucket_list_[__n], __n, bucket_count(), this);
1052
- #else
1053
- return const_local_iterator(__bucket_list_[__n], __n, bucket_count());
1054
- #endif
1055
- }
1056
-
1057
- _LIBCPP_INLINE_VISIBILITY
1058
- const_local_iterator
1059
- cend(size_type __n) const
1060
- {
1061
- _LIBCPP_ASSERT(__n < bucket_count(),
1062
- "unordered container::cend(n) called with n >= bucket_count()");
1063
- #if _LIBCPP_DEBUG_LEVEL >= 2
1064
- return const_local_iterator(nullptr, __n, bucket_count(), this);
1065
- #else
1066
- return const_local_iterator(nullptr, __n, bucket_count());
1067
- #endif
1068
- }
1069
-
1070
- #if _LIBCPP_DEBUG_LEVEL >= 2
1071
-
1072
- bool __dereferenceable(const const_iterator* __i) const;
1073
- bool __decrementable(const const_iterator* __i) const;
1074
- bool __addable(const const_iterator* __i, ptrdiff_t __n) const;
1075
- bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const;
1076
-
1077
- #endif // _LIBCPP_DEBUG_LEVEL >= 2
1078
-
1079
- private:
1080
- void __rehash(size_type __n);
1081
-
1082
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1083
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1084
- template <class ..._Args>
1085
- __node_holder __construct_node(_Args&& ...__args);
1086
- #endif // _LIBCPP_HAS_NO_VARIADICS
1087
- __node_holder __construct_node(value_type&& __v, size_t __hash);
1088
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1089
- __node_holder __construct_node(const value_type& __v);
1090
- #endif
1091
- __node_holder __construct_node(const value_type& __v, size_t __hash);
1092
-
1093
- _LIBCPP_INLINE_VISIBILITY
1094
- void __copy_assign_alloc(const __hash_table& __u)
1095
- {__copy_assign_alloc(__u, integral_constant<bool,
1096
- __node_traits::propagate_on_container_copy_assignment::value>());}
1097
- void __copy_assign_alloc(const __hash_table& __u, true_type);
1098
- _LIBCPP_INLINE_VISIBILITY
1099
- void __copy_assign_alloc(const __hash_table&, false_type) {}
1100
-
1101
- void __move_assign(__hash_table& __u, false_type);
1102
- void __move_assign(__hash_table& __u, true_type)
1103
- _NOEXCEPT_(
1104
- is_nothrow_move_assignable<__node_allocator>::value &&
1105
- is_nothrow_move_assignable<hasher>::value &&
1106
- is_nothrow_move_assignable<key_equal>::value);
1107
- _LIBCPP_INLINE_VISIBILITY
1108
- void __move_assign_alloc(__hash_table& __u)
1109
- _NOEXCEPT_(
1110
- !__node_traits::propagate_on_container_move_assignment::value ||
1111
- (is_nothrow_move_assignable<__pointer_allocator>::value &&
1112
- is_nothrow_move_assignable<__node_allocator>::value))
1113
- {__move_assign_alloc(__u, integral_constant<bool,
1114
- __node_traits::propagate_on_container_move_assignment::value>());}
1115
- _LIBCPP_INLINE_VISIBILITY
1116
- void __move_assign_alloc(__hash_table& __u, true_type)
1117
- _NOEXCEPT_(
1118
- is_nothrow_move_assignable<__pointer_allocator>::value &&
1119
- is_nothrow_move_assignable<__node_allocator>::value)
1120
- {
1121
- __bucket_list_.get_deleter().__alloc() =
1122
- _VSTD::move(__u.__bucket_list_.get_deleter().__alloc());
1123
- __node_alloc() = _VSTD::move(__u.__node_alloc());
1124
- }
1125
- _LIBCPP_INLINE_VISIBILITY
1126
- void __move_assign_alloc(__hash_table&, false_type) _NOEXCEPT {}
1127
-
1128
- template <class _Ap>
1129
- _LIBCPP_INLINE_VISIBILITY
1130
- static
1131
- void
1132
- __swap_alloc(_Ap& __x, _Ap& __y)
1133
- _NOEXCEPT_(
1134
- !allocator_traits<_Ap>::propagate_on_container_swap::value ||
1135
- __is_nothrow_swappable<_Ap>::value)
1136
- {
1137
- __swap_alloc(__x, __y,
1138
- integral_constant<bool,
1139
- allocator_traits<_Ap>::propagate_on_container_swap::value
1140
- >());
1141
- }
1142
-
1143
- template <class _Ap>
1144
- _LIBCPP_INLINE_VISIBILITY
1145
- static
1146
- void
1147
- __swap_alloc(_Ap& __x, _Ap& __y, true_type)
1148
- _NOEXCEPT_(__is_nothrow_swappable<_Ap>::value)
1149
- {
1150
- using _VSTD::swap;
1151
- swap(__x, __y);
1152
- }
1153
-
1154
- template <class _Ap>
1155
- _LIBCPP_INLINE_VISIBILITY
1156
- static
1157
- void
1158
- __swap_alloc(_Ap&, _Ap&, false_type) _NOEXCEPT {}
1159
-
1160
- void __deallocate(__node_pointer __np) _NOEXCEPT;
1161
- __node_pointer __detach() _NOEXCEPT;
1162
-
1163
- template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
1164
- template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
1165
- };
1166
-
1167
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1168
- inline _LIBCPP_INLINE_VISIBILITY
1169
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table()
1170
- _NOEXCEPT_(
1171
- is_nothrow_default_constructible<__bucket_list>::value &&
1172
- is_nothrow_default_constructible<__first_node>::value &&
1173
- is_nothrow_default_constructible<hasher>::value &&
1174
- is_nothrow_default_constructible<key_equal>::value)
1175
- : __p2_(0),
1176
- __p3_(1.0f)
1177
- {
1178
- }
1179
-
1180
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1181
- inline _LIBCPP_INLINE_VISIBILITY
1182
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf,
1183
- const key_equal& __eql)
1184
- : __bucket_list_(nullptr, __bucket_list_deleter()),
1185
- __p1_(),
1186
- __p2_(0, __hf),
1187
- __p3_(1.0f, __eql)
1188
- {
1189
- }
1190
-
1191
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1192
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf,
1193
- const key_equal& __eql,
1194
- const allocator_type& __a)
1195
- : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),
1196
- __p1_(__node_allocator(__a)),
1197
- __p2_(0, __hf),
1198
- __p3_(1.0f, __eql)
1199
- {
1200
- }
1201
-
1202
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1203
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const allocator_type& __a)
1204
- : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),
1205
- __p1_(__node_allocator(__a)),
1206
- __p2_(0),
1207
- __p3_(1.0f)
1208
- {
1209
- }
1210
-
1211
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1212
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u)
1213
- : __bucket_list_(nullptr,
1214
- __bucket_list_deleter(allocator_traits<__pointer_allocator>::
1215
- select_on_container_copy_construction(
1216
- __u.__bucket_list_.get_deleter().__alloc()), 0)),
1217
- __p1_(allocator_traits<__node_allocator>::
1218
- select_on_container_copy_construction(__u.__node_alloc())),
1219
- __p2_(0, __u.hash_function()),
1220
- __p3_(__u.__p3_)
1221
- {
1222
- }
1223
-
1224
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1225
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u,
1226
- const allocator_type& __a)
1227
- : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),
1228
- __p1_(__node_allocator(__a)),
1229
- __p2_(0, __u.hash_function()),
1230
- __p3_(__u.__p3_)
1231
- {
1232
- }
1233
-
1234
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1235
-
1236
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1237
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u)
1238
- _NOEXCEPT_(
1239
- is_nothrow_move_constructible<__bucket_list>::value &&
1240
- is_nothrow_move_constructible<__first_node>::value &&
1241
- is_nothrow_move_constructible<hasher>::value &&
1242
- is_nothrow_move_constructible<key_equal>::value)
1243
- : __bucket_list_(_VSTD::move(__u.__bucket_list_)),
1244
- __p1_(_VSTD::move(__u.__p1_)),
1245
- __p2_(_VSTD::move(__u.__p2_)),
1246
- __p3_(_VSTD::move(__u.__p3_))
1247
- {
1248
- if (size() > 0)
1249
- {
1250
- __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] =
1251
- static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
1252
- __u.__p1_.first().__next_ = nullptr;
1253
- __u.size() = 0;
1254
- }
1255
- }
1256
-
1257
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1258
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u,
1259
- const allocator_type& __a)
1260
- : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),
1261
- __p1_(__node_allocator(__a)),
1262
- __p2_(0, _VSTD::move(__u.hash_function())),
1263
- __p3_(_VSTD::move(__u.__p3_))
1264
- {
1265
- if (__a == allocator_type(__u.__node_alloc()))
1266
- {
1267
- __bucket_list_.reset(__u.__bucket_list_.release());
1268
- __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size();
1269
- __u.__bucket_list_.get_deleter().size() = 0;
1270
- if (__u.size() > 0)
1271
- {
1272
- __p1_.first().__next_ = __u.__p1_.first().__next_;
1273
- __u.__p1_.first().__next_ = nullptr;
1274
- __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] =
1275
- static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
1276
- size() = __u.size();
1277
- __u.size() = 0;
1278
- }
1279
- }
1280
- }
1281
-
1282
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1283
-
1284
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1285
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::~__hash_table()
1286
- {
1287
- __deallocate(__p1_.first().__next_);
1288
- #if _LIBCPP_DEBUG_LEVEL >= 2
1289
- __get_db()->__erase_c(this);
1290
- #endif
1291
- }
1292
-
1293
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1294
- void
1295
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__copy_assign_alloc(
1296
- const __hash_table& __u, true_type)
1297
- {
1298
- if (__node_alloc() != __u.__node_alloc())
1299
- {
1300
- clear();
1301
- __bucket_list_.reset();
1302
- __bucket_list_.get_deleter().size() = 0;
1303
- }
1304
- __bucket_list_.get_deleter().__alloc() = __u.__bucket_list_.get_deleter().__alloc();
1305
- __node_alloc() = __u.__node_alloc();
1306
- }
1307
-
1308
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1309
- __hash_table<_Tp, _Hash, _Equal, _Alloc>&
1310
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(const __hash_table& __u)
1311
- {
1312
- if (this != &__u)
1313
- {
1314
- __copy_assign_alloc(__u);
1315
- hash_function() = __u.hash_function();
1316
- key_eq() = __u.key_eq();
1317
- max_load_factor() = __u.max_load_factor();
1318
- __assign_multi(__u.begin(), __u.end());
1319
- }
1320
- return *this;
1321
- }
1322
-
1323
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1324
- void
1325
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__deallocate(__node_pointer __np)
1326
- _NOEXCEPT
1327
- {
1328
- __node_allocator& __na = __node_alloc();
1329
- while (__np != nullptr)
1330
- {
1331
- __node_pointer __next = __np->__next_;
1332
- #if _LIBCPP_DEBUG_LEVEL >= 2
1333
- __c_node* __c = __get_db()->__find_c_and_lock(this);
1334
- for (__i_node** __p = __c->end_; __p != __c->beg_; )
1335
- {
1336
- --__p;
1337
- iterator* __i = static_cast<iterator*>((*__p)->__i_);
1338
- if (__i->__node_ == __np)
1339
- {
1340
- (*__p)->__c_ = nullptr;
1341
- if (--__c->end_ != __p)
1342
- memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));
1343
- }
1344
- }
1345
- __get_db()->unlock();
1346
- #endif
1347
- __node_traits::destroy(__na, _VSTD::addressof(__np->__value_));
1348
- __node_traits::deallocate(__na, __np, 1);
1349
- __np = __next;
1350
- }
1351
- }
1352
-
1353
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1354
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_pointer
1355
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__detach() _NOEXCEPT
1356
- {
1357
- size_type __bc = bucket_count();
1358
- for (size_type __i = 0; __i < __bc; ++__i)
1359
- __bucket_list_[__i] = nullptr;
1360
- size() = 0;
1361
- __node_pointer __cache = __p1_.first().__next_;
1362
- __p1_.first().__next_ = nullptr;
1363
- return __cache;
1364
- }
1365
-
1366
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1367
-
1368
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1369
- void
1370
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign(
1371
- __hash_table& __u, true_type)
1372
- _NOEXCEPT_(
1373
- is_nothrow_move_assignable<__node_allocator>::value &&
1374
- is_nothrow_move_assignable<hasher>::value &&
1375
- is_nothrow_move_assignable<key_equal>::value)
1376
- {
1377
- clear();
1378
- __bucket_list_.reset(__u.__bucket_list_.release());
1379
- __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size();
1380
- __u.__bucket_list_.get_deleter().size() = 0;
1381
- __move_assign_alloc(__u);
1382
- size() = __u.size();
1383
- hash_function() = _VSTD::move(__u.hash_function());
1384
- max_load_factor() = __u.max_load_factor();
1385
- key_eq() = _VSTD::move(__u.key_eq());
1386
- __p1_.first().__next_ = __u.__p1_.first().__next_;
1387
- if (size() > 0)
1388
- {
1389
- __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] =
1390
- static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
1391
- __u.__p1_.first().__next_ = nullptr;
1392
- __u.size() = 0;
1393
- }
1394
- #if _LIBCPP_DEBUG_LEVEL >= 2
1395
- __get_db()->swap(this, &__u);
1396
- #endif
1397
- }
1398
-
1399
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1400
- void
1401
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign(
1402
- __hash_table& __u, false_type)
1403
- {
1404
- if (__node_alloc() == __u.__node_alloc())
1405
- __move_assign(__u, true_type());
1406
- else
1407
- {
1408
- hash_function() = _VSTD::move(__u.hash_function());
1409
- key_eq() = _VSTD::move(__u.key_eq());
1410
- max_load_factor() = __u.max_load_factor();
1411
- if (bucket_count() != 0)
1412
- {
1413
- __node_pointer __cache = __detach();
1414
- #ifndef _LIBCPP_NO_EXCEPTIONS
1415
- try
1416
- {
1417
- #endif // _LIBCPP_NO_EXCEPTIONS
1418
- const_iterator __i = __u.begin();
1419
- while (__cache != nullptr && __u.size() != 0)
1420
- {
1421
- __cache->__value_ = _VSTD::move(__u.remove(__i++)->__value_);
1422
- __node_pointer __next = __cache->__next_;
1423
- __node_insert_multi(__cache);
1424
- __cache = __next;
1425
- }
1426
- #ifndef _LIBCPP_NO_EXCEPTIONS
1427
- }
1428
- catch (...)
1429
- {
1430
- __deallocate(__cache);
1431
- throw;
1432
- }
1433
- #endif // _LIBCPP_NO_EXCEPTIONS
1434
- __deallocate(__cache);
1435
- }
1436
- const_iterator __i = __u.begin();
1437
- while (__u.size() != 0)
1438
- {
1439
- __node_holder __h =
1440
- __construct_node(_VSTD::move(__u.remove(__i++)->__value_));
1441
- __node_insert_multi(__h.get());
1442
- __h.release();
1443
- }
1444
- }
1445
- }
1446
-
1447
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1448
- inline _LIBCPP_INLINE_VISIBILITY
1449
- __hash_table<_Tp, _Hash, _Equal, _Alloc>&
1450
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(__hash_table&& __u)
1451
- _NOEXCEPT_(
1452
- __node_traits::propagate_on_container_move_assignment::value &&
1453
- is_nothrow_move_assignable<__node_allocator>::value &&
1454
- is_nothrow_move_assignable<hasher>::value &&
1455
- is_nothrow_move_assignable<key_equal>::value)
1456
- {
1457
- __move_assign(__u, integral_constant<bool,
1458
- __node_traits::propagate_on_container_move_assignment::value>());
1459
- return *this;
1460
- }
1461
-
1462
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1463
-
1464
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1465
- template <class _InputIterator>
1466
- void
1467
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_unique(_InputIterator __first,
1468
- _InputIterator __last)
1469
- {
1470
- if (bucket_count() != 0)
1471
- {
1472
- __node_pointer __cache = __detach();
1473
- #ifndef _LIBCPP_NO_EXCEPTIONS
1474
- try
1475
- {
1476
- #endif // _LIBCPP_NO_EXCEPTIONS
1477
- for (; __cache != nullptr && __first != __last; ++__first)
1478
- {
1479
- __cache->__value_ = *__first;
1480
- __node_pointer __next = __cache->__next_;
1481
- __node_insert_unique(__cache);
1482
- __cache = __next;
1483
- }
1484
- #ifndef _LIBCPP_NO_EXCEPTIONS
1485
- }
1486
- catch (...)
1487
- {
1488
- __deallocate(__cache);
1489
- throw;
1490
- }
1491
- #endif // _LIBCPP_NO_EXCEPTIONS
1492
- __deallocate(__cache);
1493
- }
1494
- for (; __first != __last; ++__first)
1495
- __insert_unique(*__first);
1496
- }
1497
-
1498
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1499
- template <class _InputIterator>
1500
- void
1501
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_multi(_InputIterator __first,
1502
- _InputIterator __last)
1503
- {
1504
- if (bucket_count() != 0)
1505
- {
1506
- __node_pointer __cache = __detach();
1507
- #ifndef _LIBCPP_NO_EXCEPTIONS
1508
- try
1509
- {
1510
- #endif // _LIBCPP_NO_EXCEPTIONS
1511
- for (; __cache != nullptr && __first != __last; ++__first)
1512
- {
1513
- __cache->__value_ = *__first;
1514
- __node_pointer __next = __cache->__next_;
1515
- __node_insert_multi(__cache);
1516
- __cache = __next;
1517
- }
1518
- #ifndef _LIBCPP_NO_EXCEPTIONS
1519
- }
1520
- catch (...)
1521
- {
1522
- __deallocate(__cache);
1523
- throw;
1524
- }
1525
- #endif // _LIBCPP_NO_EXCEPTIONS
1526
- __deallocate(__cache);
1527
- }
1528
- for (; __first != __last; ++__first)
1529
- __insert_multi(*__first);
1530
- }
1531
-
1532
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1533
- inline _LIBCPP_INLINE_VISIBILITY
1534
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1535
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT
1536
- {
1537
- #if _LIBCPP_DEBUG_LEVEL >= 2
1538
- return iterator(__p1_.first().__next_, this);
1539
- #else
1540
- return iterator(__p1_.first().__next_);
1541
- #endif
1542
- }
1543
-
1544
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1545
- inline _LIBCPP_INLINE_VISIBILITY
1546
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1547
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT
1548
- {
1549
- #if _LIBCPP_DEBUG_LEVEL >= 2
1550
- return iterator(nullptr, this);
1551
- #else
1552
- return iterator(nullptr);
1553
- #endif
1554
- }
1555
-
1556
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1557
- inline _LIBCPP_INLINE_VISIBILITY
1558
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
1559
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT
1560
- {
1561
- #if _LIBCPP_DEBUG_LEVEL >= 2
1562
- return const_iterator(__p1_.first().__next_, this);
1563
- #else
1564
- return const_iterator(__p1_.first().__next_);
1565
- #endif
1566
- }
1567
-
1568
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1569
- inline _LIBCPP_INLINE_VISIBILITY
1570
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
1571
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::end() const _NOEXCEPT
1572
- {
1573
- #if _LIBCPP_DEBUG_LEVEL >= 2
1574
- return const_iterator(nullptr, this);
1575
- #else
1576
- return const_iterator(nullptr);
1577
- #endif
1578
- }
1579
-
1580
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1581
- void
1582
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::clear() _NOEXCEPT
1583
- {
1584
- if (size() > 0)
1585
- {
1586
- __deallocate(__p1_.first().__next_);
1587
- __p1_.first().__next_ = nullptr;
1588
- size_type __bc = bucket_count();
1589
- for (size_type __i = 0; __i < __bc; ++__i)
1590
- __bucket_list_[__i] = nullptr;
1591
- size() = 0;
1592
- }
1593
- }
1594
-
1595
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1596
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>
1597
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_unique(__node_pointer __nd)
1598
- {
1599
- __nd->__hash_ = hash_function()(__nd->__value_);
1600
- size_type __bc = bucket_count();
1601
- bool __inserted = false;
1602
- __node_pointer __ndptr;
1603
- size_t __chash;
1604
- if (__bc != 0)
1605
- {
1606
- __chash = __constrain_hash(__nd->__hash_, __bc);
1607
- __ndptr = __bucket_list_[__chash];
1608
- if (__ndptr != nullptr)
1609
- {
1610
- for (__ndptr = __ndptr->__next_; __ndptr != nullptr &&
1611
- __constrain_hash(__ndptr->__hash_, __bc) == __chash;
1612
- __ndptr = __ndptr->__next_)
1613
- {
1614
- if (key_eq()(__ndptr->__value_, __nd->__value_))
1615
- goto __done;
1616
- }
1617
- }
1618
- }
1619
- {
1620
- if (size()+1 > __bc * max_load_factor() || __bc == 0)
1621
- {
1622
- rehash(_VSTD::max<size_type>(2 * __bc + !__is_power2(__bc),
1623
- size_type(ceil(float(size() + 1) / max_load_factor()))));
1624
- __bc = bucket_count();
1625
- __chash = __constrain_hash(__nd->__hash_, __bc);
1626
- }
1627
- // insert_after __bucket_list_[__chash], or __first_node if bucket is null
1628
- __node_pointer __pn = __bucket_list_[__chash];
1629
- if (__pn == nullptr)
1630
- {
1631
- __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
1632
- __nd->__next_ = __pn->__next_;
1633
- __pn->__next_ = __nd;
1634
- // fix up __bucket_list_
1635
- __bucket_list_[__chash] = __pn;
1636
- if (__nd->__next_ != nullptr)
1637
- __bucket_list_[__constrain_hash(__nd->__next_->__hash_, __bc)] = __nd;
1638
- }
1639
- else
1640
- {
1641
- __nd->__next_ = __pn->__next_;
1642
- __pn->__next_ = __nd;
1643
- }
1644
- __ndptr = __nd;
1645
- // increment size
1646
- ++size();
1647
- __inserted = true;
1648
- }
1649
- __done:
1650
- #if _LIBCPP_DEBUG_LEVEL >= 2
1651
- return pair<iterator, bool>(iterator(__ndptr, this), __inserted);
1652
- #else
1653
- return pair<iterator, bool>(iterator(__ndptr), __inserted);
1654
- #endif
1655
- }
1656
-
1657
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1658
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1659
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(__node_pointer __cp)
1660
- {
1661
- __cp->__hash_ = hash_function()(__cp->__value_);
1662
- size_type __bc = bucket_count();
1663
- if (size()+1 > __bc * max_load_factor() || __bc == 0)
1664
- {
1665
- rehash(_VSTD::max<size_type>(2 * __bc + !__is_power2(__bc),
1666
- size_type(ceil(float(size() + 1) / max_load_factor()))));
1667
- __bc = bucket_count();
1668
- }
1669
- size_t __chash = __constrain_hash(__cp->__hash_, __bc);
1670
- __node_pointer __pn = __bucket_list_[__chash];
1671
- if (__pn == nullptr)
1672
- {
1673
- __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
1674
- __cp->__next_ = __pn->__next_;
1675
- __pn->__next_ = __cp;
1676
- // fix up __bucket_list_
1677
- __bucket_list_[__chash] = __pn;
1678
- if (__cp->__next_ != nullptr)
1679
- __bucket_list_[__constrain_hash(__cp->__next_->__hash_, __bc)] = __cp;
1680
- }
1681
- else
1682
- {
1683
- for (bool __found = false; __pn->__next_ != nullptr &&
1684
- __constrain_hash(__pn->__next_->__hash_, __bc) == __chash;
1685
- __pn = __pn->__next_)
1686
- {
1687
- // __found key_eq() action
1688
- // false false loop
1689
- // true true loop
1690
- // false true set __found to true
1691
- // true false break
1692
- if (__found != (__pn->__next_->__hash_ == __cp->__hash_ &&
1693
- key_eq()(__pn->__next_->__value_, __cp->__value_)))
1694
- {
1695
- if (!__found)
1696
- __found = true;
1697
- else
1698
- break;
1699
- }
1700
- }
1701
- __cp->__next_ = __pn->__next_;
1702
- __pn->__next_ = __cp;
1703
- if (__cp->__next_ != nullptr)
1704
- {
1705
- size_t __nhash = __constrain_hash(__cp->__next_->__hash_, __bc);
1706
- if (__nhash != __chash)
1707
- __bucket_list_[__nhash] = __cp;
1708
- }
1709
- }
1710
- ++size();
1711
- #if _LIBCPP_DEBUG_LEVEL >= 2
1712
- return iterator(__cp, this);
1713
- #else
1714
- return iterator(__cp);
1715
- #endif
1716
- }
1717
-
1718
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1719
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1720
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(
1721
- const_iterator __p, __node_pointer __cp)
1722
- {
1723
- #if _LIBCPP_DEBUG_LEVEL >= 2
1724
- _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
1725
- "unordered container::emplace_hint(const_iterator, args...) called with an iterator not"
1726
- " referring to this unordered container");
1727
- #endif
1728
- if (__p != end() && key_eq()(*__p, __cp->__value_))
1729
- {
1730
- __node_pointer __np = __p.__node_;
1731
- __cp->__hash_ = __np->__hash_;
1732
- size_type __bc = bucket_count();
1733
- if (size()+1 > __bc * max_load_factor() || __bc == 0)
1734
- {
1735
- rehash(_VSTD::max<size_type>(2 * __bc + !__is_power2(__bc),
1736
- size_type(ceil(float(size() + 1) / max_load_factor()))));
1737
- __bc = bucket_count();
1738
- }
1739
- size_t __chash = __constrain_hash(__cp->__hash_, __bc);
1740
- __node_pointer __pp = __bucket_list_[__chash];
1741
- while (__pp->__next_ != __np)
1742
- __pp = __pp->__next_;
1743
- __cp->__next_ = __np;
1744
- __pp->__next_ = __cp;
1745
- ++size();
1746
- #if _LIBCPP_DEBUG_LEVEL >= 2
1747
- return iterator(__cp, this);
1748
- #else
1749
- return iterator(__cp);
1750
- #endif
1751
- }
1752
- return __node_insert_multi(__cp);
1753
- }
1754
-
1755
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1756
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>
1757
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_unique(const value_type& __x)
1758
- {
1759
- size_t __hash = hash_function()(__x);
1760
- size_type __bc = bucket_count();
1761
- bool __inserted = false;
1762
- __node_pointer __nd;
1763
- size_t __chash;
1764
- if (__bc != 0)
1765
- {
1766
- __chash = __constrain_hash(__hash, __bc);
1767
- __nd = __bucket_list_[__chash];
1768
- if (__nd != nullptr)
1769
- {
1770
- for (__nd = __nd->__next_; __nd != nullptr &&
1771
- __constrain_hash(__nd->__hash_, __bc) == __chash;
1772
- __nd = __nd->__next_)
1773
- {
1774
- if (key_eq()(__nd->__value_, __x))
1775
- goto __done;
1776
- }
1777
- }
1778
- }
1779
- {
1780
- __node_holder __h = __construct_node(__x, __hash);
1781
- if (size()+1 > __bc * max_load_factor() || __bc == 0)
1782
- {
1783
- rehash(_VSTD::max<size_type>(2 * __bc + !__is_power2(__bc),
1784
- size_type(ceil(float(size() + 1) / max_load_factor()))));
1785
- __bc = bucket_count();
1786
- __chash = __constrain_hash(__hash, __bc);
1787
- }
1788
- // insert_after __bucket_list_[__chash], or __first_node if bucket is null
1789
- __node_pointer __pn = __bucket_list_[__chash];
1790
- if (__pn == nullptr)
1791
- {
1792
- __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
1793
- __h->__next_ = __pn->__next_;
1794
- __pn->__next_ = __h.get();
1795
- // fix up __bucket_list_
1796
- __bucket_list_[__chash] = __pn;
1797
- if (__h->__next_ != nullptr)
1798
- __bucket_list_[__constrain_hash(__h->__next_->__hash_, __bc)] = __h.get();
1799
- }
1800
- else
1801
- {
1802
- __h->__next_ = __pn->__next_;
1803
- __pn->__next_ = __h.get();
1804
- }
1805
- __nd = __h.release();
1806
- // increment size
1807
- ++size();
1808
- __inserted = true;
1809
- }
1810
- __done:
1811
- #if _LIBCPP_DEBUG_LEVEL >= 2
1812
- return pair<iterator, bool>(iterator(__nd, this), __inserted);
1813
- #else
1814
- return pair<iterator, bool>(iterator(__nd), __inserted);
1815
- #endif
1816
- }
1817
-
1818
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1819
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1820
-
1821
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1822
- template <class... _Args>
1823
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>
1824
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique(_Args&&... __args)
1825
- {
1826
- __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
1827
- pair<iterator, bool> __r = __node_insert_unique(__h.get());
1828
- if (__r.second)
1829
- __h.release();
1830
- return __r;
1831
- }
1832
-
1833
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1834
- template <class... _Args>
1835
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1836
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_multi(_Args&&... __args)
1837
- {
1838
- __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
1839
- iterator __r = __node_insert_multi(__h.get());
1840
- __h.release();
1841
- return __r;
1842
- }
1843
-
1844
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1845
- template <class... _Args>
1846
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1847
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_hint_multi(
1848
- const_iterator __p, _Args&&... __args)
1849
- {
1850
- #if _LIBCPP_DEBUG_LEVEL >= 2
1851
- _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
1852
- "unordered container::emplace_hint(const_iterator, args...) called with an iterator not"
1853
- " referring to this unordered container");
1854
- #endif
1855
- __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
1856
- iterator __r = __node_insert_multi(__p, __h.get());
1857
- __h.release();
1858
- return __r;
1859
- }
1860
-
1861
- #endif // _LIBCPP_HAS_NO_VARIADICS
1862
-
1863
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1864
- template <class _Pp>
1865
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>
1866
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_unique(_Pp&& __x)
1867
- {
1868
- __node_holder __h = __construct_node(_VSTD::forward<_Pp>(__x));
1869
- pair<iterator, bool> __r = __node_insert_unique(__h.get());
1870
- if (__r.second)
1871
- __h.release();
1872
- return __r;
1873
- }
1874
-
1875
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1876
-
1877
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1878
-
1879
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1880
- template <class _Pp>
1881
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1882
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(_Pp&& __x)
1883
- {
1884
- __node_holder __h = __construct_node(_VSTD::forward<_Pp>(__x));
1885
- iterator __r = __node_insert_multi(__h.get());
1886
- __h.release();
1887
- return __r;
1888
- }
1889
-
1890
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1891
- template <class _Pp>
1892
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1893
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const_iterator __p,
1894
- _Pp&& __x)
1895
- {
1896
- #if _LIBCPP_DEBUG_LEVEL >= 2
1897
- _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
1898
- "unordered container::insert(const_iterator, rvalue) called with an iterator not"
1899
- " referring to this unordered container");
1900
- #endif
1901
- __node_holder __h = __construct_node(_VSTD::forward<_Pp>(__x));
1902
- iterator __r = __node_insert_multi(__p, __h.get());
1903
- __h.release();
1904
- return __r;
1905
- }
1906
-
1907
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1908
-
1909
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1910
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1911
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const value_type& __x)
1912
- {
1913
- __node_holder __h = __construct_node(__x);
1914
- iterator __r = __node_insert_multi(__h.get());
1915
- __h.release();
1916
- return __r;
1917
- }
1918
-
1919
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1920
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
1921
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const_iterator __p,
1922
- const value_type& __x)
1923
- {
1924
- #if _LIBCPP_DEBUG_LEVEL >= 2
1925
- _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
1926
- "unordered container::insert(const_iterator, lvalue) called with an iterator not"
1927
- " referring to this unordered container");
1928
- #endif
1929
- __node_holder __h = __construct_node(__x);
1930
- iterator __r = __node_insert_multi(__p, __h.get());
1931
- __h.release();
1932
- return __r;
1933
- }
1934
-
1935
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1936
-
1937
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1938
- void
1939
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::rehash(size_type __n)
1940
- {
1941
- if (__n == 1)
1942
- __n = 2;
1943
- else if (__n & (__n - 1))
1944
- __n = __next_prime(__n);
1945
- size_type __bc = bucket_count();
1946
- if (__n > __bc)
1947
- __rehash(__n);
1948
- else if (__n < __bc)
1949
- {
1950
- __n = _VSTD::max<size_type>
1951
- (
1952
- __n,
1953
- __is_power2(__bc) ? __next_pow2(size_t(ceil(float(size()) / max_load_factor()))) :
1954
- __next_prime(size_t(ceil(float(size()) / max_load_factor())))
1955
- );
1956
- if (__n < __bc)
1957
- __rehash(__n);
1958
- }
1959
- }
1960
-
1961
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
1962
- void
1963
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__rehash(size_type __nbc)
1964
- {
1965
- #if _LIBCPP_DEBUG_LEVEL >= 2
1966
- __get_db()->__invalidate_all(this);
1967
- #endif // _LIBCPP_DEBUG_LEVEL >= 2
1968
- __pointer_allocator& __npa = __bucket_list_.get_deleter().__alloc();
1969
- __bucket_list_.reset(__nbc > 0 ?
1970
- __pointer_alloc_traits::allocate(__npa, __nbc) : nullptr);
1971
- __bucket_list_.get_deleter().size() = __nbc;
1972
- if (__nbc > 0)
1973
- {
1974
- for (size_type __i = 0; __i < __nbc; ++__i)
1975
- __bucket_list_[__i] = nullptr;
1976
- __node_pointer __pp(static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())));
1977
- __node_pointer __cp = __pp->__next_;
1978
- if (__cp != nullptr)
1979
- {
1980
- size_type __chash = __constrain_hash(__cp->__hash_, __nbc);
1981
- __bucket_list_[__chash] = __pp;
1982
- size_type __phash = __chash;
1983
- for (__pp = __cp, __cp = __cp->__next_; __cp != nullptr;
1984
- __cp = __pp->__next_)
1985
- {
1986
- __chash = __constrain_hash(__cp->__hash_, __nbc);
1987
- if (__chash == __phash)
1988
- __pp = __cp;
1989
- else
1990
- {
1991
- if (__bucket_list_[__chash] == nullptr)
1992
- {
1993
- __bucket_list_[__chash] = __pp;
1994
- __pp = __cp;
1995
- __phash = __chash;
1996
- }
1997
- else
1998
- {
1999
- __node_pointer __np = __cp;
2000
- for (; __np->__next_ != nullptr &&
2001
- key_eq()(__cp->__value_, __np->__next_->__value_);
2002
- __np = __np->__next_)
2003
- ;
2004
- __pp->__next_ = __np->__next_;
2005
- __np->__next_ = __bucket_list_[__chash]->__next_;
2006
- __bucket_list_[__chash]->__next_ = __cp;
2007
-
2008
- }
2009
- }
2010
- }
2011
- }
2012
- }
2013
- }
2014
-
2015
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2016
- template <class _Key>
2017
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
2018
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k)
2019
- {
2020
- size_t __hash = hash_function()(__k);
2021
- size_type __bc = bucket_count();
2022
- if (__bc != 0)
2023
- {
2024
- size_t __chash = __constrain_hash(__hash, __bc);
2025
- __node_pointer __nd = __bucket_list_[__chash];
2026
- if (__nd != nullptr)
2027
- {
2028
- for (__nd = __nd->__next_; __nd != nullptr &&
2029
- __constrain_hash(__nd->__hash_, __bc) == __chash;
2030
- __nd = __nd->__next_)
2031
- {
2032
- if (key_eq()(__nd->__value_, __k))
2033
- #if _LIBCPP_DEBUG_LEVEL >= 2
2034
- return iterator(__nd, this);
2035
- #else
2036
- return iterator(__nd);
2037
- #endif
2038
- }
2039
- }
2040
- }
2041
- return end();
2042
- }
2043
-
2044
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2045
- template <class _Key>
2046
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
2047
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) const
2048
- {
2049
- size_t __hash = hash_function()(__k);
2050
- size_type __bc = bucket_count();
2051
- if (__bc != 0)
2052
- {
2053
- size_t __chash = __constrain_hash(__hash, __bc);
2054
- __node_const_pointer __nd = __bucket_list_[__chash];
2055
- if (__nd != nullptr)
2056
- {
2057
- for (__nd = __nd->__next_; __nd != nullptr &&
2058
- __constrain_hash(__nd->__hash_, __bc) == __chash;
2059
- __nd = __nd->__next_)
2060
- {
2061
- if (key_eq()(__nd->__value_, __k))
2062
- #if _LIBCPP_DEBUG_LEVEL >= 2
2063
- return const_iterator(__nd, this);
2064
- #else
2065
- return const_iterator(__nd);
2066
- #endif
2067
- }
2068
- }
2069
-
2070
- }
2071
- return end();
2072
- }
2073
-
2074
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2075
- #ifndef _LIBCPP_HAS_NO_VARIADICS
2076
-
2077
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2078
- template <class ..._Args>
2079
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder
2080
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(_Args&& ...__args)
2081
- {
2082
- __node_allocator& __na = __node_alloc();
2083
- __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));
2084
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::forward<_Args>(__args)...);
2085
- __h.get_deleter().__value_constructed = true;
2086
- __h->__hash_ = hash_function()(__h->__value_);
2087
- __h->__next_ = nullptr;
2088
- return __h;
2089
- }
2090
-
2091
- #endif // _LIBCPP_HAS_NO_VARIADICS
2092
-
2093
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2094
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder
2095
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(value_type&& __v,
2096
- size_t __hash)
2097
- {
2098
- __node_allocator& __na = __node_alloc();
2099
- __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));
2100
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_), _VSTD::move(__v));
2101
- __h.get_deleter().__value_constructed = true;
2102
- __h->__hash_ = __hash;
2103
- __h->__next_ = nullptr;
2104
- return __h;
2105
- }
2106
-
2107
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
2108
-
2109
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2110
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder
2111
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(const value_type& __v)
2112
- {
2113
- __node_allocator& __na = __node_alloc();
2114
- __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));
2115
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_), __v);
2116
- __h.get_deleter().__value_constructed = true;
2117
- __h->__hash_ = hash_function()(__h->__value_);
2118
- __h->__next_ = nullptr;
2119
- return _VSTD::move(__h); // explicitly moved for C++03
2120
- }
2121
-
2122
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
2123
-
2124
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2125
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder
2126
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(const value_type& __v,
2127
- size_t __hash)
2128
- {
2129
- __node_allocator& __na = __node_alloc();
2130
- __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));
2131
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_), __v);
2132
- __h.get_deleter().__value_constructed = true;
2133
- __h->__hash_ = __hash;
2134
- __h->__next_ = nullptr;
2135
- return _VSTD::move(__h); // explicitly moved for C++03
2136
- }
2137
-
2138
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2139
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
2140
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __p)
2141
- {
2142
- __node_pointer __np = __p.__node_;
2143
- #if _LIBCPP_DEBUG_LEVEL >= 2
2144
- _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
2145
- "unordered container erase(iterator) called with an iterator not"
2146
- " referring to this container");
2147
- _LIBCPP_ASSERT(__p != end(),
2148
- "unordered container erase(iterator) called with a non-dereferenceable iterator");
2149
- iterator __r(__np, this);
2150
- #else
2151
- iterator __r(__np);
2152
- #endif
2153
- ++__r;
2154
- remove(__p);
2155
- return __r;
2156
- }
2157
-
2158
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2159
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
2160
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __first,
2161
- const_iterator __last)
2162
- {
2163
- #if _LIBCPP_DEBUG_LEVEL >= 2
2164
- _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this,
2165
- "unodered container::erase(iterator, iterator) called with an iterator not"
2166
- " referring to this unodered container");
2167
- _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__last) == this,
2168
- "unodered container::erase(iterator, iterator) called with an iterator not"
2169
- " referring to this unodered container");
2170
- #endif
2171
- for (const_iterator __p = __first; __first != __last; __p = __first)
2172
- {
2173
- ++__first;
2174
- erase(__p);
2175
- }
2176
- __node_pointer __np = __last.__node_;
2177
- #if _LIBCPP_DEBUG_LEVEL >= 2
2178
- return iterator (__np, this);
2179
- #else
2180
- return iterator (__np);
2181
- #endif
2182
- }
2183
-
2184
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2185
- template <class _Key>
2186
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type
2187
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_unique(const _Key& __k)
2188
- {
2189
- iterator __i = find(__k);
2190
- if (__i == end())
2191
- return 0;
2192
- erase(__i);
2193
- return 1;
2194
- }
2195
-
2196
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2197
- template <class _Key>
2198
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type
2199
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_multi(const _Key& __k)
2200
- {
2201
- size_type __r = 0;
2202
- iterator __i = find(__k);
2203
- if (__i != end())
2204
- {
2205
- iterator __e = end();
2206
- do
2207
- {
2208
- erase(__i++);
2209
- ++__r;
2210
- } while (__i != __e && key_eq()(*__i, __k));
2211
- }
2212
- return __r;
2213
- }
2214
-
2215
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2216
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder
2217
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::remove(const_iterator __p) _NOEXCEPT
2218
- {
2219
- // current node
2220
- __node_pointer __cn = __p.__node_;
2221
- size_type __bc = bucket_count();
2222
- size_t __chash = __constrain_hash(__cn->__hash_, __bc);
2223
- // find previous node
2224
- __node_pointer __pn = __bucket_list_[__chash];
2225
- for (; __pn->__next_ != __cn; __pn = __pn->__next_)
2226
- ;
2227
- // Fix up __bucket_list_
2228
- // if __pn is not in same bucket (before begin is not in same bucket) &&
2229
- // if __cn->__next_ is not in same bucket (nullptr is not in same bucket)
2230
- if (__pn == static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()))
2231
- || __constrain_hash(__pn->__hash_, __bc) != __chash)
2232
- {
2233
- if (__cn->__next_ == nullptr || __constrain_hash(__cn->__next_->__hash_, __bc) != __chash)
2234
- __bucket_list_[__chash] = nullptr;
2235
- }
2236
- // if __cn->__next_ is not in same bucket (nullptr is in same bucket)
2237
- if (__cn->__next_ != nullptr)
2238
- {
2239
- size_t __nhash = __constrain_hash(__cn->__next_->__hash_, __bc);
2240
- if (__nhash != __chash)
2241
- __bucket_list_[__nhash] = __pn;
2242
- }
2243
- // remove __cn
2244
- __pn->__next_ = __cn->__next_;
2245
- __cn->__next_ = nullptr;
2246
- --size();
2247
- #if _LIBCPP_DEBUG_LEVEL >= 2
2248
- __c_node* __c = __get_db()->__find_c_and_lock(this);
2249
- for (__i_node** __p = __c->end_; __p != __c->beg_; )
2250
- {
2251
- --__p;
2252
- iterator* __i = static_cast<iterator*>((*__p)->__i_);
2253
- if (__i->__node_ == __cn)
2254
- {
2255
- (*__p)->__c_ = nullptr;
2256
- if (--__c->end_ != __p)
2257
- memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));
2258
- }
2259
- }
2260
- __get_db()->unlock();
2261
- #endif
2262
- return __node_holder(__cn, _Dp(__node_alloc(), true));
2263
- }
2264
-
2265
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2266
- template <class _Key>
2267
- inline _LIBCPP_INLINE_VISIBILITY
2268
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type
2269
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_unique(const _Key& __k) const
2270
- {
2271
- return static_cast<size_type>(find(__k) != end());
2272
- }
2273
-
2274
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2275
- template <class _Key>
2276
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type
2277
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_multi(const _Key& __k) const
2278
- {
2279
- size_type __r = 0;
2280
- const_iterator __i = find(__k);
2281
- if (__i != end())
2282
- {
2283
- const_iterator __e = end();
2284
- do
2285
- {
2286
- ++__i;
2287
- ++__r;
2288
- } while (__i != __e && key_eq()(*__i, __k));
2289
- }
2290
- return __r;
2291
- }
2292
-
2293
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2294
- template <class _Key>
2295
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator,
2296
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator>
2297
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique(
2298
- const _Key& __k)
2299
- {
2300
- iterator __i = find(__k);
2301
- iterator __j = __i;
2302
- if (__i != end())
2303
- ++__j;
2304
- return pair<iterator, iterator>(__i, __j);
2305
- }
2306
-
2307
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2308
- template <class _Key>
2309
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator,
2310
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator>
2311
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique(
2312
- const _Key& __k) const
2313
- {
2314
- const_iterator __i = find(__k);
2315
- const_iterator __j = __i;
2316
- if (__i != end())
2317
- ++__j;
2318
- return pair<const_iterator, const_iterator>(__i, __j);
2319
- }
2320
-
2321
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2322
- template <class _Key>
2323
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator,
2324
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator>
2325
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi(
2326
- const _Key& __k)
2327
- {
2328
- iterator __i = find(__k);
2329
- iterator __j = __i;
2330
- if (__i != end())
2331
- {
2332
- iterator __e = end();
2333
- do
2334
- {
2335
- ++__j;
2336
- } while (__j != __e && key_eq()(*__j, __k));
2337
- }
2338
- return pair<iterator, iterator>(__i, __j);
2339
- }
2340
-
2341
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2342
- template <class _Key>
2343
- pair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator,
2344
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator>
2345
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi(
2346
- const _Key& __k) const
2347
- {
2348
- const_iterator __i = find(__k);
2349
- const_iterator __j = __i;
2350
- if (__i != end())
2351
- {
2352
- const_iterator __e = end();
2353
- do
2354
- {
2355
- ++__j;
2356
- } while (__j != __e && key_eq()(*__j, __k));
2357
- }
2358
- return pair<const_iterator, const_iterator>(__i, __j);
2359
- }
2360
-
2361
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2362
- void
2363
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::swap(__hash_table& __u)
2364
- _NOEXCEPT_(
2365
- (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value ||
2366
- __is_nothrow_swappable<__pointer_allocator>::value) &&
2367
- (!__node_traits::propagate_on_container_swap::value ||
2368
- __is_nothrow_swappable<__node_allocator>::value) &&
2369
- __is_nothrow_swappable<hasher>::value &&
2370
- __is_nothrow_swappable<key_equal>::value)
2371
- {
2372
- {
2373
- __node_pointer_pointer __npp = __bucket_list_.release();
2374
- __bucket_list_.reset(__u.__bucket_list_.release());
2375
- __u.__bucket_list_.reset(__npp);
2376
- }
2377
- _VSTD::swap(__bucket_list_.get_deleter().size(), __u.__bucket_list_.get_deleter().size());
2378
- __swap_alloc(__bucket_list_.get_deleter().__alloc(),
2379
- __u.__bucket_list_.get_deleter().__alloc());
2380
- __swap_alloc(__node_alloc(), __u.__node_alloc());
2381
- _VSTD::swap(__p1_.first().__next_, __u.__p1_.first().__next_);
2382
- __p2_.swap(__u.__p2_);
2383
- __p3_.swap(__u.__p3_);
2384
- if (size() > 0)
2385
- __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] =
2386
- static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
2387
- if (__u.size() > 0)
2388
- __u.__bucket_list_[__constrain_hash(__u.__p1_.first().__next_->__hash_, __u.bucket_count())] =
2389
- static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__u.__p1_.first()));
2390
- #if _LIBCPP_DEBUG_LEVEL >= 2
2391
- __get_db()->swap(this, &__u);
2392
- #endif
2393
- }
2394
-
2395
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2396
- typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type
2397
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::bucket_size(size_type __n) const
2398
- {
2399
- _LIBCPP_ASSERT(__n < bucket_count(),
2400
- "unordered container::bucket_size(n) called with n >= bucket_count()");
2401
- __node_const_pointer __np = __bucket_list_[__n];
2402
- size_type __bc = bucket_count();
2403
- size_type __r = 0;
2404
- if (__np != nullptr)
2405
- {
2406
- for (__np = __np->__next_; __np != nullptr &&
2407
- __constrain_hash(__np->__hash_, __bc) == __n;
2408
- __np = __np->__next_, ++__r)
2409
- ;
2410
- }
2411
- return __r;
2412
- }
2413
-
2414
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2415
- inline _LIBCPP_INLINE_VISIBILITY
2416
- void
2417
- swap(__hash_table<_Tp, _Hash, _Equal, _Alloc>& __x,
2418
- __hash_table<_Tp, _Hash, _Equal, _Alloc>& __y)
2419
- _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))
2420
- {
2421
- __x.swap(__y);
2422
- }
2423
-
2424
- #if _LIBCPP_DEBUG_LEVEL >= 2
2425
-
2426
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2427
- bool
2428
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__dereferenceable(const const_iterator* __i) const
2429
- {
2430
- return __i->__node_ != nullptr;
2431
- }
2432
-
2433
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2434
- bool
2435
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__decrementable(const const_iterator*) const
2436
- {
2437
- return false;
2438
- }
2439
-
2440
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2441
- bool
2442
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__addable(const const_iterator*, ptrdiff_t) const
2443
- {
2444
- return false;
2445
- }
2446
-
2447
- template <class _Tp, class _Hash, class _Equal, class _Alloc>
2448
- bool
2449
- __hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const
2450
- {
2451
- return false;
2452
- }
2453
-
2454
- #endif // _LIBCPP_DEBUG_LEVEL >= 2
2455
- _LIBCPP_END_NAMESPACE_STD
2456
-
2457
- #endif // _LIBCPP__HASH_TABLE