webruby 0.2.7 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1537) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webruby/environment.rb +24 -8
  3. data/lib/webruby/rake/files.rake +6 -22
  4. data/lib/webruby/rake/general.rake +1 -1
  5. data/lib/webruby/rake/mruby.rake +1 -0
  6. data/lib/webruby/utility.rb +14 -0
  7. data/modules/mruby/AUTHORS +14 -0
  8. data/modules/mruby/CONTRIBUTING.md +7 -4
  9. data/modules/mruby/INSTALL +28 -11
  10. data/modules/mruby/MITL +13 -13
  11. data/modules/mruby/Makefile +4 -5
  12. data/modules/mruby/README.md +54 -49
  13. data/modules/mruby/Rakefile +36 -6
  14. data/modules/mruby/benchmark/ao-render.rb +1 -2
  15. data/modules/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
  16. data/modules/mruby/benchmark/fib39.rb +0 -0
  17. data/modules/mruby/bintest/mrbc.rb +12 -0
  18. data/modules/mruby/build_config.rb +32 -2
  19. data/modules/mruby/doc/api/README.md +30 -0
  20. data/modules/mruby/doc/api/mruby.h.md +69 -0
  21. data/modules/mruby/doc/compile/README.md +208 -99
  22. data/modules/mruby/doc/debugger/README.md +370 -0
  23. data/modules/mruby/doc/language/Core.md +1590 -0
  24. data/modules/mruby/doc/language/README.md +9 -0
  25. data/modules/mruby/doc/language/generator.rb +15 -0
  26. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_analyze.rb +231 -0
  27. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_docu.rb +118 -0
  28. data/modules/mruby/doc/language/mrbdoc/mrbdoc.rb +38 -0
  29. data/modules/mruby/doc/mrbconf/README.md +160 -0
  30. data/modules/mruby/doc/mrbgems/README.md +136 -66
  31. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
  32. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +1 -1
  33. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
  34. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +1 -1
  35. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
  36. data/modules/mruby/examples/targets/{ArduinoDue.rb → build_config_ArduinoDue.rb} +32 -6
  37. data/modules/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
  38. data/modules/mruby/examples/targets/{chipKitMax32.rb → build_config_chipKITMax32.rb} +26 -7
  39. data/modules/mruby/include/mrbconf.h +25 -1
  40. data/modules/mruby/include/mruby/array.h +32 -22
  41. data/modules/mruby/include/mruby/boxing_nan.h +94 -0
  42. data/modules/mruby/include/mruby/boxing_no.h +49 -0
  43. data/modules/mruby/include/mruby/boxing_word.h +119 -0
  44. data/modules/mruby/include/mruby/class.h +15 -13
  45. data/modules/mruby/include/mruby/compile.h +43 -36
  46. data/modules/mruby/include/mruby/data.h +13 -5
  47. data/modules/mruby/include/mruby/debug.h +9 -9
  48. data/modules/mruby/include/mruby/dump.h +32 -23
  49. data/modules/mruby/include/mruby/error.h +36 -0
  50. data/modules/mruby/include/mruby/gc.h +11 -6
  51. data/modules/mruby/include/mruby/hash.h +12 -12
  52. data/modules/mruby/include/mruby/irep.h +9 -3
  53. data/modules/mruby/include/mruby/khash.h +58 -41
  54. data/modules/mruby/include/mruby/numeric.h +38 -4
  55. data/modules/mruby/include/mruby/object.h +55 -0
  56. data/modules/mruby/include/mruby/opcode.h +160 -0
  57. data/modules/mruby/include/mruby/proc.h +19 -5
  58. data/modules/mruby/include/mruby/range.h +4 -3
  59. data/modules/mruby/include/mruby/re.h +20 -0
  60. data/modules/mruby/include/mruby/string.h +86 -47
  61. data/modules/mruby/include/mruby/value.h +100 -374
  62. data/modules/mruby/include/mruby/variable.h +34 -32
  63. data/modules/mruby/include/mruby/version.h +40 -0
  64. data/modules/mruby/include/mruby.h +211 -139
  65. data/modules/mruby/minirake +16 -9
  66. data/modules/mruby/mrbgems/default.gembox +12 -0
  67. data/modules/mruby/mrbgems/full-core.gembox +3 -3
  68. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -0
  69. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +488 -8
  70. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +57 -31
  71. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +231 -45
  72. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
  73. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
  74. data/modules/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
  75. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +516 -0
  76. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  77. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +235 -0
  78. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  79. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
  80. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  81. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +428 -0
  82. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +501 -0
  83. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
  84. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +54 -0
  85. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +746 -0
  86. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +163 -0
  87. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
  88. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
  89. data/modules/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
  90. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +14 -1
  91. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +154 -72
  92. data/modules/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +46 -0
  93. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
  94. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +37 -28
  95. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
  96. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +16 -0
  97. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +30 -0
  98. data/modules/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
  99. data/modules/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
  100. data/modules/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
  101. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -0
  102. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +555 -21
  103. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +119 -0
  104. data/modules/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  105. data/modules/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +150 -0
  106. data/modules/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +47 -0
  107. data/modules/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
  108. data/modules/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +636 -0
  109. data/modules/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +537 -0
  110. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -0
  111. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +243 -4
  112. data/modules/mruby/mrbgems/mruby-eval/test/eval.rb +80 -0
  113. data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +1 -0
  114. data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +1 -1
  115. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -0
  116. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +157 -51
  117. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +179 -35
  118. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +3 -0
  119. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +241 -1
  120. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +11 -19
  121. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +138 -1
  122. data/modules/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  123. data/modules/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +183 -0
  124. data/modules/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +53 -0
  125. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -0
  126. data/modules/mruby/mrbgems/mruby-math/src/math.c +107 -14
  127. data/modules/mruby/mrbgems/mruby-math/test/math.rb +16 -0
  128. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -0
  129. data/modules/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +5 -0
  130. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +9 -1
  131. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -0
  132. data/modules/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
  133. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +5 -8
  134. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +16 -0
  135. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -0
  136. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +121 -53
  137. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +27 -4
  138. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -0
  139. data/modules/mruby/mrbgems/mruby-print/src/print.c +3 -5
  140. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -0
  141. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +89 -19
  142. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.c +56 -0
  143. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +47 -0
  144. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -0
  145. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +30 -25
  146. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +6 -3
  147. data/modules/mruby/mrbgems/mruby-random/src/random.c +157 -137
  148. data/modules/mruby/mrbgems/mruby-random/src/random.h +3 -3
  149. data/modules/mruby/mrbgems/mruby-random/test/random.rb +9 -9
  150. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -0
  151. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +57 -3
  152. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +9 -0
  153. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -0
  154. data/modules/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
  155. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +29 -23
  156. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +7 -2
  157. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -0
  158. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +250 -11
  159. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +220 -5
  160. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +326 -4
  161. data/modules/mruby/mrbgems/mruby-string-utf8/mrbgem.rake +2 -0
  162. data/modules/mruby/mrbgems/mruby-string-utf8/src/string.c +486 -52
  163. data/modules/mruby/mrbgems/mruby-string-utf8/test/string.rb +97 -14
  164. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -0
  165. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +31 -0
  166. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +178 -196
  167. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +115 -61
  168. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -0
  169. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +22 -17
  170. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +20 -11
  171. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +14 -0
  172. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -0
  173. data/modules/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
  174. data/modules/mruby/mrbgems/mruby-time/src/time.c +98 -37
  175. data/modules/mruby/mrbgems/mruby-time/test/time.rb +152 -148
  176. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -0
  177. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +1 -1
  178. data/modules/mruby/mrblib/array.rb +110 -4
  179. data/modules/mruby/mrblib/class.rb +1 -22
  180. data/modules/mruby/mrblib/compar.rb +10 -30
  181. data/modules/mruby/mrblib/enum.rb +64 -52
  182. data/modules/mruby/mrblib/error.rb +9 -4
  183. data/modules/mruby/mrblib/hash.rb +164 -23
  184. data/modules/mruby/mrblib/kernel.rb +26 -22
  185. data/modules/mruby/mrblib/mrblib.rake +4 -4
  186. data/modules/mruby/mrblib/numeric.rb +22 -9
  187. data/modules/mruby/mrblib/range.rb +24 -2
  188. data/modules/mruby/mrblib/string.rb +15 -3
  189. data/modules/mruby/src/array.c +279 -339
  190. data/modules/mruby/src/backtrace.c +68 -16
  191. data/modules/mruby/src/class.c +539 -379
  192. data/modules/mruby/src/codegen.c +424 -207
  193. data/modules/mruby/src/compar.c +1 -1
  194. data/modules/mruby/src/crc.c +7 -6
  195. data/modules/mruby/src/debug.c +37 -36
  196. data/modules/mruby/src/dump.c +463 -213
  197. data/modules/mruby/src/enum.c +1 -1
  198. data/modules/mruby/src/error.c +91 -92
  199. data/modules/mruby/src/error.h +3 -19
  200. data/modules/mruby/src/etc.c +85 -82
  201. data/modules/mruby/src/gc.c +134 -108
  202. data/modules/mruby/src/hash.c +161 -565
  203. data/modules/mruby/src/init.c +2 -13
  204. data/modules/mruby/src/kernel.c +217 -251
  205. data/modules/mruby/src/load.c +280 -283
  206. data/modules/mruby/src/mrb_throw.h +41 -0
  207. data/modules/mruby/src/mruby_core.rake +57 -7
  208. data/modules/mruby/src/node.h +104 -104
  209. data/modules/mruby/src/numeric.c +221 -208
  210. data/modules/mruby/src/object.c +41 -42
  211. data/modules/mruby/src/opcode.h +2 -160
  212. data/modules/mruby/src/parse.y +3430 -3223
  213. data/modules/mruby/src/pool.c +13 -9
  214. data/modules/mruby/src/print.c +20 -17
  215. data/modules/mruby/src/proc.c +77 -21
  216. data/modules/mruby/src/range.c +55 -45
  217. data/modules/mruby/src/state.c +95 -31
  218. data/modules/mruby/src/string.c +462 -468
  219. data/modules/mruby/src/symbol.c +95 -85
  220. data/modules/mruby/src/variable.c +104 -74
  221. data/modules/mruby/src/version.c +13 -0
  222. data/modules/mruby/src/vm.c +528 -296
  223. data/modules/mruby/tasks/libmruby.rake +9 -5
  224. data/modules/mruby/tasks/mrbgem_spec.rake +130 -26
  225. data/modules/mruby/tasks/mrbgems.rake +21 -11
  226. data/modules/mruby/tasks/mrbgems_test.rake +46 -40
  227. data/modules/mruby/tasks/mruby_build.rake +54 -12
  228. data/modules/mruby/tasks/mruby_build_commands.rake +34 -5
  229. data/modules/mruby/tasks/mruby_build_gem.rake +25 -3
  230. data/modules/mruby/tasks/ruby_ext.rake +11 -2
  231. data/modules/mruby/tasks/toolchains/clang.rake +2 -1
  232. data/modules/mruby/tasks/toolchains/gcc.rake +26 -3
  233. data/modules/mruby/tasks/toolchains/visualcpp.rake +17 -8
  234. data/modules/mruby/test/assert.rb +30 -8
  235. data/modules/mruby/test/bintest.rb +10 -0
  236. data/modules/mruby/test/driver.c +74 -24
  237. data/modules/mruby/test/init_mrbtest.c +21 -2
  238. data/modules/mruby/test/mrbtest.rake +27 -5
  239. data/modules/mruby/test/t/argumenterror.rb +0 -5
  240. data/modules/mruby/test/t/array.rb +23 -7
  241. data/modules/mruby/test/t/bs_block.rb +32 -0
  242. data/modules/mruby/test/t/class.rb +29 -5
  243. data/modules/mruby/test/t/comparable.rb +20 -12
  244. data/modules/mruby/test/t/enumerable.rb +33 -7
  245. data/modules/mruby/test/t/exception.rb +63 -38
  246. data/modules/mruby/test/t/false.rb +2 -4
  247. data/modules/mruby/test/t/float.rb +39 -4
  248. data/modules/mruby/test/t/hash.rb +40 -6
  249. data/modules/mruby/test/t/indexerror.rb +0 -4
  250. data/modules/mruby/test/t/integer.rb +41 -5
  251. data/modules/mruby/test/t/kernel.rb +90 -3
  252. data/modules/mruby/test/t/localjumperror.rb +4 -4
  253. data/modules/mruby/test/t/methods.rb +1 -1
  254. data/modules/mruby/test/t/module.rb +43 -13
  255. data/modules/mruby/test/t/nameerror.rb +0 -4
  256. data/modules/mruby/test/t/nil.rb +5 -0
  257. data/modules/mruby/test/t/nomethoderror.rb +11 -2
  258. data/modules/mruby/test/t/numeric.rb +18 -4
  259. data/modules/mruby/test/t/proc.rb +59 -6
  260. data/modules/mruby/test/t/range.rb +15 -5
  261. data/modules/mruby/test/t/rangeerror.rb +0 -4
  262. data/modules/mruby/test/t/standarderror.rb +0 -4
  263. data/modules/mruby/test/t/string.rb +56 -12
  264. data/modules/mruby/test/t/superclass.rb +46 -0
  265. data/modules/mruby/test/t/symbol.rb +0 -4
  266. data/modules/mruby/test/t/syntax.rb +134 -1
  267. data/modules/mruby/test/t/true.rb +2 -4
  268. data/modules/mruby/test/t/typeerror.rb +0 -5
  269. data/modules/mruby/test/t/unicode.rb +35 -0
  270. data/modules/mruby/tools/mrbc/mrbc.c +9 -12
  271. data/modules/mruby/travis_config.rb +22 -2
  272. metadata +98 -1299
  273. data/modules/emscripten/AUTHORS +0 -117
  274. data/modules/emscripten/CONTRIBUTING.markdown +0 -5
  275. data/modules/emscripten/ChangeLog +0 -468
  276. data/modules/emscripten/LICENSE +0 -94
  277. data/modules/emscripten/README.markdown +0 -14
  278. data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +0 -26
  279. data/modules/emscripten/cmake/Platform/Emscripten.cmake +0 -228
  280. data/modules/emscripten/em++ +0 -12
  281. data/modules/emscripten/em++.bat +0 -2
  282. data/modules/emscripten/em-config +0 -24
  283. data/modules/emscripten/em-config.bat +0 -2
  284. data/modules/emscripten/emar +0 -24
  285. data/modules/emscripten/emar.bat +0 -2
  286. data/modules/emscripten/emcc +0 -2069
  287. data/modules/emscripten/emcc.bat +0 -2
  288. data/modules/emscripten/emcc.py +0 -5
  289. data/modules/emscripten/emconfigure +0 -27
  290. data/modules/emscripten/emconfigure.bat +0 -2
  291. data/modules/emscripten/emlink.py +0 -33
  292. data/modules/emscripten/emmake +0 -29
  293. data/modules/emscripten/emmake.bat +0 -2
  294. data/modules/emscripten/emranlib +0 -9
  295. data/modules/emscripten/emranlib.bat +0 -2
  296. data/modules/emscripten/emrun +0 -1087
  297. data/modules/emscripten/emrun.bat +0 -2
  298. data/modules/emscripten/emscons +0 -20
  299. data/modules/emscripten/emscripten.py +0 -1347
  300. data/modules/emscripten/package.json +0 -7
  301. data/modules/emscripten/patches/README +0 -4
  302. data/modules/emscripten/patches/series +0 -2
  303. data/modules/emscripten/scons-tools/closure.py +0 -28
  304. data/modules/emscripten/scons-tools/emscripten.py +0 -364
  305. data/modules/emscripten/scons-tools/llvm.py +0 -34
  306. data/modules/emscripten/src/analyzer.js +0 -1781
  307. data/modules/emscripten/src/closure-externs.js +0 -110
  308. data/modules/emscripten/src/compiler.html +0 -48
  309. data/modules/emscripten/src/compiler.js +0 -331
  310. data/modules/emscripten/src/compiler_phase.html +0 -33
  311. data/modules/emscripten/src/corruptionCheck.js +0 -98
  312. data/modules/emscripten/src/determinstic.js +0 -20
  313. data/modules/emscripten/src/embind/embind.js +0 -1677
  314. data/modules/emscripten/src/embind/emval.js +0 -284
  315. data/modules/emscripten/src/emrun_postjs.js +0 -20
  316. data/modules/emscripten/src/emrun_prejs.js +0 -5
  317. data/modules/emscripten/src/emscripten-source-map.min.js +0 -31
  318. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +0 -97
  319. data/modules/emscripten/src/experimental/batching.diff +0 -44
  320. data/modules/emscripten/src/experimental/functypeopt.diff +0 -113
  321. data/modules/emscripten/src/experimental/multiple_heaps.diff +0 -175
  322. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +0 -197
  323. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +0 -124
  324. data/modules/emscripten/src/experimental/remove__label__s.diff +0 -140
  325. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +0 -99
  326. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +0 -57
  327. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +0 -336
  328. data/modules/emscripten/src/experimental/stringCache.diff +0 -147
  329. data/modules/emscripten/src/fastLong.js +0 -299
  330. data/modules/emscripten/src/gl-matrix.js +0 -1952
  331. data/modules/emscripten/src/headless.js +0 -295
  332. data/modules/emscripten/src/headlessCanvas.js +0 -618
  333. data/modules/emscripten/src/hello_world.js +0 -92
  334. data/modules/emscripten/src/intertyper.js +0 -1228
  335. data/modules/emscripten/src/jsifier.js +0 -1969
  336. data/modules/emscripten/src/library.js +0 -9196
  337. data/modules/emscripten/src/library_browser.js +0 -988
  338. data/modules/emscripten/src/library_egl.js +0 -564
  339. data/modules/emscripten/src/library_fs.js +0 -1619
  340. data/modules/emscripten/src/library_gc.js +0 -236
  341. data/modules/emscripten/src/library_gl.js +0 -5194
  342. data/modules/emscripten/src/library_glfw.js +0 -585
  343. data/modules/emscripten/src/library_glut.js +0 -504
  344. data/modules/emscripten/src/library_idbfs.js +0 -216
  345. data/modules/emscripten/src/library_jansson.js +0 -320
  346. data/modules/emscripten/src/library_memfs.js +0 -303
  347. data/modules/emscripten/src/library_nodefs.js +0 -286
  348. data/modules/emscripten/src/library_openal.js +0 -915
  349. data/modules/emscripten/src/library_path.js +0 -133
  350. data/modules/emscripten/src/library_sdl.js +0 -2728
  351. data/modules/emscripten/src/library_sockfs.js +0 -578
  352. data/modules/emscripten/src/library_strtok_r.c +0 -97
  353. data/modules/emscripten/src/library_tty.js +0 -146
  354. data/modules/emscripten/src/library_uuid.js +0 -140
  355. data/modules/emscripten/src/library_xlib.js +0 -23
  356. data/modules/emscripten/src/long.js +0 -1609
  357. data/modules/emscripten/src/modules.js +0 -543
  358. data/modules/emscripten/src/parseTools.js +0 -2723
  359. data/modules/emscripten/src/postamble.js +0 -239
  360. data/modules/emscripten/src/postamble_sharedlib.js +0 -16
  361. data/modules/emscripten/src/preamble.js +0 -1233
  362. data/modules/emscripten/src/preamble_sharedlib.js +0 -25
  363. data/modules/emscripten/src/proxyClient.js +0 -82
  364. data/modules/emscripten/src/proxyWorker.js +0 -143
  365. data/modules/emscripten/src/relooper/README.markdown +0 -14
  366. data/modules/emscripten/src/relooper/Relooper.cpp +0 -1301
  367. data/modules/emscripten/src/relooper/Relooper.h +0 -257
  368. data/modules/emscripten/src/relooper/doit.sh +0 -70
  369. data/modules/emscripten/src/relooper/emscripten/glue.js +0 -67
  370. data/modules/emscripten/src/relooper/emscripten/test.js +0 -44
  371. data/modules/emscripten/src/relooper/fuzzer.py +0 -131
  372. data/modules/emscripten/src/relooper/ministring.h +0 -35
  373. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  374. data/modules/emscripten/src/relooper/test.cpp +0 -290
  375. data/modules/emscripten/src/relooper/test.txt +0 -317
  376. data/modules/emscripten/src/relooper/test2.c +0 -44
  377. data/modules/emscripten/src/relooper/test2.txt +0 -26
  378. data/modules/emscripten/src/relooper/test3.c +0 -42
  379. data/modules/emscripten/src/relooper/test3.txt +0 -56
  380. data/modules/emscripten/src/relooper/test4.cpp +0 -40
  381. data/modules/emscripten/src/relooper/test4.txt +0 -44
  382. data/modules/emscripten/src/relooper/test5.cpp +0 -40
  383. data/modules/emscripten/src/relooper/test5.txt +0 -56
  384. data/modules/emscripten/src/relooper/test6.cpp +0 -31
  385. data/modules/emscripten/src/relooper/test6.txt +0 -26
  386. data/modules/emscripten/src/relooper/test_dead.cpp +0 -28
  387. data/modules/emscripten/src/relooper/test_dead.txt +0 -9
  388. data/modules/emscripten/src/relooper/test_debug.cpp +0 -30
  389. data/modules/emscripten/src/relooper/test_debug.txt +0 -142
  390. data/modules/emscripten/src/relooper/test_fuzz1.cpp +0 -52
  391. data/modules/emscripten/src/relooper/test_fuzz1.txt +0 -72
  392. data/modules/emscripten/src/relooper/test_fuzz2.cpp +0 -34
  393. data/modules/emscripten/src/relooper/test_fuzz2.txt +0 -30
  394. data/modules/emscripten/src/relooper/test_fuzz3.cpp +0 -36
  395. data/modules/emscripten/src/relooper/test_fuzz3.txt +0 -25
  396. data/modules/emscripten/src/relooper/test_fuzz4.cpp +0 -38
  397. data/modules/emscripten/src/relooper/test_fuzz4.txt +0 -41
  398. data/modules/emscripten/src/relooper/test_fuzz5.cpp +0 -57
  399. data/modules/emscripten/src/relooper/test_fuzz5.txt +0 -86
  400. data/modules/emscripten/src/relooper/test_fuzz6.cpp +0 -322
  401. data/modules/emscripten/src/relooper/test_fuzz6.txt +0 -291
  402. data/modules/emscripten/src/relooper/test_inf.cpp +0 -813
  403. data/modules/emscripten/src/relooper/test_inf.txt +0 -1131
  404. data/modules/emscripten/src/relooper/testit.sh +0 -62
  405. data/modules/emscripten/src/relooper/updateit.sh +0 -17
  406. data/modules/emscripten/src/runtime.js +0 -604
  407. data/modules/emscripten/src/settings.js +0 -476
  408. data/modules/emscripten/src/shell.html +0 -95
  409. data/modules/emscripten/src/shell.js +0 -173
  410. data/modules/emscripten/src/shell_sharedlib.js +0 -29
  411. data/modules/emscripten/src/simd.js +0 -1128
  412. data/modules/emscripten/src/socket.io.js +0 -3870
  413. data/modules/emscripten/src/struct_info.json +0 -1077
  414. data/modules/emscripten/src/utility.js +0 -411
  415. data/modules/emscripten/src/wrtcp.js +0 -821
  416. data/modules/emscripten/system/bin/sdl-config +0 -13
  417. data/modules/emscripten/system/include/AL/al.h +0 -172
  418. data/modules/emscripten/system/include/AL/alc.h +0 -84
  419. data/modules/emscripten/system/include/EGL/egl.h +0 -329
  420. data/modules/emscripten/system/include/EGL/eglext.h +0 -398
  421. data/modules/emscripten/system/include/EGL/eglplatform.h +0 -141
  422. data/modules/emscripten/system/include/GL/freeglut_std.h +0 -628
  423. data/modules/emscripten/system/include/GL/gl.h +0 -2241
  424. data/modules/emscripten/system/include/GL/glew.h +0 -6
  425. data/modules/emscripten/system/include/GL/glext.h +0 -11127
  426. data/modules/emscripten/system/include/GL/glfw.h +0 -518
  427. data/modules/emscripten/system/include/GL/glu.h +0 -353
  428. data/modules/emscripten/system/include/GL/glut.h +0 -21
  429. data/modules/emscripten/system/include/GLES/gl.h +0 -770
  430. data/modules/emscripten/system/include/GLES/glext.h +0 -1278
  431. data/modules/emscripten/system/include/GLES/glplatform.h +0 -30
  432. data/modules/emscripten/system/include/GLES2/gl2.h +0 -621
  433. data/modules/emscripten/system/include/GLES2/gl2ext.h +0 -803
  434. data/modules/emscripten/system/include/GLES2/gl2platform.h +0 -30
  435. data/modules/emscripten/system/include/KHR/khrplatform.h +0 -277
  436. data/modules/emscripten/system/include/SDL/COPYING +0 -19
  437. data/modules/emscripten/system/include/SDL/SDL.h +0 -162
  438. data/modules/emscripten/system/include/SDL/SDL_assert.h +0 -241
  439. data/modules/emscripten/system/include/SDL/SDL_atomic.h +0 -318
  440. data/modules/emscripten/system/include/SDL/SDL_audio.h +0 -509
  441. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +0 -60
  442. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +0 -75
  443. data/modules/emscripten/system/include/SDL/SDL_compat.h +0 -365
  444. data/modules/emscripten/system/include/SDL/SDL_config.h +0 -48
  445. data/modules/emscripten/system/include/SDL/SDL_config.h.in +0 -297
  446. data/modules/emscripten/system/include/SDL/SDL_config_android.h +0 -133
  447. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +0 -148
  448. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +0 -172
  449. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +0 -74
  450. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +0 -129
  451. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +0 -125
  452. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +0 -207
  453. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +0 -119
  454. data/modules/emscripten/system/include/SDL/SDL_copying.h +0 -20
  455. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +0 -150
  456. data/modules/emscripten/system/include/SDL/SDL_endian.h +0 -248
  457. data/modules/emscripten/system/include/SDL/SDL_error.h +0 -77
  458. data/modules/emscripten/system/include/SDL/SDL_events.h +0 -640
  459. data/modules/emscripten/system/include/SDL/SDL_gesture.h +0 -91
  460. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +0 -246
  461. data/modules/emscripten/system/include/SDL/SDL_haptic.h +0 -1200
  462. data/modules/emscripten/system/include/SDL/SDL_hints.h +0 -206
  463. data/modules/emscripten/system/include/SDL/SDL_image.h +0 -138
  464. data/modules/emscripten/system/include/SDL/SDL_input.h +0 -87
  465. data/modules/emscripten/system/include/SDL/SDL_joystick.h +0 -208
  466. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +0 -169
  467. data/modules/emscripten/system/include/SDL/SDL_keycode.h +0 -344
  468. data/modules/emscripten/system/include/SDL/SDL_loadso.h +0 -85
  469. data/modules/emscripten/system/include/SDL/SDL_log.h +0 -211
  470. data/modules/emscripten/system/include/SDL/SDL_main.h +0 -98
  471. data/modules/emscripten/system/include/SDL/SDL_mixer.h +0 -634
  472. data/modules/emscripten/system/include/SDL/SDL_mouse.h +0 -213
  473. data/modules/emscripten/system/include/SDL/SDL_mutex.h +0 -248
  474. data/modules/emscripten/system/include/SDL/SDL_name.h +0 -11
  475. data/modules/emscripten/system/include/SDL/SDL_opengl.h +0 -11116
  476. data/modules/emscripten/system/include/SDL/SDL_opengles.h +0 -38
  477. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +0 -38
  478. data/modules/emscripten/system/include/SDL/SDL_pixels.h +0 -423
  479. data/modules/emscripten/system/include/SDL/SDL_platform.h +0 -160
  480. data/modules/emscripten/system/include/SDL/SDL_power.h +0 -79
  481. data/modules/emscripten/system/include/SDL/SDL_quit.h +0 -58
  482. data/modules/emscripten/system/include/SDL/SDL_rect.h +0 -136
  483. data/modules/emscripten/system/include/SDL/SDL_render.h +0 -615
  484. data/modules/emscripten/system/include/SDL/SDL_revision.h +0 -2
  485. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +0 -2
  486. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +0 -123
  487. data/modules/emscripten/system/include/SDL/SDL_rwops.h +0 -220
  488. data/modules/emscripten/system/include/SDL/SDL_scancode.h +0 -398
  489. data/modules/emscripten/system/include/SDL/SDL_shape.h +0 -147
  490. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +0 -764
  491. data/modules/emscripten/system/include/SDL/SDL_surface.h +0 -499
  492. data/modules/emscripten/system/include/SDL/SDL_syswm.h +0 -241
  493. data/modules/emscripten/system/include/SDL/SDL_thread.h +0 -182
  494. data/modules/emscripten/system/include/SDL/SDL_timer.h +0 -108
  495. data/modules/emscripten/system/include/SDL/SDL_touch.h +0 -124
  496. data/modules/emscripten/system/include/SDL/SDL_ttf.h +0 -249
  497. data/modules/emscripten/system/include/SDL/SDL_types.h +0 -29
  498. data/modules/emscripten/system/include/SDL/SDL_version.h +0 -166
  499. data/modules/emscripten/system/include/SDL/SDL_video.h +0 -820
  500. data/modules/emscripten/system/include/SDL/begin_code.h +0 -135
  501. data/modules/emscripten/system/include/SDL/close_code.h +0 -37
  502. data/modules/emscripten/system/include/X11/X.h +0 -717
  503. data/modules/emscripten/system/include/X11/Xatom.h +0 -79
  504. data/modules/emscripten/system/include/X11/Xfuncproto.h +0 -127
  505. data/modules/emscripten/system/include/X11/Xlib.h +0 -4023
  506. data/modules/emscripten/system/include/X11/Xosdefs.h +0 -116
  507. data/modules/emscripten/system/include/X11/Xutil.h +0 -826
  508. data/modules/emscripten/system/include/X11/keysym.h +0 -73
  509. data/modules/emscripten/system/include/X11/keysymdef.h +0 -2389
  510. data/modules/emscripten/system/include/compat/ctype.h +0 -34
  511. data/modules/emscripten/system/include/compat/malloc.h +0 -48
  512. data/modules/emscripten/system/include/compat/math.h +0 -14
  513. data/modules/emscripten/system/include/compat/netdb.h +0 -22
  514. data/modules/emscripten/system/include/compat/stdarg.h +0 -16
  515. data/modules/emscripten/system/include/compat/stdlib.h +0 -16
  516. data/modules/emscripten/system/include/compat/string.h +0 -17
  517. data/modules/emscripten/system/include/compat/sys/socketvar.h +0 -14
  518. data/modules/emscripten/system/include/compat/sys/stat.h +0 -20
  519. data/modules/emscripten/system/include/compat/sys/timeb.h +0 -35
  520. data/modules/emscripten/system/include/compat/time.h +0 -18
  521. data/modules/emscripten/system/include/compat/unistd.h +0 -16
  522. data/modules/emscripten/system/include/compat/wchar.h +0 -23
  523. data/modules/emscripten/system/include/compat/wctype.h +0 -23
  524. data/modules/emscripten/system/include/compat/xlocale.h +0 -19
  525. data/modules/emscripten/system/include/emscripten/bind.h +0 -1210
  526. data/modules/emscripten/system/include/emscripten/emmintrin.h +0 -87
  527. data/modules/emscripten/system/include/emscripten/emscripten.h +0 -519
  528. data/modules/emscripten/system/include/emscripten/val.h +0 -311
  529. data/modules/emscripten/system/include/emscripten/vector.h +0 -34
  530. data/modules/emscripten/system/include/emscripten/wire.h +0 -393
  531. data/modules/emscripten/system/include/emscripten/xmmintrin.h +0 -131
  532. data/modules/emscripten/system/include/execinfo.h +0 -44
  533. data/modules/emscripten/system/include/gc.h +0 -70
  534. data/modules/emscripten/system/include/gfx/png.h +0 -3798
  535. data/modules/emscripten/system/include/gfx/pngconf.h +0 -1665
  536. data/modules/emscripten/system/include/gfx/tiff.h +0 -654
  537. data/modules/emscripten/system/include/gfx/tiffconf.h +0 -104
  538. data/modules/emscripten/system/include/gfx/tiffio.h +0 -526
  539. data/modules/emscripten/system/include/gfx/tiffvers.h +0 -9
  540. data/modules/emscripten/system/include/jansson.h +0 -323
  541. data/modules/emscripten/system/include/jansson_config.h +0 -54
  542. data/modules/emscripten/system/include/libc/aio.h +0 -69
  543. data/modules/emscripten/system/include/libc/alloca.h +0 -21
  544. data/modules/emscripten/system/include/libc/ar.h +0 -25
  545. data/modules/emscripten/system/include/libc/arpa/ftp.h +0 -35
  546. data/modules/emscripten/system/include/libc/arpa/inet.h +0 -36
  547. data/modules/emscripten/system/include/libc/arpa/nameser.h +0 -467
  548. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +0 -2
  549. data/modules/emscripten/system/include/libc/arpa/telnet.h +0 -251
  550. data/modules/emscripten/system/include/libc/arpa/tftp.h +0 -31
  551. data/modules/emscripten/system/include/libc/assert.h +0 -19
  552. data/modules/emscripten/system/include/libc/bits/alltypes.h +0 -397
  553. data/modules/emscripten/system/include/libc/bits/endian.h +0 -1
  554. data/modules/emscripten/system/include/libc/bits/errno.h +0 -134
  555. data/modules/emscripten/system/include/libc/bits/fcntl.h +0 -38
  556. data/modules/emscripten/system/include/libc/bits/fenv.h +0 -34
  557. data/modules/emscripten/system/include/libc/bits/float.h +0 -17
  558. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  559. data/modules/emscripten/system/include/libc/bits/ioctl.h +0 -197
  560. data/modules/emscripten/system/include/libc/bits/ipc.h +0 -14
  561. data/modules/emscripten/system/include/libc/bits/limits.h +0 -8
  562. data/modules/emscripten/system/include/libc/bits/mman.h +0 -62
  563. data/modules/emscripten/system/include/libc/bits/msg.h +0 -16
  564. data/modules/emscripten/system/include/libc/bits/posix.h +0 -2
  565. data/modules/emscripten/system/include/libc/bits/reg.h +0 -19
  566. data/modules/emscripten/system/include/libc/bits/setjmp.h +0 -1
  567. data/modules/emscripten/system/include/libc/bits/shm.h +0 -18
  568. data/modules/emscripten/system/include/libc/bits/signal.h +0 -112
  569. data/modules/emscripten/system/include/libc/bits/socket.h +0 -17
  570. data/modules/emscripten/system/include/libc/bits/stat.h +0 -22
  571. data/modules/emscripten/system/include/libc/bits/statfs.h +0 -7
  572. data/modules/emscripten/system/include/libc/bits/stdarg.h +0 -4
  573. data/modules/emscripten/system/include/libc/bits/stdint.h +0 -20
  574. data/modules/emscripten/system/include/libc/bits/syscall.h +0 -696
  575. data/modules/emscripten/system/include/libc/bits/termios.h +0 -160
  576. data/modules/emscripten/system/include/libc/bits/user.h +0 -48
  577. data/modules/emscripten/system/include/libc/byteswap.h +0 -26
  578. data/modules/emscripten/system/include/libc/complex.h +0 -125
  579. data/modules/emscripten/system/include/libc/cpio.h +0 -29
  580. data/modules/emscripten/system/include/libc/crypt.h +0 -20
  581. data/modules/emscripten/system/include/libc/ctype.h +0 -67
  582. data/modules/emscripten/system/include/libc/dirent.h +0 -79
  583. data/modules/emscripten/system/include/libc/dlfcn.h +0 -42
  584. data/modules/emscripten/system/include/libc/elf.h +0 -2555
  585. data/modules/emscripten/system/include/libc/endian.h +0 -82
  586. data/modules/emscripten/system/include/libc/err.h +0 -25
  587. data/modules/emscripten/system/include/libc/errno.h +0 -27
  588. data/modules/emscripten/system/include/libc/fcntl.h +0 -175
  589. data/modules/emscripten/system/include/libc/features.h +0 -32
  590. data/modules/emscripten/system/include/libc/fenv.h +0 -28
  591. data/modules/emscripten/system/include/libc/float.h +0 -34
  592. data/modules/emscripten/system/include/libc/fnmatch.h +0 -29
  593. data/modules/emscripten/system/include/libc/ftw.h +0 -42
  594. data/modules/emscripten/system/include/libc/getopt.h +0 -31
  595. data/modules/emscripten/system/include/libc/glob.h +0 -48
  596. data/modules/emscripten/system/include/libc/grp.h +0 -52
  597. data/modules/emscripten/system/include/libc/iconv.h +0 -24
  598. data/modules/emscripten/system/include/libc/ifaddrs.h +0 -35
  599. data/modules/emscripten/system/include/libc/inttypes.h +0 -227
  600. data/modules/emscripten/system/include/libc/iso646.h +0 -20
  601. data/modules/emscripten/system/include/libc/langinfo.h +0 -88
  602. data/modules/emscripten/system/include/libc/lastlog.h +0 -1
  603. data/modules/emscripten/system/include/libc/libgen.h +0 -15
  604. data/modules/emscripten/system/include/libc/libintl.h +0 -25
  605. data/modules/emscripten/system/include/libc/limits.h +0 -146
  606. data/modules/emscripten/system/include/libc/link.h +0 -54
  607. data/modules/emscripten/system/include/libc/locale.h +0 -82
  608. data/modules/emscripten/system/include/libc/malloc.h +0 -0
  609. data/modules/emscripten/system/include/libc/math.h +0 -422
  610. data/modules/emscripten/system/include/libc/memory.h +0 -1
  611. data/modules/emscripten/system/include/libc/mntent.h +0 -44
  612. data/modules/emscripten/system/include/libc/monetary.h +0 -23
  613. data/modules/emscripten/system/include/libc/mqueue.h +0 -36
  614. data/modules/emscripten/system/include/libc/net/ethernet.h +0 -55
  615. data/modules/emscripten/system/include/libc/net/if.h +0 -135
  616. data/modules/emscripten/system/include/libc/net/if_arp.h +0 -133
  617. data/modules/emscripten/system/include/libc/net/route.h +0 -124
  618. data/modules/emscripten/system/include/libc/netdb.h +0 -161
  619. data/modules/emscripten/system/include/libc/netinet/ether.h +0 -14
  620. data/modules/emscripten/system/include/libc/netinet/icmp6.h +0 -305
  621. data/modules/emscripten/system/include/libc/netinet/if_ether.h +0 -126
  622. data/modules/emscripten/system/include/libc/netinet/in.h +0 -336
  623. data/modules/emscripten/system/include/libc/netinet/in_systm.h +0 -9
  624. data/modules/emscripten/system/include/libc/netinet/ip.h +0 -186
  625. data/modules/emscripten/system/include/libc/netinet/ip6.h +0 -142
  626. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +0 -192
  627. data/modules/emscripten/system/include/libc/netinet/tcp.h +0 -71
  628. data/modules/emscripten/system/include/libc/netinet/udp.h +0 -35
  629. data/modules/emscripten/system/include/libc/netpacket/packet.h +0 -44
  630. data/modules/emscripten/system/include/libc/nl_types.h +0 -22
  631. data/modules/emscripten/system/include/libc/paths.h +0 -32
  632. data/modules/emscripten/system/include/libc/poll.h +0 -46
  633. data/modules/emscripten/system/include/libc/pthread.h +0 -222
  634. data/modules/emscripten/system/include/libc/pty.h +0 -18
  635. data/modules/emscripten/system/include/libc/pwd.h +0 -49
  636. data/modules/emscripten/system/include/libc/readme.txt +0 -3
  637. data/modules/emscripten/system/include/libc/regex.h +0 -62
  638. data/modules/emscripten/system/include/libc/resolv.h +0 -144
  639. data/modules/emscripten/system/include/libc/sched.h +0 -132
  640. data/modules/emscripten/system/include/libc/search.h +0 -51
  641. data/modules/emscripten/system/include/libc/semaphore.h +0 -35
  642. data/modules/emscripten/system/include/libc/setjmp.h +0 -42
  643. data/modules/emscripten/system/include/libc/shadow.h +0 -44
  644. data/modules/emscripten/system/include/libc/signal.h +0 -255
  645. data/modules/emscripten/system/include/libc/spawn.h +0 -74
  646. data/modules/emscripten/system/include/libc/stdalign.h +0 -15
  647. data/modules/emscripten/system/include/libc/stdarg.h +0 -25
  648. data/modules/emscripten/system/include/libc/stdbool.h +0 -14
  649. data/modules/emscripten/system/include/libc/stddef.h +0 -18
  650. data/modules/emscripten/system/include/libc/stdint.h +0 -117
  651. data/modules/emscripten/system/include/libc/stdio.h +0 -199
  652. data/modules/emscripten/system/include/libc/stdio_ext.h +0 -34
  653. data/modules/emscripten/system/include/libc/stdlib.h +0 -171
  654. data/modules/emscripten/system/include/libc/stdnoreturn.h +0 -5
  655. data/modules/emscripten/system/include/libc/string.h +0 -102
  656. data/modules/emscripten/system/include/libc/strings.h +0 -35
  657. data/modules/emscripten/system/include/libc/stropts.h +0 -139
  658. data/modules/emscripten/system/include/libc/sys/acct.h +0 -75
  659. data/modules/emscripten/system/include/libc/sys/cachectl.h +0 -22
  660. data/modules/emscripten/system/include/libc/sys/dir.h +0 -2
  661. data/modules/emscripten/system/include/libc/sys/epoll.h +0 -67
  662. data/modules/emscripten/system/include/libc/sys/errno.h +0 -2
  663. data/modules/emscripten/system/include/libc/sys/eventfd.h +0 -26
  664. data/modules/emscripten/system/include/libc/sys/fcntl.h +0 -2
  665. data/modules/emscripten/system/include/libc/sys/file.h +0 -21
  666. data/modules/emscripten/system/include/libc/sys/fsuid.h +0 -20
  667. data/modules/emscripten/system/include/libc/sys/inotify.h +0 -57
  668. data/modules/emscripten/system/include/libc/sys/io.h +0 -17
  669. data/modules/emscripten/system/include/libc/sys/ioctl.h +0 -14
  670. data/modules/emscripten/system/include/libc/sys/ipc.h +0 -42
  671. data/modules/emscripten/system/include/libc/sys/klog.h +0 -14
  672. data/modules/emscripten/system/include/libc/sys/mman.h +0 -55
  673. data/modules/emscripten/system/include/libc/sys/mount.h +0 -72
  674. data/modules/emscripten/system/include/libc/sys/msg.h +0 -52
  675. data/modules/emscripten/system/include/libc/sys/mtio.h +0 -188
  676. data/modules/emscripten/system/include/libc/sys/param.h +0 -35
  677. data/modules/emscripten/system/include/libc/sys/personality.h +0 -46
  678. data/modules/emscripten/system/include/libc/sys/poll.h +0 -2
  679. data/modules/emscripten/system/include/libc/sys/prctl.h +0 -101
  680. data/modules/emscripten/system/include/libc/sys/procfs.h +0 -65
  681. data/modules/emscripten/system/include/libc/sys/ptrace.h +0 -96
  682. data/modules/emscripten/system/include/libc/sys/reboot.h +0 -20
  683. data/modules/emscripten/system/include/libc/sys/reg.h +0 -9
  684. data/modules/emscripten/system/include/libc/sys/resource.h +0 -103
  685. data/modules/emscripten/system/include/libc/sys/select.h +0 -42
  686. data/modules/emscripten/system/include/libc/sys/sem.h +0 -82
  687. data/modules/emscripten/system/include/libc/sys/sendfile.h +0 -22
  688. data/modules/emscripten/system/include/libc/sys/shm.h +0 -61
  689. data/modules/emscripten/system/include/libc/sys/signal.h +0 -2
  690. data/modules/emscripten/system/include/libc/sys/signalfd.h +0 -44
  691. data/modules/emscripten/system/include/libc/sys/socket.h +0 -299
  692. data/modules/emscripten/system/include/libc/sys/stat.h +0 -114
  693. data/modules/emscripten/system/include/libc/sys/statfs.h +0 -32
  694. data/modules/emscripten/system/include/libc/sys/statvfs.h +0 -57
  695. data/modules/emscripten/system/include/libc/sys/stropts.h +0 -1
  696. data/modules/emscripten/system/include/libc/sys/swap.h +0 -21
  697. data/modules/emscripten/system/include/libc/sys/syscall.h +0 -6
  698. data/modules/emscripten/system/include/libc/sys/sysctl.h +0 -17
  699. data/modules/emscripten/system/include/libc/sys/sysinfo.h +0 -36
  700. data/modules/emscripten/system/include/libc/sys/syslog.h +0 -1
  701. data/modules/emscripten/system/include/libc/sys/sysmacros.h +0 -15
  702. data/modules/emscripten/system/include/libc/sys/termios.h +0 -2
  703. data/modules/emscripten/system/include/libc/sys/time.h +0 -57
  704. data/modules/emscripten/system/include/libc/sys/timerfd.h +0 -24
  705. data/modules/emscripten/system/include/libc/sys/times.h +0 -26
  706. data/modules/emscripten/system/include/libc/sys/timex.h +0 -98
  707. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +0 -39
  708. data/modules/emscripten/system/include/libc/sys/types.h +0 -91
  709. data/modules/emscripten/system/include/libc/sys/ucontext.h +0 -1
  710. data/modules/emscripten/system/include/libc/sys/uio.h +0 -48
  711. data/modules/emscripten/system/include/libc/sys/un.h +0 -32
  712. data/modules/emscripten/system/include/libc/sys/user.h +0 -16
  713. data/modules/emscripten/system/include/libc/sys/utsname.h +0 -30
  714. data/modules/emscripten/system/include/libc/sys/vfs.h +0 -1
  715. data/modules/emscripten/system/include/libc/sys/wait.h +0 -55
  716. data/modules/emscripten/system/include/libc/sys/xattr.h +0 -30
  717. data/modules/emscripten/system/include/libc/syscall.h +0 -1
  718. data/modules/emscripten/system/include/libc/sysexits.h +0 -21
  719. data/modules/emscripten/system/include/libc/syslog.h +0 -104
  720. data/modules/emscripten/system/include/libc/tar.h +0 -33
  721. data/modules/emscripten/system/include/libc/termios.h +0 -46
  722. data/modules/emscripten/system/include/libc/tgmath.h +0 -270
  723. data/modules/emscripten/system/include/libc/time.h +0 -132
  724. data/modules/emscripten/system/include/libc/ucontext.h +0 -25
  725. data/modules/emscripten/system/include/libc/ulimit.h +0 -17
  726. data/modules/emscripten/system/include/libc/unistd.h +0 -519
  727. data/modules/emscripten/system/include/libc/utime.h +0 -24
  728. data/modules/emscripten/system/include/libc/utmp.h +0 -47
  729. data/modules/emscripten/system/include/libc/utmpx.h +0 -58
  730. data/modules/emscripten/system/include/libc/values.h +0 -39
  731. data/modules/emscripten/system/include/libc/wchar.h +0 -183
  732. data/modules/emscripten/system/include/libc/wctype.h +0 -77
  733. data/modules/emscripten/system/include/libc/wordexp.h +0 -42
  734. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +0 -123
  735. data/modules/emscripten/system/include/libcxx/LICENSE.txt +0 -76
  736. data/modules/emscripten/system/include/libcxx/__bit_reference +0 -1287
  737. data/modules/emscripten/system/include/libcxx/__config +0 -610
  738. data/modules/emscripten/system/include/libcxx/__debug +0 -218
  739. data/modules/emscripten/system/include/libcxx/__functional_03 +0 -2130
  740. data/modules/emscripten/system/include/libcxx/__functional_base +0 -615
  741. data/modules/emscripten/system/include/libcxx/__functional_base_03 +0 -1087
  742. data/modules/emscripten/system/include/libcxx/__hash_table +0 -2457
  743. data/modules/emscripten/system/include/libcxx/__locale +0 -1445
  744. data/modules/emscripten/system/include/libcxx/__mutex_base +0 -407
  745. data/modules/emscripten/system/include/libcxx/__split_buffer +0 -654
  746. data/modules/emscripten/system/include/libcxx/__sso_allocator +0 -77
  747. data/modules/emscripten/system/include/libcxx/__std_stream +0 -359
  748. data/modules/emscripten/system/include/libcxx/__tree +0 -2309
  749. data/modules/emscripten/system/include/libcxx/__tuple +0 -305
  750. data/modules/emscripten/system/include/libcxx/__tuple_03 +0 -27
  751. data/modules/emscripten/system/include/libcxx/__undef_min_max +0 -27
  752. data/modules/emscripten/system/include/libcxx/algorithm +0 -5679
  753. data/modules/emscripten/system/include/libcxx/array +0 -342
  754. data/modules/emscripten/system/include/libcxx/atomic +0 -1531
  755. data/modules/emscripten/system/include/libcxx/bitset +0 -1081
  756. data/modules/emscripten/system/include/libcxx/cassert +0 -25
  757. data/modules/emscripten/system/include/libcxx/ccomplex +0 -29
  758. data/modules/emscripten/system/include/libcxx/cctype +0 -164
  759. data/modules/emscripten/system/include/libcxx/cerrno +0 -393
  760. data/modules/emscripten/system/include/libcxx/cfenv +0 -82
  761. data/modules/emscripten/system/include/libcxx/cfloat +0 -78
  762. data/modules/emscripten/system/include/libcxx/chrono +0 -1027
  763. data/modules/emscripten/system/include/libcxx/cinttypes +0 -259
  764. data/modules/emscripten/system/include/libcxx/ciso646 +0 -25
  765. data/modules/emscripten/system/include/libcxx/climits +0 -48
  766. data/modules/emscripten/system/include/libcxx/clocale +0 -53
  767. data/modules/emscripten/system/include/libcxx/cmath +0 -1690
  768. data/modules/emscripten/system/include/libcxx/codecvt +0 -550
  769. data/modules/emscripten/system/include/libcxx/complex +0 -1567
  770. data/modules/emscripten/system/include/libcxx/complex.h +0 -35
  771. data/modules/emscripten/system/include/libcxx/condition_variable +0 -256
  772. data/modules/emscripten/system/include/libcxx/csetjmp +0 -52
  773. data/modules/emscripten/system/include/libcxx/csignal +0 -58
  774. data/modules/emscripten/system/include/libcxx/cstdarg +0 -48
  775. data/modules/emscripten/system/include/libcxx/cstdbool +0 -32
  776. data/modules/emscripten/system/include/libcxx/cstddef +0 -103
  777. data/modules/emscripten/system/include/libcxx/cstdint +0 -191
  778. data/modules/emscripten/system/include/libcxx/cstdio +0 -182
  779. data/modules/emscripten/system/include/libcxx/cstdlib +0 -172
  780. data/modules/emscripten/system/include/libcxx/cstring +0 -112
  781. data/modules/emscripten/system/include/libcxx/ctgmath +0 -29
  782. data/modules/emscripten/system/include/libcxx/ctime +0 -72
  783. data/modules/emscripten/system/include/libcxx/cwchar +0 -217
  784. data/modules/emscripten/system/include/libcxx/cwctype +0 -213
  785. data/modules/emscripten/system/include/libcxx/deque +0 -2873
  786. data/modules/emscripten/system/include/libcxx/dynarray +0 -311
  787. data/modules/emscripten/system/include/libcxx/exception +0 -250
  788. data/modules/emscripten/system/include/libcxx/ext/__hash +0 -46
  789. data/modules/emscripten/system/include/libcxx/ext/hash_map +0 -1007
  790. data/modules/emscripten/system/include/libcxx/ext/hash_set +0 -661
  791. data/modules/emscripten/system/include/libcxx/forward_list +0 -1663
  792. data/modules/emscripten/system/include/libcxx/fstream +0 -1431
  793. data/modules/emscripten/system/include/libcxx/functional +0 -2418
  794. data/modules/emscripten/system/include/libcxx/future +0 -2615
  795. data/modules/emscripten/system/include/libcxx/initializer_list +0 -118
  796. data/modules/emscripten/system/include/libcxx/iomanip +0 -651
  797. data/modules/emscripten/system/include/libcxx/ios +0 -1023
  798. data/modules/emscripten/system/include/libcxx/iosfwd +0 -194
  799. data/modules/emscripten/system/include/libcxx/iostream +0 -60
  800. data/modules/emscripten/system/include/libcxx/istream +0 -1716
  801. data/modules/emscripten/system/include/libcxx/iterator +0 -1568
  802. data/modules/emscripten/system/include/libcxx/limits +0 -813
  803. data/modules/emscripten/system/include/libcxx/list +0 -2355
  804. data/modules/emscripten/system/include/libcxx/locale +0 -4465
  805. data/modules/emscripten/system/include/libcxx/map +0 -2045
  806. data/modules/emscripten/system/include/libcxx/memory +0 -5448
  807. data/modules/emscripten/system/include/libcxx/mutex +0 -566
  808. data/modules/emscripten/system/include/libcxx/new +0 -146
  809. data/modules/emscripten/system/include/libcxx/numeric +0 -197
  810. data/modules/emscripten/system/include/libcxx/optional +0 -697
  811. data/modules/emscripten/system/include/libcxx/ostream +0 -1295
  812. data/modules/emscripten/system/include/libcxx/queue +0 -717
  813. data/modules/emscripten/system/include/libcxx/random +0 -6725
  814. data/modules/emscripten/system/include/libcxx/ratio +0 -487
  815. data/modules/emscripten/system/include/libcxx/readme.txt +0 -1
  816. data/modules/emscripten/system/include/libcxx/regex +0 -6487
  817. data/modules/emscripten/system/include/libcxx/scoped_allocator +0 -578
  818. data/modules/emscripten/system/include/libcxx/set +0 -1189
  819. data/modules/emscripten/system/include/libcxx/shared_mutex +0 -419
  820. data/modules/emscripten/system/include/libcxx/sstream +0 -972
  821. data/modules/emscripten/system/include/libcxx/stack +0 -292
  822. data/modules/emscripten/system/include/libcxx/stdexcept +0 -162
  823. data/modules/emscripten/system/include/libcxx/streambuf +0 -564
  824. data/modules/emscripten/system/include/libcxx/string +0 -4198
  825. data/modules/emscripten/system/include/libcxx/strstream +0 -400
  826. data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +0 -99
  827. data/modules/emscripten/system/include/libcxx/support/ibm/support.h +0 -54
  828. data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +0 -326
  829. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +0 -5
  830. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +0 -38
  831. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +0 -146
  832. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +0 -79
  833. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +0 -129
  834. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +0 -115
  835. data/modules/emscripten/system/include/libcxx/support/win32/support.h +0 -119
  836. data/modules/emscripten/system/include/libcxx/system_error +0 -642
  837. data/modules/emscripten/system/include/libcxx/tgmath.h +0 -29
  838. data/modules/emscripten/system/include/libcxx/thread +0 -458
  839. data/modules/emscripten/system/include/libcxx/tuple +0 -1102
  840. data/modules/emscripten/system/include/libcxx/type_traits +0 -3292
  841. data/modules/emscripten/system/include/libcxx/typeindex +0 -103
  842. data/modules/emscripten/system/include/libcxx/typeinfo +0 -124
  843. data/modules/emscripten/system/include/libcxx/unordered_map +0 -2078
  844. data/modules/emscripten/system/include/libcxx/unordered_set +0 -1379
  845. data/modules/emscripten/system/include/libcxx/utility +0 -768
  846. data/modules/emscripten/system/include/libcxx/valarray +0 -4779
  847. data/modules/emscripten/system/include/libcxx/vector +0 -3246
  848. data/modules/emscripten/system/include/unwind.h +0 -154
  849. data/modules/emscripten/system/include/uuid/uuid.h +0 -35
  850. data/modules/emscripten/system/include/zconf.h +0 -428
  851. data/modules/emscripten/system/include/zlib.h +0 -1613
  852. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +0 -97
  853. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +0 -47
  854. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +0 -116
  855. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +0 -46
  856. data/modules/emscripten/system/lib/compiler-rt/int_math.h +0 -67
  857. data/modules/emscripten/system/lib/compiler-rt/int_types.h +0 -140
  858. data/modules/emscripten/system/lib/compiler-rt/int_util.h +0 -29
  859. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +0 -56
  860. data/modules/emscripten/system/lib/compiler-rt/readme.txt +0 -20
  861. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +0 -36
  862. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +0 -251
  863. data/modules/emscripten/system/lib/debugging.cpp +0 -24
  864. data/modules/emscripten/system/lib/dlmalloc.c +0 -6297
  865. data/modules/emscripten/system/lib/embind/bind.cpp +0 -63
  866. data/modules/emscripten/system/lib/libc/gen/err.c +0 -49
  867. data/modules/emscripten/system/lib/libc/gen/errx.c +0 -49
  868. data/modules/emscripten/system/lib/libc/gen/verr.c +0 -58
  869. data/modules/emscripten/system/lib/libc/gen/verrx.c +0 -51
  870. data/modules/emscripten/system/lib/libc/gen/vwarn.c +0 -55
  871. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +0 -48
  872. data/modules/emscripten/system/lib/libc/gen/warn.c +0 -49
  873. data/modules/emscripten/system/lib/libc/gen/warnx.c +0 -49
  874. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +0 -92
  875. data/modules/emscripten/system/lib/libc/musl/readme.txt +0 -9
  876. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +0 -125
  877. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +0 -7
  878. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +0 -14
  879. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +0 -8
  880. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +0 -10
  881. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +0 -63
  882. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +0 -9
  883. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +0 -7
  884. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +0 -6
  885. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +0 -19
  886. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +0 -12
  887. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +0 -19
  888. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +0 -6
  889. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +0 -7
  890. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +0 -62
  891. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +0 -109
  892. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +0 -268
  893. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +0 -8
  894. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +0 -16
  895. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +0 -29
  896. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +0 -42
  897. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +0 -22
  898. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +0 -71
  899. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +0 -5
  900. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +0 -92
  901. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +0 -1085
  902. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +0 -238
  903. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +0 -1836
  904. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +0 -390
  905. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +0 -454
  906. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +0 -6
  907. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +0 -6
  908. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +0 -6
  909. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +0 -6
  910. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +0 -9
  911. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +0 -6
  912. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +0 -6
  913. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +0 -6
  914. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +0 -6
  915. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +0 -6
  916. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +0 -6
  917. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +0 -6
  918. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +0 -6
  919. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +0 -550
  920. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +0 -640
  921. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +0 -39
  922. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +0 -101
  923. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +0 -18
  924. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +0 -6
  925. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +0 -9
  926. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +0 -9
  927. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +0 -16
  928. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +0 -6
  929. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +0 -21
  930. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +0 -6
  931. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +0 -6
  932. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +0 -9
  933. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +0 -7
  934. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +0 -38
  935. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +0 -22
  936. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +0 -17
  937. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +0 -18
  938. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +0 -57
  939. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +0 -17
  940. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +0 -65
  941. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +0 -100
  942. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +0 -7
  943. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +0 -53
  944. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +0 -38
  945. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +0 -52
  946. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +0 -58
  947. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +0 -7
  948. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +0 -8
  949. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +0 -18
  950. data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +0 -3352
  951. data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +0 -35
  952. data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +0 -1011
  953. data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +0 -158
  954. data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +0 -231
  955. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +0 -13
  956. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +0 -14
  957. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +0 -361
  958. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +0 -53
  959. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +0 -7
  960. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +0 -13
  961. data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +0 -19
  962. data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +0 -25
  963. data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +0 -8
  964. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +0 -6
  965. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +0 -6
  966. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +0 -7
  967. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +0 -6
  968. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +0 -7
  969. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +0 -8
  970. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +0 -7
  971. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +0 -8
  972. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +0 -10
  973. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +0 -11
  974. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +0 -8
  975. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +0 -9
  976. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +0 -6
  977. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +0 -10
  978. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +0 -7
  979. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +0 -9
  980. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +0 -8
  981. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +0 -7
  982. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +0 -8
  983. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +0 -8
  984. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +0 -108
  985. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +0 -12
  986. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +0 -6
  987. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +0 -8
  988. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +0 -8
  989. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +0 -9
  990. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +0 -12
  991. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +0 -9
  992. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +0 -511
  993. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +0 -305
  994. data/modules/emscripten/system/lib/libc.symbols +0 -81
  995. data/modules/emscripten/system/lib/libcextra.symbols +0 -115
  996. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +0 -123
  997. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +0 -76
  998. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +0 -84
  999. data/modules/emscripten/system/lib/libcxx/bind.cpp +0 -30
  1000. data/modules/emscripten/system/lib/libcxx/chrono.cpp +0 -132
  1001. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +0 -81
  1002. data/modules/emscripten/system/lib/libcxx/debug.cpp +0 -530
  1003. data/modules/emscripten/system/lib/libcxx/exception.cpp +0 -307
  1004. data/modules/emscripten/system/lib/libcxx/future.cpp +0 -291
  1005. data/modules/emscripten/system/lib/libcxx/hash.cpp +0 -570
  1006. data/modules/emscripten/system/lib/libcxx/ios.cpp +0 -460
  1007. data/modules/emscripten/system/lib/libcxx/iostream.cpp +0 -68
  1008. data/modules/emscripten/system/lib/libcxx/locale.cpp +0 -6169
  1009. data/modules/emscripten/system/lib/libcxx/memory.cpp +0 -223
  1010. data/modules/emscripten/system/lib/libcxx/mutex.cpp +0 -253
  1011. data/modules/emscripten/system/lib/libcxx/new.cpp +0 -239
  1012. data/modules/emscripten/system/lib/libcxx/optional.cpp +0 -25
  1013. data/modules/emscripten/system/lib/libcxx/random.cpp +0 -74
  1014. data/modules/emscripten/system/lib/libcxx/readme.txt +0 -1
  1015. data/modules/emscripten/system/lib/libcxx/regex.cpp +0 -325
  1016. data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +0 -101
  1017. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +0 -200
  1018. data/modules/emscripten/system/lib/libcxx/string.cpp +0 -530
  1019. data/modules/emscripten/system/lib/libcxx/strstream.cpp +0 -329
  1020. data/modules/emscripten/system/lib/libcxx/support/solaris/README +0 -4
  1021. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +0 -76
  1022. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +0 -93
  1023. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +0 -245
  1024. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +0 -95
  1025. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +0 -166
  1026. data/modules/emscripten/system/lib/libcxx/symbols +0 -2699
  1027. data/modules/emscripten/system/lib/libcxx/system_error.cpp +0 -205
  1028. data/modules/emscripten/system/lib/libcxx/thread.cpp +0 -225
  1029. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +0 -73
  1030. data/modules/emscripten/system/lib/libcxx/utility.cpp +0 -17
  1031. data/modules/emscripten/system/lib/libcxx/valarray.cpp +0 -56
  1032. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +0 -38
  1033. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +0 -76
  1034. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +0 -167
  1035. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +0 -175
  1036. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +0 -99
  1037. data/modules/emscripten/system/lib/libcxxabi/readme.txt +0 -1
  1038. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +0 -50
  1039. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +0 -33
  1040. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +0 -34
  1041. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +0 -11036
  1042. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +0 -622
  1043. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +0 -123
  1044. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +0 -91
  1045. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +0 -231
  1046. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +0 -125
  1047. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +0 -54
  1048. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +0 -242
  1049. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +0 -1055
  1050. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +0 -27
  1051. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +0 -367
  1052. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +0 -31
  1053. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +0 -41
  1054. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +0 -174
  1055. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +0 -1146
  1056. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +0 -248
  1057. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +0 -169
  1058. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +0 -53
  1059. data/modules/emscripten/system/lib/libcxxabi/symbols +0 -236
  1060. data/modules/emscripten/system/lib/sdl.cpp +0 -13
  1061. data/modules/emscripten/system/lib/sdl.symbols +0 -1
  1062. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +0 -2347
  1063. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +0 -4
  1064. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +0 -657
  1065. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +0 -147
  1066. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +0 -74
  1067. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +0 -249
  1068. data/modules/emscripten/third_party/CppHeaderParser/README.html +0 -544
  1069. data/modules/emscripten/third_party/CppHeaderParser/README.txt +0 -226
  1070. data/modules/emscripten/third_party/CppHeaderParser/setup.py +0 -43
  1071. data/modules/emscripten/third_party/ansidecl.h +0 -371
  1072. data/modules/emscripten/third_party/closure-compiler/COPYING +0 -202
  1073. data/modules/emscripten/third_party/closure-compiler/README +0 -292
  1074. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  1075. data/modules/emscripten/third_party/closure-compiler/readme.txt +0 -3
  1076. data/modules/emscripten/third_party/cp-demangle.h +0 -161
  1077. data/modules/emscripten/third_party/demangle.h +0 -549
  1078. data/modules/emscripten/third_party/demangler.py +0 -49
  1079. data/modules/emscripten/third_party/gcc_demangler.c +0 -4226
  1080. data/modules/emscripten/third_party/gcc_demangler.js +0 -21282
  1081. data/modules/emscripten/third_party/jni/emjvm.cpp +0 -133
  1082. data/modules/emscripten/third_party/jni/emjvm.h +0 -8
  1083. data/modules/emscripten/third_party/jni/emjvm.js +0 -185
  1084. data/modules/emscripten/third_party/jni/jni.h +0 -1154
  1085. data/modules/emscripten/third_party/libiberty.h +0 -634
  1086. data/modules/emscripten/third_party/lzma.js/README.markdown +0 -37
  1087. data/modules/emscripten/third_party/lzma.js/doit.bat +0 -4
  1088. data/modules/emscripten/third_party/lzma.js/doit.sh +0 -44
  1089. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +0 -7
  1090. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +0 -676
  1091. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +0 -201
  1092. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +0 -56
  1093. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +0 -160
  1094. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +0 -138
  1095. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +0 -22
  1096. data/modules/emscripten/third_party/lzma.js/lzip/README +0 -77
  1097. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +0 -204
  1098. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +0 -106
  1099. data/modules/emscripten/third_party/lzma.js/lzip/configure +0 -192
  1100. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +0 -252
  1101. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +0 -268
  1102. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +0 -643
  1103. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +0 -582
  1104. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +0 -378
  1105. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +0 -171
  1106. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +0 -264
  1107. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +0 -545
  1108. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +0 -27
  1109. data/modules/emscripten/third_party/lzma.js/lzma-full.js +0 -27
  1110. data/modules/emscripten/third_party/lzma.js/native_test.sh +0 -5
  1111. data/modules/emscripten/third_party/lzma.js/post.js +0 -13
  1112. data/modules/emscripten/third_party/lzma.js/pre.js +0 -13
  1113. data/modules/emscripten/third_party/lzma.js/test-decoder.js +0 -39
  1114. data/modules/emscripten/third_party/lzma.js/test-full.html +0 -9
  1115. data/modules/emscripten/third_party/lzma.js/test-full.js +0 -78
  1116. data/modules/emscripten/third_party/ply/ANNOUNCE +0 -40
  1117. data/modules/emscripten/third_party/ply/CHANGES +0 -1093
  1118. data/modules/emscripten/third_party/ply/PKG-INFO +0 -22
  1119. data/modules/emscripten/third_party/ply/README +0 -271
  1120. data/modules/emscripten/third_party/ply/TODO +0 -16
  1121. data/modules/emscripten/third_party/ply/doc/internal.html +0 -874
  1122. data/modules/emscripten/third_party/ply/doc/makedoc.py +0 -194
  1123. data/modules/emscripten/third_party/ply/doc/ply.html +0 -3262
  1124. data/modules/emscripten/third_party/ply/example/BASIC/README +0 -79
  1125. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +0 -71
  1126. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +0 -74
  1127. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +0 -79
  1128. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +0 -441
  1129. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +0 -424
  1130. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +0 -14
  1131. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +0 -5
  1132. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +0 -22
  1133. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +0 -13
  1134. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +0 -4
  1135. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +0 -17
  1136. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +0 -12
  1137. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +0 -13
  1138. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +0 -4
  1139. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +0 -20
  1140. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +0 -18
  1141. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +0 -5
  1142. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +0 -4
  1143. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +0 -709
  1144. data/modules/emscripten/third_party/ply/example/GardenSnake/README +0 -5
  1145. data/modules/emscripten/third_party/ply/example/README +0 -10
  1146. data/modules/emscripten/third_party/ply/example/ansic/README +0 -2
  1147. data/modules/emscripten/third_party/ply/example/ansic/clex.py +0 -164
  1148. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +0 -863
  1149. data/modules/emscripten/third_party/ply/example/calc/calc.py +0 -107
  1150. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +0 -113
  1151. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +0 -157
  1152. data/modules/emscripten/third_party/ply/example/cleanup.sh +0 -2
  1153. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +0 -130
  1154. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +0 -48
  1155. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +0 -160
  1156. data/modules/emscripten/third_party/ply/example/optcalc/README +0 -9
  1157. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +0 -119
  1158. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +0 -117
  1159. data/modules/emscripten/third_party/ply/example/yply/README +0 -41
  1160. data/modules/emscripten/third_party/ply/example/yply/ylex.py +0 -112
  1161. data/modules/emscripten/third_party/ply/example/yply/yparse.py +0 -217
  1162. data/modules/emscripten/third_party/ply/example/yply/yply.py +0 -53
  1163. data/modules/emscripten/third_party/ply/ply/__init__.py +0 -4
  1164. data/modules/emscripten/third_party/ply/ply/cpp.py +0 -898
  1165. data/modules/emscripten/third_party/ply/ply/ctokens.py +0 -133
  1166. data/modules/emscripten/third_party/ply/ply/lex.py +0 -1058
  1167. data/modules/emscripten/third_party/ply/ply/yacc.py +0 -3276
  1168. data/modules/emscripten/third_party/ply/setup.py +0 -31
  1169. data/modules/emscripten/third_party/ply/test/README +0 -7
  1170. data/modules/emscripten/third_party/ply/test/calclex.py +0 -49
  1171. data/modules/emscripten/third_party/ply/test/cleanup.sh +0 -4
  1172. data/modules/emscripten/third_party/ply/test/lex_closure.py +0 -54
  1173. data/modules/emscripten/third_party/ply/test/lex_doc1.py +0 -26
  1174. data/modules/emscripten/third_party/ply/test/lex_dup1.py +0 -29
  1175. data/modules/emscripten/third_party/ply/test/lex_dup2.py +0 -33
  1176. data/modules/emscripten/third_party/ply/test/lex_dup3.py +0 -31
  1177. data/modules/emscripten/third_party/ply/test/lex_empty.py +0 -20
  1178. data/modules/emscripten/third_party/ply/test/lex_error1.py +0 -24
  1179. data/modules/emscripten/third_party/ply/test/lex_error2.py +0 -26
  1180. data/modules/emscripten/third_party/ply/test/lex_error3.py +0 -27
  1181. data/modules/emscripten/third_party/ply/test/lex_error4.py +0 -27
  1182. data/modules/emscripten/third_party/ply/test/lex_hedit.py +0 -47
  1183. data/modules/emscripten/third_party/ply/test/lex_ignore.py +0 -31
  1184. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +0 -29
  1185. data/modules/emscripten/third_party/ply/test/lex_literal1.py +0 -25
  1186. data/modules/emscripten/third_party/ply/test/lex_literal2.py +0 -25
  1187. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +0 -27
  1188. data/modules/emscripten/third_party/ply/test/lex_module.py +0 -10
  1189. data/modules/emscripten/third_party/ply/test/lex_module_import.py +0 -42
  1190. data/modules/emscripten/third_party/ply/test/lex_object.py +0 -55
  1191. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +0 -54
  1192. data/modules/emscripten/third_party/ply/test/lex_optimize.py +0 -50
  1193. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +0 -50
  1194. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +0 -52
  1195. data/modules/emscripten/third_party/ply/test/lex_re1.py +0 -27
  1196. data/modules/emscripten/third_party/ply/test/lex_re2.py +0 -27
  1197. data/modules/emscripten/third_party/ply/test/lex_re3.py +0 -29
  1198. data/modules/emscripten/third_party/ply/test/lex_rule1.py +0 -27
  1199. data/modules/emscripten/third_party/ply/test/lex_rule2.py +0 -29
  1200. data/modules/emscripten/third_party/ply/test/lex_rule3.py +0 -27
  1201. data/modules/emscripten/third_party/ply/test/lex_state1.py +0 -40
  1202. data/modules/emscripten/third_party/ply/test/lex_state2.py +0 -40
  1203. data/modules/emscripten/third_party/ply/test/lex_state3.py +0 -42
  1204. data/modules/emscripten/third_party/ply/test/lex_state4.py +0 -41
  1205. data/modules/emscripten/third_party/ply/test/lex_state5.py +0 -40
  1206. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +0 -39
  1207. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +0 -40
  1208. data/modules/emscripten/third_party/ply/test/lex_state_try.py +0 -45
  1209. data/modules/emscripten/third_party/ply/test/lex_token1.py +0 -19
  1210. data/modules/emscripten/third_party/ply/test/lex_token2.py +0 -22
  1211. data/modules/emscripten/third_party/ply/test/lex_token3.py +0 -24
  1212. data/modules/emscripten/third_party/ply/test/lex_token4.py +0 -26
  1213. data/modules/emscripten/third_party/ply/test/lex_token5.py +0 -31
  1214. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +0 -29
  1215. data/modules/emscripten/third_party/ply/test/testlex.py +0 -606
  1216. data/modules/emscripten/third_party/ply/test/testyacc.py +0 -347
  1217. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +0 -68
  1218. data/modules/emscripten/third_party/ply/test/yacc_badid.py +0 -77
  1219. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +0 -64
  1220. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +0 -68
  1221. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +0 -68
  1222. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +0 -68
  1223. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +0 -68
  1224. data/modules/emscripten/third_party/ply/test/yacc_dup.py +0 -68
  1225. data/modules/emscripten/third_party/ply/test/yacc_error1.py +0 -68
  1226. data/modules/emscripten/third_party/ply/test/yacc_error2.py +0 -68
  1227. data/modules/emscripten/third_party/ply/test/yacc_error3.py +0 -67
  1228. data/modules/emscripten/third_party/ply/test/yacc_error4.py +0 -72
  1229. data/modules/emscripten/third_party/ply/test/yacc_inf.py +0 -56
  1230. data/modules/emscripten/third_party/ply/test/yacc_literal.py +0 -69
  1231. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +0 -68
  1232. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +0 -68
  1233. data/modules/emscripten/third_party/ply/test/yacc_nested.py +0 -33
  1234. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +0 -67
  1235. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +0 -66
  1236. data/modules/emscripten/third_party/ply/test/yacc_nop.py +0 -68
  1237. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +0 -66
  1238. data/modules/emscripten/third_party/ply/test/yacc_notok.py +0 -67
  1239. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +0 -68
  1240. data/modules/emscripten/third_party/ply/test/yacc_rr.py +0 -72
  1241. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +0 -30
  1242. data/modules/emscripten/third_party/ply/test/yacc_simple.py +0 -68
  1243. data/modules/emscripten/third_party/ply/test/yacc_sr.py +0 -63
  1244. data/modules/emscripten/third_party/ply/test/yacc_term1.py +0 -68
  1245. data/modules/emscripten/third_party/ply/test/yacc_unused.py +0 -77
  1246. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +0 -72
  1247. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +0 -63
  1248. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +0 -63
  1249. data/modules/emscripten/third_party/readme.txt +0 -7
  1250. data/modules/emscripten/third_party/stb_image.c +0 -4673
  1251. data/modules/emscripten/third_party/websockify/CHANGES.txt +0 -23
  1252. data/modules/emscripten/third_party/websockify/LICENSE.txt +0 -16
  1253. data/modules/emscripten/third_party/websockify/MANIFEST.in +0 -1
  1254. data/modules/emscripten/third_party/websockify/Makefile +0 -11
  1255. data/modules/emscripten/third_party/websockify/README.md +0 -168
  1256. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +0 -39
  1257. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +0 -24
  1258. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +0 -61
  1259. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +0 -19
  1260. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +0 -129
  1261. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +0 -36
  1262. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +0 -37
  1263. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +0 -41
  1264. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +0 -75
  1265. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +0 -20
  1266. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +0 -621
  1267. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +0 -165
  1268. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +0 -373
  1269. data/modules/emscripten/third_party/websockify/docs/TODO +0 -9
  1270. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +0 -4
  1271. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +0 -114
  1272. data/modules/emscripten/third_party/websockify/docs/notes +0 -17
  1273. data/modules/emscripten/third_party/websockify/docs/release.txt +0 -9
  1274. data/modules/emscripten/third_party/websockify/docs/websockify.1 +0 -110
  1275. data/modules/emscripten/third_party/websockify/include/VT100.js +0 -919
  1276. data/modules/emscripten/third_party/websockify/include/base64.js +0 -114
  1277. data/modules/emscripten/third_party/websockify/include/keysym.js +0 -99
  1278. data/modules/emscripten/third_party/websockify/include/util.js +0 -359
  1279. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +0 -109
  1280. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  1281. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +0 -4
  1282. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +0 -391
  1283. data/modules/emscripten/third_party/websockify/include/websock.js +0 -422
  1284. data/modules/emscripten/third_party/websockify/include/webutil.js +0 -216
  1285. data/modules/emscripten/third_party/websockify/include/wsirc.js +0 -235
  1286. data/modules/emscripten/third_party/websockify/include/wstelnet.js +0 -335
  1287. data/modules/emscripten/third_party/websockify/other/Makefile +0 -14
  1288. data/modules/emscripten/third_party/websockify/other/README.md +0 -51
  1289. data/modules/emscripten/third_party/websockify/other/launch.sh +0 -108
  1290. data/modules/emscripten/third_party/websockify/other/project.clj +0 -13
  1291. data/modules/emscripten/third_party/websockify/other/websocket.c +0 -802
  1292. data/modules/emscripten/third_party/websockify/other/websocket.h +0 -84
  1293. data/modules/emscripten/third_party/websockify/other/websocket.rb +0 -456
  1294. data/modules/emscripten/third_party/websockify/other/websockify.c +0 -385
  1295. data/modules/emscripten/third_party/websockify/other/websockify.clj +0 -233
  1296. data/modules/emscripten/third_party/websockify/other/websockify.js +0 -196
  1297. data/modules/emscripten/third_party/websockify/other/websockify.rb +0 -171
  1298. data/modules/emscripten/third_party/websockify/other/wswrap +0 -22
  1299. data/modules/emscripten/third_party/websockify/rebind +0 -18
  1300. data/modules/emscripten/third_party/websockify/rebind.c +0 -94
  1301. data/modules/emscripten/third_party/websockify/run +0 -5
  1302. data/modules/emscripten/third_party/websockify/setup.py +0 -30
  1303. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +0 -29
  1304. data/modules/emscripten/third_party/websockify/tests/base64.html +0 -91
  1305. data/modules/emscripten/third_party/websockify/tests/base64.js +0 -12
  1306. data/modules/emscripten/third_party/websockify/tests/echo.html +0 -148
  1307. data/modules/emscripten/third_party/websockify/tests/echo.py +0 -75
  1308. data/modules/emscripten/third_party/websockify/tests/echo.rb +0 -62
  1309. data/modules/emscripten/third_party/websockify/tests/latency.html +0 -290
  1310. data/modules/emscripten/third_party/websockify/tests/latency.py +0 -75
  1311. data/modules/emscripten/third_party/websockify/tests/load.html +0 -250
  1312. data/modules/emscripten/third_party/websockify/tests/load.py +0 -167
  1313. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +0 -168
  1314. data/modules/emscripten/third_party/websockify/tests/simple.html +0 -68
  1315. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +0 -22
  1316. data/modules/emscripten/third_party/websockify/websockify/__init__.py +0 -2
  1317. data/modules/emscripten/third_party/websockify/websockify/websocket.py +0 -982
  1318. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +0 -393
  1319. data/modules/emscripten/third_party/websockify/websockify.py +0 -5
  1320. data/modules/emscripten/third_party/websockify/wsirc.html +0 -99
  1321. data/modules/emscripten/third_party/websockify/wstelnet.html +0 -74
  1322. data/modules/emscripten/tools/__init__.py +0 -0
  1323. data/modules/emscripten/tools/asm_module.py +0 -275
  1324. data/modules/emscripten/tools/autodebugger.py +0 -291
  1325. data/modules/emscripten/tools/autodebugger_c.py +0 -37
  1326. data/modules/emscripten/tools/autodebugger_indenter.py +0 -18
  1327. data/modules/emscripten/tools/autodebugger_js.py +0 -47
  1328. data/modules/emscripten/tools/autodediffer.py +0 -60
  1329. data/modules/emscripten/tools/bindings_generator.py +0 -832
  1330. data/modules/emscripten/tools/bisect_pair.py +0 -88
  1331. data/modules/emscripten/tools/cache.py +0 -196
  1332. data/modules/emscripten/tools/clean_webconsole.py +0 -34
  1333. data/modules/emscripten/tools/crunch-worker.js +0 -124
  1334. data/modules/emscripten/tools/diff_autodebugger.py +0 -15
  1335. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -307
  1336. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -382
  1337. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +0 -6136
  1338. data/modules/emscripten/tools/eliminator/eliminator-test.js +0 -8879
  1339. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +0 -888
  1340. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +0 -463
  1341. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +0 -317
  1342. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +0 -75
  1343. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +0 -75
  1344. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +0 -1363
  1345. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +0 -2005
  1346. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +0 -51
  1347. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +0 -22
  1348. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +0 -28
  1349. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +0 -402
  1350. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +0 -1
  1351. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +0 -1
  1352. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +0 -1
  1353. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +0 -1
  1354. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +0 -1
  1355. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +0 -1
  1356. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +0 -1
  1357. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +0 -1
  1358. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +0 -1
  1359. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +0 -1
  1360. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +0 -1
  1361. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +0 -1
  1362. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +0 -1
  1363. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +0 -1
  1364. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +0 -1
  1365. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +0 -1
  1366. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +0 -1
  1367. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +0 -1
  1368. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +0 -1
  1369. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +0 -1
  1370. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +0 -1
  1371. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +0 -1
  1372. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +0 -1
  1373. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +0 -1
  1374. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +0 -1
  1375. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +0 -1
  1376. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +0 -1
  1377. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +0 -1
  1378. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +0 -1
  1379. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +0 -1
  1380. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +0 -1
  1381. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +0 -1
  1382. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +0 -1
  1383. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +0 -1
  1384. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +0 -1
  1385. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +0 -1
  1386. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +0 -1
  1387. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +0 -1
  1388. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +0 -3
  1389. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +0 -4
  1390. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +0 -4
  1391. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +0 -6
  1392. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +0 -20
  1393. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +0 -3
  1394. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +0 -5
  1395. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +0 -4
  1396. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +0 -10
  1397. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +0 -6
  1398. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +0 -9
  1399. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +0 -16
  1400. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +0 -1
  1401. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +0 -3
  1402. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +0 -1
  1403. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +0 -1
  1404. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +0 -1
  1405. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +0 -4
  1406. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +0 -1
  1407. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +0 -6
  1408. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +0 -7
  1409. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +0 -1
  1410. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +0 -3
  1411. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +0 -1
  1412. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +0 -3
  1413. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +0 -3
  1414. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +0 -3
  1415. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +0 -1
  1416. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +0 -9
  1417. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +0 -1
  1418. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +0 -3
  1419. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +0 -5
  1420. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +0 -1
  1421. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +0 -4
  1422. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +0 -5
  1423. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +0 -3
  1424. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +0 -3
  1425. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +0 -2
  1426. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +0 -55
  1427. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +0 -33
  1428. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +0 -97
  1429. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +0 -138
  1430. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +0 -16
  1431. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +0 -17
  1432. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +0 -85
  1433. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +0 -103
  1434. data/modules/emscripten/tools/emconfiguren.py +0 -19
  1435. data/modules/emscripten/tools/emmaken.py +0 -230
  1436. data/modules/emscripten/tools/emmakenxx.py +0 -18
  1437. data/modules/emscripten/tools/exec_llvm.py +0 -50
  1438. data/modules/emscripten/tools/file2json.py +0 -49
  1439. data/modules/emscripten/tools/file_packager.py +0 -719
  1440. data/modules/emscripten/tools/find_bigfuncs.py +0 -23
  1441. data/modules/emscripten/tools/find_bigis.py +0 -18
  1442. data/modules/emscripten/tools/find_bigvars.py +0 -24
  1443. data/modules/emscripten/tools/fix_closure.py +0 -88
  1444. data/modules/emscripten/tools/gen_struct_info.py +0 -509
  1445. data/modules/emscripten/tools/ie7_fix.py +0 -14
  1446. data/modules/emscripten/tools/js-optimizer.js +0 -4023
  1447. data/modules/emscripten/tools/js_optimizer.py +0 -357
  1448. data/modules/emscripten/tools/jsrun.py +0 -37
  1449. data/modules/emscripten/tools/ll-strip.py +0 -56
  1450. data/modules/emscripten/tools/make_file.py +0 -19
  1451. data/modules/emscripten/tools/make_minigzip.py +0 -13
  1452. data/modules/emscripten/tools/merge_asm.py +0 -26
  1453. data/modules/emscripten/tools/namespacer.py +0 -95
  1454. data/modules/emscripten/tools/nativize_llvm.py +0 -34
  1455. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +0 -58
  1456. data/modules/emscripten/tools/node_modules/source-map/LICENSE +0 -28
  1457. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +0 -166
  1458. data/modules/emscripten/tools/node_modules/source-map/README.md +0 -347
  1459. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +0 -56
  1460. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +0 -152
  1461. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1462. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1463. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +0 -8
  1464. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1465. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +0 -21
  1466. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +0 -8
  1467. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +0 -3
  1468. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +0 -96
  1469. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  1470. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +0 -42
  1471. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  1472. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -430
  1473. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +0 -381
  1474. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +0 -353
  1475. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +0 -117
  1476. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +0 -8
  1477. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  1478. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1479. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1480. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +0 -33
  1481. data/modules/emscripten/tools/node_modules/source-map/package.json +0 -74
  1482. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +0 -73
  1483. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +0 -26
  1484. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +0 -71
  1485. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  1486. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +0 -35
  1487. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  1488. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  1489. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -306
  1490. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -391
  1491. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +0 -282
  1492. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +0 -152
  1493. data/modules/emscripten/tools/reproduceriter.js +0 -216
  1494. data/modules/emscripten/tools/reproduceriter.py +0 -160
  1495. data/modules/emscripten/tools/response_file.py +0 -34
  1496. data/modules/emscripten/tools/scan_js.py +0 -20
  1497. data/modules/emscripten/tools/scan_ll.py +0 -18
  1498. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +0 -3
  1499. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +0 -46
  1500. data/modules/emscripten/tools/settings_template_readonly.py +0 -49
  1501. data/modules/emscripten/tools/shared.py +0 -1705
  1502. data/modules/emscripten/tools/source-maps/sourcemap2json.js +0 -15
  1503. data/modules/emscripten/tools/source-maps/sourcemapper.js +0 -208
  1504. data/modules/emscripten/tools/split.py +0 -105
  1505. data/modules/emscripten/tools/split_asm.py +0 -30
  1506. data/modules/emscripten/tools/tempfiles.py +0 -41
  1507. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +0 -75
  1508. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +0 -91
  1509. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +0 -2
  1510. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +0 -8
  1511. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +0 -929
  1512. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +0 -351
  1513. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +0 -793
  1514. data/modules/emscripten/tools/test-js-optimizer-asm-outline2.js +0 -606
  1515. data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +0 -28
  1516. data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +0 -30
  1517. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -522
  1518. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -533
  1519. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +0 -36
  1520. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +0 -37
  1521. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +0 -106
  1522. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +0 -110
  1523. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +0 -9
  1524. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +0 -12
  1525. data/modules/emscripten/tools/test-js-optimizer-output.js +0 -291
  1526. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +0 -232
  1527. data/modules/emscripten/tools/test-js-optimizer-regs.js +0 -237
  1528. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +0 -91
  1529. data/modules/emscripten/tools/test-js-optimizer-t2.js +0 -92
  1530. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +0 -17
  1531. data/modules/emscripten/tools/test-js-optimizer-t2c.js +0 -18
  1532. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +0 -49
  1533. data/modules/emscripten/tools/test-js-optimizer-t3.js +0 -50
  1534. data/modules/emscripten/tools/test-js-optimizer.js +0 -401
  1535. data/modules/emscripten/tools/validate_asmjs.py +0 -82
  1536. data/modules/mruby/mrblib/print.rb +0 -18
  1537. data/modules/mruby/src/re.h +0 -12
