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
@@ -5,6 +5,7 @@
5
5
  */
6
6
 
7
7
  #include <ctype.h>
8
+ #include <float.h>
8
9
  #include <limits.h>
9
10
  #include <stddef.h>
10
11
  #include <stdlib.h>
@@ -14,12 +15,12 @@
14
15
  #include "mruby/class.h"
15
16
  #include "mruby/range.h"
16
17
  #include "mruby/string.h"
17
- #include "re.h"
18
+ #include "mruby/re.h"
18
19
 
19
20
  const char mrb_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz";
20
21
 
21
22
  typedef struct mrb_shared_string {
22
- mrb_bool nofree;
23
+ mrb_bool nofree : 1;
23
24
  int refcnt;
24
25
  char *ptr;
25
26
  mrb_int len;
@@ -28,10 +29,40 @@ typedef struct mrb_shared_string {
28
29
  static mrb_value str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2);
29
30
  static mrb_value mrb_str_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len);
30
31
 
31
- #define RESIZE_CAPA(s,capacity) do {\
32
- s->ptr = (char *)mrb_realloc(mrb, s->ptr, (capacity)+1);\
33
- s->aux.capa = capacity;\
34
- } while(0)
32
+ MRB_API mrb_int
33
+ mrb_str_strlen(mrb_state *mrb, struct RString *s)
34
+ {
35
+ mrb_int i, max = RSTR_LEN(s);
36
+ char *p = RSTR_PTR(s);
37
+
38
+ if (!p) return 0;
39
+ for (i=0; i<max; i++) {
40
+ if (p[i] == '\0') {
41
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte");
42
+ }
43
+ }
44
+ return max;
45
+ }
46
+
47
+ static inline void
48
+ resize_capa(mrb_state *mrb, struct RString *s, mrb_int capacity)
49
+ {
50
+ if (RSTR_EMBED_P(s)) {
51
+ if (RSTRING_EMBED_LEN_MAX < capacity) {
52
+ char *const tmp = (char *)mrb_malloc(mrb, capacity+1);
53
+ const mrb_int len = RSTR_EMBED_LEN(s);
54
+ memcpy(tmp, s->as.ary, len);
55
+ RSTR_UNSET_EMBED_FLAG(s);
56
+ s->as.heap.ptr = tmp;
57
+ s->as.heap.len = len;
58
+ s->as.heap.aux.capa = capacity;
59
+ }
60
+ }
61
+ else {
62
+ s->as.heap.ptr = (char *)mrb_realloc(mrb, RSTR_PTR(s), capacity+1);
63
+ s->as.heap.aux.capa = capacity;
64
+ }
65
+ }
35
66
 
36
67
  static void
37
68
  str_decref(mrb_state *mrb, mrb_shared_string *shared)
@@ -45,94 +76,118 @@ str_decref(mrb_state *mrb, mrb_shared_string *shared)
45
76
  }
46
77
  }
47
78
 
48
- void
79
+ MRB_API void
49
80
  mrb_str_modify(mrb_state *mrb, struct RString *s)
