webruby 0.2.7 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
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
  }