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,2873 +0,0 @@
1
- // -*- C++ -*-
2
- //===---------------------------- deque -----------------------------------===//
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_DEQUE
12
- #define _LIBCPP_DEQUE
13
-
14
- /*
15
- deque synopsis
16
-
17
- namespace std
18
- {
19
-
20
- template <class T, class Allocator = allocator<T> >
21
- class deque
22
- {
23
- public:
24
- // types:
25
- typedef T value_type;
26
- typedef Allocator allocator_type;
27
-
28
- typedef typename allocator_type::reference reference;
29
- typedef typename allocator_type::const_reference const_reference;
30
- typedef implementation-defined iterator;
31
- typedef implementation-defined const_iterator;
32
- typedef typename allocator_type::size_type size_type;
33
- typedef typename allocator_type::difference_type difference_type;
34
-
35
- typedef typename allocator_type::pointer pointer;
36
- typedef typename allocator_type::const_pointer const_pointer;
37
- typedef std::reverse_iterator<iterator> reverse_iterator;
38
- typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
39
-
40
- // construct/copy/destroy:
41
- deque() noexcept(is_nothrow_default_constructible<allocator_type>::value);
42
- explicit deque(const allocator_type& a);
43
- explicit deque(size_type n);
44
- explicit deque(size_type n, const allocator_type& a); // C++14
45
- deque(size_type n, const value_type& v);
46
- deque(size_type n, const value_type& v, const allocator_type& a);
47
- template <class InputIterator>
48
- deque(InputIterator f, InputIterator l);
49
- template <class InputIterator>
50
- deque(InputIterator f, InputIterator l, const allocator_type& a);
51
- deque(const deque& c);
52
- deque(deque&& c)
53
- noexcept(is_nothrow_move_constructible<allocator_type>::value);
54
- deque(initializer_list<value_type> il, const Allocator& a = allocator_type());
55
- deque(const deque& c, const allocator_type& a);
56
- deque(deque&& c, const allocator_type& a);
57
- ~deque();
58
-
59
- deque& operator=(const deque& c);
60
- deque& operator=(deque&& c)
61
- noexcept(
62
- allocator_type::propagate_on_container_move_assignment::value &&
63
- is_nothrow_move_assignable<allocator_type>::value);
64
- deque& operator=(initializer_list<value_type> il);
65
-
66
- template <class InputIterator>
67
- void assign(InputIterator f, InputIterator l);
68
- void assign(size_type n, const value_type& v);
69
- void assign(initializer_list<value_type> il);
70
-
71
- allocator_type get_allocator() const noexcept;
72
-
73
- // iterators:
74
-
75
- iterator begin() noexcept;
76
- const_iterator begin() const noexcept;
77
- iterator end() noexcept;
78
- const_iterator end() const noexcept;
79
-
80
- reverse_iterator rbegin() noexcept;
81
- const_reverse_iterator rbegin() const noexcept;
82
- reverse_iterator rend() noexcept;
83
- const_reverse_iterator rend() const noexcept;
84
-
85
- const_iterator cbegin() const noexcept;
86
- const_iterator cend() const noexcept;
87
- const_reverse_iterator crbegin() const noexcept;
88
- const_reverse_iterator crend() const noexcept;
89
-
90
- // capacity:
91
- size_type size() const noexcept;
92
- size_type max_size() const noexcept;
93
- void resize(size_type n);
94
- void resize(size_type n, const value_type& v);
95
- void shrink_to_fit();
96
- bool empty() const noexcept;
97
-
98
- // element access:
99
- reference operator[](size_type i);
100
- const_reference operator[](size_type i) const;
101
- reference at(size_type i);
102
- const_reference at(size_type i) const;
103
- reference front();
104
- const_reference front() const;
105
- reference back();
106
- const_reference back() const;
107
-
108
- // modifiers:
109
- void push_front(const value_type& v);
110
- void push_front(value_type&& v);
111
- void push_back(const value_type& v);
112
- void push_back(value_type&& v);
113
- template <class... Args> void emplace_front(Args&&... args);
114
- template <class... Args> void emplace_back(Args&&... args);
115
- template <class... Args> iterator emplace(const_iterator p, Args&&... args);
116
- iterator insert(const_iterator p, const value_type& v);
117
- iterator insert(const_iterator p, value_type&& v);
118
- iterator insert(const_iterator p, size_type n, const value_type& v);
119
- template <class InputIterator>
120
- iterator insert (const_iterator p, InputIterator f, InputIterator l);
121
- iterator insert(const_iterator p, initializer_list<value_type> il);
122
- void pop_front();
123
- void pop_back();
124
- iterator erase(const_iterator p);
125
- iterator erase(const_iterator f, const_iterator l);
126
- void swap(deque& c)
127
- noexcept(!allocator_type::propagate_on_container_swap::value ||
128
- __is_nothrow_swappable<allocator_type>::value);
129
- void clear() noexcept;
130
- };
131
-
132
- template <class T, class Allocator>
133
- bool operator==(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
134
- template <class T, class Allocator>
135
- bool operator< (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
136
- template <class T, class Allocator>
137
- bool operator!=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
138
- template <class T, class Allocator>
139
- bool operator> (const deque<T,Allocator>& x, const deque<T,Allocator>& y);
140
- template <class T, class Allocator>
141
- bool operator>=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
142
- template <class T, class Allocator>
143
- bool operator<=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
144
-
145
- // specialized algorithms:
146
- template <class T, class Allocator>
147
- void swap(deque<T,Allocator>& x, deque<T,Allocator>& y)
148
- noexcept(noexcept(x.swap(y)));
149
-
150
- } // std
151
-
152
- */
153
-
154
- #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
155
- #pragma GCC system_header
156
- #endif
157
-
158
- #include <__config>
159
- #include <__split_buffer>
160
- #include <type_traits>
161
- #include <initializer_list>
162
- #include <iterator>
163
- #include <algorithm>
164
- #include <stdexcept>
165
-
166
- #include <__undef_min_max>
167
-
168
- _LIBCPP_BEGIN_NAMESPACE_STD
169
-
170
- template <class _Tp, class _Allocator> class __deque_base;
171
-
172
- template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,
173
- class _DiffType, _DiffType _BlockSize>
174
- class _LIBCPP_TYPE_VIS_ONLY __deque_iterator;
175
-
176
- template <class _RAIter,
177
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
178
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
179
- copy(_RAIter __f,
180
- _RAIter __l,
181
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
182
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
183
-
184
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
185
- class _OutputIterator>
186
- _OutputIterator
187
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
188
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
189
- _OutputIterator __r);
190
-
191
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
192
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
193
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
194
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
195
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
196
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
197
-
198
- template <class _RAIter,
199
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
200
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
201
- copy_backward(_RAIter __f,
202
- _RAIter __l,
203
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
204
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
205
-
206
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
207
- class _OutputIterator>
208
- _OutputIterator
209
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
210
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
211
- _OutputIterator __r);
212
-
213
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
214
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
215
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
216
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
217
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
218
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
219
-
220
- template <class _RAIter,
221
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
222
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
223
- move(_RAIter __f,
224
- _RAIter __l,
225
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
226
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
227
-
228
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
229
- class _OutputIterator>
230
- _OutputIterator
231
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
232
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
233
- _OutputIterator __r);
234
-
235
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
236
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
237
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
238
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
239
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
240
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
241
-
242
- template <class _RAIter,
243
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
244
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
245
- move_backward(_RAIter __f,
246
- _RAIter __l,
247
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
248
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
249
-
250
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
251
- class _OutputIterator>
252
- _OutputIterator
253
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
254
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
255
- _OutputIterator __r);
256
-
257
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
258
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
259
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
260
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
261
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
262
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
263
-
264
- template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,
265
- class _DiffType, _DiffType _BlockSize>
266
- class _LIBCPP_TYPE_VIS_ONLY __deque_iterator
267
- {
268
- typedef _MapPointer __map_iterator;
269
- public:
270
- typedef _Pointer pointer;
271
- typedef _DiffType difference_type;
272
- private:
273
- __map_iterator __m_iter_;
274
- pointer __ptr_;
275
-
276
- static const difference_type __block_size = _BlockSize;
277
- public:
278
- typedef _ValueType value_type;
279
- typedef random_access_iterator_tag iterator_category;
280
- typedef _Reference reference;
281
-
282
- _LIBCPP_INLINE_VISIBILITY __deque_iterator() _NOEXCEPT
283
- #if _LIBCPP_STD_VER > 11
284
- : __m_iter_(nullptr), __ptr_(nullptr)
285
- #endif
286
- {}
287
-
288
- template <class _Pp, class _Rp, class _MP>
289
- _LIBCPP_INLINE_VISIBILITY
290
- __deque_iterator(const __deque_iterator<value_type, _Pp, _Rp, _MP, difference_type, __block_size>& __it,
291
- typename enable_if<is_convertible<_Pp, pointer>::value>::type* = 0) _NOEXCEPT
292
- : __m_iter_(__it.__m_iter_), __ptr_(__it.__ptr_) {}
293
-
294
- _LIBCPP_INLINE_VISIBILITY reference operator*() const {return *__ptr_;}
295
- _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return __ptr_;}
296
-
297
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator++()
298
- {
299
- if (++__ptr_ - *__m_iter_ == __block_size)
300
- {
301
- ++__m_iter_;
302
- __ptr_ = *__m_iter_;
303
- }
304
- return *this;
305
- }
306
-
307
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator++(int)
308
- {
309
- __deque_iterator __tmp = *this;
310
- ++(*this);
311
- return __tmp;
312
- }
313
-
314
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator--()
315
- {
316
- if (__ptr_ == *__m_iter_)
317
- {
318
- --__m_iter_;
319
- __ptr_ = *__m_iter_ + __block_size;
320
- }
321
- --__ptr_;
322
- return *this;
323
- }
324
-
325
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator--(int)
326
- {
327
- __deque_iterator __tmp = *this;
328
- --(*this);
329
- return __tmp;
330
- }
331
-
332
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator+=(difference_type __n)
333
- {
334
- if (__n != 0)
335
- {
336
- __n += __ptr_ - *__m_iter_;
337
- if (__n > 0)
338
- {
339
- __m_iter_ += __n / __block_size;
340
- __ptr_ = *__m_iter_ + __n % __block_size;
341
- }
342
- else // (__n < 0)
343
- {
344
- difference_type __z = __block_size - 1 - __n;
345
- __m_iter_ -= __z / __block_size;
346
- __ptr_ = *__m_iter_ + (__block_size - 1 - __z % __block_size);
347
- }
348
- }
349
- return *this;
350
- }
351
-
352
- _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator-=(difference_type __n)
353
- {
354
- return *this += -__n;
355
- }
356
-
357
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator+(difference_type __n) const
358
- {
359
- __deque_iterator __t(*this);
360
- __t += __n;
361
- return __t;
362
- }
363
-
364
- _LIBCPP_INLINE_VISIBILITY __deque_iterator operator-(difference_type __n) const
365
- {
366
- __deque_iterator __t(*this);
367
- __t -= __n;
368
- return __t;
369
- }
370
-
371
- _LIBCPP_INLINE_VISIBILITY
372
- friend __deque_iterator operator+(difference_type __n, const __deque_iterator& __it)
373
- {return __it + __n;}
374
-
375
- _LIBCPP_INLINE_VISIBILITY
376
- friend difference_type operator-(const __deque_iterator& __x, const __deque_iterator& __y)
377
- {
378
- if (__x != __y)
379
- return (__x.__m_iter_ - __y.__m_iter_) * __block_size
380
- + (__x.__ptr_ - *__x.__m_iter_)
381
- - (__y.__ptr_ - *__y.__m_iter_);
382
- return 0;
383
- }
384
-
385
- _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const
386
- {return *(*this + __n);}
387
-
388
- _LIBCPP_INLINE_VISIBILITY friend
389
- bool operator==(const __deque_iterator& __x, const __deque_iterator& __y)
390
- {return __x.__ptr_ == __y.__ptr_;}
391
-
392
- _LIBCPP_INLINE_VISIBILITY friend
393
- bool operator!=(const __deque_iterator& __x, const __deque_iterator& __y)
394
- {return !(__x == __y);}
395
-
396
- _LIBCPP_INLINE_VISIBILITY friend
397
- bool operator<(const __deque_iterator& __x, const __deque_iterator& __y)
398
- {return __x.__m_iter_ < __y.__m_iter_ ||
399
- (__x.__m_iter_ == __y.__m_iter_ && __x.__ptr_ < __y.__ptr_);}
400
-
401
- _LIBCPP_INLINE_VISIBILITY friend
402
- bool operator>(const __deque_iterator& __x, const __deque_iterator& __y)
403
- {return __y < __x;}
404
-
405
- _LIBCPP_INLINE_VISIBILITY friend
406
- bool operator<=(const __deque_iterator& __x, const __deque_iterator& __y)
407
- {return !(__y < __x);}
408
-
409
- _LIBCPP_INLINE_VISIBILITY friend
410
- bool operator>=(const __deque_iterator& __x, const __deque_iterator& __y)
411
- {return !(__x < __y);}
412
-
413
- private:
414
- _LIBCPP_INLINE_VISIBILITY __deque_iterator(__map_iterator __m, pointer __p) _NOEXCEPT
415
- : __m_iter_(__m), __ptr_(__p) {}
416
-
417
- template <class _Tp, class _Ap> friend class __deque_base;
418
- template <class _Tp, class _Ap> friend class _LIBCPP_TYPE_VIS_ONLY deque;
419
- template <class _Vp, class _Pp, class _Rp, class _MP, class _Dp, _Dp>
420
- friend class _LIBCPP_TYPE_VIS_ONLY __deque_iterator;
421
-
422
- template <class _RAIter,
423
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
424
- friend
425
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
426
- copy(_RAIter __f,
427
- _RAIter __l,
428
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
429
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
430
-
431
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
432
- class _OutputIterator>
433
- friend
434
- _OutputIterator
435
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
436
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
437
- _OutputIterator __r);
438
-
439
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
440
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
441
- friend
442
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
443
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
444
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
445
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
446
-
447
- template <class _RAIter,
448
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
449
- friend
450
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
451
- copy_backward(_RAIter __f,
452
- _RAIter __l,
453
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
454
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
455
-
456
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
457
- class _OutputIterator>
458
- friend
459
- _OutputIterator
460
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
461
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
462
- _OutputIterator __r);
463
-
464
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
465
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
466
- friend
467
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
468
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
469
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
470
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
471
-
472
- template <class _RAIter,
473
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
474
- friend
475
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
476
- move(_RAIter __f,
477
- _RAIter __l,
478
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
479
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
480
-
481
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
482
- class _OutputIterator>
483
- friend
484
- _OutputIterator
485
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
486
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
487
- _OutputIterator __r);
488
-
489
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
490
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
491
- friend
492
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
493
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
494
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
495
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
496
-
497
- template <class _RAIter,
498
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
499
- friend
500
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
501
- move_backward(_RAIter __f,
502
- _RAIter __l,
503
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
504
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);
505
-
506
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
507
- class _OutputIterator>
508
- friend
509
- _OutputIterator
510
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
511
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
512
- _OutputIterator __r);
513
-
514
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
515
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
516
- friend
517
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
518
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
519
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
520
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);
521
- };
522
-
523
- // copy
524
-
525
- template <class _RAIter,
526
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
527
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
528
- copy(_RAIter __f,
529
- _RAIter __l,
530
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
531
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
532
- {
533
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
534
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
535
- while (__f != __l)
536
- {
537
- pointer __rb = __r.__ptr_;
538
- pointer __re = *__r.__m_iter_ + _B2;
539
- difference_type __bs = __re - __rb;
540
- difference_type __n = __l - __f;
541
- _RAIter __m = __l;
542
- if (__n > __bs)
543
- {
544
- __n = __bs;
545
- __m = __f + __n;
546
- }
547
- _VSTD::copy(__f, __m, __rb);
548
- __f = __m;
549
- __r += __n;
550
- }
551
- return __r;
552
- }
553
-
554
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
555
- class _OutputIterator>
556
- _OutputIterator
557
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
558
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
559
- _OutputIterator __r)
560
- {
561
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
562
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
563
- difference_type __n = __l - __f;
564
- while (__n > 0)
565
- {
566
- pointer __fb = __f.__ptr_;
567
- pointer __fe = *__f.__m_iter_ + _B1;
568
- difference_type __bs = __fe - __fb;
569
- if (__bs > __n)
570
- {
571
- __bs = __n;
572
- __fe = __fb + __bs;
573
- }
574
- __r = _VSTD::copy(__fb, __fe, __r);
575
- __n -= __bs;
576
- __f += __bs;
577
- }
578
- return __r;
579
- }
580
-
581
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
582
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
583
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
584
- copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
585
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
586
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
587
- {
588
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
589
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
590
- difference_type __n = __l - __f;
591
- while (__n > 0)
592
- {
593
- pointer __fb = __f.__ptr_;
594
- pointer __fe = *__f.__m_iter_ + _B1;
595
- difference_type __bs = __fe - __fb;
596
- if (__bs > __n)
597
- {
598
- __bs = __n;
599
- __fe = __fb + __bs;
600
- }
601
- __r = _VSTD::copy(__fb, __fe, __r);
602
- __n -= __bs;
603
- __f += __bs;
604
- }
605
- return __r;
606
- }
607
-
608
- // copy_backward
609
-
610
- template <class _RAIter,
611
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
612
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
613
- copy_backward(_RAIter __f,
614
- _RAIter __l,
615
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
616
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
617
- {
618
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
619
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
620
- while (__f != __l)
621
- {
622
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r);
623
- pointer __rb = *__rp.__m_iter_;
624
- pointer __re = __rp.__ptr_ + 1;
625
- difference_type __bs = __re - __rb;
626
- difference_type __n = __l - __f;
627
- _RAIter __m = __f;
628
- if (__n > __bs)
629
- {
630
- __n = __bs;
631
- __m = __l - __n;
632
- }
633
- _VSTD::copy_backward(__m, __l, __re);
634
- __l = __m;
635
- __r -= __n;
636
- }
637
- return __r;
638
- }
639
-
640
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
641
- class _OutputIterator>
642
- _OutputIterator
643
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
644
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
645
- _OutputIterator __r)
646
- {
647
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
648
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
649
- difference_type __n = __l - __f;
650
- while (__n > 0)
651
- {
652
- --__l;
653
- pointer __lb = *__l.__m_iter_;
654
- pointer __le = __l.__ptr_ + 1;
655
- difference_type __bs = __le - __lb;
656
- if (__bs > __n)
657
- {
658
- __bs = __n;
659
- __lb = __le - __bs;
660
- }
661
- __r = _VSTD::copy_backward(__lb, __le, __r);
662
- __n -= __bs;
663
- __l -= __bs - 1;
664
- }
665
- return __r;
666
- }
667
-
668
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
669
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
670
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
671
- copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
672
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
673
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
674
- {
675
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
676
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
677
- difference_type __n = __l - __f;
678
- while (__n > 0)
679
- {
680
- --__l;
681
- pointer __lb = *__l.__m_iter_;
682
- pointer __le = __l.__ptr_ + 1;
683
- difference_type __bs = __le - __lb;
684
- if (__bs > __n)
685
- {
686
- __bs = __n;
687
- __lb = __le - __bs;
688
- }
689
- __r = _VSTD::copy_backward(__lb, __le, __r);
690
- __n -= __bs;
691
- __l -= __bs - 1;
692
- }
693
- return __r;
694
- }
695
-
696
- // move
697
-
698
- template <class _RAIter,
699
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
700
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
701
- move(_RAIter __f,
702
- _RAIter __l,
703
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
704
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
705
- {
706
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
707
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
708
- while (__f != __l)
709
- {
710
- pointer __rb = __r.__ptr_;
711
- pointer __re = *__r.__m_iter_ + _B2;
712
- difference_type __bs = __re - __rb;
713
- difference_type __n = __l - __f;
714
- _RAIter __m = __l;
715
- if (__n > __bs)
716
- {
717
- __n = __bs;
718
- __m = __f + __n;
719
- }
720
- _VSTD::move(__f, __m, __rb);
721
- __f = __m;
722
- __r += __n;
723
- }
724
- return __r;
725
- }
726
-
727
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
728
- class _OutputIterator>
729
- _OutputIterator
730
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
731
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
732
- _OutputIterator __r)
733
- {
734
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
735
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
736
- difference_type __n = __l - __f;
737
- while (__n > 0)
738
- {
739
- pointer __fb = __f.__ptr_;
740
- pointer __fe = *__f.__m_iter_ + _B1;
741
- difference_type __bs = __fe - __fb;
742
- if (__bs > __n)
743
- {
744
- __bs = __n;
745
- __fe = __fb + __bs;
746
- }
747
- __r = _VSTD::move(__fb, __fe, __r);
748
- __n -= __bs;
749
- __f += __bs;
750
- }
751
- return __r;
752
- }
753
-
754
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
755
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
756
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
757
- move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
758
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
759
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
760
- {
761
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
762
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
763
- difference_type __n = __l - __f;
764
- while (__n > 0)
765
- {
766
- pointer __fb = __f.__ptr_;
767
- pointer __fe = *__f.__m_iter_ + _B1;
768
- difference_type __bs = __fe - __fb;
769
- if (__bs > __n)
770
- {
771
- __bs = __n;
772
- __fe = __fb + __bs;
773
- }
774
- __r = _VSTD::move(__fb, __fe, __r);
775
- __n -= __bs;
776
- __f += __bs;
777
- }
778
- return __r;
779
- }
780
-
781
- // move_backward
782
-
783
- template <class _RAIter,
784
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
785
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
786
- move_backward(_RAIter __f,
787
- _RAIter __l,
788
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,
789
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
790
- {
791
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;
792
- typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;
793
- while (__f != __l)
794
- {
795
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r);
796
- pointer __rb = *__rp.__m_iter_;
797
- pointer __re = __rp.__ptr_ + 1;
798
- difference_type __bs = __re - __rb;
799
- difference_type __n = __l - __f;
800
- _RAIter __m = __f;
801
- if (__n > __bs)
802
- {
803
- __n = __bs;
804
- __m = __l - __n;
805
- }
806
- _VSTD::move_backward(__m, __l, __re);
807
- __l = __m;
808
- __r -= __n;
809
- }
810
- return __r;
811
- }
812
-
813
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
814
- class _OutputIterator>
815
- _OutputIterator
816
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
817
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
818
- _OutputIterator __r)
819
- {
820
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
821
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
822
- difference_type __n = __l - __f;
823
- while (__n > 0)
824
- {
825
- --__l;
826
- pointer __lb = *__l.__m_iter_;
827
- pointer __le = __l.__ptr_ + 1;
828
- difference_type __bs = __le - __lb;
829
- if (__bs > __n)
830
- {
831
- __bs = __n;
832
- __lb = __le - __bs;
833
- }
834
- __r = _VSTD::move_backward(__lb, __le, __r);
835
- __n -= __bs;
836
- __l -= __bs - 1;
837
- }
838
- return __r;
839
- }
840
-
841
- template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,
842
- class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
843
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>
844
- move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,
845
- __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,
846
- __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)
847
- {
848
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;
849
- typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;
850
- difference_type __n = __l - __f;
851
- while (__n > 0)
852
- {
853
- --__l;
854
- pointer __lb = *__l.__m_iter_;
855
- pointer __le = __l.__ptr_ + 1;
856
- difference_type __bs = __le - __lb;
857
- if (__bs > __n)
858
- {
859
- __bs = __n;
860
- __lb = __le - __bs;
861
- }
862
- __r = _VSTD::move_backward(__lb, __le, __r);
863
- __n -= __bs;
864
- __l -= __bs - 1;
865
- }
866
- return __r;
867
- }
868
-
869
- template <bool>
870
- class __deque_base_common
871
- {
872
- protected:
873
- void __throw_length_error() const;
874
- void __throw_out_of_range() const;
875
- };
876
-
877
- template <bool __b>
878
- void
879
- __deque_base_common<__b>::__throw_length_error() const
880
- {
881
- #ifndef _LIBCPP_NO_EXCEPTIONS
882
- throw length_error("deque");
883
- #endif
884
- }
885
-
886
- template <bool __b>
887
- void
888
- __deque_base_common<__b>::__throw_out_of_range() const
889
- {
890
- #ifndef _LIBCPP_NO_EXCEPTIONS
891
- throw out_of_range("deque");
892
- #endif
893
- }
894
-
895
- template <class _Tp, class _Allocator>
896
- class __deque_base
897
- : protected __deque_base_common<true>
898
- {
899
- __deque_base(const __deque_base& __c);
900
- __deque_base& operator=(const __deque_base& __c);
901
- protected:
902
- typedef _Tp value_type;
903
- typedef _Allocator allocator_type;
904
- typedef allocator_traits<allocator_type> __alloc_traits;
905
- typedef value_type& reference;
906
- typedef const value_type& const_reference;
907
- typedef typename __alloc_traits::size_type size_type;
908
- typedef typename __alloc_traits::difference_type difference_type;
909
- typedef typename __alloc_traits::pointer pointer;
910
- typedef typename __alloc_traits::const_pointer const_pointer;
911
-
912
- static const difference_type __block_size = sizeof(value_type) < 256 ? 4096 / sizeof(value_type) : 16;
913
-
914
- typedef typename __alloc_traits::template
915
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
916
- rebind_alloc<pointer>
917
- #else
918
- rebind_alloc<pointer>::other
919
- #endif
920
- __pointer_allocator;
921
- typedef allocator_traits<__pointer_allocator> __map_traits;
922
- typedef typename __map_traits::pointer __map_pointer;
923
- typedef typename __alloc_traits::template
924
- #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
925
- rebind_alloc<const_pointer>
926
- #else
927
- rebind_alloc<const_pointer>::other
928
- #endif
929
- __const_pointer_allocator;
930
- typedef typename allocator_traits<__const_pointer_allocator>::const_pointer __map_const_pointer;
931
- typedef __split_buffer<pointer, __pointer_allocator> __map;
932
-
933
- typedef __deque_iterator<value_type, pointer, reference, __map_pointer,
934
- difference_type, __block_size> iterator;
935
- typedef __deque_iterator<value_type, const_pointer, const_reference, __map_const_pointer,
936
- difference_type, __block_size> const_iterator;
937
-
938
- __map __map_;
939
- size_type __start_;
940
- __compressed_pair<size_type, allocator_type> __size_;
941
-
942
- iterator begin() _NOEXCEPT;
943
- const_iterator begin() const _NOEXCEPT;
944
- iterator end() _NOEXCEPT;
945
- const_iterator end() const _NOEXCEPT;
946
-
947
- _LIBCPP_INLINE_VISIBILITY size_type& size() {return __size_.first();}
948
- _LIBCPP_INLINE_VISIBILITY
949
- const size_type& size() const _NOEXCEPT {return __size_.first();}
950
- _LIBCPP_INLINE_VISIBILITY allocator_type& __alloc() {return __size_.second();}
951
- _LIBCPP_INLINE_VISIBILITY
952
- const allocator_type& __alloc() const _NOEXCEPT {return __size_.second();}
953
-
954
- __deque_base()
955
- _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
956
- explicit __deque_base(const allocator_type& __a);
957
- public:
958
- ~__deque_base();
959
-
960
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
961
-
962
- __deque_base(__deque_base&& __c)
963
- _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);
964
- __deque_base(__deque_base&& __c, const allocator_type& __a);
965
-
966
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
967
- void swap(__deque_base& __c)
968
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
969
- __is_nothrow_swappable<allocator_type>::value);
970
- protected:
971
- void clear() _NOEXCEPT;
972
-
973
- bool __invariants() const;
974
-
975
- _LIBCPP_INLINE_VISIBILITY
976
- void __move_assign(__deque_base& __c)
977
- _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
978
- is_nothrow_move_assignable<allocator_type>::value)
979
- {
980
- __map_ = _VSTD::move(__c.__map_);
981
- __start_ = __c.__start_;
982
- size() = __c.size();
983
- __move_assign_alloc(__c);
984
- __c.__start_ = __c.size() = 0;
985
- }
986
-
987
- _LIBCPP_INLINE_VISIBILITY
988
- void __move_assign_alloc(__deque_base& __c)
989
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_move_assignment::value ||
990
- is_nothrow_move_assignable<allocator_type>::value)
991
- {__move_assign_alloc(__c, integral_constant<bool,
992
- __alloc_traits::propagate_on_container_move_assignment::value>());}
993
-
994
- private:
995
- _LIBCPP_INLINE_VISIBILITY
996
- void __move_assign_alloc(__deque_base& __c, true_type)
997
- _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)
998
- {
999
- __alloc() = _VSTD::move(__c.__alloc());
1000
- }
1001
-
1002
- _LIBCPP_INLINE_VISIBILITY
1003
- void __move_assign_alloc(__deque_base&, false_type) _NOEXCEPT
1004
- {}
1005
-
1006
- _LIBCPP_INLINE_VISIBILITY
1007
- static void __swap_alloc(allocator_type& __x, allocator_type& __y)
1008
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
1009
- __is_nothrow_swappable<allocator_type>::value)
1010
- {__swap_alloc(__x, __y, integral_constant<bool,
1011
- __alloc_traits::propagate_on_container_swap::value>());}
1012
-
1013
- _LIBCPP_INLINE_VISIBILITY
1014
- static void __swap_alloc(allocator_type& __x, allocator_type& __y, true_type)
1015
- _NOEXCEPT_(__is_nothrow_swappable<allocator_type>::value)
1016
- {
1017
- using _VSTD::swap;
1018
- swap(__x, __y);
1019
- }
1020
-
1021
- _LIBCPP_INLINE_VISIBILITY
1022
- static void __swap_alloc(allocator_type&, allocator_type&, false_type)
1023
- _NOEXCEPT
1024
- {}
1025
- };
1026
-
1027
- template <class _Tp, class _Allocator>
1028
- bool
1029
- __deque_base<_Tp, _Allocator>::__invariants() const
1030
- {
1031
- if (!__map_.__invariants())
1032
- return false;
1033
- if (__map_.size() >= size_type(-1) / __block_size)
1034
- return false;
1035
- for (typename __map::const_iterator __i = __map_.begin(), __e = __map_.end();
1036
- __i != __e; ++__i)
1037
- if (*__i == nullptr)
1038
- return false;
1039
- if (__map_.size() != 0)
1040
- {
1041
- if (size() >= __map_.size() * __block_size)
1042
- return false;
1043
- if (__start_ >= __map_.size() * __block_size - size())
1044
- return false;
1045
- }
1046
- else
1047
- {
1048
- if (size() != 0)
1049
- return false;
1050
- if (__start_ != 0)
1051
- return false;
1052
- }
1053
- return true;
1054
- }
1055
-
1056
- template <class _Tp, class _Allocator>
1057
- typename __deque_base<_Tp, _Allocator>::iterator
1058
- __deque_base<_Tp, _Allocator>::begin() _NOEXCEPT
1059
- {
1060
- __map_pointer __mp = __map_.begin() + __start_ / __block_size;
1061
- return iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size);
1062
- }
1063
-
1064
- template <class _Tp, class _Allocator>
1065
- typename __deque_base<_Tp, _Allocator>::const_iterator
1066
- __deque_base<_Tp, _Allocator>::begin() const _NOEXCEPT
1067
- {
1068
- __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __start_ / __block_size);
1069
- return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size);
1070
- }
1071
-
1072
- template <class _Tp, class _Allocator>
1073
- typename __deque_base<_Tp, _Allocator>::iterator
1074
- __deque_base<_Tp, _Allocator>::end() _NOEXCEPT
1075
- {
1076
- size_type __p = size() + __start_;
1077
- __map_pointer __mp = __map_.begin() + __p / __block_size;
1078
- return iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size);
1079
- }
1080
-
1081
- template <class _Tp, class _Allocator>
1082
- typename __deque_base<_Tp, _Allocator>::const_iterator
1083
- __deque_base<_Tp, _Allocator>::end() const _NOEXCEPT
1084
- {
1085
- size_type __p = size() + __start_;
1086
- __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __p / __block_size);
1087
- return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size);
1088
- }
1089
-
1090
- template <class _Tp, class _Allocator>
1091
- inline _LIBCPP_INLINE_VISIBILITY
1092
- __deque_base<_Tp, _Allocator>::__deque_base()
1093
- _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
1094
- : __start_(0), __size_(0) {}
1095
-
1096
- template <class _Tp, class _Allocator>
1097
- inline _LIBCPP_INLINE_VISIBILITY
1098
- __deque_base<_Tp, _Allocator>::__deque_base(const allocator_type& __a)
1099
- : __map_(__pointer_allocator(__a)), __start_(0), __size_(0, __a) {}
1100
-
1101
- template <class _Tp, class _Allocator>
1102
- __deque_base<_Tp, _Allocator>::~__deque_base()
1103
- {
1104
- clear();
1105
- typename __map::iterator __i = __map_.begin();
1106
- typename __map::iterator __e = __map_.end();
1107
- for (; __i != __e; ++__i)
1108
- __alloc_traits::deallocate(__alloc(), *__i, __block_size);
1109
- }
1110
-
1111
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1112
-
1113
- template <class _Tp, class _Allocator>
1114
- __deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c)
1115
- _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
1116
- : __map_(_VSTD::move(__c.__map_)),
1117
- __start_(_VSTD::move(__c.__start_)),
1118
- __size_(_VSTD::move(__c.__size_))
1119
- {
1120
- __c.__start_ = 0;
1121
- __c.size() = 0;
1122
- }
1123
-
1124
- template <class _Tp, class _Allocator>
1125
- __deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c, const allocator_type& __a)
1126
- : __map_(_VSTD::move(__c.__map_), __pointer_allocator(__a)),
1127
- __start_(_VSTD::move(__c.__start_)),
1128
- __size_(_VSTD::move(__c.size()), __a)
1129
- {
1130
- if (__a == __c.__alloc())
1131
- {
1132
- __c.__start_ = 0;
1133
- __c.size() = 0;
1134
- }
1135
- else
1136
- {
1137
- __map_.clear();
1138
- __start_ = 0;
1139
- size() = 0;
1140
- }
1141
- }
1142
-
1143
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1144
-
1145
- template <class _Tp, class _Allocator>
1146
- void
1147
- __deque_base<_Tp, _Allocator>::swap(__deque_base& __c)
1148
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value||
1149
- __is_nothrow_swappable<allocator_type>::value)
1150
- {
1151
- __map_.swap(__c.__map_);
1152
- _VSTD::swap(__start_, __c.__start_);
1153
- _VSTD::swap(size(), __c.size());
1154
- __swap_alloc(__alloc(), __c.__alloc());
1155
- }
1156
-
1157
- template <class _Tp, class _Allocator>
1158
- void
1159
- __deque_base<_Tp, _Allocator>::clear() _NOEXCEPT
1160
- {
1161
- allocator_type& __a = __alloc();
1162
- for (iterator __i = begin(), __e = end(); __i != __e; ++__i)
1163
- __alloc_traits::destroy(__a, _VSTD::addressof(*__i));
1164
- size() = 0;
1165
- while (__map_.size() > 2)
1166
- {
1167
- __alloc_traits::deallocate(__a, __map_.front(), __block_size);
1168
- __map_.pop_front();
1169
- }
1170
- switch (__map_.size())
1171
- {
1172
- case 1:
1173
- __start_ = __block_size / 2;
1174
- break;
1175
- case 2:
1176
- __start_ = __block_size;
1177
- break;
1178
- }
1179
- }
1180
-
1181
- template <class _Tp, class _Allocator = allocator<_Tp> >
1182
- class _LIBCPP_TYPE_VIS_ONLY deque
1183
- : private __deque_base<_Tp, _Allocator>
1184
- {
1185
- public:
1186
- // types:
1187
-
1188
- typedef _Tp value_type;
1189
- typedef _Allocator allocator_type;
1190
-
1191
- typedef __deque_base<value_type, allocator_type> __base;
1192
-
1193
- typedef typename __base::__alloc_traits __alloc_traits;
1194
- typedef typename __base::reference reference;
1195
- typedef typename __base::const_reference const_reference;
1196
- typedef typename __base::iterator iterator;
1197
- typedef typename __base::const_iterator const_iterator;
1198
- typedef typename __base::size_type size_type;
1199
- typedef typename __base::difference_type difference_type;
1200
-
1201
- typedef typename __base::pointer pointer;
1202
- typedef typename __base::const_pointer const_pointer;
1203
- typedef _VSTD::reverse_iterator<iterator> reverse_iterator;
1204
- typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
1205
-
1206
- // construct/copy/destroy:
1207
- _LIBCPP_INLINE_VISIBILITY
1208
- deque()
1209
- _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
1210
- {}
1211
- _LIBCPP_INLINE_VISIBILITY deque(const allocator_type& __a) : __base(__a) {}
1212
- explicit deque(size_type __n);
1213
- #if _LIBCPP_STD_VER > 11
1214
- explicit deque(size_type __n, const _Allocator& __a);
1215
- #endif
1216
- deque(size_type __n, const value_type& __v);
1217
- deque(size_type __n, const value_type& __v, const allocator_type& __a);
1218
- template <class _InputIter>
1219
- deque(_InputIter __f, _InputIter __l,
1220
- typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);
1221
- template <class _InputIter>
1222
- deque(_InputIter __f, _InputIter __l, const allocator_type& __a,
1223
- typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);
1224
- deque(const deque& __c);
1225
- deque(const deque& __c, const allocator_type& __a);
1226
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1227
- deque(initializer_list<value_type> __il);
1228
- deque(initializer_list<value_type> __il, const allocator_type& __a);
1229
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1230
-
1231
- deque& operator=(const deque& __c);
1232
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1233
- _LIBCPP_INLINE_VISIBILITY
1234
- deque& operator=(initializer_list<value_type> __il) {assign(__il); return *this;}
1235
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1236
-
1237
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1238
- deque(deque&& __c) _NOEXCEPT_(is_nothrow_move_constructible<__base>::value);
1239
- deque(deque&& __c, const allocator_type& __a);
1240
- deque& operator=(deque&& __c)
1241
- _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
1242
- is_nothrow_move_assignable<allocator_type>::value);
1243
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1244
-
1245
- template <class _InputIter>
1246
- void assign(_InputIter __f, _InputIter __l,
1247
- typename enable_if<__is_input_iterator<_InputIter>::value &&
1248
- !__is_random_access_iterator<_InputIter>::value>::type* = 0);
1249
- template <class _RAIter>
1250
- void assign(_RAIter __f, _RAIter __l,
1251
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);
1252
- void assign(size_type __n, const value_type& __v);
1253
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1254
- _LIBCPP_INLINE_VISIBILITY
1255
- void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());}
1256
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1257
-
1258
- allocator_type get_allocator() const _NOEXCEPT;
1259
-
1260
- // iterators:
1261
-
1262
- _LIBCPP_INLINE_VISIBILITY
1263
- iterator begin() _NOEXCEPT {return __base::begin();}
1264
- _LIBCPP_INLINE_VISIBILITY
1265
- const_iterator begin() const _NOEXCEPT {return __base::begin();}
1266
- _LIBCPP_INLINE_VISIBILITY
1267
- iterator end() _NOEXCEPT {return __base::end();}
1268
- _LIBCPP_INLINE_VISIBILITY
1269
- const_iterator end() const _NOEXCEPT {return __base::end();}
1270
-
1271
- _LIBCPP_INLINE_VISIBILITY
1272
- reverse_iterator rbegin() _NOEXCEPT
1273
- {return reverse_iterator(__base::end());}
1274
- _LIBCPP_INLINE_VISIBILITY
1275
- const_reverse_iterator rbegin() const _NOEXCEPT
1276
- {return const_reverse_iterator(__base::end());}
1277
- _LIBCPP_INLINE_VISIBILITY
1278
- reverse_iterator rend() _NOEXCEPT
1279
- {return reverse_iterator(__base::begin());}
1280
- _LIBCPP_INLINE_VISIBILITY
1281
- const_reverse_iterator rend() const _NOEXCEPT
1282
- {return const_reverse_iterator(__base::begin());}
1283
-
1284
- _LIBCPP_INLINE_VISIBILITY
1285
- const_iterator cbegin() const _NOEXCEPT
1286
- {return __base::begin();}
1287
- _LIBCPP_INLINE_VISIBILITY
1288
- const_iterator cend() const _NOEXCEPT
1289
- {return __base::end();}
1290
- _LIBCPP_INLINE_VISIBILITY
1291
- const_reverse_iterator crbegin() const _NOEXCEPT
1292
- {return const_reverse_iterator(__base::end());}
1293
- _LIBCPP_INLINE_VISIBILITY
1294
- const_reverse_iterator crend() const _NOEXCEPT
1295
- {return const_reverse_iterator(__base::begin());}
1296
-
1297
- // capacity:
1298
- _LIBCPP_INLINE_VISIBILITY
1299
- size_type size() const _NOEXCEPT {return __base::size();}
1300
- _LIBCPP_INLINE_VISIBILITY
1301
- size_type max_size() const _NOEXCEPT
1302
- {return __alloc_traits::max_size(__base::__alloc());}
1303
- void resize(size_type __n);
1304
- void resize(size_type __n, const value_type& __v);
1305
- void shrink_to_fit() _NOEXCEPT;
1306
- _LIBCPP_INLINE_VISIBILITY
1307
- bool empty() const _NOEXCEPT {return __base::size() == 0;}
1308
-
1309
- // element access:
1310
- reference operator[](size_type __i);
1311
- const_reference operator[](size_type __i) const;
1312
- reference at(size_type __i);
1313
- const_reference at(size_type __i) const;
1314
- reference front();
1315
- const_reference front() const;
1316
- reference back();
1317
- const_reference back() const;
1318
-
1319
- // 23.2.2.3 modifiers:
1320
- void push_front(const value_type& __v);
1321
- void push_back(const value_type& __v);
1322
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1323
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1324
- template <class... _Args> void emplace_front(_Args&&... __args);
1325
- template <class... _Args> void emplace_back(_Args&&... __args);
1326
- template <class... _Args> iterator emplace(const_iterator __p, _Args&&... __args);
1327
- #endif // _LIBCPP_HAS_NO_VARIADICS
1328
- void push_front(value_type&& __v);
1329
- void push_back(value_type&& __v);
1330
- iterator insert(const_iterator __p, value_type&& __v);
1331
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1332
- iterator insert(const_iterator __p, const value_type& __v);
1333
- iterator insert(const_iterator __p, size_type __n, const value_type& __v);
1334
- template <class _InputIter>
1335
- iterator insert (const_iterator __p, _InputIter __f, _InputIter __l,
1336
- typename enable_if<__is_input_iterator<_InputIter>::value
1337
- &&!__is_bidirectional_iterator<_InputIter>::value>::type* = 0);
1338
- template <class _BiIter>
1339
- iterator insert (const_iterator __p, _BiIter __f, _BiIter __l,
1340
- typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type* = 0);
1341
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1342
- _LIBCPP_INLINE_VISIBILITY
1343
- iterator insert(const_iterator __p, initializer_list<value_type> __il)
1344
- {return insert(__p, __il.begin(), __il.end());}
1345
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1346
- void pop_front();
1347
- void pop_back();
1348
- iterator erase(const_iterator __p);
1349
- iterator erase(const_iterator __f, const_iterator __l);
1350
-
1351
- void swap(deque& __c)
1352
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
1353
- __is_nothrow_swappable<allocator_type>::value);
1354
- void clear() _NOEXCEPT;
1355
-
1356
- _LIBCPP_INLINE_VISIBILITY
1357
- bool __invariants() const {return __base::__invariants();}
1358
- private:
1359
- typedef typename __base::__map_const_pointer __map_const_pointer;
1360
-
1361
- _LIBCPP_INLINE_VISIBILITY
1362
- static size_type __recommend_blocks(size_type __n)
1363
- {
1364
- return __n / __base::__block_size + (__n % __base::__block_size != 0);
1365
- }
1366
- _LIBCPP_INLINE_VISIBILITY
1367
- size_type __capacity() const
1368
- {
1369
- return __base::__map_.size() == 0 ? 0 : __base::__map_.size() * __base::__block_size - 1;
1370
- }
1371
- _LIBCPP_INLINE_VISIBILITY
1372
- size_type __front_spare() const
1373
- {
1374
- return __base::__start_;
1375
- }
1376
- _LIBCPP_INLINE_VISIBILITY
1377
- size_type __back_spare() const
1378
- {
1379
- return __capacity() - (__base::__start_ + __base::size());
1380
- }
1381
-
1382
- template <class _InpIter>
1383
- void __append(_InpIter __f, _InpIter __l,
1384
- typename enable_if<__is_input_iterator<_InpIter>::value &&
1385
- !__is_forward_iterator<_InpIter>::value>::type* = 0);
1386
- template <class _ForIter>
1387
- void __append(_ForIter __f, _ForIter __l,
1388
- typename enable_if<__is_forward_iterator<_ForIter>::value>::type* = 0);
1389
- void __append(size_type __n);
1390
- void __append(size_type __n, const value_type& __v);
1391
- void __erase_to_end(const_iterator __f);
1392
- void __add_front_capacity();
1393
- void __add_front_capacity(size_type __n);
1394
- void __add_back_capacity();
1395
- void __add_back_capacity(size_type __n);
1396
- iterator __move_and_check(iterator __f, iterator __l, iterator __r,
1397
- const_pointer& __vt);
1398
- iterator __move_backward_and_check(iterator __f, iterator __l, iterator __r,
1399
- const_pointer& __vt);
1400
- void __move_construct_and_check(iterator __f, iterator __l,
1401
- iterator __r, const_pointer& __vt);
1402
- void __move_construct_backward_and_check(iterator __f, iterator __l,
1403
- iterator __r, const_pointer& __vt);
1404
-
1405
- _LIBCPP_INLINE_VISIBILITY
1406
- void __copy_assign_alloc(const deque& __c)
1407
- {__copy_assign_alloc(__c, integral_constant<bool,
1408
- __alloc_traits::propagate_on_container_copy_assignment::value>());}
1409
-
1410
- _LIBCPP_INLINE_VISIBILITY
1411
- void __copy_assign_alloc(const deque& __c, true_type)
1412
- {
1413
- if (__base::__alloc() != __c.__alloc())
1414
- {
1415
- clear();
1416
- shrink_to_fit();
1417
- }
1418
- __base::__alloc() = __c.__alloc();
1419
- __base::__map_.__alloc() = __c.__map_.__alloc();
1420
- }
1421
-
1422
- _LIBCPP_INLINE_VISIBILITY
1423
- void __copy_assign_alloc(const deque&, false_type)
1424
- {}
1425
-
1426
- void __move_assign(deque& __c, true_type)
1427
- _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);
1428
- void __move_assign(deque& __c, false_type);
1429
- };
1430
-
1431
- template <class _Tp, class _Allocator>
1432
- deque<_Tp, _Allocator>::deque(size_type __n)
1433
- {
1434
- if (__n > 0)
1435
- __append(__n);
1436
- }
1437
-
1438
- #if _LIBCPP_STD_VER > 11
1439
- template <class _Tp, class _Allocator>
1440
- deque<_Tp, _Allocator>::deque(size_type __n, const _Allocator& __a)
1441
- : __base(__a)
1442
- {
1443
- if (__n > 0)
1444
- __append(__n);
1445
- }
1446
- #endif
1447
-
1448
- template <class _Tp, class _Allocator>
1449
- deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v)
1450
- {
1451
- if (__n > 0)
1452
- __append(__n, __v);
1453
- }
1454
-
1455
- template <class _Tp, class _Allocator>
1456
- deque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v, const allocator_type& __a)
1457
- : __base(__a)
1458
- {
1459
- if (__n > 0)
1460
- __append(__n, __v);
1461
- }
1462
-
1463
- template <class _Tp, class _Allocator>
1464
- template <class _InputIter>
1465
- deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l,
1466
- typename enable_if<__is_input_iterator<_InputIter>::value>::type*)
1467
- {
1468
- __append(__f, __l);
1469
- }
1470
-
1471
- template <class _Tp, class _Allocator>
1472
- template <class _InputIter>
1473
- deque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, const allocator_type& __a,
1474
- typename enable_if<__is_input_iterator<_InputIter>::value>::type*)
1475
- : __base(__a)
1476
- {
1477
- __append(__f, __l);
1478
- }
1479
-
1480
- template <class _Tp, class _Allocator>
1481
- deque<_Tp, _Allocator>::deque(const deque& __c)
1482
- : __base(__alloc_traits::select_on_container_copy_construction(__c.__alloc()))
1483
- {
1484
- __append(__c.begin(), __c.end());
1485
- }
1486
-
1487
- template <class _Tp, class _Allocator>
1488
- deque<_Tp, _Allocator>::deque(const deque& __c, const allocator_type& __a)
1489
- : __base(__a)
1490
- {
1491
- __append(__c.begin(), __c.end());
1492
- }
1493
-
1494
- #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1495
-
1496
- template <class _Tp, class _Allocator>
1497
- deque<_Tp, _Allocator>::deque(initializer_list<value_type> __il)
1498
- {
1499
- __append(__il.begin(), __il.end());
1500
- }
1501
-
1502
- template <class _Tp, class _Allocator>
1503
- deque<_Tp, _Allocator>::deque(initializer_list<value_type> __il, const allocator_type& __a)
1504
- : __base(__a)
1505
- {
1506
- __append(__il.begin(), __il.end());
1507
- }
1508
-
1509
- #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
1510
-
1511
- template <class _Tp, class _Allocator>
1512
- deque<_Tp, _Allocator>&
1513
- deque<_Tp, _Allocator>::operator=(const deque& __c)
1514
- {
1515
- if (this != &__c)
1516
- {
1517
- __copy_assign_alloc(__c);
1518
- assign(__c.begin(), __c.end());
1519
- }
1520
- return *this;
1521
- }
1522
-
1523
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1524
-
1525
- template <class _Tp, class _Allocator>
1526
- inline _LIBCPP_INLINE_VISIBILITY
1527
- deque<_Tp, _Allocator>::deque(deque&& __c)
1528
- _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)
1529
- : __base(_VSTD::move(__c))
1530
- {
1531
- }
1532
-
1533
- template <class _Tp, class _Allocator>
1534
- inline _LIBCPP_INLINE_VISIBILITY
1535
- deque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a)
1536
- : __base(_VSTD::move(__c), __a)
1537
- {
1538
- if (__a != __c.__alloc())
1539
- {
1540
- typedef move_iterator<iterator> _Ip;
1541
- assign(_Ip(__c.begin()), _Ip(__c.end()));
1542
- }
1543
- }
1544
-
1545
- template <class _Tp, class _Allocator>
1546
- inline _LIBCPP_INLINE_VISIBILITY
1547
- deque<_Tp, _Allocator>&
1548
- deque<_Tp, _Allocator>::operator=(deque&& __c)
1549
- _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
1550
- is_nothrow_move_assignable<allocator_type>::value)
1551
- {
1552
- __move_assign(__c, integral_constant<bool,
1553
- __alloc_traits::propagate_on_container_move_assignment::value>());
1554
- return *this;
1555
- }
1556
-
1557
- template <class _Tp, class _Allocator>
1558
- void
1559
- deque<_Tp, _Allocator>::__move_assign(deque& __c, false_type)
1560
- {
1561
- if (__base::__alloc() != __c.__alloc())
1562
- {
1563
- typedef move_iterator<iterator> _Ip;
1564
- assign(_Ip(__c.begin()), _Ip(__c.end()));
1565
- }
1566
- else
1567
- __move_assign(__c, true_type());
1568
- }
1569
-
1570
- template <class _Tp, class _Allocator>
1571
- void
1572
- deque<_Tp, _Allocator>::__move_assign(deque& __c, true_type)
1573
- _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)
1574
- {
1575
- clear();
1576
- shrink_to_fit();
1577
- __base::__move_assign(__c);
1578
- }
1579
-
1580
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1581
-
1582
- template <class _Tp, class _Allocator>
1583
- template <class _InputIter>
1584
- void
1585
- deque<_Tp, _Allocator>::assign(_InputIter __f, _InputIter __l,
1586
- typename enable_if<__is_input_iterator<_InputIter>::value &&
1587
- !__is_random_access_iterator<_InputIter>::value>::type*)
1588
- {
1589
- iterator __i = __base::begin();
1590
- iterator __e = __base::end();
1591
- for (; __f != __l && __i != __e; ++__f, ++__i)
1592
- *__i = *__f;
1593
- if (__f != __l)
1594
- __append(__f, __l);
1595
- else
1596
- __erase_to_end(__i);
1597
- }
1598
-
1599
- template <class _Tp, class _Allocator>
1600
- template <class _RAIter>
1601
- void
1602
- deque<_Tp, _Allocator>::assign(_RAIter __f, _RAIter __l,
1603
- typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)
1604
- {
1605
- if (static_cast<size_type>(__l - __f) > __base::size())
1606
- {
1607
- _RAIter __m = __f + __base::size();
1608
- _VSTD::copy(__f, __m, __base::begin());
1609
- __append(__m, __l);
1610
- }
1611
- else
1612
- __erase_to_end(_VSTD::copy(__f, __l, __base::begin()));
1613
- }
1614
-
1615
- template <class _Tp, class _Allocator>
1616
- void
1617
- deque<_Tp, _Allocator>::assign(size_type __n, const value_type& __v)
1618
- {
1619
- if (__n > __base::size())
1620
- {
1621
- _VSTD::fill_n(__base::begin(), __base::size(), __v);
1622
- __n -= __base::size();
1623
- __append(__n, __v);
1624
- }
1625
- else
1626
- __erase_to_end(_VSTD::fill_n(__base::begin(), __n, __v));
1627
- }
1628
-
1629
- template <class _Tp, class _Allocator>
1630
- inline _LIBCPP_INLINE_VISIBILITY
1631
- _Allocator
1632
- deque<_Tp, _Allocator>::get_allocator() const _NOEXCEPT
1633
- {
1634
- return __base::__alloc();
1635
- }
1636
-
1637
- template <class _Tp, class _Allocator>
1638
- void
1639
- deque<_Tp, _Allocator>::resize(size_type __n)
1640
- {
1641
- if (__n > __base::size())
1642
- __append(__n - __base::size());
1643
- else if (__n < __base::size())
1644
- __erase_to_end(__base::begin() + __n);
1645
- }
1646
-
1647
- template <class _Tp, class _Allocator>
1648
- void
1649
- deque<_Tp, _Allocator>::resize(size_type __n, const value_type& __v)
1650
- {
1651
- if (__n > __base::size())
1652
- __append(__n - __base::size(), __v);
1653
- else if (__n < __base::size())
1654
- __erase_to_end(__base::begin() + __n);
1655
- }
1656
-
1657
- template <class _Tp, class _Allocator>
1658
- void
1659
- deque<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT
1660
- {
1661
- allocator_type& __a = __base::__alloc();
1662
- if (empty())
1663
- {
1664
- while (__base::__map_.size() > 0)
1665
- {
1666
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
1667
- __base::__map_.pop_back();
1668
- }
1669
- __base::__start_ = 0;
1670
- }
1671
- else
1672
- {
1673
- if (__front_spare() >= __base::__block_size)
1674
- {
1675
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
1676
- __base::__map_.pop_front();
1677
- __base::__start_ -= __base::__block_size;
1678
- }
1679
- if (__back_spare() >= __base::__block_size)
1680
- {
1681
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
1682
- __base::__map_.pop_back();
1683
- }
1684
- }
1685
- __base::__map_.shrink_to_fit();
1686
- }
1687
-
1688
- template <class _Tp, class _Allocator>
1689
- inline _LIBCPP_INLINE_VISIBILITY
1690
- typename deque<_Tp, _Allocator>::reference
1691
- deque<_Tp, _Allocator>::operator[](size_type __i)
1692
- {
1693
- size_type __p = __base::__start_ + __i;
1694
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1695
- }
1696
-
1697
- template <class _Tp, class _Allocator>
1698
- inline _LIBCPP_INLINE_VISIBILITY
1699
- typename deque<_Tp, _Allocator>::const_reference
1700
- deque<_Tp, _Allocator>::operator[](size_type __i) const
1701
- {
1702
- size_type __p = __base::__start_ + __i;
1703
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1704
- }
1705
-
1706
- template <class _Tp, class _Allocator>
1707
- inline _LIBCPP_INLINE_VISIBILITY
1708
- typename deque<_Tp, _Allocator>::reference
1709
- deque<_Tp, _Allocator>::at(size_type __i)
1710
- {
1711
- if (__i >= __base::size())
1712
- __base::__throw_out_of_range();
1713
- size_type __p = __base::__start_ + __i;
1714
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1715
- }
1716
-
1717
- template <class _Tp, class _Allocator>
1718
- inline _LIBCPP_INLINE_VISIBILITY
1719
- typename deque<_Tp, _Allocator>::const_reference
1720
- deque<_Tp, _Allocator>::at(size_type __i) const
1721
- {
1722
- if (__i >= __base::size())
1723
- __base::__throw_out_of_range();
1724
- size_type __p = __base::__start_ + __i;
1725
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1726
- }
1727
-
1728
- template <class _Tp, class _Allocator>
1729
- inline _LIBCPP_INLINE_VISIBILITY
1730
- typename deque<_Tp, _Allocator>::reference
1731
- deque<_Tp, _Allocator>::front()
1732
- {
1733
- return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size)
1734
- + __base::__start_ % __base::__block_size);
1735
- }
1736
-
1737
- template <class _Tp, class _Allocator>
1738
- inline _LIBCPP_INLINE_VISIBILITY
1739
- typename deque<_Tp, _Allocator>::const_reference
1740
- deque<_Tp, _Allocator>::front() const
1741
- {
1742
- return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size)
1743
- + __base::__start_ % __base::__block_size);
1744
- }
1745
-
1746
- template <class _Tp, class _Allocator>
1747
- inline _LIBCPP_INLINE_VISIBILITY
1748
- typename deque<_Tp, _Allocator>::reference
1749
- deque<_Tp, _Allocator>::back()
1750
- {
1751
- size_type __p = __base::size() + __base::__start_ - 1;
1752
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1753
- }
1754
-
1755
- template <class _Tp, class _Allocator>
1756
- inline _LIBCPP_INLINE_VISIBILITY
1757
- typename deque<_Tp, _Allocator>::const_reference
1758
- deque<_Tp, _Allocator>::back() const
1759
- {
1760
- size_type __p = __base::size() + __base::__start_ - 1;
1761
- return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);
1762
- }
1763
-
1764
- template <class _Tp, class _Allocator>
1765
- void
1766
- deque<_Tp, _Allocator>::push_back(const value_type& __v)
1767
- {
1768
- allocator_type& __a = __base::__alloc();
1769
- if (__back_spare() == 0)
1770
- __add_back_capacity();
1771
- // __back_spare() >= 1
1772
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v);
1773
- ++__base::size();
1774
- }
1775
-
1776
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1777
-
1778
- template <class _Tp, class _Allocator>
1779
- void
1780
- deque<_Tp, _Allocator>::push_back(value_type&& __v)
1781
- {
1782
- allocator_type& __a = __base::__alloc();
1783
- if (__back_spare() == 0)
1784
- __add_back_capacity();
1785
- // __back_spare() >= 1
1786
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v));
1787
- ++__base::size();
1788
- }
1789
-
1790
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1791
-
1792
- template <class _Tp, class _Allocator>
1793
- template <class... _Args>
1794
- void
1795
- deque<_Tp, _Allocator>::emplace_back(_Args&&... __args)
1796
- {
1797
- allocator_type& __a = __base::__alloc();
1798
- if (__back_spare() == 0)
1799
- __add_back_capacity();
1800
- // __back_spare() >= 1
1801
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...);
1802
- ++__base::size();
1803
- }
1804
-
1805
- #endif // _LIBCPP_HAS_NO_VARIADICS
1806
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1807
-
1808
- template <class _Tp, class _Allocator>
1809
- void
1810
- deque<_Tp, _Allocator>::push_front(const value_type& __v)
1811
- {
1812
- allocator_type& __a = __base::__alloc();
1813
- if (__front_spare() == 0)
1814
- __add_front_capacity();
1815
- // __front_spare() >= 1
1816
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v);
1817
- --__base::__start_;
1818
- ++__base::size();
1819
- }
1820
-
1821
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1822
-
1823
- template <class _Tp, class _Allocator>
1824
- void
1825
- deque<_Tp, _Allocator>::push_front(value_type&& __v)
1826
- {
1827
- allocator_type& __a = __base::__alloc();
1828
- if (__front_spare() == 0)
1829
- __add_front_capacity();
1830
- // __front_spare() >= 1
1831
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v));
1832
- --__base::__start_;
1833
- ++__base::size();
1834
- }
1835
-
1836
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1837
-
1838
- template <class _Tp, class _Allocator>
1839
- template <class... _Args>
1840
- void
1841
- deque<_Tp, _Allocator>::emplace_front(_Args&&... __args)
1842
- {
1843
- allocator_type& __a = __base::__alloc();
1844
- if (__front_spare() == 0)
1845
- __add_front_capacity();
1846
- // __front_spare() >= 1
1847
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...);
1848
- --__base::__start_;
1849
- ++__base::size();
1850
- }
1851
-
1852
- #endif // _LIBCPP_HAS_NO_VARIADICS
1853
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1854
-
1855
- template <class _Tp, class _Allocator>
1856
- typename deque<_Tp, _Allocator>::iterator
1857
- deque<_Tp, _Allocator>::insert(const_iterator __p, const value_type& __v)
1858
- {
1859
- size_type __pos = __p - __base::begin();
1860
- size_type __to_end = __base::size() - __pos;
1861
- allocator_type& __a = __base::__alloc();
1862
- if (__pos < __to_end)
1863
- { // insert by shifting things backward
1864
- if (__front_spare() == 0)
1865
- __add_front_capacity();
1866
- // __front_spare() >= 1
1867
- if (__pos == 0)
1868
- {
1869
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v);
1870
- --__base::__start_;
1871
- ++__base::size();
1872
- }
1873
- else
1874
- {
1875
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
1876
- iterator __b = __base::begin();
1877
- iterator __bm1 = _VSTD::prev(__b);
1878
- if (__vt == pointer_traits<const_pointer>::pointer_to(*__b))
1879
- __vt = pointer_traits<const_pointer>::pointer_to(*__bm1);
1880
- __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));
1881
- --__base::__start_;
1882
- ++__base::size();
1883
- if (__pos > 1)
1884
- __b = __move_and_check(_VSTD::next(__b), __b + __pos, __b, __vt);
1885
- *__b = *__vt;
1886
- }
1887
- }
1888
- else
1889
- { // insert by shifting things forward
1890
- if (__back_spare() == 0)
1891
- __add_back_capacity();
1892
- // __back_capacity >= 1
1893
- size_type __de = __base::size() - __pos;
1894
- if (__de == 0)
1895
- {
1896
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v);
1897
- ++__base::size();
1898
- }
1899
- else
1900
- {
1901
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
1902
- iterator __e = __base::end();
1903
- iterator __em1 = _VSTD::prev(__e);
1904
- if (__vt == pointer_traits<const_pointer>::pointer_to(*__em1))
1905
- __vt = pointer_traits<const_pointer>::pointer_to(*__e);
1906
- __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));
1907
- ++__base::size();
1908
- if (__de > 1)
1909
- __e = __move_backward_and_check(__e - __de, __em1, __e, __vt);
1910
- *--__e = *__vt;
1911
- }
1912
- }
1913
- return __base::begin() + __pos;
1914
- }
1915
-
1916
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1917
-
1918
- template <class _Tp, class _Allocator>
1919
- typename deque<_Tp, _Allocator>::iterator
1920
- deque<_Tp, _Allocator>::insert(const_iterator __p, value_type&& __v)
1921
- {
1922
- size_type __pos = __p - __base::begin();
1923
- size_type __to_end = __base::size() - __pos;
1924
- allocator_type& __a = __base::__alloc();
1925
- if (__pos < __to_end)
1926
- { // insert by shifting things backward
1927
- if (__front_spare() == 0)
1928
- __add_front_capacity();
1929
- // __front_spare() >= 1
1930
- if (__pos == 0)
1931
- {
1932
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v));
1933
- --__base::__start_;
1934
- ++__base::size();
1935
- }
1936
- else
1937
- {
1938
- iterator __b = __base::begin();
1939
- iterator __bm1 = _VSTD::prev(__b);
1940
- __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));
1941
- --__base::__start_;
1942
- ++__base::size();
1943
- if (__pos > 1)
1944
- __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b);
1945
- *__b = _VSTD::move(__v);
1946
- }
1947
- }
1948
- else
1949
- { // insert by shifting things forward
1950
- if (__back_spare() == 0)
1951
- __add_back_capacity();
1952
- // __back_capacity >= 1
1953
- size_type __de = __base::size() - __pos;
1954
- if (__de == 0)
1955
- {
1956
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v));
1957
- ++__base::size();
1958
- }
1959
- else
1960
- {
1961
- iterator __e = __base::end();
1962
- iterator __em1 = _VSTD::prev(__e);
1963
- __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));
1964
- ++__base::size();
1965
- if (__de > 1)
1966
- __e = _VSTD::move_backward(__e - __de, __em1, __e);
1967
- *--__e = _VSTD::move(__v);
1968
- }
1969
- }
1970
- return __base::begin() + __pos;
1971
- }
1972
-
1973
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1974
-
1975
- template <class _Tp, class _Allocator>
1976
- template <class... _Args>
1977
- typename deque<_Tp, _Allocator>::iterator
1978
- deque<_Tp, _Allocator>::emplace(const_iterator __p, _Args&&... __args)
1979
- {
1980
- size_type __pos = __p - __base::begin();
1981
- size_type __to_end = __base::size() - __pos;
1982
- allocator_type& __a = __base::__alloc();
1983
- if (__pos < __to_end)
1984
- { // insert by shifting things backward
1985
- if (__front_spare() == 0)
1986
- __add_front_capacity();
1987
- // __front_spare() >= 1
1988
- if (__pos == 0)
1989
- {
1990
- __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...);
1991
- --__base::__start_;
1992
- ++__base::size();
1993
- }
1994
- else
1995
- {
1996
- value_type __tmp(_VSTD::forward<_Args>(__args)...);
1997
- iterator __b = __base::begin();
1998
- iterator __bm1 = _VSTD::prev(__b);
1999
- __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));
2000
- --__base::__start_;
2001
- ++__base::size();
2002
- if (__pos > 1)
2003
- __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b);
2004
- *__b = _VSTD::move(__tmp);
2005
- }
2006
- }
2007
- else
2008
- { // insert by shifting things forward
2009
- if (__back_spare() == 0)
2010
- __add_back_capacity();
2011
- // __back_capacity >= 1
2012
- size_type __de = __base::size() - __pos;
2013
- if (__de == 0)
2014
- {
2015
- __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...);
2016
- ++__base::size();
2017
- }
2018
- else
2019
- {
2020
- value_type __tmp(_VSTD::forward<_Args>(__args)...);
2021
- iterator __e = __base::end();
2022
- iterator __em1 = _VSTD::prev(__e);
2023
- __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));
2024
- ++__base::size();
2025
- if (__de > 1)
2026
- __e = _VSTD::move_backward(__e - __de, __em1, __e);
2027
- *--__e = _VSTD::move(__tmp);
2028
- }
2029
- }
2030
- return __base::begin() + __pos;
2031
- }
2032
-
2033
- #endif // _LIBCPP_HAS_NO_VARIADICS
2034
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
2035
-
2036
- template <class _Tp, class _Allocator>
2037
- typename deque<_Tp, _Allocator>::iterator
2038
- deque<_Tp, _Allocator>::insert(const_iterator __p, size_type __n, const value_type& __v)
2039
- {
2040
- size_type __pos = __p - __base::begin();
2041
- size_type __to_end = __base::size() - __pos;
2042
- allocator_type& __a = __base::__alloc();
2043
- if (__pos < __to_end)
2044
- { // insert by shifting things backward
2045
- if (__n > __front_spare())
2046
- __add_front_capacity(__n - __front_spare());
2047
- // __n <= __front_spare()
2048
- size_type __old_n = __n;
2049
- iterator __old_begin = __base::begin();
2050
- iterator __i = __old_begin;
2051
- if (__n > __pos)
2052
- {
2053
- for (size_type __m = __n - __pos; __m; --__m, --__base::__start_, ++__base::size())
2054
- __alloc_traits::construct(__a, _VSTD::addressof(*--__i), __v);
2055
- __n = __pos;
2056
- }
2057
- if (__n > 0)
2058
- {
2059
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
2060
- iterator __obn = __old_begin + __n;
2061
- __move_construct_backward_and_check(__old_begin, __obn, __i, __vt);
2062
- if (__n < __pos)
2063
- __old_begin = __move_and_check(__obn, __old_begin + __pos, __old_begin, __vt);
2064
- _VSTD::fill_n(__old_begin, __n, *__vt);
2065
- }
2066
- }
2067
- else
2068
- { // insert by shifting things forward
2069
- size_type __back_capacity = __back_spare();
2070
- if (__n > __back_capacity)
2071
- __add_back_capacity(__n - __back_capacity);
2072
- // __n <= __back_capacity
2073
- size_type __old_n = __n;
2074
- iterator __old_end = __base::end();
2075
- iterator __i = __old_end;
2076
- size_type __de = __base::size() - __pos;
2077
- if (__n > __de)
2078
- {
2079
- for (size_type __m = __n - __de; __m; --__m, ++__i, ++__base::size())
2080
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v);
2081
- __n = __de;
2082
- }
2083
- if (__n > 0)
2084
- {
2085
- const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);
2086
- iterator __oen = __old_end - __n;
2087
- __move_construct_and_check(__oen, __old_end, __i, __vt);
2088
- if (__n < __de)
2089
- __old_end = __move_backward_and_check(__old_end - __de, __oen, __old_end, __vt);
2090
- _VSTD::fill_n(__old_end - __n, __n, *__vt);
2091
- }
2092
- }
2093
- return __base::begin() + __pos;
2094
- }
2095
-
2096
- template <class _Tp, class _Allocator>
2097
- template <class _InputIter>
2098
- typename deque<_Tp, _Allocator>::iterator
2099
- deque<_Tp, _Allocator>::insert(const_iterator __p, _InputIter __f, _InputIter __l,
2100
- typename enable_if<__is_input_iterator<_InputIter>::value
2101
- &&!__is_bidirectional_iterator<_InputIter>::value>::type*)
2102
- {
2103
- __split_buffer<value_type, allocator_type&> __buf(__base::__alloc());
2104
- __buf.__construct_at_end(__f, __l);
2105
- typedef typename __split_buffer<value_type, allocator_type&>::iterator __bi;
2106
- return insert(__p, move_iterator<__bi>(__buf.begin()), move_iterator<__bi>(__buf.end()));
2107
- }
2108
-
2109
- template <class _Tp, class _Allocator>
2110
- template <class _BiIter>
2111
- typename deque<_Tp, _Allocator>::iterator
2112
- deque<_Tp, _Allocator>::insert(const_iterator __p, _BiIter __f, _BiIter __l,
2113
- typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type*)
2114
- {
2115
- size_type __n = _VSTD::distance(__f, __l);
2116
- size_type __pos = __p - __base::begin();
2117
- size_type __to_end = __base::size() - __pos;
2118
- allocator_type& __a = __base::__alloc();
2119
- if (__pos < __to_end)
2120
- { // insert by shifting things backward
2121
- if (__n > __front_spare())
2122
- __add_front_capacity(__n - __front_spare());
2123
- // __n <= __front_spare()
2124
- size_type __old_n = __n;
2125
- iterator __old_begin = __base::begin();
2126
- iterator __i = __old_begin;
2127
- _BiIter __m = __f;
2128
- if (__n > __pos)
2129
- {
2130
- __m = __pos < __n / 2 ? _VSTD::prev(__l, __pos) : _VSTD::next(__f, __n - __pos);
2131
- for (_BiIter __j = __m; __j != __f; --__base::__start_, ++__base::size())
2132
- __alloc_traits::construct(__a, _VSTD::addressof(*--__i), *--__j);
2133
- __n = __pos;
2134
- }
2135
- if (__n > 0)
2136
- {
2137
- iterator __obn = __old_begin + __n;
2138
- for (iterator __j = __obn; __j != __old_begin;)
2139
- {
2140
- __alloc_traits::construct(__a, _VSTD::addressof(*--__i), _VSTD::move(*--__j));
2141
- --__base::__start_;
2142
- ++__base::size();
2143
- }
2144
- if (__n < __pos)
2145
- __old_begin = _VSTD::move(__obn, __old_begin + __pos, __old_begin);
2146
- _VSTD::copy(__m, __l, __old_begin);
2147
- }
2148
- }
2149
- else
2150
- { // insert by shifting things forward
2151
- size_type __back_capacity = __back_spare();
2152
- if (__n > __back_capacity)
2153
- __add_back_capacity(__n - __back_capacity);
2154
- // __n <= __back_capacity
2155
- size_type __old_n = __n;
2156
- iterator __old_end = __base::end();
2157
- iterator __i = __old_end;
2158
- _BiIter __m = __l;
2159
- size_type __de = __base::size() - __pos;
2160
- if (__n > __de)
2161
- {
2162
- __m = __de < __n / 2 ? _VSTD::next(__f, __de) : _VSTD::prev(__l, __n - __de);
2163
- for (_BiIter __j = __m; __j != __l; ++__i, ++__j, ++__base::size())
2164
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__j);
2165
- __n = __de;
2166
- }
2167
- if (__n > 0)
2168
- {
2169
- iterator __oen = __old_end - __n;
2170
- for (iterator __j = __oen; __j != __old_end; ++__i, ++__j, ++__base::size())
2171
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), _VSTD::move(*__j));
2172
- if (__n < __de)
2173
- __old_end = _VSTD::move_backward(__old_end - __de, __oen, __old_end);
2174
- _VSTD::copy_backward(__f, __m, __old_end);
2175
- }
2176
- }
2177
- return __base::begin() + __pos;
2178
- }
2179
-
2180
- template <class _Tp, class _Allocator>
2181
- template <class _InpIter>
2182
- void
2183
- deque<_Tp, _Allocator>::__append(_InpIter __f, _InpIter __l,
2184
- typename enable_if<__is_input_iterator<_InpIter>::value &&
2185
- !__is_forward_iterator<_InpIter>::value>::type*)
2186
- {
2187
- for (; __f != __l; ++__f)
2188
- push_back(*__f);
2189
- }
2190
-
2191
- template <class _Tp, class _Allocator>
2192
- template <class _ForIter>
2193
- void
2194
- deque<_Tp, _Allocator>::__append(_ForIter __f, _ForIter __l,
2195
- typename enable_if<__is_forward_iterator<_ForIter>::value>::type*)
2196
- {
2197
- size_type __n = _VSTD::distance(__f, __l);
2198
- allocator_type& __a = __base::__alloc();
2199
- size_type __back_capacity = __back_spare();
2200
- if (__n > __back_capacity)
2201
- __add_back_capacity(__n - __back_capacity);
2202
- // __n <= __back_capacity
2203
- for (iterator __i = __base::end(); __f != __l; ++__i, ++__f, ++__base::size())
2204
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__f);
2205
- }
2206
-
2207
- template <class _Tp, class _Allocator>
2208
- void
2209
- deque<_Tp, _Allocator>::__append(size_type __n)
2210
- {
2211
- allocator_type& __a = __base::__alloc();
2212
- size_type __back_capacity = __back_spare();
2213
- if (__n > __back_capacity)
2214
- __add_back_capacity(__n - __back_capacity);
2215
- // __n <= __back_capacity
2216
- for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size())
2217
- __alloc_traits::construct(__a, _VSTD::addressof(*__i));
2218
- }
2219
-
2220
- template <class _Tp, class _Allocator>
2221
- void
2222
- deque<_Tp, _Allocator>::__append(size_type __n, const value_type& __v)
2223
- {
2224
- allocator_type& __a = __base::__alloc();
2225
- size_type __back_capacity = __back_spare();
2226
- if (__n > __back_capacity)
2227
- __add_back_capacity(__n - __back_capacity);
2228
- // __n <= __back_capacity
2229
- for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size())
2230
- __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v);
2231
- }
2232
-
2233
- // Create front capacity for one block of elements.
2234
- // Strong guarantee. Either do it or don't touch anything.
2235
- template <class _Tp, class _Allocator>
2236
- void
2237
- deque<_Tp, _Allocator>::__add_front_capacity()
2238
- {
2239
- allocator_type& __a = __base::__alloc();
2240
- if (__back_spare() >= __base::__block_size)
2241
- {
2242
- __base::__start_ += __base::__block_size;
2243
- pointer __pt = __base::__map_.back();
2244
- __base::__map_.pop_back();
2245
- __base::__map_.push_front(__pt);
2246
- }
2247
- // Else if __base::__map_.size() < __base::__map_.capacity() then we need to allocate 1 buffer
2248
- else if (__base::__map_.size() < __base::__map_.capacity())
2249
- { // we can put the new buffer into the map, but don't shift things around
2250
- // until all buffers are allocated. If we throw, we don't need to fix
2251
- // anything up (any added buffers are undetectible)
2252
- if (__base::__map_.__front_spare() > 0)
2253
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2254
- else
2255
- {
2256
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2257
- // Done allocating, reorder capacity
2258
- pointer __pt = __base::__map_.back();
2259
- __base::__map_.pop_back();
2260
- __base::__map_.push_front(__pt);
2261
- }
2262
- __base::__start_ = __base::__map_.size() == 1 ?
2263
- __base::__block_size / 2 :
2264
- __base::__start_ + __base::__block_size;
2265
- }
2266
- // Else need to allocate 1 buffer, *and* we need to reallocate __map_.
2267
- else
2268
- {
2269
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2270
- __buf(max<size_type>(2 * __base::__map_.capacity(), 1),
2271
- 0, __base::__map_.__alloc());
2272
- #ifndef _LIBCPP_NO_EXCEPTIONS
2273
- try
2274
- {
2275
- #endif // _LIBCPP_NO_EXCEPTIONS
2276
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2277
- #ifndef _LIBCPP_NO_EXCEPTIONS
2278
- }
2279
- catch (...)
2280
- {
2281
- __alloc_traits::deallocate(__a, __buf.front(), __base::__block_size);
2282
- throw;
2283
- }
2284
- #endif // _LIBCPP_NO_EXCEPTIONS
2285
- for (typename __base::__map_pointer __i = __base::__map_.begin();
2286
- __i != __base::__map_.end(); ++__i)
2287
- __buf.push_back(*__i);
2288
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2289
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2290
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2291
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2292
- __base::__start_ = __base::__map_.size() == 1 ?
2293
- __base::__block_size / 2 :
2294
- __base::__start_ + __base::__block_size;
2295
- }
2296
- }
2297
-
2298
- // Create front capacity for __n elements.
2299
- // Strong guarantee. Either do it or don't touch anything.
2300
- template <class _Tp, class _Allocator>
2301
- void
2302
- deque<_Tp, _Allocator>::__add_front_capacity(size_type __n)
2303
- {
2304
- allocator_type& __a = __base::__alloc();
2305
- size_type __nb = __recommend_blocks(__n + __base::__map_.empty());
2306
- // Number of unused blocks at back:
2307
- size_type __back_capacity = __back_spare() / __base::__block_size;
2308
- __back_capacity = _VSTD::min(__back_capacity, __nb); // don't take more than you need
2309
- __nb -= __back_capacity; // number of blocks need to allocate
2310
- // If __nb == 0, then we have sufficient capacity.
2311
- if (__nb == 0)
2312
- {
2313
- __base::__start_ += __base::__block_size * __back_capacity;
2314
- for (; __back_capacity > 0; --__back_capacity)
2315
- {
2316
- pointer __pt = __base::__map_.back();
2317
- __base::__map_.pop_back();
2318
- __base::__map_.push_front(__pt);
2319
- }
2320
- }
2321
- // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers
2322
- else if (__nb <= __base::__map_.capacity() - __base::__map_.size())
2323
- { // we can put the new buffers into the map, but don't shift things around
2324
- // until all buffers are allocated. If we throw, we don't need to fix
2325
- // anything up (any added buffers are undetectible)
2326
- for (; __nb > 0; --__nb, __base::__start_ += __base::__block_size - (__base::__map_.size() == 1))
2327
- {
2328
- if (__base::__map_.__front_spare() == 0)
2329
- break;
2330
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2331
- }
2332
- for (; __nb > 0; --__nb, ++__back_capacity)
2333
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2334
- // Done allocating, reorder capacity
2335
- __base::__start_ += __back_capacity * __base::__block_size;
2336
- for (; __back_capacity > 0; --__back_capacity)
2337
- {
2338
- pointer __pt = __base::__map_.back();
2339
- __base::__map_.pop_back();
2340
- __base::__map_.push_front(__pt);
2341
- }
2342
- }
2343
- // Else need to allocate __nb buffers, *and* we need to reallocate __map_.
2344
- else
2345
- {
2346
- size_type __ds = (__nb + __back_capacity) * __base::__block_size - __base::__map_.empty();
2347
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2348
- __buf(max<size_type>(2* __base::__map_.capacity(),
2349
- __nb + __base::__map_.size()),
2350
- 0, __base::__map_.__alloc());
2351
- #ifndef _LIBCPP_NO_EXCEPTIONS
2352
- try
2353
- {
2354
- #endif // _LIBCPP_NO_EXCEPTIONS
2355
- for (; __nb > 0; --__nb)
2356
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2357
- #ifndef _LIBCPP_NO_EXCEPTIONS
2358
- }
2359
- catch (...)
2360
- {
2361
- for (typename __base::__map_pointer __i = __buf.begin();
2362
- __i != __buf.end(); ++__i)
2363
- __alloc_traits::deallocate(__a, *__i, __base::__block_size);
2364
- throw;
2365
- }
2366
- #endif // _LIBCPP_NO_EXCEPTIONS
2367
- for (; __back_capacity > 0; --__back_capacity)
2368
- {
2369
- __buf.push_back(__base::__map_.back());
2370
- __base::__map_.pop_back();
2371
- }
2372
- for (typename __base::__map_pointer __i = __base::__map_.begin();
2373
- __i != __base::__map_.end(); ++__i)
2374
- __buf.push_back(*__i);
2375
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2376
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2377
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2378
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2379
- __base::__start_ += __ds;
2380
- }
2381
- }
2382
-
2383
- // Create back capacity for one block of elements.
2384
- // Strong guarantee. Either do it or don't touch anything.
2385
- template <class _Tp, class _Allocator>
2386
- void
2387
- deque<_Tp, _Allocator>::__add_back_capacity()
2388
- {
2389
- allocator_type& __a = __base::__alloc();
2390
- if (__front_spare() >= __base::__block_size)
2391
- {
2392
- __base::__start_ -= __base::__block_size;
2393
- pointer __pt = __base::__map_.front();
2394
- __base::__map_.pop_front();
2395
- __base::__map_.push_back(__pt);
2396
- }
2397
- // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers
2398
- else if (__base::__map_.size() < __base::__map_.capacity())
2399
- { // we can put the new buffer into the map, but don't shift things around
2400
- // until it is allocated. If we throw, we don't need to fix
2401
- // anything up (any added buffers are undetectible)
2402
- if (__base::__map_.__back_spare() != 0)
2403
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2404
- else
2405
- {
2406
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2407
- // Done allocating, reorder capacity
2408
- pointer __pt = __base::__map_.front();
2409
- __base::__map_.pop_front();
2410
- __base::__map_.push_back(__pt);
2411
- }
2412
- }
2413
- // Else need to allocate 1 buffer, *and* we need to reallocate __map_.
2414
- else
2415
- {
2416
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2417
- __buf(max<size_type>(2* __base::__map_.capacity(), 1),
2418
- __base::__map_.size(),
2419
- __base::__map_.__alloc());
2420
- #ifndef _LIBCPP_NO_EXCEPTIONS
2421
- try
2422
- {
2423
- #endif // _LIBCPP_NO_EXCEPTIONS
2424
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2425
- #ifndef _LIBCPP_NO_EXCEPTIONS
2426
- }
2427
- catch (...)
2428
- {
2429
- __alloc_traits::deallocate(__a, __buf.back(), __base::__block_size);
2430
- throw;
2431
- }
2432
- #endif // _LIBCPP_NO_EXCEPTIONS
2433
- for (typename __base::__map_pointer __i = __base::__map_.end();
2434
- __i != __base::__map_.begin();)
2435
- __buf.push_front(*--__i);
2436
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2437
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2438
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2439
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2440
- }
2441
- }
2442
-
2443
- // Create back capacity for __n elements.
2444
- // Strong guarantee. Either do it or don't touch anything.
2445
- template <class _Tp, class _Allocator>
2446
- void
2447
- deque<_Tp, _Allocator>::__add_back_capacity(size_type __n)
2448
- {
2449
- allocator_type& __a = __base::__alloc();
2450
- size_type __nb = __recommend_blocks(__n + __base::__map_.empty());
2451
- // Number of unused blocks at front:
2452
- size_type __front_capacity = __front_spare() / __base::__block_size;
2453
- __front_capacity = _VSTD::min(__front_capacity, __nb); // don't take more than you need
2454
- __nb -= __front_capacity; // number of blocks need to allocate
2455
- // If __nb == 0, then we have sufficient capacity.
2456
- if (__nb == 0)
2457
- {
2458
- __base::__start_ -= __base::__block_size * __front_capacity;
2459
- for (; __front_capacity > 0; --__front_capacity)
2460
- {
2461
- pointer __pt = __base::__map_.front();
2462
- __base::__map_.pop_front();
2463
- __base::__map_.push_back(__pt);
2464
- }
2465
- }
2466
- // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers
2467
- else if (__nb <= __base::__map_.capacity() - __base::__map_.size())
2468
- { // we can put the new buffers into the map, but don't shift things around
2469
- // until all buffers are allocated. If we throw, we don't need to fix
2470
- // anything up (any added buffers are undetectible)
2471
- for (; __nb > 0; --__nb)
2472
- {
2473
- if (__base::__map_.__back_spare() == 0)
2474
- break;
2475
- __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2476
- }
2477
- for (; __nb > 0; --__nb, ++__front_capacity, __base::__start_ +=
2478
- __base::__block_size - (__base::__map_.size() == 1))
2479
- __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));
2480
- // Done allocating, reorder capacity
2481
- __base::__start_ -= __base::__block_size * __front_capacity;
2482
- for (; __front_capacity > 0; --__front_capacity)
2483
- {
2484
- pointer __pt = __base::__map_.front();
2485
- __base::__map_.pop_front();
2486
- __base::__map_.push_back(__pt);
2487
- }
2488
- }
2489
- // Else need to allocate __nb buffers, *and* we need to reallocate __map_.
2490
- else
2491
- {
2492
- size_type __ds = __front_capacity * __base::__block_size;
2493
- __split_buffer<pointer, typename __base::__pointer_allocator&>
2494
- __buf(max<size_type>(2* __base::__map_.capacity(),
2495
- __nb + __base::__map_.size()),
2496
- __base::__map_.size() - __front_capacity,
2497
- __base::__map_.__alloc());
2498
- #ifndef _LIBCPP_NO_EXCEPTIONS
2499
- try
2500
- {
2501
- #endif // _LIBCPP_NO_EXCEPTIONS
2502
- for (; __nb > 0; --__nb)
2503
- __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));
2504
- #ifndef _LIBCPP_NO_EXCEPTIONS
2505
- }
2506
- catch (...)
2507
- {
2508
- for (typename __base::__map_pointer __i = __buf.begin();
2509
- __i != __buf.end(); ++__i)
2510
- __alloc_traits::deallocate(__a, *__i, __base::__block_size);
2511
- throw;
2512
- }
2513
- #endif // _LIBCPP_NO_EXCEPTIONS
2514
- for (; __front_capacity > 0; --__front_capacity)
2515
- {
2516
- __buf.push_back(__base::__map_.front());
2517
- __base::__map_.pop_front();
2518
- }
2519
- for (typename __base::__map_pointer __i = __base::__map_.end();
2520
- __i != __base::__map_.begin();)
2521
- __buf.push_front(*--__i);
2522
- _VSTD::swap(__base::__map_.__first_, __buf.__first_);
2523
- _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);
2524
- _VSTD::swap(__base::__map_.__end_, __buf.__end_);
2525
- _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());
2526
- __base::__start_ -= __ds;
2527
- }
2528
- }
2529
-
2530
- template <class _Tp, class _Allocator>
2531
- void
2532
- deque<_Tp, _Allocator>::pop_front()
2533
- {
2534
- allocator_type& __a = __base::__alloc();
2535
- __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() +
2536
- __base::__start_ / __base::__block_size) +
2537
- __base::__start_ % __base::__block_size));
2538
- --__base::size();
2539
- if (++__base::__start_ >= 2 * __base::__block_size)
2540
- {
2541
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
2542
- __base::__map_.pop_front();
2543
- __base::__start_ -= __base::__block_size;
2544
- }
2545
- }
2546
-
2547
- template <class _Tp, class _Allocator>
2548
- void
2549
- deque<_Tp, _Allocator>::pop_back()
2550
- {
2551
- allocator_type& __a = __base::__alloc();
2552
- size_type __p = __base::size() + __base::__start_ - 1;
2553
- __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() +
2554
- __p / __base::__block_size) +
2555
- __p % __base::__block_size));
2556
- --__base::size();
2557
- if (__back_spare() >= 2 * __base::__block_size)
2558
- {
2559
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2560
- __base::__map_.pop_back();
2561
- }
2562
- }
2563
-
2564
- // move assign [__f, __l) to [__r, __r + (__l-__f)).
2565
- // If __vt points into [__f, __l), then subtract (__f - __r) from __vt.
2566
- template <class _Tp, class _Allocator>
2567
- typename deque<_Tp, _Allocator>::iterator
2568
- deque<_Tp, _Allocator>::__move_and_check(iterator __f, iterator __l, iterator __r,
2569
- const_pointer& __vt)
2570
- {
2571
- // as if
2572
- // for (; __f != __l; ++__f, ++__r)
2573
- // *__r = _VSTD::move(*__f);
2574
- difference_type __n = __l - __f;
2575
- while (__n > 0)
2576
- {
2577
- pointer __fb = __f.__ptr_;
2578
- pointer __fe = *__f.__m_iter_ + __base::__block_size;
2579
- difference_type __bs = __fe - __fb;
2580
- if (__bs > __n)
2581
- {
2582
- __bs = __n;
2583
- __fe = __fb + __bs;
2584
- }
2585
- if (__fb <= __vt && __vt < __fe)
2586
- __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) -= __f - __r).__ptr_;
2587
- __r = _VSTD::move(__fb, __fe, __r);
2588
- __n -= __bs;
2589
- __f += __bs;
2590
- }
2591
- return __r;
2592
- }
2593
-
2594
- // move assign [__f, __l) to [__r - (__l-__f), __r) backwards.
2595
- // If __vt points into [__f, __l), then add (__r - __l) to __vt.
2596
- template <class _Tp, class _Allocator>
2597
- typename deque<_Tp, _Allocator>::iterator
2598
- deque<_Tp, _Allocator>::__move_backward_and_check(iterator __f, iterator __l, iterator __r,
2599
- const_pointer& __vt)
2600
- {
2601
- // as if
2602
- // while (__f != __l)
2603
- // *--__r = _VSTD::move(*--__l);
2604
- difference_type __n = __l - __f;
2605
- while (__n > 0)
2606
- {
2607
- --__l;
2608
- pointer __lb = *__l.__m_iter_;
2609
- pointer __le = __l.__ptr_ + 1;
2610
- difference_type __bs = __le - __lb;
2611
- if (__bs > __n)
2612
- {
2613
- __bs = __n;
2614
- __lb = __le - __bs;
2615
- }
2616
- if (__lb <= __vt && __vt < __le)
2617
- __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) += __r - __l - 1).__ptr_;
2618
- __r = _VSTD::move_backward(__lb, __le, __r);
2619
- __n -= __bs;
2620
- __l -= __bs - 1;
2621
- }
2622
- return __r;
2623
- }
2624
-
2625
- // move construct [__f, __l) to [__r, __r + (__l-__f)).
2626
- // If __vt points into [__f, __l), then add (__r - __f) to __vt.
2627
- template <class _Tp, class _Allocator>
2628
- void
2629
- deque<_Tp, _Allocator>::__move_construct_and_check(iterator __f, iterator __l,
2630
- iterator __r, const_pointer& __vt)
2631
- {
2632
- allocator_type& __a = __base::__alloc();
2633
- // as if
2634
- // for (; __f != __l; ++__r, ++__f, ++__base::size())
2635
- // __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__f));
2636
- difference_type __n = __l - __f;
2637
- while (__n > 0)
2638
- {
2639
- pointer __fb = __f.__ptr_;
2640
- pointer __fe = *__f.__m_iter_ + __base::__block_size;
2641
- difference_type __bs = __fe - __fb;
2642
- if (__bs > __n)
2643
- {
2644
- __bs = __n;
2645
- __fe = __fb + __bs;
2646
- }
2647
- if (__fb <= __vt && __vt < __fe)
2648
- __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) += __r - __f).__ptr_;
2649
- for (; __fb != __fe; ++__fb, ++__r, ++__base::size())
2650
- __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__fb));
2651
- __n -= __bs;
2652
- __f += __bs;
2653
- }
2654
- }
2655
-
2656
- // move construct [__f, __l) to [__r - (__l-__f), __r) backwards.
2657
- // If __vt points into [__f, __l), then subtract (__l - __r) from __vt.
2658
- template <class _Tp, class _Allocator>
2659
- void
2660
- deque<_Tp, _Allocator>::__move_construct_backward_and_check(iterator __f, iterator __l,
2661
- iterator __r, const_pointer& __vt)
2662
- {
2663
- allocator_type& __a = __base::__alloc();
2664
- // as if
2665
- // for (iterator __j = __l; __j != __f;)
2666
- // {
2667
- // __alloc_traitsconstruct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__j));
2668
- // --__base::__start_;
2669
- // ++__base::size();
2670
- // }
2671
- difference_type __n = __l - __f;
2672
- while (__n > 0)
2673
- {
2674
- --__l;
2675
- pointer __lb = *__l.__m_iter_;
2676
- pointer __le = __l.__ptr_ + 1;
2677
- difference_type __bs = __le - __lb;
2678
- if (__bs > __n)
2679
- {
2680
- __bs = __n;
2681
- __lb = __le - __bs;
2682
- }
2683
- if (__lb <= __vt && __vt < __le)
2684
- __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) -= __l - __r + 1).__ptr_;
2685
- while (__le != __lb)
2686
- {
2687
- __alloc_traits::construct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__le));
2688
- --__base::__start_;
2689
- ++__base::size();
2690
- }
2691
- __n -= __bs;
2692
- __l -= __bs - 1;
2693
- }
2694
- }
2695
-
2696
- template <class _Tp, class _Allocator>
2697
- typename deque<_Tp, _Allocator>::iterator
2698
- deque<_Tp, _Allocator>::erase(const_iterator __f)
2699
- {
2700
- difference_type __n = 1;
2701
- iterator __b = __base::begin();
2702
- difference_type __pos = __f - __b;
2703
- iterator __p = __b + __pos;
2704
- allocator_type& __a = __base::__alloc();
2705
- if (__pos < (__base::size() - 1) / 2)
2706
- { // erase from front
2707
- _VSTD::move_backward(__b, __p, _VSTD::next(__p));
2708
- __alloc_traits::destroy(__a, _VSTD::addressof(*__b));
2709
- --__base::size();
2710
- ++__base::__start_;
2711
- if (__front_spare() >= 2 * __base::__block_size)
2712
- {
2713
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
2714
- __base::__map_.pop_front();
2715
- __base::__start_ -= __base::__block_size;
2716
- }
2717
- }
2718
- else
2719
- { // erase from back
2720
- iterator __i = _VSTD::move(_VSTD::next(__p), __base::end(), __p);
2721
- __alloc_traits::destroy(__a, _VSTD::addressof(*__i));
2722
- --__base::size();
2723
- if (__back_spare() >= 2 * __base::__block_size)
2724
- {
2725
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2726
- __base::__map_.pop_back();
2727
- }
2728
- }
2729
- return __base::begin() + __pos;
2730
- }
2731
-
2732
- template <class _Tp, class _Allocator>
2733
- typename deque<_Tp, _Allocator>::iterator
2734
- deque<_Tp, _Allocator>::erase(const_iterator __f, const_iterator __l)
2735
- {
2736
- difference_type __n = __l - __f;
2737
- iterator __b = __base::begin();
2738
- difference_type __pos = __f - __b;
2739
- iterator __p = __b + __pos;
2740
- if (__n > 0)
2741
- {
2742
- allocator_type& __a = __base::__alloc();
2743
- if (__pos < (__base::size() - __n) / 2)
2744
- { // erase from front
2745
- iterator __i = _VSTD::move_backward(__b, __p, __p + __n);
2746
- for (; __b != __i; ++__b)
2747
- __alloc_traits::destroy(__a, _VSTD::addressof(*__b));
2748
- __base::size() -= __n;
2749
- __base::__start_ += __n;
2750
- while (__front_spare() >= 2 * __base::__block_size)
2751
- {
2752
- __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);
2753
- __base::__map_.pop_front();
2754
- __base::__start_ -= __base::__block_size;
2755
- }
2756
- }
2757
- else
2758
- { // erase from back
2759
- iterator __i = _VSTD::move(__p + __n, __base::end(), __p);
2760
- for (iterator __e = __base::end(); __i != __e; ++__i)
2761
- __alloc_traits::destroy(__a, _VSTD::addressof(*__i));
2762
- __base::size() -= __n;
2763
- while (__back_spare() >= 2 * __base::__block_size)
2764
- {
2765
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2766
- __base::__map_.pop_back();
2767
- }
2768
- }
2769
- }
2770
- return __base::begin() + __pos;
2771
- }
2772
-
2773
- template <class _Tp, class _Allocator>
2774
- void
2775
- deque<_Tp, _Allocator>::__erase_to_end(const_iterator __f)
2776
- {
2777
- iterator __e = __base::end();
2778
- difference_type __n = __e - __f;
2779
- if (__n > 0)
2780
- {
2781
- allocator_type& __a = __base::__alloc();
2782
- iterator __b = __base::begin();
2783
- difference_type __pos = __f - __b;
2784
- for (iterator __p = __b + __pos; __p != __e; ++__p)
2785
- __alloc_traits::destroy(__a, _VSTD::addressof(*__p));
2786
- __base::size() -= __n;
2787
- while (__back_spare() >= 2 * __base::__block_size)
2788
- {
2789
- __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);
2790
- __base::__map_.pop_back();
2791
- }
2792
- }
2793
- }
2794
-
2795
- template <class _Tp, class _Allocator>
2796
- inline _LIBCPP_INLINE_VISIBILITY
2797
- void
2798
- deque<_Tp, _Allocator>::swap(deque& __c)
2799
- _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
2800
- __is_nothrow_swappable<allocator_type>::value)
2801
- {
2802
- __base::swap(__c);
2803
- }
2804
-
2805
- template <class _Tp, class _Allocator>
2806
- inline _LIBCPP_INLINE_VISIBILITY
2807
- void
2808
- deque<_Tp, _Allocator>::clear() _NOEXCEPT
2809
- {
2810
- __base::clear();
2811
- }
2812
-
2813
- template <class _Tp, class _Allocator>
2814
- inline _LIBCPP_INLINE_VISIBILITY
2815
- bool
2816
- operator==(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2817
- {
2818
- const typename deque<_Tp, _Allocator>::size_type __sz = __x.size();
2819
- return __sz == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());
2820
- }
2821
-
2822
- template <class _Tp, class _Allocator>
2823
- inline _LIBCPP_INLINE_VISIBILITY
2824
- bool
2825
- operator!=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2826
- {
2827
- return !(__x == __y);
2828
- }
2829
-
2830
- template <class _Tp, class _Allocator>
2831
- inline _LIBCPP_INLINE_VISIBILITY
2832
- bool
2833
- operator< (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2834
- {
2835
- return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());
2836
- }
2837
-
2838
- template <class _Tp, class _Allocator>
2839
- inline _LIBCPP_INLINE_VISIBILITY
2840
- bool
2841
- operator> (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2842
- {
2843
- return __y < __x;
2844
- }
2845
-
2846
- template <class _Tp, class _Allocator>
2847
- inline _LIBCPP_INLINE_VISIBILITY
2848
- bool
2849
- operator>=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2850
- {
2851
- return !(__x < __y);
2852
- }
2853
-
2854
- template <class _Tp, class _Allocator>
2855
- inline _LIBCPP_INLINE_VISIBILITY
2856
- bool
2857
- operator<=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
2858
- {
2859
- return !(__y < __x);
2860
- }
2861
-
2862
- template <class _Tp, class _Allocator>
2863
- inline _LIBCPP_INLINE_VISIBILITY
2864
- void
2865
- swap(deque<_Tp, _Allocator>& __x, deque<_Tp, _Allocator>& __y)
2866
- _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))
2867
- {
2868
- __x.swap(__y);
2869
- }
2870
-
2871
- _LIBCPP_END_NAMESPACE_STD
2872
-
2873
- #endif // _LIBCPP_DEQUE