50
81
  {
51
- if (s->flags & MRB_STR_SHARED) {
52
- mrb_shared_string *shared = s->aux.shared;
82
+ if (RSTR_SHARED_P(s)) {
83
+ mrb_shared_string *shared = s->as.heap.aux.shared;
53
84
 
54
- if (shared->refcnt == 1 && s->ptr == shared->ptr) {
55
- s->ptr = shared->ptr;
56
- s->aux.capa = shared->len;
57
- s->ptr[s->len] = '\0';
85
+ if (shared->refcnt == 1 && s->as.heap.ptr == shared->ptr) {
86
+ s->as.heap.ptr = shared->ptr;
87
+ s->as.heap.aux.capa = shared->len;
88
+ RSTR_PTR(s)[s->as.heap.len] = '\0';
58
89
  mrb_free(mrb, shared);
59
90
  }
60
91
  else {
61
92
  char *ptr, *p;
62
93
  mrb_int len;
63
94
 
64
- p = s->ptr;
65
- len = s->len;
95
+ p = RSTR_PTR(s);
96
+ len = s->as.heap.len;
66
97
  ptr = (char *)mrb_malloc(mrb, (size_t)len + 1);
67
98
  if (p) {
68
99
  memcpy(ptr, p, len);
69
100
  }
70
- ptr[len] = '\0';
71
- s->ptr = ptr;
72
- s->aux.capa = len;
101
+ ptr[len] = '\0';
102
+ s->as.heap.ptr = ptr;
103
+ s->as.heap.aux.capa = len;
73
104
  str_decref(mrb, shared);
74
105
  }
75
- s->flags &= ~MRB_STR_SHARED;
106
+ RSTR_UNSET_SHARED_FLAG(s);
76
107
  return;
77
108
  }
78
- if (s->flags & MRB_STR_NOFREE) {
79
- char *p = s->ptr;
109
+ if (RSTR_NOFREE_P(s)) {
110
+ char *p = s->as.heap.ptr;
80
111
 
81
- s->ptr = (char *)mrb_malloc(mrb, (size_t)s->len+1);
112
+ s->as.heap.ptr = (char *)mrb_malloc(mrb, (size_t)s->as.heap.len+1);
82
113
  if (p) {
83
- memcpy(s->ptr, p, s->len);
114
+ memcpy(RSTR_PTR(s), p, s->as.heap.len);
84
115
  }
85
- s->ptr[s->len] = '\0';
86
- s->aux.capa = s->len;
87
- s->flags &= ~MRB_STR_NOFREE;
116
+ RSTR_PTR(s)[s->as.heap.len] = '\0';
117
+ s->as.heap.aux.capa = s->as.heap.len;
118
+ RSTR_UNSET_NOFREE_FLAG(s);
88
119
  return;
89
120
  }
90
121
  }
91
122
 
92
- mrb_value
123
+ MRB_API mrb_value
93
124
  mrb_str_resize(mrb_state *mrb, mrb_value str, mrb_int len)
94
125
  {
95
- int slen;
126
+ mrb_int slen;
96
127
  struct RString *s = mrb_str_ptr(str);
97
128
 
98
129
  mrb_str_modify(mrb, s);
99
- slen = s->len;
130
+ slen = RSTR_LEN(s);
100
131
  if (len != slen) {
101
132
  if (slen < len || slen - len > 256) {
102
- RESIZE_CAPA(s, len);
133
+ resize_capa(mrb, s, len);
103
134
  }
104
- s->len = len;
105
- s->ptr[len] = '\0'; /* sentinel */
135
+ RSTR_SET_LEN(s, len);
136
+ RSTR_PTR(s)[len] = '\0'; /* sentinel */
106
137
  }
107
138
  return str;
108
139
  }
109
140
 
110
141
  #define mrb_obj_alloc_string(mrb) ((struct RString*)mrb_obj_alloc((mrb), MRB_TT_STRING, (mrb)->string_class))
111
142
 
112
- /* char offset to byte offset */
113
- int
114
- mrb_str_offset(mrb_state *mrb, mrb_value str, int pos)
143
+ static struct RString*
144
+ str_new_static(mrb_state *mrb, const char *p, size_t len)
115
145
  {
116
- return pos;
146
+ struct RString *s;
147
+
148
+ if (len >= MRB_INT_MAX) {
149
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "string size too big");
150
+ }
151
+ s = mrb_obj_alloc_string(mrb);
152
+ s->as.heap.len = len;
153
+ s->as.heap.aux.capa = 0; /* nofree */
154
+ s->as.heap.ptr = (char *)p;
155
+ s->flags = MRB_STR_NOFREE;
156
+
157
+ return s;
117
158
  }
118
159
 
119
160
  static struct RString*
120
- str_new(mrb_state *mrb, const char *p, mrb_int len)
161
+ str_new(mrb_state *mrb, const char *p, size_t len)
121
162
  {
122
163
  struct RString *s;
123
164
 
165
+ if (p && mrb_ro_data_p(p)) {
166
+ return str_new_static(mrb, p, len);
167
+ }
124
168
  s = mrb_obj_alloc_string(mrb);
125
- s->len = len;
126
- s->aux.capa = len;
127
- s->ptr = (char *)mrb_malloc(mrb, (size_t)len+1);
128
- if (p) {
129
- memcpy(s->ptr, p, len);
169
+ if (len < RSTRING_EMBED_LEN_MAX) {
170
+ RSTR_SET_EMBED_FLAG(s);
171
+ RSTR_SET_EMBED_LEN(s, len);
172
+ if (p) {
173
+ memcpy(s->as.ary, p, len);
174
+ }
175
+ } else {
176
+ if (len >= MRB_INT_MAX) {
177
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "string size too big");
178
+ }
179
+ s->as.heap.len = len;
180
+ s->as.heap.aux.capa = len;
181
+ s->as.heap.ptr = (char *)mrb_malloc(mrb, len+1);
182
+ if (p) {
183
+ memcpy(s->as.heap.ptr, p, len);
184
+ }
130
185
  }
131
- s->ptr[len] = '\0';
186
+ RSTR_PTR(s)[len] = '\0';
132
187
  return s;
133
188
  }
134
189
 
135
- void
190
+ static inline void
136
191
  str_with_class(mrb_state *mrb, struct RString *s, mrb_value obj)
137
192
  {
138
193
  s->c = mrb_str_ptr(obj)->c;
@@ -151,20 +206,23 @@ mrb_str_new_empty(mrb_state *mrb, mrb_value str)
151
206
  # define MRB_STR_BUF_MIN_SIZE 128
152
207
  #endif
153
208
 
154
- mrb_value
155
- mrb_str_buf_new(mrb_state *mrb, mrb_int capa)
209
+ MRB_API mrb_value
210
+ mrb_str_buf_new(mrb_state *mrb, size_t capa)
156
211
  {
157
212
  struct RString *s;
158
213
 
159
214
  s = mrb_obj_alloc_string(mrb);
160
215
 
216
+ if (capa >= MRB_INT_MAX) {
217
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "string capacity size too big");
218
+ }
161
219
  if (capa < MRB_STR_BUF_MIN_SIZE) {
162
220
  capa = MRB_STR_BUF_MIN_SIZE;
163
221
  }
164
- s->len = 0;
165
- s->aux.capa = capa;
166
- s->ptr = (char *)mrb_malloc(mrb, capa+1);
167
- s->ptr[0] = '\0';
222
+ s->as.heap.len = 0;
223
+ s->as.heap.aux.capa = capa;
224
+ s->as.heap.ptr = (char *)mrb_malloc(mrb, capa+1);
225
+ RSTR_PTR(s)[0] = '\0';
168
226
 
169
227
  return mrb_obj_value(s);
170
228
  }
@@ -172,53 +230,48 @@ mrb_str_buf_new(mrb_state *mrb, mrb_int capa)
172
230
  static void
173
231
  str_buf_cat(mrb_state *mrb, struct RString *s, const char *ptr, size_t len)
174
232
  {
175
- mrb_int capa;
176
- mrb_int total;
233
+ size_t capa;
234
+ size_t total;
177
235
  ptrdiff_t off = -1;
178
236
 
237
+ if (len == 0) return;
179
238
  mrb_str_modify(mrb, s);
180
- if (ptr >= s->ptr && ptr <= s->ptr + s->len) {
181
- off = ptr - s->ptr;
239
+ if (ptr >= RSTR_PTR(s) && ptr <= RSTR_PTR(s) + (size_t)RSTR_LEN(s)) {
240
+ off = ptr - RSTR_PTR(s);
182
241
  }
183
- if (len == 0) return;
184
- capa = s->aux.capa;
185
- if (s->len >= MRB_INT_MAX - (mrb_int)len) {
186
- mrb_raise(mrb, E_ARGUMENT_ERROR, "string sizes too big");
242
+
243
+ if (RSTR_EMBED_P(s))
244
+ capa = RSTRING_EMBED_LEN_MAX;
245
+ else
246
+ capa = s->as.heap.aux.capa;
247
+
248
+ if (RSTR_LEN(s) >= MRB_INT_MAX - (mrb_int)len) {
249
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "string size too big");
187
250
  }
188
- total = s->len+len;
251
+ total = RSTR_LEN(s)+len;
189
252
  if (capa <= total) {
190
253
  while (total > capa) {
191
- if (capa + 1 >= MRB_INT_MAX / 2) {
192
- capa = (total + 4095) / 4096;
193
- break;
194
- }
195
- capa = (capa + 1) * 2;
254
+ if (capa + 1 >= MRB_INT_MAX / 2) {
255
+ capa = (total + 4095) / 4096;
256
+ break;
257
+ }
258
+ capa = (capa + 1) * 2;
196
259
  }
197
- RESIZE_CAPA(s, capa);
260
+ resize_capa(mrb, s, capa);
198
261
  }
199
262
  if (off != -1) {
200
- ptr = s->ptr + off;
263
+ ptr = RSTR_PTR(s) + off;
201
264
  }
202
- memcpy(s->ptr + s->len, ptr, len);
203
- s->len = total;
204
- s->ptr[total] = '\0'; /* sentinel */
205
- }
206
-
207
- mrb_value
208
- mrb_str_buf_cat(mrb_state *mrb, mrb_value str, const char *ptr, size_t len)
209
- {
210
- if (len == 0) return str;
211
- str_buf_cat(mrb, mrb_str_ptr(str), ptr, len);
212
- return str;
265
+ memcpy(RSTR_PTR(s) + RSTR_LEN(s), ptr, len);
266
+ mrb_assert_int_fit(size_t, total, mrb_int, MRB_INT_MAX);
267
+ RSTR_SET_LEN(s, total);
268
+ RSTR_PTR(s)[total] = '\0'; /* sentinel */
213
269
  }
214
270
 
215
- mrb_value
271
+ MRB_API mrb_value
216
272
  mrb_str_new(mrb_state *mrb, const char *p, size_t len)
217
273
  {
218
- struct RString *s;
219
-
220
- s = str_new(mrb, p, len);
221
- return mrb_obj_value(s);
274
+ return mrb_obj_value(str_new(mrb, p, len));
222
275
  }
223
276
 
224
277
  /*
@@ -228,7 +281,7 @@ mrb_str_new(mrb_state *mrb, const char *p, size_t len)
228
281
  * Returns a new string object containing a copy of <i>str</i>.
229
282
  */
230
283
 
231
- mrb_value
284
+ MRB_API mrb_value
232
285
  mrb_str_new_cstr(mrb_state *mrb, const char *p)
233
286
  {
234
287
  struct RString *s;
@@ -236,9 +289,6 @@ mrb_str_new_cstr(mrb_state *mrb, const char *p)
236
289
 
237
290
  if (p) {
238
291
  len = strlen(p);
239
- if ((mrb_int)len < 0) {
240
- mrb_raise(mrb, E_ARGUMENT_ERROR, "argument too big");
241
- }
242
292
  }
243
293
  else {
244
294
  len = 0;
@@ -249,93 +299,85 @@ mrb_str_new_cstr(mrb_state *mrb, const char *p)
249
299
  return mrb_obj_value(s);
250
300
  }
251
301
 
252
- mrb_value
302
+ MRB_API mrb_value
253
303
  mrb_str_new_static(mrb_state *mrb, const char *p, size_t len)
254
304
  {
255
- struct RString *s;
256
-
257
- s = mrb_obj_alloc_string(mrb);
258
- s->len = len;
259
- s->aux.capa = 0; /* nofree */
260
- s->ptr = (char *)p;
261
- s->flags = MRB_STR_NOFREE;
305
+ struct RString *s = str_new_static(mrb, p, len);
262
306
  return mrb_obj_value(s);
263
307
  }
264
308
 
265
309
  void
266
310
  mrb_gc_free_str(mrb_state *mrb, struct RString *str)
267
311
  {
268
- if (str->flags & MRB_STR_SHARED)
269
- str_decref(mrb, str->aux.shared);
270
- else if ((str->flags & MRB_STR_NOFREE) == 0)
271
- mrb_free(mrb, str->ptr);
312
+ if (RSTR_EMBED_P(str))
313
+ /* no code */;
314
+ else if (RSTR_SHARED_P(str))
315
+ str_decref(mrb, str->as.heap.aux.shared);
316
+ else if (!RSTR_NOFREE_P(str))
317
+ mrb_free(mrb, str->as.heap.ptr);
272
318
  }
273
319
 
274
- char *
320
+ MRB_API char*
275
321
  mrb_str_to_cstr(mrb_state *mrb, mrb_value str0)
276
322
  {
277
323
  struct RString *s;
278
324
 
279
325
  if (!mrb_string_p(str0)) {
280
- mrb_raise(mrb, E_TYPE_ERROR, "expected String");
326
+ mrb_raise(mrb, E_TYPE_ERROR, "expected String");
281
327
  }
282
328
 
283
329
  s = str_new(mrb, RSTRING_PTR(str0), RSTRING_LEN(str0));
284
- if ((strlen(s->ptr) ^ s->len) != 0) {
330
+ if ((strlen(RSTR_PTR(s)) ^ RSTR_LEN(s)) != 0) {
285
331
  mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte");
286
332
  }
287
- return s->ptr;
333
+ return RSTR_PTR(s);
288
334
  }
289
335
 
290
336
  static void
291
337
  str_make_shared(mrb_state *mrb, struct RString *s)
292
338
  {
293
- if (!(s->flags & MRB_STR_SHARED)) {
339
+ if (!RSTR_SHARED_P(s)) {
294
340
  mrb_shared_string *shared = (mrb_shared_string *)mrb_malloc(mrb, sizeof(mrb_shared_string));
295
341
 
296
342
  shared->refcnt = 1;
297
- if (s->flags & MRB_STR_NOFREE) {
343
+ if (RSTR_EMBED_P(s)) {
344
+ const mrb_int len = RSTR_EMBED_LEN(s);
345
+ char *const tmp = (char *)mrb_malloc(mrb, len+1);
346
+ memcpy(tmp, s->as.ary, len);
347
+ tmp[len] = '\0';
348
+ RSTR_UNSET_EMBED_FLAG(s);
349
+ s->as.heap.ptr = tmp;
350
+ s->as.heap.len = len;
351
+ shared->nofree = FALSE;
352
+ shared->ptr = s->as.heap.ptr;
353
+ }
354
+ else if (RSTR_NOFREE_P(s)) {
298
355
  shared->nofree = TRUE;
299
- shared->ptr = s->ptr;
300
- s->flags &= ~MRB_STR_NOFREE;
356
+ shared->ptr = s->as.heap.ptr;
357
+ RSTR_UNSET_NOFREE_FLAG(s);
301
358
  }
302
359
  else {
303
360
  shared->nofree = FALSE;
304
- if (s->aux.capa > s->len) {
305
- s->ptr = shared->ptr = (char *)mrb_realloc(mrb, s->ptr, s->len+1);
361
+ if (s->as.heap.aux.capa > s->as.heap.len) {
362
+ s->as.heap.ptr = shared->ptr = (char *)mrb_realloc(mrb, s->as.heap.ptr, s->as.heap.len+1);
306
363
  }
307
364
  else {
308
- shared->ptr = s->ptr;
365
+ shared->ptr = s->as.heap.ptr;
309
366
  }
310
367
  }
311
- shared->len = s->len;
312
- s->aux.shared = shared;
313
- s->flags |= MRB_STR_SHARED;
368
+ shared->len = s->as.heap.len;
369
+ s->as.heap.aux.shared = shared;
370
+ RSTR_SET_SHARED_FLAG(s);
314
371
  }
315
372
  }
316
373
 
317
- /*
318
- * call-seq:
319
- * char* str = String("abcd"), len=strlen("abcd")
320
- *
321
- * Returns a new string object containing a copy of <i>str</i>.
322
- */
323
- const char*
324
- mrb_str_body(mrb_value str, int *len_p)
325
- {
326
- struct RString *s = mrb_str_ptr(str);
327
-
328
- *len_p = s->len;
329
- return s->ptr;
330
- }
331
-
332
374
  /*
333
375
  * call-seq: (Caution! String("abcd") change)
334
376
  * String("abcdefg") = String("abcd") + String("efg")
335
377
  *
336
378
  * Returns a new string object containing a copy of <i>str</i>.
337
379
  */
338
- void
380
+ MRB_API void
339
381
  mrb_str_concat(mrb_state *mrb, mrb_value self, mrb_value other)
340
382
  {
341
383
  struct RString *s1 = mrb_str_ptr(self), *s2;
@@ -346,15 +388,14 @@ mrb_str_concat(mrb_state *mrb, mrb_value self, mrb_value other)
346
388
  other = mrb_str_to_str(mrb, other);
347
389
  }
348
390
  s2 = mrb_str_ptr(other);
349
- len = s1->len + s2->len;
391
+ len = RSTR_LEN(s1) + RSTR_LEN(s2);
350
392
 
351
- if (s1->aux.capa < len) {
352
- s1->aux.capa = len;
353
- s1->ptr = (char *)mrb_realloc(mrb, s1->ptr, len+1);
393
+ if (RSTRING_CAPA(self) < len) {
394
+ resize_capa(mrb, s1, len);
354
395
  }
355
- memcpy(s1->ptr+s1->len, s2->ptr, s2->len);
356
- s1->len = len;
357
- s1->ptr[len] = '\0';
396
+ memcpy(RSTR_PTR(s1)+RSTR_LEN(s1), RSTR_PTR(s2), RSTR_LEN(s2));
397
+ RSTR_SET_LEN(s1, len);
398
+ RSTR_PTR(s1)[len] = '\0';
358
399
  }
359
400
 
360
401
  /*
@@ -363,16 +404,16 @@ mrb_str_concat(mrb_state *mrb, mrb_value self, mrb_value other)
363
404
  *
364
405
  * Returns a new string object containing a copy of <i>str</i>.
365
406
  */
366
- mrb_value
407
+ MRB_API mrb_value
367
408
  mrb_str_plus(mrb_state *mrb, mrb_value a, mrb_value b)
368
409
  {
369
410
  struct RString *s = mrb_str_ptr(a);
370
411
  struct RString *s2 = mrb_str_ptr(b);
371
412
  struct RString *t;
372
413
 
373
- t = str_new(mrb, 0, s->len + s2->len);
374
- memcpy(t->ptr, s->ptr, s->len);
375
- memcpy(t->ptr + s->len, s2->ptr, s2->len);
414
+ t = str_new(mrb, 0, RSTR_LEN(s) + RSTR_LEN(s2));
415
+ memcpy(RSTR_PTR(t), RSTR_PTR(s), RSTR_LEN(s));
416
+ memcpy(RSTR_PTR(t) + RSTR_LEN(s), RSTR_PTR(s2), RSTR_LEN(s2));
376
417
 
377
418
  return mrb_obj_value(t);
378
419
  }
@@ -394,32 +435,19 @@ mrb_str_plus_m(mrb_state *mrb, mrb_value self)
394
435
  return mrb_str_plus(mrb, self, str);
395
436
  }
396
437
 
397
- /*
398
- * call-seq:
399
- * len = strlen(String("abcd"))
400
- *
401
- * Returns a new string object containing a copy of <i>str</i>.
402
- */
403
- static mrb_value
404
- mrb_str_bytesize(mrb_state *mrb, mrb_value self)
405
- {
406
- struct RString *s = mrb_str_ptr(self);
407
- return mrb_fixnum_value(s->len);
408
- }
409
-
410
438
  /* 15.2.10.5.26 */
411
439
  /* 15.2.10.5.33 */
412
440
  /*
413
441
  * call-seq:
414
442
  * len = strlen(String("abcd"))
415
443
  *
416
- * Returns a new string object containing a copy of <i>str</i>.
444
+ * Returns the length of string.
417
445
  */
418
- mrb_value
446
+ static mrb_value
419
447
  mrb_str_size(mrb_state *mrb, mrb_value self)
420
448
  {
421
449
  struct RString *s = mrb_str_ptr(self);
422
- return mrb_fixnum_value(s->len);
450
+ return mrb_fixnum_value(RSTR_LEN(s));
423
451
  }
424
452
 
425
453
  /* 15.2.10.5.1 */
@@ -450,7 +478,7 @@ mrb_str_times(mrb_state *mrb, mrb_value self)
450
478
  len = RSTRING_LEN(self)*times;
451
479
  str2 = str_new(mrb, 0, len);
452
480
  str_with_class(mrb, str2, self);
453
- p = str2->ptr;
481
+ p = RSTR_PTR(str2);
454
482
  if (len > 0) {
455
483
  n = RSTRING_LEN(self);
456
484
  memcpy(p, RSTRING_PTR(self), n);
@@ -460,7 +488,7 @@ mrb_str_times(mrb_state *mrb, mrb_value self)
460
488
  }
461
489
  memcpy(p + n, p, len-n);
462
490
  }
463
- p[str2->len] = '\0';
491
+ p[RSTR_LEN(str2)] = '\0';
464
492
 
465
493
  return mrb_obj_value(str2);
466
494
  }
@@ -476,7 +504,7 @@ mrb_str_times(mrb_state *mrb, mrb_value self)
476
504
  * = 0
477
505
  * < -1
478
506
  */
479
- int
507
+ MRB_API int
480
508
  mrb_str_cmp(mrb_state *mrb, mrb_value str1, mrb_value str2)
481
509
  {
482
510
  mrb_int len;
@@ -484,11 +512,11 @@ mrb_str_cmp(mrb_state *mrb, mrb_value str1, mrb_value str2)
484
512
  struct RString *s1 = mrb_str_ptr(str1);
485
513
  struct RString *s2 = mrb_str_ptr(str2);
486
514
 
487
- len = lesser(s1->len, s2->len);
488
- retval = memcmp(s1->ptr, s2->ptr, len);
515
+ len = lesser(RSTR_LEN(s1), RSTR_LEN(s2));
516
+ retval = memcmp(RSTR_PTR(s1), RSTR_PTR(s2), len);
489
517
  if (retval == 0) {
490
- if (s1->len == s2->len) return 0;
491
- if (s1->len > s2->len) return 1;
518
+ if (RSTR_LEN(s1) == RSTR_LEN(s2)) return 0;
519
+ if (RSTR_LEN(s1) > RSTR_LEN(s2)) return 1;
492
520
  return -1;
493
521
  }
494
522
  if (retval > 0) return 1;
@@ -562,10 +590,10 @@ str_eql(mrb_state *mrb, const mrb_value str1, const mrb_value str2)
562
590
  return FALSE;
563
591
  }
564
592
 
565
- mrb_bool
593
+ MRB_API mrb_bool
566
594
  mrb_str_equal(mrb_state *mrb, mrb_value str1, mrb_value str2)
567
595
  {
568
- if (mrb_obj_equal(mrb, str1, str2)) return TRUE;
596
+ if (mrb_immediate_p(str2)) return FALSE;
569
597
  if (!mrb_string_p(str2)) {
570
598
  if (mrb_nil_p(str2)) return FALSE;
571
599
  if (!mrb_respond_to(mrb, str2, mrb_intern_lit(mrb, "to_str"))) {
@@ -592,15 +620,13 @@ static mrb_value
592
620
  mrb_str_equal_m(mrb_state *mrb, mrb_value str1)
593
621
  {
594
622
  mrb_value str2;
595
- mrb_bool equal_p;
596
623
 
597
624
  mrb_get_args(mrb, "o", &str2);
598
- equal_p = mrb_str_equal(mrb, str1, str2);
599
625
 
600
- return mrb_bool_value(equal_p);
626
+ return mrb_bool_value(mrb_str_equal(mrb, str1, str2));
601
627
  }
602
628
  /* ---------------------------------- */
603
- mrb_value
629
+ MRB_API mrb_value
604
630
  mrb_str_to_str(mrb_state *mrb, mrb_value str)
605
631
  {
606
632
  mrb_value s;
@@ -615,25 +641,24 @@ mrb_str_to_str(mrb_state *mrb, mrb_value str)
615
641
  return str;
616
642
  }
617
643
 
618
- char *
644
+ MRB_API const char*
619
645
  mrb_string_value_ptr(mrb_state *mrb, mrb_value ptr)
620
646
  {
621
- mrb_value str = mrb_str_to_str(mrb, ptr);
622
- return RSTRING_PTR(str);
647
+ mrb_value str = mrb_str_to_str(mrb, ptr);
648
+ return RSTRING_PTR(str);
623
649
  }
624
650
 
625
- static mrb_value
626
- noregexp(mrb_state *mrb, mrb_value self)
651
+ void
652
+ mrb_noregexp(mrb_state *mrb, mrb_value self)
627
653
  {
628
654
  mrb_raise(mrb, E_NOTIMP_ERROR, "Regexp class not implemented");
629
- return mrb_nil_value();
630
655
  }
631
656
 
632
- static void
633
- regexp_check(mrb_state *mrb, mrb_value obj)
657
+ void
658
+ mrb_regexp_check(mrb_state *mrb, mrb_value obj)
634
659
  {
635
- if (!memcmp(mrb_obj_classname(mrb, obj), REGEXP_CLASS, sizeof(REGEXP_CLASS) - 1)) {
636
- noregexp(mrb, obj);
660
+ if (mrb_regexp_p(mrb, obj)) {
661
+ mrb_noregexp(mrb, obj);
637
662
  }
638
663
  }
639
664
 
@@ -649,7 +674,7 @@ mrb_memsearch_qs(const unsigned char *xs, mrb_int m, const unsigned char *ys, mr
649
674
  qstable[i] = m + 1;
650
675
  for (; x < xe; ++x)
651
676
  qstable[*x] = xe - x;
652
- /* Searching */
677
+ /* Searching */
653
678
  for (; y + m <= ys + n; y += *(qstable + y[m])) {
654
679
  if (*xs == *y && memcmp(xs, y, m) == 0)
655
680
  return y - ys;
@@ -669,7 +694,7 @@ mrb_memsearch(const void *x0, mrb_int m, const void *y0, mrb_int n)
669
694
  else if (m < 1) {
670
695
  return 0;
671
696
  }
672
- else if (m == 1) {
697
+ else if (m == 1) {
673
698
  const unsigned char *ys = y, *ye = ys + n;
674
699
  for (; y < ye; ++y) {
675
700
  if (*x == *y)
@@ -708,13 +733,14 @@ mrb_str_index(mrb_state *mrb, mrb_value str, mrb_value sub, mrb_int offset)
708
733
  return pos + offset;
709
734
  }
710
735
 
711
- mrb_value
736
+ MRB_API mrb_value
712
737
  mrb_str_dup(mrb_state *mrb, mrb_value str)
713
738
  {
714
- /* should return shared string */
715
739
  struct RString *s = mrb_str_ptr(str);
740
+ struct RString *dup = str_new(mrb, 0, 0);
716
741
 
717
- return mrb_str_new(mrb, s->ptr, s->len);
742
+ str_with_class(mrb, dup, str);
743
+ return str_replace(mrb, dup, s);
718
744
  }
719
745
 
720
746
  static mrb_value
@@ -722,7 +748,7 @@ mrb_str_aref(mrb_state *mrb, mrb_value str, mrb_value indx)
722
748
  {
723
749
  mrb_int idx;
724
750
 
725
- regexp_check(mrb, indx);
751
+ mrb_regexp_check(mrb, indx);
726
752
  switch (mrb_type(indx)) {
727
753
  case MRB_TT_FIXNUM:
728
754
  idx = mrb_fixnum(indx);
@@ -741,22 +767,25 @@ num_index:
741
767
  /* check if indx is Range */
742
768
  {
743
769
  mrb_int beg, len;
744
- mrb_value tmp;
745
770
 
746
771
  len = RSTRING_LEN(str);
747
772
  if (mrb_range_beg_len(mrb, indx, &beg, &len, len)) {
748
- tmp = mrb_str_subseq(mrb, str, beg, len);
749
- return tmp;
773
+ return mrb_str_subseq(mrb, str, beg, len);
750
774
  }
751
775
  else {
752
776
  return mrb_nil_value();
753
777
  }
754
778
  }
779
+ case MRB_TT_FLOAT:
755
780
  default:
781
+ indx = mrb_Integer(mrb, indx);
782
+ if (mrb_nil_p(indx)) {
783
+ mrb_raise(mrb, E_TYPE_ERROR, "can't convert to Fixnum");
784
+ }
756
785
  idx = mrb_fixnum(indx);
757
786
  goto num_index;
758
- }
759
- return mrb_nil_value(); /* not reached */
787
+ }
788
+ return mrb_nil_value(); /* not reached */
760
789
  }
761
790
 
762
791
  /* 15.2.10.5.6 */
@@ -772,8 +801,6 @@ num_index:
772
801
  * str.slice(fixnum) => fixnum or nil
773
802
  * str.slice(fixnum, fixnum) => new_str or nil
774
803
  * str.slice(range) => new_str or nil
775
- * str.slice(regexp) => new_str or nil
776
- * str.slice(regexp, fixnum) => new_str or nil
777
804
  * str.slice(other_str) => new_str or nil
778
805
  *
779
806
  * Element Reference---If passed a single <code>Fixnum</code>, returns the code
@@ -785,25 +812,19 @@ num_index:
785
812
  * <code>nil</code> if the initial offset falls outside the string, the length
786
813
  * is negative, or the beginning of the range is greater than the end.
787
814
  *
788
- * If a <code>Regexp</code> is supplied, the matching portion of <i>str</i> is
789
- * returned. If a numeric parameter follows the regular expression, that
790
- * component of the <code>MatchData</code> is returned instead. If a
791
- * <code>String</code> is given, that string is returned if it occurs in
815
+ * If a <code>String</code> is given, that string is returned if it occurs in
792
816
  * <i>str</i>. In both cases, <code>nil</code> is returned if there is no
793
817
  * match.
794
818
  *
795
819
  * a = "hello there"
796
820
  * a[1] #=> 101(1.8.7) "e"(1.9.2)
821
+ * a[1.1] #=> "e"(1.9.2)
797
822
  * a[1,3] #=> "ell"
798
823
  * a[1..3] #=> "ell"
799
824
  * a[-3,2] #=> "er"
800
825
  * a[-4..-2] #=> "her"
801
826
  * a[12..-1] #=> nil
802
827
  * a[-2..-4] #=> ""
803
- * a[/[aeiou](.)\1/] #=> "ell"
804
- * a[/[aeiou](.)\1/, 0] #=> "ell"
805
- * a[/[aeiou](.)\1/, 1] #=> "l"
806
- * a[/[aeiou](.)\1/, 2] #=> nil
807
828
  * a["lo"] #=> "lo"
808
829
  * a["bye"] #=> nil
809
830
  */
@@ -815,7 +836,7 @@ mrb_str_aref_m(mrb_state *mrb, mrb_value str)
815
836
 
816
837
  argc = mrb_get_args(mrb, "o|o", &a1, &a2);
817
838
  if (argc == 2) {
818
- regexp_check(mrb, a1);
839
+ mrb_regexp_check(mrb, a1);
819
840
  return mrb_str_substr(mrb, str, mrb_fixnum(a1), mrb_fixnum(a2));
820
841
  }
821
842
  if (argc != 1) {
@@ -841,20 +862,20 @@ static mrb_value
841
862
  mrb_str_capitalize_bang(mrb_state *mrb, mrb_value str)
842
863
  {
843
864
  char *p, *pend;
844
- int modify = 0;
865
+ mrb_bool modify = FALSE;
845
866
  struct RString *s = mrb_str_ptr(str);
846
867
 
847
868
  mrb_str_modify(mrb, s);
848
- if (s->len == 0 || !s->ptr) return mrb_nil_value();
849
- p = s->ptr; pend = s->ptr + s->len;
869
+ if (RSTR_LEN(s) == 0 || !RSTR_PTR(s)) return mrb_nil_value();
870
+ p = RSTR_PTR(s); pend = RSTR_PTR(s) + RSTR_LEN(s);
850
871
  if (ISLOWER(*p)) {
851
872
  *p = TOUPPER(*p);
852
- modify = 1;
873
+ modify = TRUE;
853
874
  }
854
875
  while (++p < pend) {
855
876
  if (ISUPPER(*p)) {
856
877
  *p = TOLOWER(*p);
857
- modify = 1;
878
+ modify = TRUE;
858
879
  }
859
880
  }
860
881
  if (modify) return str;
@@ -902,29 +923,29 @@ mrb_str_chomp_bang(mrb_state *mrb, mrb_value str)
902
923
  struct RString *s = mrb_str_ptr(str);
903
924
 
904
925
  mrb_str_modify(mrb, s);
905
- len = s->len;
926
+ len = RSTR_LEN(s);
906
927
  if (mrb_get_args(mrb, "|S", &rs) == 0) {
907
928
  if (len == 0) return mrb_nil_value();
908
929
  smart_chomp:
909
- if (s->ptr[len-1] == '\n') {
910
- s->len--;
911
- if (s->len > 0 &&
912
- s->ptr[s->len-1] == '\r') {
913
- s->len--;
930
+ if (RSTR_PTR(s)[len-1] == '\n') {
931
+ RSTR_SET_LEN(s, RSTR_LEN(s) - 1);
932
+ if (RSTR_LEN(s) > 0 &&
933
+ RSTR_PTR(s)[RSTR_LEN(s)-1] == '\r') {
934
+ RSTR_SET_LEN(s, RSTR_LEN(s) - 1);
914
935
  }
915
936
  }
916
- else if (s->ptr[len-1] == '\r') {
917
- s->len--;
937
+ else if (RSTR_PTR(s)[len-1] == '\r') {
938
+ RSTR_SET_LEN(s, RSTR_LEN(s) - 1);
918
939
  }
919
940
  else {
920
941
  return mrb_nil_value();
921
942
  }
922
- s->ptr[s->len] = '\0';
943
+ RSTR_PTR(s)[RSTR_LEN(s)] = '\0';
923
944
  return str;
924
945
  }
925
946
 
926
947
  if (len == 0 || mrb_nil_p(rs)) return mrb_nil_value();
927
- p = s->ptr;
948
+ p = RSTR_PTR(s);
928
949
  rslen = RSTRING_LEN(rs);
929
950
  if (rslen == 0) {
930
951
  while (len>0 && p[len-1] == '\n') {
@@ -932,8 +953,8 @@ mrb_str_chomp_bang(mrb_state *mrb, mrb_value str)
932
953
  if (len>0 && p[len-1] == '\r')
933
954
  len--;
934
955
  }
935
- if (len < s->len) {
936
- s->len = len;
956
+ if (len < RSTR_LEN(s)) {
957
+ RSTR_SET_LEN(s, len);
937
958
  p[len] = '\0';
938
959
  return str;
939
960
  }
@@ -950,8 +971,8 @@ mrb_str_chomp_bang(mrb_state *mrb, mrb_value str)
950
971
  if (p[len-1] == newline &&
951
972
  (rslen <= 1 ||
952
973
  memcmp(RSTRING_PTR(rs), pp, rslen) == 0)) {
953
- s->len = len - rslen;
954
- p[s->len] = '\0';
974
+ RSTR_SET_LEN(s, len - rslen);
975
+ p[RSTR_LEN(s)] = '\0';
955
976
  return str;
956
977
  }
957
978
  return mrb_nil_value();
@@ -1001,17 +1022,17 @@ mrb_str_chop_bang(mrb_state *mrb, mrb_value str)
1001
1022
  struct RString *s = mrb_str_ptr(str);
1002
1023
 
1003
1024
  mrb_str_modify(mrb, s);
1004
- if (s->len > 0) {
1005
- int len;
1006
- len = s->len - 1;
1007
- if (s->ptr[len] == '\n') {
1025
+ if (RSTR_LEN(s) > 0) {
1026
+ mrb_int len;
1027
+ len = RSTR_LEN(s) - 1;
1028
+ if (RSTR_PTR(s)[len] == '\n') {
1008
1029
  if (len > 0 &&
1009
- s->ptr[len-1] == '\r') {
1030
+ RSTR_PTR(s)[len-1] == '\r') {
1010
1031
  len--;
1011
1032
  }
1012
1033
  }
1013
- s->len = len;
1014
- s->ptr[len] = '\0';
1034
+ RSTR_SET_LEN(s, len);
1035
+ RSTR_PTR(s)[len] = '\0';
1015
1036
  return str;
1016
1037
  }
1017
1038
  return mrb_nil_value();
@@ -1055,16 +1076,16 @@ static mrb_value
1055
1076
  mrb_str_downcase_bang(mrb_state *mrb, mrb_value str)
1056
1077
  {
1057
1078
  char *p, *pend;
1058
- int modify = 0;
1079
+ mrb_bool modify = FALSE;
1059
1080
  struct RString *s = mrb_str_ptr(str);
1060
1081
 
1061
1082
  mrb_str_modify(mrb, s);
1062
- p = s->ptr;
1063
- pend = s->ptr + s->len;
1083
+ p = RSTR_PTR(s);
1084
+ pend = RSTR_PTR(s) + RSTR_LEN(s);
1064
1085
  while (p < pend) {
1065
1086
  if (ISUPPER(*p)) {
1066
1087
  *p = TOLOWER(*p);
1067
- modify = 1;
1088
+ modify = TRUE;
1068
1089
  }
1069
1090
  p++;
1070
1091
  }
@@ -1109,7 +1130,7 @@ mrb_str_empty_p(mrb_state *mrb, mrb_value self)
1109
1130
  {
1110
1131
  struct RString *s = mrb_str_ptr(self);
1111
1132
 
1112
- return mrb_bool_value(s->len == 0);
1133
+ return mrb_bool_value(RSTR_LEN(s) == 0);
1113
1134
  }
1114
1135
 
1115
1136
  /* 15.2.10.5.17 */
@@ -1138,23 +1159,25 @@ mrb_str_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len)
1138
1159
  mrb_shared_string *shared;
1139
1160
 
1140
1161
  orig = mrb_str_ptr(str);
1141
- str_make_shared(mrb, orig);
1142
- shared = orig->aux.shared;
1143
- s = mrb_obj_alloc_string(mrb);
1144
- s->ptr = orig->ptr + beg;
1145
- s->len = len;
1146
- s->aux.shared = shared;
1147
- s->flags |= MRB_STR_SHARED;
1148
- shared->refcnt++;
1162
+ if (RSTR_EMBED_P(orig)) {
1163
+ s = str_new(mrb, orig->as.ary+beg, len);
1164
+ } else {
1165
+ str_make_shared(mrb, orig);
1166
+ shared = orig->as.heap.aux.shared;
1167
+ s = mrb_obj_alloc_string(mrb);
1168
+ s->as.heap.ptr = orig->as.heap.ptr + beg;
1169
+ s->as.heap.len = len;
1170
+ s->as.heap.aux.shared = shared;
1171
+ RSTR_SET_SHARED_FLAG(s);
1172
+ shared->refcnt++;
1173
+ }
1149
1174
 
1150
1175
  return mrb_obj_value(s);
1151
1176
  }
1152
1177
 
1153
- mrb_value
1178
+ MRB_API mrb_value
1154
1179
  mrb_str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len)
1155
1180
  {
1156
- mrb_value str2;
1157
-
1158
1181
  if (len < 0) return mrb_nil_value();
1159
1182
  if (!RSTRING_LEN(str)) {
1160
1183
  len = 0;
@@ -1169,16 +1192,7 @@ mrb_str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len)
1169
1192
  if (len <= 0) {
1170
1193
  len = 0;
1171
1194
  }
1172
- str2 = mrb_str_subseq(mrb, str, beg, len);
1173
-
1174
- return str2;
1175
- }
1176
-
1177
- mrb_value
1178
- mrb_str_buf_append(mrb_state *mrb, mrb_value str, mrb_value str2)
1179
- {
1180
- mrb_str_cat(mrb, str, RSTRING_PTR(str2), RSTRING_LEN(str2));
1181
- return str;
1195
+ return mrb_str_subseq(mrb, str, beg, len);
1182
1196
  }
1183
1197
 
1184
1198
  mrb_int
@@ -1186,16 +1200,15 @@ mrb_str_hash(mrb_state *mrb, mrb_value str)
1186
1200
  {
1187
1201
  /* 1-8-7 */
1188
1202
  struct RString *s = mrb_str_ptr(str);
1189
- mrb_int len = s->len;
1190
- char *p = s->ptr;
1203
+ mrb_int len = RSTR_LEN(s);
1204
+ char *p = RSTR_PTR(s);
1191
1205
  mrb_int key = 0;
1192
1206
 
1193
1207
  while (len--) {
1194
1208
  key = key*65599 + *p;
1195
1209
  p++;
1196
1210
  }
1197
- key = key + (key>>5);
1198
- return key;
1211
+ return key + (key>>5);
1199
1212
  }
1200
1213
 
1201
1214
  /* 15.2.10.5.20 */
@@ -1271,8 +1284,7 @@ static mrb_value
1271
1284
  mrb_str_index_m(mrb_state *mrb, mrb_value str)
1272
1285
  {
1273
1286
  mrb_value *argv;
1274
- int argc;
1275
-
1287
+ mrb_int argc;
1276
1288
  mrb_value sub;
1277
1289
  mrb_int pos;
1278
1290
 
@@ -1287,9 +1299,8 @@ mrb_str_index_m(mrb_state *mrb, mrb_value str)
1287
1299
  sub = argv[0];
1288
1300
  else
1289
1301
  sub = mrb_nil_value();
1290
-
1291
1302
  }
1292
- regexp_check(mrb, sub);
1303
+ mrb_regexp_check(mrb, sub);
1293
1304
  if (pos < 0) {
1294
1305
  pos += RSTRING_LEN(str);
1295
1306
  if (pos < 0) {
@@ -1299,7 +1310,7 @@ mrb_str_index_m(mrb_state *mrb, mrb_value str)
1299
1310
 
1300
1311
  switch (mrb_type(sub)) {
1301
1312
  case MRB_TT_FIXNUM: {
1302
- int c = mrb_fixnum(sub);
1313
+ mrb_int c = mrb_fixnum(sub);
1303
1314
  mrb_int len = RSTRING_LEN(str);
1304
1315
  unsigned char *p = (unsigned char*)RSTRING_PTR(str);
1305
1316
 
@@ -1333,38 +1344,40 @@ mrb_str_index_m(mrb_state *mrb, mrb_value str)
1333
1344
  static mrb_value
1334
1345
  str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2)
1335
1346
  {
1336
- if (s2->flags & MRB_STR_SHARED) {
1337
- L_SHARE:
1338
- if (s1->flags & MRB_STR_SHARED){
1339
- str_decref(mrb, s1->aux.shared);
1340
- }
1341
- else {
1342
- mrb_free(mrb, s1->ptr);
1343
- }
1344
- s1->ptr = s2->ptr;
1345
- s1->len = s2->len;
1346
- s1->aux.shared = s2->aux.shared;
1347
- s1->flags |= MRB_STR_SHARED;
1348
- s1->aux.shared->refcnt++;
1347
+ long len;
1348
+
1349
+ len = RSTR_LEN(s2);
1350
+ if (RSTR_SHARED_P(s1)) {
1351
+ str_decref(mrb, s1->as.heap.aux.shared);
1349
1352
  }
1350
- else if (s2->len > STR_REPLACE_SHARED_MIN) {
1351
- str_make_shared(mrb, s2);
1352
- goto L_SHARE;
1353
+ else if (!RSTR_EMBED_P(s1) && !RSTR_NOFREE_P(s1)) {
1354
+ mrb_free(mrb, s1->as.heap.ptr);
1355
+ }
1356
+
1357
+ RSTR_UNSET_NOFREE_FLAG(s1);
1358
+
1359
+ if (RSTR_SHARED_P(s2)) {
1360
+ L_SHARE:
1361
+ RSTR_UNSET_EMBED_FLAG(s1);
1362
+ s1->as.heap.ptr = s2->as.heap.ptr;
1363
+ s1->as.heap.len = len;
1364
+ s1->as.heap.aux.shared = s2->as.heap.aux.shared;
1365
+ RSTR_SET_SHARED_FLAG(s1);
1366
+ s1->as.heap.aux.shared->refcnt++;
1353
1367
  }
1354
1368
  else {
1355
- if (s1->flags & MRB_STR_SHARED) {
1356
- str_decref(mrb, s1->aux.shared);
1357
- s1->flags &= ~MRB_STR_SHARED;
1358
- s1->ptr = (char *)mrb_malloc(mrb, s2->len+1);
1369
+ if (len <= RSTRING_EMBED_LEN_MAX) {
1370
+ RSTR_UNSET_SHARED_FLAG(s1);
1371
+ RSTR_SET_EMBED_FLAG(s1);
1372
+ memcpy(s1->as.ary, RSTR_PTR(s2), len);
1373
+ RSTR_SET_EMBED_LEN(s1, len);
1359
1374
  }
1360
1375
  else {
1361
- s1->ptr = (char *)mrb_realloc(mrb, s1->ptr, s2->len+1);
1376
+ str_make_shared(mrb, s2);
1377
+ goto L_SHARE;
1362
1378
  }
1363
- memcpy(s1->ptr, s2->ptr, s2->len);
1364
- s1->ptr[s2->len] = 0;
1365
- s1->len = s2->len;
1366
- s1->aux.capa = s2->len;
1367
1379
  }
1380
+
1368
1381
  return mrb_obj_value(s1);
1369
1382
  }
1370
1383
 
@@ -1425,17 +1438,13 @@ mrb_str_init(mrb_state *mrb, mrb_value self)
1425
1438
  *
1426
1439
  * 'cat and dog'.to_sym #=> :"cat and dog"
1427
1440
  */
1428
- mrb_value
1441
+ MRB_API mrb_value
1429
1442
  mrb_str_intern(mrb_state *mrb, mrb_value self)
1430
1443
  {
1431
- mrb_sym id;
1432
-
1433
- id = mrb_intern_str(mrb, self);
1434
- return mrb_symbol_value(id);
1435
-
1444
+ return mrb_symbol_value(mrb_intern_str(mrb, self));
1436
1445
  }
1437
1446
  /* ---------------------------------- */
1438
- mrb_value
1447
+ MRB_API mrb_value
1439
1448
  mrb_obj_as_string(mrb_state *mrb, mrb_value obj)
1440
1449
  {
1441
1450
  mrb_value str;
@@ -1449,7 +1458,7 @@ mrb_obj_as_string(mrb_state *mrb, mrb_value obj)
1449
1458
  return str;
1450
1459
  }
1451
1460
 
1452
- mrb_value
1461
+ MRB_API mrb_value
1453
1462
  mrb_ptr_to_str(mrb_state *mrb, void *p)
1454
1463
  {
1455
1464
  struct RString *p_str;
@@ -1458,7 +1467,7 @@ mrb_ptr_to_str(mrb_state *mrb, void *p)
1458
1467
  uintptr_t n = (uintptr_t)p;
1459
1468
 
1460
1469
  p_str = str_new(mrb, NULL, 2 + sizeof(uintptr_t) * CHAR_BIT / 4);
1461
- p1 = p_str->ptr;
1470
+ p1 = RSTR_PTR(p_str);
1462
1471
  *p1++ = '0';
1463
1472
  *p1++ = 'x';
1464
1473
  p2 = p1;
@@ -1468,7 +1477,7 @@ mrb_ptr_to_str(mrb_state *mrb, void *p)
1468
1477
  n /= 16;
1469
1478
  } while (n > 0);
1470
1479
  *p2 = '\0';
1471
- p_str->len = (mrb_int)(p2 - p_str->ptr);
1480
+ RSTR_SET_LEN(p_str, (mrb_int)(p2 - RSTR_PTR(p_str)));
1472
1481
 
1473
1482
  while (p1 < p2) {
1474
1483
  const char c = *p1;
@@ -1479,13 +1488,13 @@ mrb_ptr_to_str(mrb_state *mrb, void *p)
1479
1488
  return mrb_obj_value(p_str);
1480
1489
  }
1481
1490
 
1482
- mrb_value
1491
+ MRB_API mrb_value
1483
1492
  mrb_string_type(mrb_state *mrb, mrb_value str)
1484
1493
  {
1485
1494
  return mrb_convert_type(mrb, str, MRB_TT_STRING, "String", "to_str");
1486
1495
  }
1487
1496
 
1488
- mrb_value
1497
+ MRB_API mrb_value
1489
1498
  mrb_check_string_type(mrb_state *mrb, mrb_value str)
1490
1499
  {
1491
1500
  return mrb_check_convert_type(mrb, str, MRB_TT_STRING, "String", "to_str");
@@ -1507,12 +1516,12 @@ mrb_str_reverse(mrb_state *mrb, mrb_value str)
1507
1516
  struct RString *s2;
1508
1517
  char *s, *e, *p;
1509
1518
 
1510
- if (RSTRING(str)->len <= 1) return mrb_str_dup(mrb, str);
1519
+ if (RSTRING_LEN(str) <= 1) return mrb_str_dup(mrb, str);
1511
1520
 
1512
- s2 = str_new(mrb, 0, RSTRING(str)->len);
1521
+ s2 = str_new(mrb, 0, RSTRING_LEN(str));
1513
1522
  str_with_class(mrb, s2, str);
1514
1523
  s = RSTRING_PTR(str); e = RSTRING_END(str) - 1;
1515
- p = s2->ptr;
1524
+ p = RSTR_PTR(s2);
1516
1525
 
1517
1526
  while (e >= s) {
1518
1527
  *p++ = *e--;
@@ -1535,9 +1544,9 @@ mrb_str_reverse_bang(mrb_state *mrb, mrb_value str)
1535
1544
  char c;
1536
1545
 
1537
1546
  mrb_str_modify(mrb, s);
1538
- if (s->len > 1) {
1539
- p = s->ptr;
1540
- e = p + s->len - 1;
1547
+ if (RSTR_LEN(s) > 1) {
1548
+ p = RSTR_PTR(s);
1549
+ e = p + RSTR_LEN(s) - 1;
1541
1550
  while (p < e) {
1542
1551
  c = *p;
1543
1552
  *p++ = *e;
@@ -1570,21 +1579,20 @@ mrb_str_rindex(mrb_state *mrb, mrb_value str, mrb_value sub, mrb_int pos)
1570
1579
  {
1571
1580
  char *s, *sbeg, *t;
1572
1581
  struct RString *ps = mrb_str_ptr(str);
1573
- struct RString *psub = mrb_str_ptr(sub);
1574
- mrb_int len = psub->len;
1582
+ mrb_int len = RSTRING_LEN(sub);
1575
1583
 
1576
1584
  /* substring longer than string */
1577
- if (ps->len < len) return -1;
1578
- if (ps->len - pos < len) {
1579
- pos = ps->len - len;
1585
+ if (RSTR_LEN(ps) < len) return -1;
1586
+ if (RSTR_LEN(ps) - pos < len) {
1587
+ pos = RSTR_LEN(ps) - len;
1580
1588
  }
1581
- sbeg = ps->ptr;
1582
- s = ps->ptr + pos;
1583
- t = psub->ptr;
1589
+ sbeg = RSTR_PTR(ps);
1590
+ s = RSTR_PTR(ps) + pos;
1591
+ t = RSTRING_PTR(sub);
1584
1592
  if (len) {
1585
1593
  while (sbeg <= s) {
1586
1594
  if (memcmp(s, t, len) == 0) {
1587
- return s - ps->ptr;
1595
+ return s - RSTR_PTR(ps);
1588
1596
  }
1589
1597
  s--;
1590
1598
  }
@@ -1618,10 +1626,10 @@ static mrb_value
1618
1626
  mrb_str_rindex_m(mrb_state *mrb, mrb_value str)
1619
1627
  {
1620
1628
  mrb_value *argv;
1621
- int argc;
1629
+ mrb_int argc;
1622
1630
  mrb_value sub;
1623
1631
  mrb_value vpos;
1624
- int pos, len = RSTRING_LEN(str);
1632
+ mrb_int pos, len = RSTRING_LEN(str);
1625
1633
 
1626
1634
  mrb_get_args(mrb, "*", &argv, &argc);
1627
1635
  if (argc == 2) {
@@ -1631,7 +1639,7 @@ mrb_str_rindex_m(mrb_state *mrb, mrb_value str)
1631
1639
  if (pos < 0) {
1632
1640
  pos += len;
1633
1641
  if (pos < 0) {
1634
- regexp_check(mrb, sub);
1642
+ mrb_regexp_check(mrb, sub);
1635
1643
  return mrb_nil_value();
1636
1644
  }
1637
1645
  }
@@ -1644,15 +1652,14 @@ mrb_str_rindex_m(mrb_state *mrb, mrb_value str)
1644
1652
  else
1645
1653
  sub = mrb_nil_value();
1646
1654
  }
1647
- regexp_check(mrb, sub);
1655
+ mrb_regexp_check(mrb, sub);
1648
1656
 
1649
1657
  switch (mrb_type(sub)) {
1650
1658
  case MRB_TT_FIXNUM: {
1651
- int c = mrb_fixnum(sub);
1652
- mrb_int len = RSTRING_LEN(str);
1659
+ mrb_int c = mrb_fixnum(sub);
1653
1660
  unsigned char *p = (unsigned char*)RSTRING_PTR(str);
1654
1661
 
1655
- for (pos=len;pos>=0;pos--) {
1662
+ for (pos=len-1;pos>=0;pos--) {
1656
1663
  if (p[pos] == c) return mrb_fixnum_value(pos);
1657
1664
  }
1658
1665
  return mrb_nil_value();
@@ -1677,27 +1684,6 @@ mrb_str_rindex_m(mrb_state *mrb, mrb_value str)
1677
1684
  return mrb_nil_value();
1678
1685
  }
1679
1686
 
1680
- static const char isspacetable[256] = {
1681
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
1682
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1692
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1694
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
1697
- };
1698
-
1699
- #define ascii_isspace(c) isspacetable[(unsigned char)(c)]
1700
-
1701
1687
  /* 15.2.10.5.35 */
1702
1688
 
1703
1689
  /*
@@ -1770,12 +1756,12 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
1770
1756
  else {
1771
1757
  if (mrb_string_p(spat)) {
1772
1758
  split_type = string;
1773
- if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){
1759
+ if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' ') {
1774
1760
  split_type = awk;
1775
1761
  }
1776
1762
  }
1777
1763
  else {
1778
- noregexp(mrb, str);
1764
+ mrb_noregexp(mrb, str);
1779
1765
  }
1780
1766
  }
1781
1767
 
@@ -1785,7 +1771,7 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
1785
1771
  char *ptr = RSTRING_PTR(str);
1786
1772
  char *eptr = RSTRING_END(str);
1787
1773
  char *bptr = ptr;
1788
- int skip = 1;
1774
+ mrb_bool skip = TRUE;
1789
1775
  unsigned int c;
1790
1776
 
1791
1777
  end = beg;
@@ -1793,19 +1779,19 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
1793
1779
  int ai = mrb_gc_arena_save(mrb);
1794
1780
  c = (unsigned char)*ptr++;
1795
1781
  if (skip) {
1796
- if (ascii_isspace(c)) {
1782
+ if (ISSPACE(c)) {
1797
1783
  beg = ptr - bptr;
1798
1784
  }
1799
1785
  else {
1800
1786
  end = ptr - bptr;
1801
- skip = 0;
1787
+ skip = FALSE;
1802
1788
  if (lim_p && lim <= i) break;
1803
1789
  }
1804
1790
  }
1805
- else if (ascii_isspace(c)) {
1791
+ else if (ISSPACE(c)) {
1806
1792
  mrb_ary_push(mrb, result, mrb_str_subseq(mrb, str, beg, end-beg));
1807
1793
  mrb_gc_arena_restore(mrb, ai);
1808
- skip = 1;
1794
+ skip = TRUE;
1809
1795
  beg = ptr - bptr;
1810
1796
  if (lim_p) ++i;
1811
1797
  }
@@ -1815,7 +1801,7 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
1815
1801
  }
1816
1802
  }
1817
1803
  else if (split_type == string) {
1818
- char *ptr = RSTRING_PTR(str);
1804
+ char *ptr = RSTRING_PTR(str); /* s->as.ary */
1819
1805
  char *temp = ptr;
1820
1806
  char *eptr = RSTRING_END(str);
1821
1807
  mrb_int slen = RSTRING_LEN(spat);
@@ -1844,7 +1830,7 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
1844
1830
  beg = ptr - temp;
1845
1831
  }
1846
1832
  else {
1847
- noregexp(mrb, str);
1833
+ mrb_noregexp(mrb, str);
1848
1834
  }
1849
1835
  if (RSTRING_LEN(str) > 0 && (lim_p || RSTRING_LEN(str) > beg || lim < 0)) {
1850
1836
  if (RSTRING_LEN(str) == beg) {
@@ -1865,22 +1851,19 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
1865
1851
  return result;
1866
1852
  }
1867
1853
 
1868
- mrb_value
1854
+ MRB_API mrb_value
1869
1855
  mrb_cstr_to_inum(mrb_state *mrb, const char *str, int base, int badcheck)
1870
1856
  {
1871
- char *end;
1857
+ const char *p;
1872
1858
  char sign = 1;
1873
- int c;
1874
- unsigned long n;
1859
+ int c, uscore;
1860
+ unsigned long n = 0;
1875
1861
  mrb_int val;
1876
1862
 
1877
- #undef ISDIGIT
1878
- #define ISDIGIT(c) ('0' <= (c) && (c) <= '9')
1879
1863
  #define conv_digit(c) \
1880
- (!ISASCII(c) ? -1 : \
1881
- isdigit(c) ? ((c) - '0') : \
1882
- islower(c) ? ((c) - 'a' + 10) : \
1883
- isupper(c) ? ((c) - 'A' + 10) : \
1864
+ (ISDIGIT(c) ? ((c) - '0') : \
1865
+ ISLOWER(c) ? ((c) - 'a' + 10) : \
1866
+ ISUPPER(c) ? ((c) - 'A' + 10) : \
1884
1867
  -1)
1885
1868
 
1886
1869
  if (!str) {
@@ -1958,14 +1941,14 @@ mrb_cstr_to_inum(mrb_state *mrb, const char *str, int base, int badcheck)
1958
1941
  break;
1959
1942
  } /* end of switch (base) { */
1960
1943
  if (*str == '0') { /* squeeze preceeding 0s */
1961
- int us = 0;
1944
+ uscore = 0;
1962
1945
  while ((c = *++str) == '0' || c == '_') {
1963
1946
  if (c == '_') {
1964
- if (++us >= 2)
1947
+ if (++uscore >= 2)
1965
1948
  break;
1966
1949
  }
1967
1950
  else
1968
- us = 0;
1951
+ uscore = 0;
1969
1952
  }
1970
1953
  if (!(c = *str) || ISSPACE(c)) --str;
1971
1954
  }
@@ -1976,15 +1959,33 @@ mrb_cstr_to_inum(mrb_state *mrb, const char *str, int base, int badcheck)
1976
1959
  return mrb_fixnum_value(0);
1977
1960
  }
1978
1961
 
1979
- n = strtoul((char*)str, &end, base);
1962
+ uscore = 0;
1963
+ for (p=str;*p;p++) {
1964
+ if (*p == '_') {
1965
+ if (uscore == 0) {
1966
+ uscore++;
1967
+ continue;
1968
+ }
1969
+ if (badcheck) goto bad;
1970
+ break;
1971
+ }
1972
+ uscore = 0;
1973
+ c = conv_digit(*p);
1974
+ if (c < 0 || c >= base) {
1975
+ if (badcheck) goto bad;
1976
+ break;
1977
+ }
1978
+ n *= base;
1979
+ n += c;
1980
+ }
1980
1981
  if (n > MRB_INT_MAX) {
1981
1982
  mrb_raisef(mrb, E_ARGUMENT_ERROR, "string (%S) too big for integer", mrb_str_new_cstr(mrb, str));
1982
1983
  }
1983
1984
  val = n;
1984
1985
  if (badcheck) {
1985
- if (end == str) goto bad; /* no number */
1986
- while (*end && ISSPACE(*end)) end++;
1987
- if (*end) goto bad; /* trailing garbage */
1986
+ if (p == str) goto bad; /* no number */
1987
+ while (*p && ISSPACE(*p)) p++;
1988
+ if (*p) goto bad; /* trailing garbage */
1988
1989
  }
1989
1990
 
1990
1991
  return mrb_fixnum_value(sign ? val : -val);
@@ -1994,23 +1995,25 @@ bad:
1994
1995
  return mrb_fixnum_value(0);
1995
1996
  }
1996
1997
 
1997
- char *
1998
+ MRB_API const char*
1998
1999
  mrb_string_value_cstr(mrb_state *mrb, mrb_value *ptr)
1999
2000
  {
2000
2001
  struct RString *ps = mrb_str_ptr(*ptr);
2001
- char *s = ps->ptr;
2002
+ mrb_int len = mrb_str_strlen(mrb, ps);
2003
+ char *p = RSTR_PTR(ps);
2002
2004
 
2003
- if (!s || ps->len != strlen(s)) {
2004
- mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte");
2005
+ if (!p || p[len] != '\0') {
2006
+ mrb_str_modify(mrb, ps);
2007
+ return RSTR_PTR(ps);
2005
2008
  }
2006
- return s;
2009
+ return p;
2007
2010
  }
2008
2011
 
2009
- mrb_value
2010
- mrb_str_to_inum(mrb_state *mrb, mrb_value str, int base, int badcheck)
2012
+ MRB_API mrb_value
2013
+ mrb_str_to_inum(mrb_state *mrb, mrb_value str, mrb_int base, mrb_bool badcheck)
2011
2014
  {
2012
- char *s;
2013
- int len;
2015
+ const char *s;
2016
+ mrb_int len;
2014
2017
 
2015
2018
  str = mrb_str_to_str(mrb, str);
2016
2019
  if (badcheck) {
@@ -2023,7 +2026,7 @@ mrb_str_to_inum(mrb_state *mrb, mrb_value str, int base, int badcheck)
2023
2026
  len = RSTRING_LEN(str);
2024
2027
  if (s[len]) { /* no sentinel somehow */
2025
2028
  struct RString *temp_str = str_new(mrb, s, len);
2026
- s = temp_str->ptr;
2029
+ s = RSTR_PTR(temp_str);
2027
2030
  }
2028
2031
  }
2029
2032
  return mrb_cstr_to_inum(mrb, s, base, badcheck);
@@ -2053,35 +2056,22 @@ mrb_str_to_inum(mrb_state *mrb, mrb_value str, int base, int badcheck)
2053
2056
  static mrb_value
2054
2057
  mrb_str_to_i(mrb_state *mrb, mrb_value self)
2055
2058
  {
2056
- mrb_value *argv;
2057
- int argc;
2058
- int base;
2059
-
2060
- mrb_get_args(mrb, "*", &argv, &argc);
2061
- if (argc == 0)
2062
- base = 10;
2063
- else
2064
- base = mrb_fixnum(argv[0]);
2059
+ mrb_int base = 10;
2065
2060
 
2061
+ mrb_get_args(mrb, "|i", &base);
2066
2062
  if (base < 0) {
2067
2063
  mrb_raisef(mrb, E_ARGUMENT_ERROR, "illegal radix %S", mrb_fixnum_value(base));
2068
2064
  }
2069
- return mrb_str_to_inum(mrb, self, base, 0/*Qfalse*/);
2065
+ return mrb_str_to_inum(mrb, self, base, FALSE);
2070
2066
  }
2071
2067
 
2072
- double
2073
- mrb_cstr_to_dbl(mrb_state *mrb, const char * p, int badcheck)
2068
+ MRB_API double
2069
+ mrb_cstr_to_dbl(mrb_state *mrb, const char * p, mrb_bool badcheck)
2074
2070
  {
2075
2071
  char *end;
2076
2072
  double d;
2077
- #if !defined(DBL_DIG)
2078
- # define DBL_DIG 16
2079
- #endif
2080
2073
 
2081
2074
  enum {max_width = 20};
2082
- #define OutOfRange() (((w = end - p) > max_width) ? \
2083
- (w = max_width, ellipsis = "...") : \
2084
- (w = (int)(end - p), ellipsis = ""))
2085
2075
 
2086
2076
  if (!p) return 0.0;
2087
2077
  while (ISSPACE(*p)) p++;
@@ -2138,11 +2128,11 @@ bad:
2138
2128
  return d;
2139
2129
  }
2140
2130
 
2141
- double
2142
- mrb_str_to_dbl(mrb_state *mrb, mrb_value str, int badcheck)
2131
+ MRB_API double
2132
+ mrb_str_to_dbl(mrb_state *mrb, mrb_value str, mrb_bool badcheck)
2143
2133
  {
2144
2134
  char *s;
2145
- int len;
2135
+ mrb_int len;
2146
2136
 
2147
2137
  str = mrb_str_to_str(mrb, str);
2148
2138
  s = RSTRING_PTR(str);
@@ -2153,7 +2143,7 @@ mrb_str_to_dbl(mrb_state *mrb, mrb_value str, int badcheck)
2153
2143
  }
2154
2144
  if (s[len]) { /* no sentinel somehow */
2155
2145
  struct RString *temp_str = str_new(mrb, s, len);
2156
- s = temp_str->ptr;
2146
+ s = RSTR_PTR(temp_str);
2157
2147
  }
2158
2148
  }
2159
2149
  return mrb_cstr_to_dbl(mrb, s, badcheck);
@@ -2176,7 +2166,7 @@ mrb_str_to_dbl(mrb_state *mrb, mrb_value str, int badcheck)
2176
2166
  static mrb_value
2177
2167
  mrb_str_to_f(mrb_state *mrb, mrb_value self)
2178
2168
  {
2179
- return mrb_float_value(mrb, mrb_str_to_dbl(mrb, self, 0/*Qfalse*/));
2169
+ return mrb_float_value(mrb, mrb_str_to_dbl(mrb, self, FALSE));
2180
2170
  }
2181
2171
 
2182
2172
  /* 15.2.10.5.40 */
@@ -2209,7 +2199,7 @@ mrb_str_upcase_bang(mrb_state *mrb, mrb_value str)
2209
2199
  {
2210
2200
  struct RString *s = mrb_str_ptr(str);
2211
2201
  char *p, *pend;
2212
- int modify = 0;
2202
+ mrb_bool modify = FALSE;
2213
2203
 
2214
2204
  mrb_str_modify(mrb, s);
2215
2205
  p = RSTRING_PTR(str);
@@ -2217,7 +2207,7 @@ mrb_str_upcase_bang(mrb_state *mrb, mrb_value str)
2217
2207
  while (p < pend) {
2218
2208
  if (ISLOWER(*p)) {
2219
2209
  *p = TOUPPER(*p);
2220
- modify = 1;
2210
+ modify = TRUE;
2221
2211
  }
2222
2212
  p++;
2223
2213
  }
@@ -2247,6 +2237,8 @@ mrb_str_upcase(mrb_state *mrb, mrb_value self)
2247
2237
  return str;
2248
2238
  }
2249
2239
 
2240
+ #define IS_EVSTR(p,e) ((p) < (e) && (*(p) == '$' || *(p) == '@' || *(p) == '{'))
2241
+
2250
2242
  /*
2251
2243
  * call-seq:
2252
2244
  * str.dump -> new_str
@@ -2292,8 +2284,7 @@ mrb_str_dump(mrb_state *mrb, mrb_value str)
2292
2284
  result = str_new(mrb, 0, len);
2293
2285
  str_with_class(mrb, result, str);
2294
2286
  p = RSTRING_PTR(str); pend = p + RSTRING_LEN(str);
2295
- q = result->ptr;
2296
-
2287
+ q = RSTR_PTR(result);
2297
2288
  *q++ = '"';
2298
2289
  while (p < pend) {
2299
2290
  unsigned char c = *p++;
@@ -2363,31 +2354,34 @@ mrb_str_dump(mrb_state *mrb, mrb_value str)
2363
2354
  }
2364
2355
  }
2365
2356
  }
2366
- *q++ = '"';
2357
+ *q = '"';
2367
2358
  return mrb_obj_value(result);
2368
2359
  }
2369
2360
 
2370
- mrb_value
2361
+ MRB_API mrb_value
2371
2362
  mrb_str_cat(mrb_state *mrb, mrb_value str, const char *ptr, size_t len)
2372
2363
  {
2373
- if ((mrb_int)len < 0) {
2374
- mrb_raise(mrb, E_ARGUMENT_ERROR, "negative string size (or size too big)");
2375
- }
2376
2364
  str_buf_cat(mrb, mrb_str_ptr(str), ptr, len);
2377
2365
  return str;
2378
2366
  }
2379
2367
 
2380
- mrb_value
2368
+ MRB_API mrb_value
2381
2369
  mrb_str_cat_cstr(mrb_state *mrb, mrb_value str, const char *ptr)
2382
2370
  {
2383
2371
  return mrb_str_cat(mrb, str, ptr, strlen(ptr));
2384
2372
  }
2385
2373
 
2386
- mrb_value
2374
+ MRB_API mrb_value
2375
+ mrb_str_cat_str(mrb_state *mrb, mrb_value str, mrb_value str2)
2376
+ {
2377
+ return mrb_str_cat(mrb, str, RSTRING_PTR(str2), RSTRING_LEN(str2));
2378
+ }
2379
+
2380
+ MRB_API mrb_value
2387
2381
  mrb_str_append(mrb_state *mrb, mrb_value str, mrb_value str2)
2388
2382
  {
2389
2383
  str2 = mrb_str_to_str(mrb, str2);
2390
- return mrb_str_buf_append(mrb, str, str2);
2384
+ return mrb_str_cat_str(mrb, str, str2);
2391
2385
  }
2392
2386
 
2393
2387
  #define CHAR_ESC_LEN 13 /* sizeof(\x{ hex of 32bit unsigned int } \0) */
@@ -2406,54 +2400,54 @@ mrb_str_append(mrb_state *mrb, mrb_value str, mrb_value str2)
2406
2400
  mrb_value
2407
2401
  mrb_str_inspect(mrb_state *mrb, mrb_value str)
2408
2402
  {
2409
- const char *p, *pend;
2410
- char buf[CHAR_ESC_LEN + 1];
2411
- mrb_value result = mrb_str_new(mrb, "\"", 1);
2412
-
2413
- p = RSTRING_PTR(str); pend = RSTRING_END(str);
2414
- for (;p < pend; p++) {
2415
- unsigned int c, cc;
2416
-
2417
- c = *p;
2418
- if (c == '"'|| c == '\\' || (c == '#' && IS_EVSTR(p, pend))) {
2419
- buf[0] = '\\'; buf[1] = c;
2420
- mrb_str_buf_cat(mrb, result, buf, 2);
2421
- continue;
2422
- }
2423
- if (ISPRINT(c)) {
2424
- buf[0] = c;
2425
- mrb_str_buf_cat(mrb, result, buf, 1);
2426
- continue;
2427
- }
2428
- switch (c) {
2429
- case '\n': cc = 'n'; break;
2430
- case '\r': cc = 'r'; break;
2431
- case '\t': cc = 't'; break;
2432
- case '\f': cc = 'f'; break;
2433
- case '\013': cc = 'v'; break;
2434
- case '\010': cc = 'b'; break;
2435
- case '\007': cc = 'a'; break;
2436
- case 033: cc = 'e'; break;
2437
- default: cc = 0; break;
2438
- }
2439
- if (cc) {
2440
- buf[0] = '\\';
2441
- buf[1] = (char)cc;
2442
- mrb_str_buf_cat(mrb, result, buf, 2);
2443
- continue;
2444
- }
2445
- else {
2446
- buf[0] = '\\';
2447
- buf[3] = '0' + c % 8; c /= 8;
2448
- buf[2] = '0' + c % 8; c /= 8;
2449
- buf[1] = '0' + c % 8;
2450
- mrb_str_buf_cat(mrb, result, buf, 4);
2451
- continue;
2452
- }
2403
+ const char *p, *pend;
2404
+ char buf[CHAR_ESC_LEN + 1];
2405
+ mrb_value result = mrb_str_new_lit(mrb, "\"");
2406
+
2407
+ p = RSTRING_PTR(str); pend = RSTRING_END(str);
2408
+ for (;p < pend; p++) {
2409
+ unsigned char c, cc;
2410
+
2411
+ c = *p;
2412
+ if (c == '"'|| c == '\\' || (c == '#' && IS_EVSTR(p, pend))) {
2413
+ buf[0] = '\\'; buf[1] = c;
2414
+ mrb_str_cat(mrb, result, buf, 2);
2415
+ continue;
2416
+ }
2417
+ if (ISPRINT(c)) {
2418
+ buf[0] = c;
2419
+ mrb_str_cat(mrb, result, buf, 1);
2420
+ continue;
2421
+ }
2422
+ switch (c) {
2423
+ case '\n': cc = 'n'; break;
2424
+ case '\r': cc = 'r'; break;
2425
+ case '\t': cc = 't'; break;
2426
+ case '\f': cc = 'f'; break;
2427
+ case '\013': cc = 'v'; break;
2428
+ case '\010': cc = 'b'; break;
2429
+ case '\007': cc = 'a'; break;
2430
+ case 033: cc = 'e'; break;
2431
+ default: cc = 0; break;
2432
+ }
2433
+ if (cc) {
2434
+ buf[0] = '\\';
2435
+ buf[1] = (char)cc;
2436
+ mrb_str_cat(mrb, result, buf, 2);
2437
+ continue;
2453
2438
  }
2454
- mrb_str_buf_cat(mrb, result, "\"", 1);
2439
+ else {
2440
+ buf[0] = '\\';
2441
+ buf[3] = '0' + c % 8; c /= 8;
2442
+ buf[2] = '0' + c % 8; c /= 8;
2443
+ buf[1] = '0' + c % 8;
2444
+ mrb_str_cat(mrb, result, buf, 4);
2445
+ continue;
2446
+ }
2447
+ }
2448
+ mrb_str_cat_lit(mrb, result, "\"");
2455
2449
 
2456
- return result;
2450
+ return result;
2457
2451
  }
2458
2452
 
2459
2453
  /*
@@ -2469,8 +2463,8 @@ static mrb_value
2469
2463
  mrb_str_bytes(mrb_state *mrb, mrb_value str)
2470
2464
  {
2471
2465
  struct RString *s = mrb_str_ptr(str);
2472
- mrb_value a = mrb_ary_new_capa(mrb, s->len);
2473
- unsigned char *p = (unsigned char *)(s->ptr), *pend = p + s->len;
2466
+ mrb_value a = mrb_ary_new_capa(mrb, RSTR_LEN(s));
2467
+ unsigned char *p = (unsigned char *)(RSTR_PTR(s)), *pend = p + RSTR_LEN(s);
2474
2468
 
2475
2469
  while (p < pend) {
2476
2470
  mrb_ary_push(mrb, a, mrb_fixnum_value(p[0]));
@@ -2485,12 +2479,12 @@ mrb_init_string(mrb_state *mrb)
2485
2479
  {
2486
2480
  struct RClass *s;
2487
2481
 
2488
- s = mrb->string_class = mrb_define_class(mrb, "String", mrb->object_class);
2489
- MRB_SET_INSTANCE_TT(s, MRB_TT_STRING);
2490
- mrb_include_module(mrb, s, mrb_class_get(mrb, "Comparable"));
2482
+ mrb_static_assert(RSTRING_EMBED_LEN_MAX < (1 << 5), "pointer size too big for embedded string");
2491
2483
 
2484
+ s = mrb->string_class = mrb_define_class(mrb, "String", mrb->object_class); /* 15.2.10 */
2485
+ MRB_SET_INSTANCE_TT(s, MRB_TT_STRING);
2492
2486
 
2493
- mrb_define_method(mrb, s, "bytesize", mrb_str_bytesize, MRB_ARGS_NONE());
2487
+ mrb_define_method(mrb, s, "bytesize", mrb_str_size, MRB_ARGS_NONE());
2494
2488
 
2495
2489
  mrb_define_method(mrb, s, "<=>", mrb_str_cmp_m, MRB_ARGS_REQ(1)); /* 15.2.10.5.1 */
2496
2490
  mrb_define_method(mrb, s, "==", mrb_str_equal_m, MRB_ARGS_REQ(1)); /* 15.2.10.5.2 */
@@ -2498,7 +2492,7 @@ mrb_init_string(mrb_state *mrb)
2498
2492
  mrb_define_method(mrb, s, "*", mrb_str_times, MRB_ARGS_REQ(1)); /* 15.2.10.5.5 */
2499
2493
  mrb_define_method(mrb, s, "[]", mrb_str_aref_m, MRB_ARGS_ANY()); /* 15.2.10.5.6 */
2500
2494
  mrb_define_method(mrb, s, "capitalize", mrb_str_capitalize, MRB_ARGS_NONE()); /* 15.2.10.5.7 */
2501
- mrb_define_method(mrb, s, "capitalize!", mrb_str_capitalize_bang, MRB_ARGS_REQ(1)); /* 15.2.10.5.8 */
2495
+ mrb_define_method(mrb, s, "capitalize!", mrb_str_capitalize_bang, MRB_ARGS_NONE()); /* 15.2.10.5.8 */
2502
2496
  mrb_define_method(mrb, s, "chomp", mrb_str_chomp, MRB_ARGS_ANY()); /* 15.2.10.5.9 */
2503
2497
  mrb_define_method(mrb, s, "chomp!", mrb_str_chomp_bang, MRB_ARGS_ANY()); /* 15.2.10.5.10 */
2504
2498
  mrb_define_method(mrb, s, "chop", mrb_str_chop, MRB_ARGS_REQ(1)); /* 15.2.10.5.11 */
@@ -2508,7 +2502,7 @@ mrb_init_string(mrb_state *mrb)
2508
2502
  mrb_define_method(mrb, s, "empty?", mrb_str_empty_p, MRB_ARGS_NONE()); /* 15.2.10.5.16 */
2509
2503
  mrb_define_method(mrb, s, "eql?", mrb_str_eql, MRB_ARGS_REQ(1)); /* 15.2.10.5.17 */
2510
2504
 
2511
- mrb_define_method(mrb, s, "hash", mrb_str_hash_m, MRB_ARGS_REQ(1)); /* 15.2.10.5.20 */
2505
+ mrb_define_method(mrb, s, "hash", mrb_str_hash_m, MRB_ARGS_NONE()); /* 15.2.10.5.20 */
2512
2506
  mrb_define_method(mrb, s, "include?", mrb_str_include, MRB_ARGS_REQ(1)); /* 15.2.10.5.21 */
2513
2507
  mrb_define_method(mrb, s, "index", mrb_str_index_m, MRB_ARGS_ANY()); /* 15.2.10.5.22 */
2514
2508
  mrb_define_method(mrb, s, "initialize", mrb_str_init, MRB_ARGS_REQ(1)); /* 15.2.10.5.23 */
@@ -2528,8 +2522,8 @@ mrb_init_string(mrb_state *mrb)
2528
2522
  mrb_define_method(mrb, s, "to_s", mrb_str_to_s, MRB_ARGS_NONE()); /* 15.2.10.5.40 */
2529
2523
  mrb_define_method(mrb, s, "to_str", mrb_str_to_s, MRB_ARGS_NONE());
2530
2524
  mrb_define_method(mrb, s, "to_sym", mrb_str_intern, MRB_ARGS_NONE()); /* 15.2.10.5.41 */
2531
- mrb_define_method(mrb, s, "upcase", mrb_str_upcase, MRB_ARGS_REQ(1)); /* 15.2.10.5.42 */
2532
- mrb_define_method(mrb, s, "upcase!", mrb_str_upcase_bang, MRB_ARGS_REQ(1)); /* 15.2.10.5.43 */
2525
+ mrb_define_method(mrb, s, "upcase", mrb_str_upcase, MRB_ARGS_NONE()); /* 15.2.10.5.42 */
2526
+ mrb_define_method(mrb, s, "upcase!", mrb_str_upcase_bang, MRB_ARGS_NONE()); /* 15.2.10.5.43 */
2533
2527
  mrb_define_method(mrb, s, "inspect", mrb_str_inspect, MRB_ARGS_NONE()); /* 15.2.10.5.46(x) */
2534
2528
  mrb_define_method(mrb, s, "bytes", mrb_str_bytes, MRB_ARGS_NONE());
2535
2529
  }