@@ -13,9 +13,10 @@
13
13
  #include "mruby/proc.h"
14
14
  #include "mruby/string.h"
15
15
  #include "mruby/variable.h"
16
- #include "error.h"
16
+ #include "mruby/error.h"
17
+ #include "mruby/data.h"
17
18
 
18
- KHASH_DEFINE(mt, mrb_sym, struct RProc*, 1, kh_int_hash_func, kh_int_hash_equal)
19
+ KHASH_DEFINE(mt, mrb_sym, struct RProc*, TRUE, kh_int_hash_func, kh_int_hash_equal)
19
20
 
20
21
  void
21
22
  mrb_gc_mark_mt(mrb_state *mrb, struct RClass *c)
@@ -25,7 +26,7 @@ mrb_gc_mark_mt(mrb_state *mrb, struct RClass *c)
25
26
 
26
27
  if (!h) return;
27
28
  for (k = kh_begin(h); k != kh_end(h); k++) {
28
- if (kh_exist(h, k)){
29
+ if (kh_exist(h, k)) {
29
30
  struct RProc *m = kh_value(h, k);
30
31
  if (m) {
31
32
  mrb_gc_mark(mrb, (struct RBasic*)m);
@@ -49,13 +50,24 @@ mrb_gc_free_mt(mrb_state *mrb, struct RClass *c)
49
50
  kh_destroy(mt, mrb, c->mt);
50
51
  }
51
52
 
52
- void
53
- mrb_name_class(mrb_state *mrb, struct RClass *c, mrb_sym name)
53
+ static void
54
+ name_class(mrb_state *mrb, struct RClass *c, mrb_sym name)
54
55
  {
55
56
  mrb_obj_iv_set(mrb, (struct RObject*)c,
56
57
  mrb_intern_lit(mrb, "__classid__"), mrb_symbol_value(name));
57
58
  }
58
59
 
60
+ static void
61
+ setup_class(mrb_state *mrb, struct RClass *outer, struct RClass *c, mrb_sym id)
62
+ {
63
+ name_class(mrb, c, id);
64
+ mrb_obj_iv_set(mrb, (struct RObject*)outer, id, mrb_obj_value(c));
65
+ if (outer != mrb->object_class) {
66
+ mrb_obj_iv_set(mrb, (struct RObject*)c, mrb_intern_lit(mrb, "__outer__"),
67
+ mrb_obj_value(outer));
68
+ }
69
+ }
70
+
59
71
  #define make_metaclass(mrb, c) prepare_singleton_class((mrb), (struct RBasic*)(c))
60
72
 
61
73
  static void
@@ -92,100 +104,126 @@ prepare_singleton_class(mrb_state *mrb, struct RBasic *o)
92
104
  mrb_obj_iv_set(mrb, (struct RObject*)sc, mrb_intern_lit(mrb, "__attached__"), mrb_obj_value(o));
93
105
  }
94
106
 
95
- struct RClass*
96
- mrb_define_module_id(mrb_state *mrb, mrb_sym name)
107
+ static struct RClass *
108
+ class_from_sym(mrb_state *mrb, struct RClass *klass, mrb_sym id)
97
109
  {
98
- struct RClass *m = mrb_module_new(mrb);
99
-
100
- mrb_obj_iv_set(mrb, (struct RObject*)mrb->object_class,
101
- name, mrb_obj_value(m));
102
- mrb_name_class(mrb, m, name);
110
+ mrb_value c = mrb_const_get(mrb, mrb_obj_value(klass), id);
103
111
 
104
- return m;
112
+ mrb_check_type(mrb, c, MRB_TT_CLASS);
113
+ return mrb_class_ptr(c);
105
114
  }
106
115
 
107
- struct RClass*
108
- mrb_define_module(mrb_state *mrb, const char *name)
116
+ static struct RClass *
117
+ module_from_sym(mrb_state *mrb, struct RClass *klass, mrb_sym id)
109
118
  {
110
- return mrb_define_module_id(mrb, mrb_intern_cstr(mrb, name));
111
- }
119
+ mrb_value c = mrb_const_get(mrb, mrb_obj_value(klass), id);
112
120
 
113
- static void
114
- setup_class(mrb_state *mrb, mrb_value outer, struct RClass *c, mrb_sym id)
115
- {
116
- mrb_name_class(mrb, c, id);
117
- mrb_const_set(mrb, outer, id, mrb_obj_value(c));
118
- mrb_obj_iv_set(mrb, (struct RObject*)c,
119
- mrb_intern_lit(mrb, "__outer__"), outer);
121
+ mrb_check_type(mrb, c, MRB_TT_MODULE);
122
+ return mrb_class_ptr(c);
120
123
  }
121
124
 
122
- struct RClass*
125
+ MRB_API struct RClass*
123
126
  mrb_class_outer_module(mrb_state *mrb, struct RClass *c)
124
127
  {
125
128
  mrb_value outer;
126
129
 
127
130
  outer = mrb_obj_iv_get(mrb, (struct RObject*)c, mrb_intern_lit(mrb, "__outer__"));
128
- if (mrb_nil_p(outer)) return 0;
131
+ if (mrb_nil_p(outer)) return NULL;
129
132
  return mrb_class_ptr(outer);
130
133
  }
131
134
 
132
- struct RClass*
133
- mrb_vm_define_module(mrb_state *mrb, mrb_value outer, mrb_sym id)
135
+ static struct RClass*
136
+ define_module(mrb_state *mrb, mrb_sym name, struct RClass *outer)
134
137
  {
135
- struct RClass *c;
136
- mrb_value v;
138
+ struct RClass *m;
137
139
 
138
- if (mrb_const_defined(mrb, outer, id)) {
139
- v = mrb_const_get(mrb, outer, id);
140
- c = mrb_class_ptr(v);
140
+ if (mrb_const_defined_at(mrb, mrb_obj_value(outer), name)) {
141
+ return module_from_sym(mrb, outer, name);
141
142
  }
142
- else {
143
- c = mrb_module_new(mrb);
144
- setup_class(mrb, outer, c, id);
145
- }
146
- return c;
143
+ m = mrb_module_new(mrb);
144
+ setup_class(mrb, outer, m, name);
145
+
146
+ return m;
147
147
  }
148
148
 
149
- struct RClass*
150
- mrb_define_class_id(mrb_state *mrb, mrb_sym name, struct RClass *super)
149
+ MRB_API struct RClass*
150
+ mrb_define_module_id(mrb_state *mrb, mrb_sym name)
151
151
  {
152
- struct RClass *c = mrb_class_new(mrb, super);
153
-
154
- mrb_obj_iv_set(mrb, (struct RObject*)mrb->object_class,
155
- name, mrb_obj_value(c));
156
- mrb_name_class(mrb, c, name);
152
+ return define_module(mrb, name, mrb->object_class);
153
+ }
157
154
 
158
- return c;
155
+ MRB_API struct RClass*
156
+ mrb_define_module(mrb_state *mrb, const char *name)
157
+ {
158
+ return define_module(mrb, mrb_intern_cstr(mrb, name), mrb->object_class);
159
159
  }
160
160
 
161
- struct RClass*
162
- mrb_define_class(mrb_state *mrb, const char *name, struct RClass *super)
161
+ MRB_API struct RClass*
162
+ mrb_vm_define_module(mrb_state *mrb, mrb_value outer, mrb_sym id)
163
163
  {
164
- return mrb_define_class_id(mrb, mrb_intern_cstr(mrb, name), super);
164
+ return define_module(mrb, id, mrb_class_ptr(outer));
165
165
  }
166
166
 
167
- struct RClass*
168
- mrb_vm_define_class(mrb_state *mrb, mrb_value outer, mrb_value super, mrb_sym id)
167
+ MRB_API struct RClass*
168
+ mrb_define_module_under(mrb_state *mrb, struct RClass *outer, const char *name)
169
169
  {
170
- struct RClass *c, *s;
170
+ mrb_sym id = mrb_intern_cstr(mrb, name);
171
+ struct RClass * c = define_module(mrb, id, outer);
171
172
 
172
- if (mrb_const_defined(mrb, outer, id)) {
173
- mrb_value v = mrb_const_get(mrb, outer, id);
173
+ setup_class(mrb, outer, c, id);
174
+ return c;
175
+ }
174
176
 
175
- mrb_check_type(mrb, v, MRB_TT_CLASS);
176
- c = mrb_class_ptr(v);
177
- if (!mrb_nil_p(super)) {
178
- if (mrb_type(super) != MRB_TT_CLASS) {
179
- mrb_raisef(mrb, E_TYPE_ERROR, "superclass must be a Class (%S given)", super);
180
- }
177
+ static struct RClass*
178
+ define_class(mrb_state *mrb, mrb_sym name, struct RClass *super, struct RClass *outer)
179
+ {
180
+ struct RClass * c;
181
181
 
182
- if (!c->super || mrb_class_ptr(super) != mrb_class_real(c->super)) {
183
- mrb_raisef(mrb, E_TYPE_ERROR, "superclass mismatch for class %S", mrb_sym2str(mrb, id));
184
- }
182
+ if (mrb_const_defined_at(mrb, mrb_obj_value(outer), name)) {
183
+ c = class_from_sym(mrb, outer, name);
184
+ if (super && mrb_class_real(c->super) != super) {
185
+ mrb_raisef(mrb, E_TYPE_ERROR, "superclass mismatch for Class %S (%S not %S)",
186
+ mrb_sym2str(mrb, name),
187
+ mrb_obj_value(c->super), mrb_obj_value(super));
185
188
  }
186
189
  return c;
187
190
  }
188
191
 
192
+ c = mrb_class_new(mrb, super);
193
+ setup_class(mrb, outer, c, name);
194
+
195
+ return c;
196
+ }
197
+
198
+ MRB_API struct RClass*
199
+ mrb_define_class_id(mrb_state *mrb, mrb_sym name, struct RClass *super)
200
+ {
201
+ if (!super) {
202
+ mrb_warn(mrb, "no super class for `%S', Object assumed", mrb_sym2str(mrb, name));
203
+ }
204
+ return define_class(mrb, name, super, mrb->object_class);
205
+ }
206
+
207
+ MRB_API struct RClass*
208
+ mrb_define_class(mrb_state *mrb, const char *name, struct RClass *super)
209
+ {
210
+ return mrb_define_class_id(mrb, mrb_intern_cstr(mrb, name), super);
211
+ }
212
+
213
+ static void
214
+ mrb_class_inherited(mrb_state *mrb, struct RClass *super, struct RClass *klass)
215
+ {
216
+ if (!super)
217
+ super = mrb->object_class;
218
+ mrb_funcall(mrb, mrb_obj_value(super), "inherited", 1, mrb_obj_value(klass));
219
+ }
220
+
221
+ MRB_API struct RClass*
222
+ mrb_vm_define_class(mrb_state *mrb, mrb_value outer, mrb_value super, mrb_sym id)
223
+ {
224
+ struct RClass *s;
225
+ struct RClass *c;
226
+
189
227
  if (!mrb_nil_p(super)) {
190
228
  if (mrb_type(super) != MRB_TT_CLASS) {
191
229
  mrb_raisef(mrb, E_TYPE_ERROR, "superclass must be a Class (%S given)", super);
@@ -193,17 +231,24 @@ mrb_vm_define_class(mrb_state *mrb, mrb_value outer, mrb_value super, mrb_sym id
193
231
  s = mrb_class_ptr(super);
194
232
  }
195
233
  else {
196
- s = mrb->object_class;
234
+ s = 0;
197
235
  }
198
-
199
- c = mrb_class_new(mrb, s);
200
- setup_class(mrb, outer, c, id);
201
- mrb_funcall(mrb, mrb_obj_value(s), "inherited", 1, mrb_obj_value(c));
236
+ switch (mrb_type(outer)) {
237
+ case MRB_TT_CLASS:
238
+ case MRB_TT_SCLASS:
239
+ case MRB_TT_MODULE:
240
+ break;
241
+ default:
242
+ mrb_raisef(mrb, E_TYPE_ERROR, "%S is not a class/module", outer);
243
+ break;
244
+ }
245
+ c = define_class(mrb, id, s, mrb_class_ptr(outer));
246
+ mrb_class_inherited(mrb, mrb_class_real(c->super), c);
202
247
 
203
248
  return c;
204
249
  }
205
250
 
206
- mrb_bool
251
+ MRB_API mrb_bool
207
252
  mrb_class_defined(mrb_state *mrb, const char *name)
208
253
  {
209
254
  mrb_value sym = mrb_check_intern_cstr(mrb, name);
@@ -213,27 +258,28 @@ mrb_class_defined(mrb_state *mrb, const char *name)
213
258
  return mrb_const_defined(mrb, mrb_obj_value(mrb->object_class), mrb_symbol(sym));
214
259
  }
215
260
 
216
- static struct RClass *
217
- class_from_sym(mrb_state *mrb, struct RClass *klass, mrb_sym id)
261
+ MRB_API struct RClass *
262
+ mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name)
218
263
  {
219
- mrb_value c = mrb_const_get(mrb, mrb_obj_value(klass), id);
220
-
221
- if (mrb_type(c) != MRB_TT_MODULE && mrb_type(c) != MRB_TT_CLASS) {
222
- mrb_raisef(mrb, E_TYPE_ERROR, "%S is not a class/module", mrb_sym2str(mrb, id));
223
- }
224
- return mrb_class_ptr(c);
264
+ return class_from_sym(mrb, outer, mrb_intern_cstr(mrb, name));
225
265
  }
226
266
 
227
- struct RClass *
267
+ MRB_API struct RClass *
228
268
  mrb_class_get(mrb_state *mrb, const char *name)
229
269
  {
230
270
  return mrb_class_get_under(mrb, mrb->object_class, name);
231
271
  }
232
272
 
233
- struct RClass *
234
- mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name)
273
+ MRB_API struct RClass *
274
+ mrb_module_get_under(mrb_state *mrb, struct RClass *outer, const char *name)
235
275
  {
236
- return class_from_sym(mrb, outer, mrb_intern_cstr(mrb, name));
276
+ return module_from_sym(mrb, outer, mrb_intern_cstr(mrb, name));
277
+ }
278
+
279
+ MRB_API struct RClass *
280
+ mrb_module_get(mrb_state *mrb, const char *name)
281
+ {
282
+ return mrb_module_get_under(mrb, mrb->object_class, name);
237
283
  }
238
284
 
239
285
  /*!
@@ -252,45 +298,24 @@ mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name)
252
298
  * \note if a class named \a name is already defined and its superclass is
253
299
  * \a super, the function just returns the defined class.
254
300
  */
255
- struct RClass *
301
+ MRB_API struct RClass *
256
302
  mrb_define_class_under(mrb_state *mrb, struct RClass *outer, const char *name, struct RClass *super)
257
303
  {
258
- struct RClass * c;
259
304
  mrb_sym id = mrb_intern_cstr(mrb, name);
260
-
261
- if (mrb_const_defined_at(mrb, outer, id)) {
262
- c = class_from_sym(mrb, outer, id);
263
- if (mrb_class_real(c->super) != super) {
264
- mrb_name_error(mrb, id, "%S is already defined", name);
265
- }
266
- return c;
267
- }
268
- if (!super) {
269
- mrb_warn(mrb, "no super class for `%S::%S', Object assumed", outer, name);
270
- }
271
- c = mrb_class_new(mrb, super);
272
- setup_class(mrb, mrb_obj_value(outer), c, id);
273
-
274
- return c;
275
- }
276
-
277
- struct RClass *
278
- mrb_define_module_under(mrb_state *mrb, struct RClass *outer, const char *name)
279
- {
280
305
  struct RClass * c;
281
- mrb_sym id = mrb_intern_cstr(mrb, name);
282
306
 
283
- if (mrb_const_defined_at(mrb, outer, id)) {
284
- c = class_from_sym(mrb, outer, id);
285
- return c;
307
+ #if 0
308
+ if (!super) {
309
+ mrb_warn(mrb, "no super class for `%S::%S', Object assumed",
310
+ mrb_obj_value(outer), mrb_sym2str(mrb, id));
286
311
  }
287
- c = mrb_module_new(mrb);
288
- setup_class(mrb, mrb_obj_value(outer), c, id);
289
-
312
+ #endif
313
+ c = define_class(mrb, id, super, outer);
314
+ setup_class(mrb, outer, c, id);
290
315
  return c;
291
316
  }
292
317
 
293
- void
318
+ MRB_API void
294
319
  mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, struct RProc *p)
295
320
  {
296
321
  khash_t(mt) *h = c->mt;
@@ -304,7 +329,7 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, struct RPro
304
329
  }
305
330
  }
306
331
 
307
- void
332
+ MRB_API void
308
333
  mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec)
309
334
  {
310
335
  struct RProc *p;
@@ -316,13 +341,13 @@ mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t f
316
341
  mrb_gc_arena_restore(mrb, ai);
317
342
  }
318
343
 
319
- void
344
+ MRB_API void
320
345
  mrb_define_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, mrb_aspec aspec)
321
346
  {
322
347
  mrb_define_method_id(mrb, c, mrb_intern_cstr(mrb, name), func, aspec);
323
348
  }
324
349
 
325
- void
350
+ MRB_API void
326
351
  mrb_define_method_vm(mrb_state *mrb, struct RClass *c, mrb_sym name, mrb_value body)
327
352
  {
328
353
  khash_t(mt) *h = c->mt;
@@ -338,6 +363,31 @@ mrb_define_method_vm(mrb_state *mrb, struct RClass *c, mrb_sym name, mrb_value b
338
363
  }
339
364
  }
340
365
 
366
+ /* a function to raise NotImplementedError with current method name */
367
+ MRB_API void
368
+ mrb_notimplement(mrb_state *mrb)
369
+ {
370
+ const char *str;
371
+ mrb_int len;
372
+ mrb_callinfo *ci = mrb->c->ci;
373
+
374
+ if (ci->mid) {
375
+ str = mrb_sym2name_len(mrb, ci->mid, &len);
376
+ mrb_raisef(mrb, E_NOTIMP_ERROR,
377
+ "%S() function is unimplemented on this machine",
378
+ mrb_str_new_static(mrb, str, (size_t)len));
379
+ }
380
+ }
381
+
382
+ /* a function to be replacement of unimplemented method */
383
+ MRB_API mrb_value
384
+ mrb_notimplement_m(mrb_state *mrb, mrb_value self)
385
+ {
386
+ mrb_notimplement(mrb);
387
+ /* not reached */
388
+ return mrb_nil_value();
389
+ }
390
+
341
391
  static mrb_value
342
392
  check_type(mrb_state *mrb, mrb_value val, enum mrb_vtype t, const char *c, const char *m)
343
393
  {
@@ -368,6 +418,21 @@ to_hash(mrb_state *mrb, mrb_value val)
368
418
  return check_type(mrb, val, MRB_TT_HASH, "Hash", "to_hash");
369
419
  }
370
420
 
421
+ static mrb_sym
422
+ to_sym(mrb_state *mrb, mrb_value ss)
423
+ {
424
+ if (mrb_type(ss) == MRB_TT_SYMBOL) {
425
+ return mrb_symbol(ss);
426
+ }
427
+ else if (mrb_string_p(ss)) {
428
+ return mrb_intern_str(mrb, to_str(mrb, ss));
429
+ }
430
+ else {
431
+ mrb_value obj = mrb_funcall(mrb, ss, "inspect", 0);
432
+ mrb_raisef(mrb, E_TYPE_ERROR, "%S is not a symbol", obj);
433
+ }
434
+ }
435
+
371
436
  /*
372
437
  retrieve arguments from mrb_state.
373
438
 
@@ -384,18 +449,20 @@ to_hash(mrb_state *mrb, mrb_value val)
384
449
  S: String [mrb_value]
385
450
  A: Array [mrb_value]
386
451
  H: Hash [mrb_value]
387
- s: String [char*,int] Receive two arguments.
452
+ s: String [char*,mrb_int] Receive two arguments.
388
453
  z: String [char*] NUL terminated string.
389
454
  a: Array [mrb_value*,mrb_int] Receive two arguments.
390
455
  f: Float [mrb_float]
391
456
  i: Integer [mrb_int]
392
457
  b: Boolean [mrb_bool]
393
458
  n: Symbol [mrb_sym]
459
+ d: Data [void*,mrb_data_type const] 2nd argument will be used to check data type so it won't be modified
394
460
  &: Block [mrb_value]
395
- *: rest argument [mrb_value*,int] Receive the rest of the arguments as an array.
461
+ *: rest argument [mrb_value*,mrb_int] Receive the rest of the arguments as an array.
396
462
  |: optional Next argument of '|' and later are optional.
463
+ ?: optional given [mrb_bool] true if preceding argument (optional) is given.
397
464
  */
398
- int
465
+ MRB_API mrb_int
399
466
  mrb_get_args(mrb_state *mrb, const char *format, ...)
400
467
  {
401
468
  char c;
@@ -403,7 +470,8 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
403
470
  mrb_value *sp = mrb->c->stack + 1;
404
471
  va_list ap;
405
472
  int argc = mrb->c->ci->argc;
406
- int opt = 0;
473
+ mrb_bool opt = FALSE;
474
+ mrb_bool given = TRUE;
407
475
 
408
476
  va_start(ap, format);
409
477
  if (argc < 0) {
@@ -414,11 +482,16 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
414
482
  }
415
483
  while ((c = *format++)) {
416
484
  switch (c) {
417
- case '|': case '*': case '&':
485
+ case '|': case '*': case '&': case '?':
418
486
  break;
419
487
  default:
420
- if (argc <= i && !opt) {
421
- mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments");
488
+ if (argc <= i) {
489
+ if (opt) {
490
+ given = FALSE;
491
+ }
492
+ else {
493
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments");
494
+ }
422
495
  }
423
496
  break;
424
497
  }
@@ -494,17 +567,15 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
494
567
  case 's':
495
568
  {
496
569
  mrb_value ss;
497
- struct RString *s;
498
570
  char **ps = 0;
499
- int *pl = 0;
571
+ mrb_int *pl = 0;
500
572
 
501
573
  ps = va_arg(ap, char**);
502
- pl = va_arg(ap, int*);
574
+ pl = va_arg(ap, mrb_int*);
503
575
  if (i < argc) {
504
576
  ss = to_str(mrb, *sp++);
505
- s = mrb_str_ptr(ss);
506
- *ps = s->ptr;
507
- *pl = s->len;
577
+ *ps = RSTRING_PTR(ss);
578
+ *pl = RSTRING_LEN(ss);
508
579
  i++;
509
580
  }
510
581
  }
@@ -512,22 +583,12 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
512
583
  case 'z':
513
584
  {
514
585
  mrb_value ss;
515
- struct RString *s;
516
- char **ps;
517
- mrb_int len;
586
+ const char **ps;
518
587
 
519
- ps = va_arg(ap, char**);
588
+ ps = va_arg(ap, const char**);
520
589
  if (i < argc) {
521
590
  ss = to_str(mrb, *sp++);
522
- s = mrb_str_ptr(ss);
523
- len = (mrb_int)strlen(s->ptr);
524
- if (len < s->len) {
525
- mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte");
526
- }
527
- else if (len > s->len) {
528
- mrb_str_modify(mrb, s);
529
- }
530
- *ps = s->ptr;
591
+ *ps = mrb_string_value_cstr(mrb, &ss);
531
592
  i++;
532
593
  }
533
594
  }
@@ -556,25 +617,7 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
556
617
 
557
618
  p = va_arg(ap, mrb_float*);
558
619
  if (i < argc) {
559
- switch (mrb_type(*sp)) {
560
- case MRB_TT_FLOAT:
561
- *p = mrb_float(*sp);
562
- break;
563
- case MRB_TT_FIXNUM:
564
- *p = (mrb_float)mrb_fixnum(*sp);
565
- break;
566
- case MRB_TT_STRING:
567
- mrb_raise(mrb, E_TYPE_ERROR, "String can't be coerced into Float");
568
- break;
569
- default:
570
- {
571
- mrb_value tmp;
572
-
573
- tmp = mrb_convert_type(mrb, *sp, MRB_TT_FLOAT, "Float", "to_f");
574
- *p = mrb_float(tmp);
575
- }
576
- break;
577
- }
620
+ *p = mrb_to_flo(mrb, *sp);
578
621
  sp++;
579
622
  i++;
580
623
  }
@@ -600,6 +643,9 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
600
643
  *p = (mrb_int)f;
601
644
  }
602
645
  break;
646
+ case MRB_TT_STRING:
647
+ mrb_raise(mrb, E_TYPE_ERROR, "no implicit conversion of String into Integer");
648
+ break;
603
649
  default:
604
650
  *p = mrb_fixnum(mrb_Integer(mrb, *sp));
605
651
  break;
@@ -629,20 +675,24 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
629
675
  mrb_value ss;
630
676
 
631
677
  ss = *sp++;
632
- if (mrb_type(ss) == MRB_TT_SYMBOL) {
633
- *symp = mrb_symbol(ss);
634
- }
635
- else if (mrb_string_p(ss)) {
636
- *symp = mrb_intern_str(mrb, to_str(mrb, ss));
637
- }
638
- else {
639
- mrb_value obj = mrb_funcall(mrb, ss, "inspect", 0);
640
- mrb_raisef(mrb, E_TYPE_ERROR, "%S is not a symbol", obj);
641
- }
678
+ *symp = to_sym(mrb, ss);
642
679
  i++;
643
680
  }
644
681
  }
645
682
  break;
683
+ case 'd':
684
+ {
685
+ void** datap;
686
+ struct mrb_data_type const* type;
687
+
688
+ datap = va_arg(ap, void**);
689
+ type = va_arg(ap, struct mrb_data_type const*);
690
+ if (i < argc) {
691
+ *datap = mrb_data_get_ptr(mrb, *sp++, type);
692
+ ++i;
693
+ }
694
+ }
695
+ break;
646
696
 
647
697
  case '&':
648
698
  {
@@ -659,16 +709,24 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
659
709
  }
660
710
  break;
661
711
  case '|':
662
- opt = 1;
712
+ opt = TRUE;
713
+ break;
714
+ case '?':
715
+ {
716
+ mrb_bool *p;
717
+
718
+ p = va_arg(ap, mrb_bool*);
719
+ *p = given;
720
+ }
663
721
  break;
664
722
 
665
723
  case '*':
666
724
  {
667
725
  mrb_value **var;
668
- int *pl;
726
+ mrb_int *pl;
669
727
 
670
728
  var = va_arg(ap, mrb_value**);
671
- pl = va_arg(ap, int*);
729
+ pl = va_arg(ap, mrb_int*);
672
730
  if (argc > i) {
673
731
  *pl = argc-i;
674
732
  if (*pl > 0) {
@@ -701,13 +759,18 @@ boot_defclass(mrb_state *mrb, struct RClass *super)
701
759
  struct RClass *c;
702
760
 
703
761
  c = (struct RClass*)mrb_obj_alloc(mrb, MRB_TT_CLASS, mrb->class_class);
704
- c->super = super ? super : mrb->object_class;
705
- mrb_field_write_barrier(mrb, (struct RBasic*)c, (struct RBasic*)super);
762
+ if (super) {
763
+ c->super = super;
764
+ mrb_field_write_barrier(mrb, (struct RBasic*)c, (struct RBasic*)super);
765
+ }
766
+ else {
767
+ c->super = mrb->object_class;
768
+ }
706
769
  c->mt = kh_init(mt, mrb);
707
770
  return c;
708
771
  }
709
772
 
710
- void
773
+ MRB_API void
711
774
  mrb_include_module(mrb_state *mrb, struct RClass *c, struct RClass *m)
712
775
  {
713
776
  struct RClass *ins_pos;
@@ -717,14 +780,14 @@ mrb_include_module(mrb_state *mrb, struct RClass *c, struct RClass *m)
717
780
  struct RClass *p = c, *ic;
718
781
  int superclass_seen = 0;
719
782
 
720
- if (c->mt == m->mt) {
783
+ if (c->mt && c->mt == m->mt) {
721
784
  mrb_raise(mrb, E_ARGUMENT_ERROR, "cyclic include detected");
722
785
  }
723
786
  while (p) {
724
787
  if (c != p && p->tt == MRB_TT_CLASS) {
725
788
  superclass_seen = 1;
726
789
  }
727
- else if (p->mt == m->mt){
790
+ else if (p->mt == m->mt) {
728
791
  if (p->tt == MRB_TT_ICLASS && !superclass_seen) {
729
792
  ins_pos = p;
730
793
  }
@@ -765,7 +828,7 @@ static mrb_value
765
828
  mrb_mod_include(mrb_state *mrb, mrb_value klass)
766
829
  {
767
830
  mrb_value *argv;
768
- int argc, i;
831
+ mrb_int argc, i;
769
832
 
770
833
  mrb_get_args(mrb, "*", &argv, &argc);
771
834
  for (i=0; i<argc; i++) {
@@ -866,7 +929,19 @@ mrb_mod_included_modules(mrb_state *mrb, mrb_value self)
866
929
  return result;
867
930
  }
868
931
 
869
- mrb_value class_instance_method_list(mrb_state*, mrb_bool, struct RClass*, int);
932
+ static mrb_value
933
+ mrb_mod_initialize(mrb_state *mrb, mrb_value mod)
934
+ {
935
+ mrb_value b;
936
+
937
+ mrb_get_args(mrb, "&", &b);
938
+ if (!mrb_nil_p(b)) {
939
+ mrb_yield_with_class(mrb, b, 1, &mod, mod, mrb_class_ptr(mod));
940
+ }
941
+ return mod;
942
+ }
943
+
944
+ mrb_value mrb_class_instance_method_list(mrb_state*, mrb_bool, struct RClass*, int);
870
945
 
871
946
  /* 15.2.2.4.33 */
872
947
  /*
@@ -902,42 +977,19 @@ mrb_mod_instance_methods(mrb_state *mrb, mrb_value mod)
902
977
  struct RClass *c = mrb_class_ptr(mod);
903
978
  mrb_bool recur = TRUE;
904
979
  mrb_get_args(mrb, "|b", &recur);
905
- return class_instance_method_list(mrb, recur, c, 0);
980
+ return mrb_class_instance_method_list(mrb, recur, c, 0);
906
981
  }
907
982
 
908
- mrb_value mrb_yield_internal(mrb_state *mrb, mrb_value b, int argc, mrb_value *argv, mrb_value self, struct RClass *c);
909
-
910
- /* 15.2.2.4.35 */
911
- /*
912
- * call-seq:
913
- * mod.class_eval {| | block } -> obj
914
- * mod.module_eval {| | block } -> obj
915
- *
916
- * Evaluates block in the context of _mod_. This can
917
- * be used to add methods to a class. <code>module_eval</code> returns
918
- * the result of evaluating its argument.
919
- */
920
-
921
- mrb_value
922
- mrb_mod_module_eval(mrb_state *mrb, mrb_value mod)
923
- {
924
- mrb_value a, b;
925
- struct RClass *c;
926
-
927
- if (mrb_get_args(mrb, "|S&", &a, &b) == 1) {
928
- mrb_raise(mrb, E_NOTIMP_ERROR, "module_eval/class_eval with string not implemented");
929
- }
930
- c = mrb_class_ptr(mod);
931
- return mrb_yield_internal(mrb, b, 0, 0, mod, c);
932
- }
983
+ /* implementation of module_eval/class_eval */
984
+ mrb_value mrb_mod_module_eval(mrb_state*, mrb_value);
933
985
 
934
- mrb_value
986
+ static mrb_value
935
987
  mrb_mod_dummy_visibility(mrb_state *mrb, mrb_value mod)
936
988
  {
937
989
  return mod;
938
990
  }
939
991
 
940
- mrb_value
992
+ MRB_API mrb_value
941
993
  mrb_singleton_class(mrb_state *mrb, mrb_value v)
942
994
  {
943
995
  struct RBasic *obj;
@@ -961,30 +1013,34 @@ mrb_singleton_class(mrb_state *mrb, mrb_value v)
961
1013
  }
962
1014
  obj = mrb_basic_ptr(v);
963
1015
  prepare_singleton_class(mrb, obj);
1016
+ if (mrb->c && mrb->c->ci && mrb->c->ci->target_class) {
1017
+ mrb_obj_iv_set(mrb, (struct RObject*)obj->c, mrb_intern_lit(mrb, "__outer__"),
1018
+ mrb_obj_value(mrb->c->ci->target_class));
1019
+ }
964
1020
  return mrb_obj_value(obj->c);
965
1021
  }
966
1022
 
967
- void
1023
+ MRB_API void
968
1024
  mrb_define_singleton_method(mrb_state *mrb, struct RObject *o, const char *name, mrb_func_t func, mrb_aspec aspec)
969
1025
  {
970
1026
  prepare_singleton_class(mrb, (struct RBasic*)o);
971
1027
  mrb_define_method_id(mrb, o->c, mrb_intern_cstr(mrb, name), func, aspec);
972
1028
  }
973
1029
 
974
- void
1030
+ MRB_API void
975
1031
  mrb_define_class_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, mrb_aspec aspec)
976
1032
  {
977
1033
  mrb_define_singleton_method(mrb, (struct RObject*)c, name, func, aspec);
978
1034
  }
979
1035
 
980
- void
1036
+ MRB_API void
981
1037
  mrb_define_module_function(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, mrb_aspec aspec)
982
1038
  {
983
1039
  mrb_define_class_method(mrb, c, name, func, aspec);
984
1040
  mrb_define_method(mrb, c, name, func, aspec);
985
1041
  }
986
1042
 
987
- struct RProc*
1043
+ MRB_API struct RProc*
988
1044
  mrb_method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid)
989
1045
  {
990
1046
  khiter_t k;
@@ -1005,10 +1061,10 @@ mrb_method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid)
1005
1061
  }
1006
1062
  c = c->super;
1007
1063
  }
1008
- return 0; /* no method */
1064
+ return NULL; /* no method */
1009
1065
  }
1010
1066
 
1011
- struct RProc*
1067
+ MRB_API struct RProc*
1012
1068
  mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid)
1013
1069
  {
1014
1070
  struct RProc *m;
@@ -1016,7 +1072,7 @@ mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid)
1016
1072
  m = mrb_method_search_vm(mrb, &c, mid);
1017
1073
  if (!m) {
1018
1074
  mrb_value inspect = mrb_funcall(mrb, mrb_obj_value(c), "inspect", 0);
1019
- if (RSTRING_LEN(inspect) > 64) {
1075
+ if (mrb_string_p(inspect) && RSTRING_LEN(inspect) > 64) {
1020
1076
  inspect = mrb_any_to_s(mrb, mrb_obj_value(c));
1021
1077
  }
1022
1078
  mrb_name_error(mrb, mid, "undefined method '%S' for class %S",
@@ -1025,6 +1081,91 @@ mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid)
1025
1081
  return m;
1026
1082
  }
1027
1083
 
1084
+ static mrb_value
1085
+ attr_reader(mrb_state *mrb, mrb_value obj)
1086
+ {
1087
+ mrb_value name = mrb_proc_cfunc_env_get(mrb, 0);
1088
+ return mrb_iv_get(mrb, obj, to_sym(mrb, name));
1089
+ }
1090
+
1091
+ static mrb_value
1092
+ mrb_mod_attr_reader(mrb_state *mrb, mrb_value mod)
1093
+ {
1094
+ struct RClass *c = mrb_class_ptr(mod);
1095
+ mrb_value *argv;
1096
+ mrb_int argc, i;
1097
+ int ai;
1098
+
1099
+ mrb_get_args(mrb, "*", &argv, &argc);
1100
+ ai = mrb_gc_arena_save(mrb);
1101
+ for (i=0; i<argc; i++) {
1102
+ mrb_value name, str;
1103
+ mrb_sym method, sym;
1104
+
1105
+ method = to_sym(mrb, argv[i]);
1106
+ name = mrb_sym2str(mrb, method);
1107
+ str = mrb_str_buf_new(mrb, RSTRING_LEN(name)+1);
1108
+ mrb_str_cat_lit(mrb, str, "@");
1109
+ mrb_str_cat_str(mrb, str, name);
1110
+ sym = mrb_intern_str(mrb, str);
1111
+ mrb_iv_check(mrb, sym);
1112
+ name = mrb_symbol_value(sym);
1113
+ mrb_define_method_raw(mrb, c, method,
1114
+ mrb_proc_new_cfunc_with_env(mrb, attr_reader, 1, &name));
1115
+ mrb_gc_arena_restore(mrb, ai);
1116
+ }
1117
+ return mrb_nil_value();
1118
+ }
1119
+
1120
+ static mrb_value
1121
+ attr_writer(mrb_state *mrb, mrb_value obj)
1122
+ {
1123
+ mrb_value name = mrb_proc_cfunc_env_get(mrb, 0);
1124
+ mrb_value val;
1125
+
1126
+ mrb_get_args(mrb, "o", &val);
1127
+ mrb_iv_set(mrb, obj, to_sym(mrb, name), val);
1128
+ return val;
1129
+ }
1130
+
1131
+ static mrb_value
1132
+ mrb_mod_attr_writer(mrb_state *mrb, mrb_value mod)
1133
+ {
1134
+ struct RClass *c = mrb_class_ptr(mod);
1135
+ mrb_value *argv;
1136
+ mrb_int argc, i;
1137
+ int ai;
1138
+
1139
+ mrb_get_args(mrb, "*", &argv, &argc);
1140
+ ai = mrb_gc_arena_save(mrb);
1141
+ for (i=0; i<argc; i++) {
1142
+ mrb_value name, str, attr;
1143
+ mrb_sym method, sym;
1144
+
1145
+ method = to_sym(mrb, argv[i]);
1146
+
1147
+ /* prepare iv name (@name) */
1148
+ name = mrb_sym2str(mrb, method);
1149
+ str = mrb_str_buf_new(mrb, RSTRING_LEN(name)+1);
1150
+ mrb_str_cat_lit(mrb, str, "@");
1151
+ mrb_str_cat_str(mrb, str, name);
1152
+ sym = mrb_intern_str(mrb, str);
1153
+ mrb_iv_check(mrb, sym);
1154
+ attr = mrb_symbol_value(sym);
1155
+
1156
+ /* prepare method name (name=) */
1157
+ str = mrb_str_buf_new(mrb, RSTRING_LEN(str));
1158
+ mrb_str_cat_str(mrb, str, name);
1159
+ mrb_str_cat_lit(mrb, str, "=");
1160
+ method = mrb_intern_str(mrb, str);
1161
+
1162
+ mrb_define_method_raw(mrb, c, method,
1163
+ mrb_proc_new_cfunc_with_env(mrb, attr_writer, 1, &attr));
1164
+ mrb_gc_arena_restore(mrb, ai);
1165
+ }
1166
+ return mrb_nil_value();
1167
+ }
1168
+
1028
1169
  static mrb_value
1029
1170
  mrb_instance_alloc(mrb_state *mrb, mrb_value cv)
1030
1171
  {
@@ -1052,22 +1193,22 @@ mrb_instance_alloc(mrb_state *mrb, mrb_value cv)
1052
1193
  *
1053
1194
  */
1054
1195
 
1055
- mrb_value
1196
+ MRB_API mrb_value
1056
1197
  mrb_instance_new(mrb_state *mrb, mrb_value cv)
1057
1198
  {
1058
1199
  mrb_value obj, blk;
1059
1200
  mrb_value *argv;
1060
- int argc;
1201
+ mrb_int argc;
1061
1202
 
1062
- obj = mrb_instance_alloc(mrb, cv);
1063
1203
  mrb_get_args(mrb, "*&", &argv, &argc, &blk);
1204
+ obj = mrb_instance_alloc(mrb, cv);
1064
1205
  mrb_funcall_with_block(mrb, obj, mrb_intern_lit(mrb, "initialize"), argc, argv, blk);
1065
1206
 
1066
1207
  return obj;
1067
1208
  }
1068
1209
 
1069
- mrb_value
1070
- mrb_obj_new(mrb_state *mrb, struct RClass *c, int argc, mrb_value *argv)
1210
+ MRB_API mrb_value
1211
+ mrb_obj_new(mrb_state *mrb, struct RClass *c, mrb_int argc, const mrb_value *argv)
1071
1212
  {
1072
1213
  mrb_value obj;
1073
1214
 
@@ -1077,24 +1218,36 @@ mrb_obj_new(mrb_state *mrb, struct RClass *c, int argc, mrb_value *argv)
1077
1218
  return obj;
1078
1219
  }
1079
1220
 
1221
+ static mrb_value
1222
+ mrb_class_initialize(mrb_state *mrb, mrb_value c)
1223
+ {
1224
+ mrb_value a, b;
1225
+
1226
+ mrb_get_args(mrb, "|C&", &a, &b);
1227
+ if (!mrb_nil_p(b)) {
1228
+ mrb_yield_with_class(mrb, b, 1, &c, c, mrb_class_ptr(c));
1229
+ }
1230
+ return c;
1231
+ }
1232
+
1080
1233
  static mrb_value
1081
1234
  mrb_class_new_class(mrb_state *mrb, mrb_value cv)
1082
1235
  {
1236
+ mrb_int n;
1083
1237
  mrb_value super, blk;
1084
1238
  mrb_value new_class;
1085
1239
 
1086
- if (mrb_get_args(mrb, "|C&", &super, &blk) == 0) {
1240
+ n = mrb_get_args(mrb, "|C&", &super, &blk);
1241
+ if (n == 0) {
1087
1242
  super = mrb_obj_value(mrb->object_class);
1088
1243
  }
1089
1244
  new_class = mrb_obj_value(mrb_class_new(mrb, mrb_class_ptr(super)));
1090
- if (!mrb_nil_p(blk)) {
1091
- mrb_funcall_with_block(mrb, new_class, mrb_intern_cstr(mrb, "class_eval"), 0, NULL, blk);
1092
- }
1093
- mrb_funcall(mrb, super, "inherited", 1, new_class);
1245
+ mrb_funcall_with_block(mrb, new_class, mrb_intern_lit(mrb, "initialize"), n, &super, blk);
1246
+ mrb_class_inherited(mrb, mrb_class_ptr(super), mrb_class_ptr(new_class));
1094
1247
  return new_class;
1095
1248
  }
1096
1249
 
1097
- mrb_value
1250
+ static mrb_value
1098
1251
  mrb_class_superclass(mrb_state *mrb, mrb_value klass)
1099
1252
  {
1100
1253
  struct RClass *c;
@@ -1158,28 +1311,33 @@ mrb_bob_missing(mrb_state *mrb, mrb_value mod)
1158
1311
  {
1159
1312
  mrb_sym name;
1160
1313
  mrb_value *a;
1161
- int alen;
1162
- mrb_value inspect;
1314
+ mrb_int alen;
1315
+ mrb_sym inspect;
1316
+ mrb_value repr;
1163
1317
 
1164
1318
  mrb_get_args(mrb, "n*", &name, &a, &alen);
1165
1319
 
1166
- if (mrb_respond_to(mrb,mod,mrb_intern_lit(mrb, "inspect"))){
1167
- inspect = mrb_funcall(mrb, mod, "inspect", 0);
1168
- if (RSTRING_LEN(inspect) > 64) {
1169
- inspect = mrb_any_to_s(mrb, mod);
1320
+ inspect = mrb_intern_lit(mrb, "inspect");
1321
+ if (mrb->c->ci > mrb->c->cibase && mrb->c->ci[-1].mid == inspect) {
1322
+ /* method missing in inspect; avoid recursion */
1323
+ repr = mrb_any_to_s(mrb, mod);
1324
+ }
1325
+ else if (mrb_respond_to(mrb, mod, inspect) && mrb->c->ci - mrb->c->cibase < 64) {
1326
+ repr = mrb_funcall_argv(mrb, mod, inspect, 0, 0);
1327
+ if (mrb_string_p(repr) && RSTRING_LEN(repr) > 64) {
1328
+ repr = mrb_any_to_s(mrb, mod);
1170
1329
  }
1171
1330
  }
1172
1331
  else {
1173
- inspect = mrb_any_to_s(mrb, mod);
1332
+ repr = mrb_any_to_s(mrb, mod);
1174
1333
  }
1175
1334
 
1176
- mrb_raisef(mrb, E_NOMETHOD_ERROR, "undefined method '%S' for %S",
1177
- mrb_sym2str(mrb, name), inspect);
1335
+ mrb_no_method_error(mrb, name, alen, a, "undefined method '%S' for %S", mrb_sym2str(mrb, name), repr);
1178
1336
  /* not reached */
1179
1337
  return mrb_nil_value();
1180
1338
  }
1181
1339
 
1182
- mrb_bool
1340
+ MRB_API mrb_bool
1183
1341
  mrb_obj_respond_to(mrb_state *mrb, struct RClass* c, mrb_sym mid)
1184
1342
  {
1185
1343
  khiter_t k;
@@ -1203,32 +1361,42 @@ mrb_obj_respond_to(mrb_state *mrb, struct RClass* c, mrb_sym mid)
1203
1361
  return FALSE; /* no method */
1204
1362
  }
1205
1363
 
1206
- mrb_bool
1364
+ MRB_API mrb_bool
1207
1365
  mrb_respond_to(mrb_state *mrb, mrb_value obj, mrb_sym mid)
1208
1366
  {
1209
1367
  return mrb_obj_respond_to(mrb, mrb_class(mrb, obj), mid);
1210
1368
  }
1211
1369
 
1212
- mrb_value
1370
+ MRB_API mrb_value
1213
1371
  mrb_class_path(mrb_state *mrb, struct RClass *c)
1214
1372
  {
1215
1373
  mrb_value path;
1216
1374
  const char *name;
1217
- size_t len;
1218
1375
  mrb_sym classpath = mrb_intern_lit(mrb, "__classpath__");
1219
1376
 
1220
1377
  path = mrb_obj_iv_get(mrb, (struct RObject*)c, classpath);
1221
1378
  if (mrb_nil_p(path)) {
1222
1379
  struct RClass *outer = mrb_class_outer_module(mrb, c);
1223
1380
  mrb_sym sym = mrb_class_sym(mrb, c, outer);
1381
+ mrb_int len;
1382
+
1224
1383
  if (sym == 0) {
1225
1384
  return mrb_nil_value();
1226
1385
  }
1227
1386
  else if (outer && outer != mrb->object_class) {
1228
1387
  mrb_value base = mrb_class_path(mrb, outer);
1229
- path = mrb_str_plus(mrb, base, mrb_str_new(mrb, "::", 2));
1388
+ path = mrb_str_buf_new(mrb, 0);
1389
+ if (mrb_nil_p(base)) {
1390
+ mrb_str_cat_lit(mrb, path, "#<Class:");
1391
+ mrb_str_concat(mrb, path, mrb_ptr_to_str(mrb, outer));
1392
+ mrb_str_cat_lit(mrb, path, ">");
1393
+ }
1394
+ else {
1395
+ mrb_str_concat(mrb, path, base);
1396
+ }
1397
+ mrb_str_cat_lit(mrb, path, "::");
1230
1398
  name = mrb_sym2name_len(mrb, sym, &len);
1231
- mrb_str_concat(mrb, path, mrb_str_new(mrb, name, len));
1399
+ mrb_str_cat(mrb, path, name, len);
1232
1400
  }
1233
1401
  else {
1234
1402
  name = mrb_sym2name_len(mrb, sym, &len);
@@ -1239,28 +1407,30 @@ mrb_class_path(mrb_state *mrb, struct RClass *c)
1239
1407
  return path;
1240
1408
  }
1241
1409
 
1242
- struct RClass *
1410
+ MRB_API struct RClass *
1243
1411
  mrb_class_real(struct RClass* cl)
1244
1412
  {
1413
+ if (cl == 0)
1414
+ return NULL;
1245
1415
  while ((cl->tt == MRB_TT_SCLASS) || (cl->tt == MRB_TT_ICLASS)) {
1246
1416
  cl = cl->super;
1247
1417
  }
1248
1418
  return cl;
1249
1419
  }
1250
1420
 
1251
- const char*
1421
+ MRB_API const char*
1252
1422
  mrb_class_name(mrb_state *mrb, struct RClass* c)
1253
1423
  {
1254
1424
  mrb_value path = mrb_class_path(mrb, c);
1255
1425
  if (mrb_nil_p(path)) {
1256
- path = mrb_str_new(mrb, "#<Class:", 8);
1426
+ path = mrb_str_new_lit(mrb, "#<Class:");
1257
1427
  mrb_str_concat(mrb, path, mrb_ptr_to_str(mrb, c));
1258
- mrb_str_cat(mrb, path, ">", 1);
1428
+ mrb_str_cat_lit(mrb, path, ">");
1259
1429
  }
1260
- return mrb_str_ptr(path)->ptr;
1430
+ return RSTRING_PTR(path);
1261
1431
  }
1262
1432
 
1263
- const char*
1433
+ MRB_API const char*
1264
1434
  mrb_obj_classname(mrb_state *mrb, mrb_value obj)
1265
1435
  {
1266
1436
  return mrb_class_name(mrb, mrb_obj_class(mrb, obj));
@@ -1272,7 +1442,7 @@ mrb_obj_classname(mrb_state *mrb, mrb_value obj)
1272
1442
  * \param super a reference to an object.
1273
1443
  * \exception TypeError if \a super is not a Class or \a super is a singleton class.
1274
1444
  */
1275
- void
1445
+ static void
1276
1446
  mrb_check_inheritable(mrb_state *mrb, struct RClass *super)
1277
1447
  {
1278
1448
  if (super->tt != MRB_TT_CLASS) {
@@ -1292,7 +1462,7 @@ mrb_check_inheritable(mrb_state *mrb, struct RClass *super)
1292
1462
  * \exception TypeError \a super is not inheritable.
1293
1463
  * \exception TypeError \a super is the Class class.
1294
1464
  */
1295
- struct RClass *
1465
+ MRB_API struct RClass*
1296
1466
  mrb_class_new(mrb_state *mrb, struct RClass *super)
1297
1467
  {
1298
1468
  struct RClass *c;
@@ -1301,7 +1471,7 @@ mrb_class_new(mrb_state *mrb, struct RClass *super)
1301
1471
  mrb_check_inheritable(mrb, super);
1302
1472
  }
1303
1473
  c = boot_defclass(mrb, super);
1304
- if (super){
1474
+ if (super) {
1305
1475
  MRB_SET_INSTANCE_TT(c, MRB_INSTANCE_TT(super));
1306
1476
  }
1307
1477
  make_metaclass(mrb, c);
@@ -1312,7 +1482,7 @@ mrb_class_new(mrb_state *mrb, struct RClass *super)
1312
1482
  /*!
1313
1483
  * Creates a new module.
1314
1484
  */
1315
- struct RClass *
1485
+ MRB_API struct RClass*
1316
1486
  mrb_module_new(mrb_state *mrb)
1317
1487
  {
1318
1488
  struct RClass *m = (struct RClass*)mrb_obj_alloc(mrb, MRB_TT_MODULE, mrb->module_class);
@@ -1335,13 +1505,13 @@ mrb_module_new(mrb_state *mrb)
1335
1505
  * self.class #=> Object
1336
1506
  */
1337
1507
 
1338
- struct RClass*
1508
+ MRB_API struct RClass*
1339
1509
  mrb_obj_class(mrb_state *mrb, mrb_value obj)
1340
1510
  {
1341
- return mrb_class_real(mrb_class(mrb, obj));
1511
+ return mrb_class_real(mrb_class(mrb, obj));
1342
1512
  }
1343
1513
 
1344
- void
1514
+ MRB_API void
1345
1515
  mrb_alias_method(mrb_state *mrb, struct RClass *c, mrb_sym a, mrb_sym b)
1346
1516
  {
1347
1517
  struct RProc *m = mrb_method_search(mrb, c, b);
@@ -1355,7 +1525,7 @@ mrb_alias_method(mrb_state *mrb, struct RClass *c, mrb_sym a, mrb_sym b)
1355
1525
  * \param name1 a new name for the method
1356
1526
  * \param name2 the original name of the method
1357
1527
  */
1358
- void
1528
+ MRB_API void
1359
1529
  mrb_define_alias(mrb_state *mrb, struct RClass *klass, const char *name1, const char *name2)
1360
1530
  {
1361
1531
  mrb_alias_method(mrb, klass, mrb_intern_cstr(mrb, name1), mrb_intern_cstr(mrb, name2));
@@ -1378,7 +1548,7 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass)
1378
1548
  if (mrb_type(klass) == MRB_TT_SCLASS) {
1379
1549
  mrb_value v = mrb_iv_get(mrb, klass, mrb_intern_lit(mrb, "__attached__"));
1380
1550
 
1381
- str = mrb_str_new(mrb, "#<Class:", 8);
1551
+ str = mrb_str_new_lit(mrb, "#<Class:");
1382
1552
 
1383
1553
  switch (mrb_type(v)) {
1384
1554
  case MRB_TT_CLASS:
@@ -1390,7 +1560,7 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass)
1390
1560
  mrb_str_append(mrb, str, mrb_any_to_s(mrb, v));
1391
1561
  break;
1392
1562
  }
1393
- mrb_str_cat(mrb, str, ">", 1);
1563
+ return mrb_str_cat_lit(mrb, str, ">");
1394
1564
  }
1395
1565
  else {
1396
1566
  struct RClass *c;
@@ -1403,30 +1573,28 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass)
1403
1573
  if (mrb_nil_p(path)) {
1404
1574
  switch (mrb_type(klass)) {
1405
1575
  case MRB_TT_CLASS:
1406
- mrb_str_cat(mrb, str, "#<Class:", 8);
1576
+ mrb_str_cat_lit(mrb, str, "#<Class:");
1407
1577
  break;
1408
1578
 
1409
1579
  case MRB_TT_MODULE:
1410
- mrb_str_cat(mrb, str, "#<Module:", 9);
1580
+ mrb_str_cat_lit(mrb, str, "#<Module:");
1411
1581
  break;
1412
1582
 
1413
1583
  default:
1414
1584
  /* Shouldn't be happened? */
1415
- mrb_str_cat(mrb, str, "#<??????:", 9);
1585
+ mrb_str_cat_lit(mrb, str, "#<??????:");
1416
1586
  break;
1417
1587
  }
1418
1588
  mrb_str_concat(mrb, str, mrb_ptr_to_str(mrb, c));
1419
- mrb_str_cat(mrb, str, ">", 1);
1589
+ return mrb_str_cat_lit(mrb, str, ">");
1420
1590
  }
1421
1591
  else {
1422
- str = path;
1592
+ return path;
1423
1593
  }
1424
1594
  }
1425
-
1426
- return str;
1427
1595
  }
1428
1596
 
1429
- mrb_value
1597
+ static mrb_value
1430
1598
  mrb_mod_alias(mrb_state *mrb, mrb_value mod)
1431
1599
  {
1432
1600
  struct RClass *c = mrb_class_ptr(mod);
@@ -1446,28 +1614,28 @@ undef_method(mrb_state *mrb, struct RClass *c, mrb_sym a)
1446
1614
  mrb_name_error(mrb, a, "undefined method '%S' for class '%S'", mrb_sym2str(mrb, a), mrb_obj_value(c));
1447
1615
  }
1448
1616
  else {
1449
- MRB_SET_VALUE(m, MRB_TT_PROC, value.p, 0);
1617
+ SET_PROC_VALUE(m, 0);
1450
1618
  mrb_define_method_vm(mrb, c, a, m);
1451
1619
  }
1452
1620
  }
1453
1621
 
1454
- void
1622
+ MRB_API void
1455
1623
  mrb_undef_method(mrb_state *mrb, struct RClass *c, const char *name)
1456
1624
  {
1457
1625
  undef_method(mrb, c, mrb_intern_cstr(mrb, name));
1458
1626
  }
1459
1627
 
1460
- void
1628
+ MRB_API void
1461
1629
  mrb_undef_class_method(mrb_state *mrb, struct RClass *c, const char *name)
1462
1630
  {
1463
1631
  mrb_undef_method(mrb, mrb_class_ptr(mrb_singleton_class(mrb, mrb_obj_value(c))), name);
1464
1632
  }
1465
1633
 
1466
- mrb_value
1634
+ static mrb_value
1467
1635
  mrb_mod_undef(mrb_state *mrb, mrb_value mod)
1468
1636
  {
1469
1637
  struct RClass *c = mrb_class_ptr(mod);
1470
- int argc;
1638
+ mrb_int argc;
1471
1639
  mrb_value *argv;
1472
1640
 
1473
1641
  mrb_get_args(mrb, "*", &argv, &argc);
@@ -1497,43 +1665,21 @@ mod_define_method(mrb_state *mrb, mrb_value self)
1497
1665
  return mrb_symbol_value(mid);
1498
1666
  }
1499
1667
 
1500
- static void
1501
- check_cv_name_sym(mrb_state *mrb, mrb_sym id)
1502
- {
1503
- const char *s;
1504
- size_t len;
1505
-
1506
- s = mrb_sym2name_len(mrb, id, &len);
1507
- if (len < 3 || !(s[0] == '@' && s[1] == '@')) {
1508
- mrb_name_error(mrb, id, "`%S' is not allowed as a class variable name", mrb_sym2str(mrb, id));
1509
- }
1510
- }
1511
-
1512
1668
  static void
1513
1669
  check_cv_name_str(mrb_state *mrb, mrb_value str)
1514
1670
  {
1515
1671
  const char *s = RSTRING_PTR(str);
1516
- size_t const len = RSTRING_LEN(str);
1672
+ mrb_int len = RSTRING_LEN(str);
1673
+
1517
1674
  if (len < 3 || !(s[0] == '@' && s[1] == '@')) {
1518
1675
  mrb_name_error(mrb, mrb_intern_str(mrb, str), "`%S' is not allowed as a class variable name", str);
1519
1676
  }
1520
1677
  }
1521
1678
 
1522
- static mrb_value
1523
- get_sym_or_str_arg(mrb_state *mrb)
1679
+ static void
1680
+ check_cv_name_sym(mrb_state *mrb, mrb_sym id)
1524
1681
  {
1525
- mrb_value sym_or_str;
1526
-
1527
- mrb_get_args(mrb, "o", &sym_or_str);
1528
-
1529
- if (mrb_symbol_p(sym_or_str) || mrb_string_p(sym_or_str)) {
1530
- return sym_or_str;
1531
- }
1532
- else {
1533
- mrb_value obj = mrb_funcall(mrb, sym_or_str, "inspect", 0);
1534
- mrb_raisef(mrb, E_TYPE_ERROR, "%S is not a symbol", obj);
1535
- return mrb_nil_value();
1536
- }
1682
+ check_cv_name_str(mrb, mrb_sym2str(mrb, id));
1537
1683
  }
1538
1684
 
1539
1685
  /* 15.2.2.4.16 */
@@ -1554,26 +1700,11 @@ get_sym_or_str_arg(mrb_state *mrb)
1554
1700
  static mrb_value
1555
1701
  mrb_mod_cvar_defined(mrb_state *mrb, mrb_value mod)
1556
1702
  {
1557
- mrb_value id;
1558
- mrb_bool defined_p;
1703
+ mrb_sym id;
1559
1704
 
1560
- id = get_sym_or_str_arg(mrb);
1561
- if (mrb_symbol_p(id)) {
1562
- check_cv_name_sym(mrb, mrb_symbol(id));
1563
- defined_p = mrb_cv_defined(mrb, mod, mrb_symbol(id));
1564
- }
1565
- else {
1566
- mrb_value sym;
1567
- check_cv_name_str(mrb, id);
1568
- sym = mrb_check_intern_str(mrb, id);
1569
- if (mrb_nil_p(sym)) {
1570
- defined_p = FALSE;
1571
- }
1572
- else {
1573
- defined_p = mrb_cv_defined(mrb, mod, mrb_symbol(sym));
1574
- }
1575
- }
1576
- return mrb_bool_value(defined_p);
1705
+ mrb_get_args(mrb, "n", &id);
1706
+ check_cv_name_sym(mrb, id);
1707
+ return mrb_bool_value(mrb_cv_defined(mrb, mod, id));
1577
1708
  }
1578
1709
 
1579
1710
  /* 15.2.2.4.17 */
@@ -1654,7 +1785,7 @@ mrb_mod_cvar_set(mrb_state *mrb, mrb_value mod)
1654
1785
  * []
1655
1786
  */
1656
1787
 
1657
- mrb_value
1788
+ static mrb_value
1658
1789
  mrb_mod_remove_cvar(mrb_state *mrb, mrb_value mod)
1659
1790
  {
1660
1791
  mrb_value val;
@@ -1666,7 +1797,7 @@ mrb_mod_remove_cvar(mrb_state *mrb, mrb_value mod)
1666
1797
  val = mrb_iv_remove(mrb, mod, id);
1667
1798
  if (!mrb_undef_p(val)) return val;
1668
1799
 
1669
- if (mrb_cv_defined(mrb, mod, id)){
1800
+ if (mrb_cv_defined(mrb, mod, id)) {
1670
1801
  mrb_name_error(mrb, id, "cannot remove %S for %S",
1671
1802
  mrb_sym2str(mrb, id), mod);
1672
1803
  }
@@ -1708,23 +1839,10 @@ mrb_mod_remove_cvar(mrb_state *mrb, mrb_value mod)
1708
1839
  static mrb_value
1709
1840
  mrb_mod_method_defined(mrb_state *mrb, mrb_value mod)
1710
1841
  {
1711
- mrb_value id;
1712
- mrb_bool method_defined_p;
1842
+ mrb_sym id;
1713
1843
 
1714
- id = get_sym_or_str_arg(mrb);
1715
- if (mrb_symbol_p(id)) {
1716
- method_defined_p = mrb_obj_respond_to(mrb, mrb_class_ptr(mod), mrb_symbol(id));
1717
- }
1718
- else {
1719
- mrb_value sym = mrb_check_intern_str(mrb, id);
1720
- if (mrb_nil_p(sym)) {
1721
- method_defined_p = FALSE;
1722
- }
1723
- else {
1724
- method_defined_p = mrb_obj_respond_to(mrb, mrb_class_ptr(mod), mrb_symbol(sym));
1725
- }
1726
- }
1727
- return mrb_bool_value(method_defined_p);
1844
+ mrb_get_args(mrb, "n", &id);
1845
+ return mrb_bool_value(mrb_obj_respond_to(mrb, mrb_class_ptr(mod), id));
1728
1846
  }
1729
1847
 
1730
1848
  static void
@@ -1755,10 +1873,10 @@ remove_method(mrb_state *mrb, mrb_value mod, mrb_sym mid)
1755
1873
  * class. For an example, see <code>Module.undef_method</code>.
1756
1874
  */
1757
1875
 
1758
- mrb_value
1876
+ static mrb_value
1759
1877
  mrb_mod_remove_method(mrb_state *mrb, mrb_value mod)
1760
1878
  {
1761
- int argc;
1879
+ mrb_int argc;
1762
1880
  mrb_value *argv;
1763
1881
 
1764
1882
  mrb_get_args(mrb, "*", &argv, &argc);
@@ -1769,17 +1887,7 @@ mrb_mod_remove_method(mrb_state *mrb, mrb_value mod)
1769
1887
  return mod;
1770
1888
  }
1771
1889
 
1772
- static void
1773
- check_const_name_sym(mrb_state *mrb, mrb_sym id)
1774
- {
1775
- const char *s;
1776
- size_t len;
1777
1890
 
1778
- s = mrb_sym2name_len(mrb, id, &len);
1779
- if (len < 1 || !ISUPPER(*s)) {
1780
- mrb_name_error(mrb, id, "wrong constant name %S", mrb_sym2str(mrb, id));
1781
- }
1782
- }
1783
1891
 
1784
1892
  static void
1785
1893
  check_const_name_str(mrb_state *mrb, mrb_value str)
@@ -1789,33 +1897,33 @@ check_const_name_str(mrb_state *mrb, mrb_value str)
1789
1897
  }
1790
1898
  }
1791
1899
 
1792
- mrb_value
1793
- mrb_mod_const_defined(mrb_state *mrb, mrb_value mod)
1900
+ static void
1901
+ check_const_name_sym(mrb_state *mrb, mrb_sym id)
1794
1902
  {
1795
- mrb_value id;
1796
- mrb_bool const_defined_p;
1903
+ check_const_name_str(mrb, mrb_sym2str(mrb, id));
1904
+ }
1797
1905
 
1798
- id = get_sym_or_str_arg(mrb);
1799
- if (mrb_type(id) == MRB_TT_SYMBOL) {
1800
- check_const_name_sym(mrb, mrb_symbol(id));
1801
- const_defined_p = mrb_const_defined(mrb, mod, mrb_symbol(id));
1802
- }
1803
- else {
1804
- mrb_value sym;
1805
- check_const_name_str(mrb, id);
1806
- sym = mrb_check_intern_str(mrb, id);
1807
- if (mrb_nil_p(sym)) {
1808
- const_defined_p = FALSE;
1809
- }
1810
- else {
1811
- const_defined_p = mrb_const_defined(mrb, mod, mrb_symbol(sym));
1812
- }
1906
+ static mrb_value
1907
+ const_defined(mrb_state *mrb, mrb_value mod, mrb_sym id, mrb_bool inherit)
1908
+ {
1909
+ if (inherit) {
1910
+ return mrb_bool_value(mrb_const_defined(mrb, mod, id));
1813
1911
  }
1912
+ return mrb_bool_value(mrb_const_defined_at(mrb, mod, id));
1913
+ }
1914
+
1915
+ static mrb_value
1916
+ mrb_mod_const_defined(mrb_state *mrb, mrb_value mod)
1917
+ {
1918
+ mrb_sym id;
1919
+ mrb_bool inherit = TRUE;
1814
1920
 
1815
- return mrb_bool_value(const_defined_p);
1921
+ mrb_get_args(mrb, "n|b", &id, &inherit);
1922
+ check_const_name_sym(mrb, id);
1923
+ return const_defined(mrb, mod, id, inherit);
1816
1924
  }
1817
1925
 
1818
- mrb_value
1926
+ static mrb_value
1819
1927
  mrb_mod_const_get(mrb_state *mrb, mrb_value mod)
1820
1928
  {
1821
1929
  mrb_sym id;
@@ -1825,7 +1933,7 @@ mrb_mod_const_get(mrb_state *mrb, mrb_value mod)
1825
1933
  return mrb_const_get(mrb, mod, id);
1826
1934
  }
1827
1935
 
1828
- mrb_value
1936
+ static mrb_value
1829
1937
  mrb_mod_const_set(mrb_state *mrb, mrb_value mod)
1830
1938
  {
1831
1939
  mrb_sym id;
@@ -1837,7 +1945,7 @@ mrb_mod_const_set(mrb_state *mrb, mrb_value mod)
1837
1945
  return value;
1838
1946
  }
1839
1947
 
1840
- mrb_value
1948
+ static mrb_value
1841
1949
  mrb_mod_remove_const(mrb_state *mrb, mrb_value mod)
1842
1950
  {
1843
1951
  mrb_sym id;
@@ -1852,14 +1960,22 @@ mrb_mod_remove_const(mrb_state *mrb, mrb_value mod)
1852
1960
  return val;
1853
1961
  }
1854
1962
 
1855
- mrb_value
1963
+ static mrb_value
1856
1964
  mrb_mod_const_missing(mrb_state *mrb, mrb_value mod)
1857
1965
  {
1858
1966
  mrb_sym sym;
1859
1967
 
1860
1968
  mrb_get_args(mrb, "n", &sym);
1861
- mrb_name_error(mrb, sym, "uninitialized constant %S",
1862
- mrb_sym2str(mrb, sym));
1969
+
1970
+ if (mrb_class_real(mrb_class_ptr(mod)) != mrb->object_class) {
1971
+ mrb_name_error(mrb, sym, "uninitialized constant %S::%S",
1972
+ mod,
1973
+ mrb_sym2str(mrb, sym));
1974
+ }
1975
+ else {
1976
+ mrb_name_error(mrb, sym, "uninitialized constant %S",
1977
+ mrb_sym2str(mrb, sym));
1978
+ }
1863
1979
  /* not reached */
1864
1980
  return mrb_nil_value();
1865
1981
  }
@@ -1883,6 +1999,43 @@ mrb_mod_eqq(mrb_state *mrb, mrb_value mod)
1883
1999
  return mrb_bool_value(eqq);
1884
2000
  }
1885
2001
 
2002
+ MRB_API mrb_value
2003
+ mrb_mod_module_function(mrb_state *mrb, mrb_value mod)
2004
+ {
2005
+ mrb_value *argv;
2006
+ mrb_int argc, i;
2007
+ mrb_sym mid;
2008
+ struct RProc *method_rproc;
2009
+ struct RClass *rclass;
2010
+ int ai;
2011
+
2012
+ mrb_check_type(mrb, mod, MRB_TT_MODULE);
2013
+
2014
+ mrb_get_args(mrb, "*", &argv, &argc);
2015
+ if(argc == 0) {
2016
+ /* set MODFUNC SCOPE if implemented */
2017
+ return mod;
2018
+ }
2019
+
2020
+ /* set PRIVATE method visibility if implemented */
2021
+ /* mrb_mod_dummy_visibility(mrb, mod); */
2022
+
2023
+ for (i=0; i<argc; i++) {
2024
+ mrb_check_type(mrb, argv[i], MRB_TT_SYMBOL);
2025
+
2026
+ mid = mrb_symbol(argv[i]);
2027
+ rclass = mrb_class_ptr(mod);
2028
+ method_rproc = mrb_method_search(mrb, rclass, mid);
2029
+
2030
+ prepare_singleton_class(mrb, (struct RBasic*)rclass);
2031
+ ai = mrb_gc_arena_save(mrb);
2032
+ mrb_define_method_raw(mrb, rclass->c, mid, method_rproc);
2033
+ mrb_gc_arena_restore(mrb, ai);
2034
+ }
2035
+
2036
+ return mod;
2037
+ }
2038
+
1886
2039
  void
1887
2040
  mrb_init_class(mrb_state *mrb)
1888
2041
  {
@@ -1890,7 +2043,6 @@ mrb_init_class(mrb_state *mrb)
1890
2043
  struct RClass *obj; /* Object */
1891
2044
  struct RClass *mod; /* Module */
1892
2045
  struct RClass *cls; /* Class */
1893
- //struct RClass *krn; /* Kernel */
1894
2046
 
1895
2047
  /* boot class hierarchy */
1896
2048
  bob = boot_defclass(mrb, 0);
@@ -1912,19 +2064,23 @@ mrb_init_class(mrb_state *mrb)
1912
2064
  mrb_define_const(mrb, obj, "Class", mrb_obj_value(cls));
1913
2065
 
1914
2066
  /* name each classes */
1915
- mrb_name_class(mrb, bob, mrb_intern_lit(mrb, "BasicObject"));
1916
- mrb_name_class(mrb, obj, mrb_intern_lit(mrb, "Object"));
1917
- mrb_name_class(mrb, mod, mrb_intern_lit(mrb, "Module"));
1918
- mrb_name_class(mrb, cls, mrb_intern_lit(mrb, "Class"));
2067
+ name_class(mrb, bob, mrb_intern_lit(mrb, "BasicObject"));
2068
+ name_class(mrb, obj, mrb_intern_lit(mrb, "Object")); /* 15.2.1 */
2069
+ name_class(mrb, mod, mrb_intern_lit(mrb, "Module")); /* 15.2.2 */
2070
+ name_class(mrb, cls, mrb_intern_lit(mrb, "Class")); /* 15.2.3 */
2071
+
2072
+ mrb->proc_class = mrb_define_class(mrb, "Proc", mrb->object_class); /* 15.2.17 */
2073
+ MRB_SET_INSTANCE_TT(mrb->proc_class, MRB_TT_PROC);
1919
2074
 
1920
2075
  MRB_SET_INSTANCE_TT(cls, MRB_TT_CLASS);
1921
2076
  mrb_define_method(mrb, bob, "initialize", mrb_bob_init, MRB_ARGS_NONE());
1922
2077
  mrb_define_method(mrb, bob, "!", mrb_bob_not, MRB_ARGS_NONE());
1923
2078
  mrb_define_method(mrb, bob, "method_missing", mrb_bob_missing, MRB_ARGS_ANY()); /* 15.3.1.3.30 */
1924
2079
 
1925
- mrb_define_class_method(mrb, cls, "new", mrb_class_new_class, MRB_ARGS_ANY());
2080
+ mrb_define_class_method(mrb, cls, "new", mrb_class_new_class, MRB_ARGS_OPT(1));
1926
2081
  mrb_define_method(mrb, cls, "superclass", mrb_class_superclass, MRB_ARGS_NONE()); /* 15.2.3.3.4 */
1927
2082
  mrb_define_method(mrb, cls, "new", mrb_instance_new, MRB_ARGS_ANY()); /* 15.2.3.3.3 */
2083
+ mrb_define_method(mrb, cls, "initialize", mrb_class_initialize, MRB_ARGS_OPT(1)); /* 15.2.3.3.1 */
1928
2084
  mrb_define_method(mrb, cls, "inherited", mrb_bob_init, MRB_ARGS_REQ(1));
1929
2085
 
1930
2086
  MRB_SET_INSTANCE_TT(mod, MRB_TT_MODULE);
@@ -1939,23 +2095,27 @@ mrb_init_class(mrb_state *mrb)
1939
2095
  mrb_define_method(mrb, mod, "class_eval", mrb_mod_module_eval, MRB_ARGS_ANY()); /* 15.2.2.4.15 */
1940
2096
  mrb_define_method(mrb, mod, "included", mrb_bob_init, MRB_ARGS_REQ(1)); /* 15.2.2.4.29 */
1941
2097
  mrb_define_method(mrb, mod, "included_modules", mrb_mod_included_modules, MRB_ARGS_NONE()); /* 15.2.2.4.30 */
2098
+ mrb_define_method(mrb, mod, "initialize", mrb_mod_initialize, MRB_ARGS_NONE()); /* 15.2.2.4.31 */
1942
2099
  mrb_define_method(mrb, mod, "instance_methods", mrb_mod_instance_methods, MRB_ARGS_ANY()); /* 15.2.2.4.33 */
1943
2100
  mrb_define_method(mrb, mod, "method_defined?", mrb_mod_method_defined, MRB_ARGS_REQ(1)); /* 15.2.2.4.34 */
1944
2101
  mrb_define_method(mrb, mod, "module_eval", mrb_mod_module_eval, MRB_ARGS_ANY()); /* 15.2.2.4.35 */
2102
+ mrb_define_method(mrb, mod, "module_function", mrb_mod_module_function, MRB_ARGS_ANY());
1945
2103
  mrb_define_method(mrb, mod, "private", mrb_mod_dummy_visibility, MRB_ARGS_ANY()); /* 15.2.2.4.36 */
1946
2104
  mrb_define_method(mrb, mod, "protected", mrb_mod_dummy_visibility, MRB_ARGS_ANY()); /* 15.2.2.4.37 */
1947
2105
  mrb_define_method(mrb, mod, "public", mrb_mod_dummy_visibility, MRB_ARGS_ANY()); /* 15.2.2.4.38 */
1948
2106
  mrb_define_method(mrb, mod, "remove_class_variable", mrb_mod_remove_cvar, MRB_ARGS_REQ(1)); /* 15.2.2.4.39 */
1949
2107
  mrb_define_method(mrb, mod, "remove_method", mrb_mod_remove_method, MRB_ARGS_ANY()); /* 15.2.2.4.41 */
2108
+ mrb_define_method(mrb, mod, "attr_reader", mrb_mod_attr_reader, MRB_ARGS_ANY()); /* 15.2.2.4.13 */
2109
+ mrb_define_method(mrb, mod, "attr_writer", mrb_mod_attr_writer, MRB_ARGS_ANY()); /* 15.2.2.4.14 */
1950
2110
  mrb_define_method(mrb, mod, "to_s", mrb_mod_to_s, MRB_ARGS_NONE());
1951
2111
  mrb_define_method(mrb, mod, "inspect", mrb_mod_to_s, MRB_ARGS_NONE());
1952
2112
  mrb_define_method(mrb, mod, "alias_method", mrb_mod_alias, MRB_ARGS_ANY()); /* 15.2.2.4.8 */
1953
2113
  mrb_define_method(mrb, mod, "ancestors", mrb_mod_ancestors, MRB_ARGS_NONE()); /* 15.2.2.4.9 */
1954
2114
  mrb_define_method(mrb, mod, "undef_method", mrb_mod_undef, MRB_ARGS_ANY()); /* 15.2.2.4.41 */
1955
- mrb_define_method(mrb, mod, "const_defined?", mrb_mod_const_defined, MRB_ARGS_REQ(1)); /* 15.2.2.4.20 */
2115
+ mrb_define_method(mrb, mod, "const_defined?", mrb_mod_const_defined, MRB_ARGS_ARG(1,1)); /* 15.2.2.4.20 */
1956
2116
  mrb_define_method(mrb, mod, "const_get", mrb_mod_const_get, MRB_ARGS_REQ(1)); /* 15.2.2.4.21 */
1957
2117
  mrb_define_method(mrb, mod, "const_set", mrb_mod_const_set, MRB_ARGS_REQ(2)); /* 15.2.2.4.23 */
1958
- mrb_define_method(mrb, mod, "constants", mrb_mod_constants, MRB_ARGS_NONE()); /* 15.2.2.4.24 */
2118
+ mrb_define_method(mrb, mod, "constants", mrb_mod_constants, MRB_ARGS_OPT(1)); /* 15.2.2.4.24 */
1959
2119
  mrb_define_method(mrb, mod, "remove_const", mrb_mod_remove_const, MRB_ARGS_REQ(1)); /* 15.2.2.4.40 */
1960
2120
  mrb_define_method(mrb, mod, "const_missing", mrb_mod_const_missing, MRB_ARGS_REQ(1));
1961
2121
  mrb_define_method(mrb, mod, "define_method", mod_define_method, MRB_ARGS_REQ(1));