webruby 0.1.0

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 (1364) hide show
  1. checksums.yaml +7 -0
  2. data/bin/webruby +36 -0
  3. data/driver/driver.c +50 -0
  4. data/driver/main.c +40 -0
  5. data/lib/webruby/app.rb +13 -0
  6. data/lib/webruby/config.rb +61 -0
  7. data/lib/webruby/environment.rb +32 -0
  8. data/lib/webruby/rake/files.rake +66 -0
  9. data/lib/webruby/rake/general.rake +22 -0
  10. data/lib/webruby/rake/mruby.rake +44 -0
  11. data/lib/webruby/utility.rb +132 -0
  12. data/lib/webruby.rb +10 -0
  13. data/modules/emscripten/AUTHORS +89 -0
  14. data/modules/emscripten/LICENSE +68 -0
  15. data/modules/emscripten/README.markdown +14 -0
  16. data/modules/emscripten/cmake/Platform/Emscripten.cmake +61 -0
  17. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +24 -0
  18. data/modules/emscripten/em++ +12 -0
  19. data/modules/emscripten/em++.bat +2 -0
  20. data/modules/emscripten/em-config +24 -0
  21. data/modules/emscripten/em-config.bat +2 -0
  22. data/modules/emscripten/emar +24 -0
  23. data/modules/emscripten/emar.bat +2 -0
  24. data/modules/emscripten/emcc +1744 -0
  25. data/modules/emscripten/emcc.bat +2 -0
  26. data/modules/emscripten/emcc.py +5 -0
  27. data/modules/emscripten/emconfigure +27 -0
  28. data/modules/emscripten/emconfigure.bat +2 -0
  29. data/modules/emscripten/emlibtool +11 -0
  30. data/modules/emscripten/emlibtool.bat +2 -0
  31. data/modules/emscripten/emlink.py +293 -0
  32. data/modules/emscripten/emmake +29 -0
  33. data/modules/emscripten/emmake.bat +2 -0
  34. data/modules/emscripten/emranlib +9 -0
  35. data/modules/emscripten/emranlib.bat +2 -0
  36. data/modules/emscripten/emscons +20 -0
  37. data/modules/emscripten/emscripten.py +835 -0
  38. data/modules/emscripten/patches/README +4 -0
  39. data/modules/emscripten/patches/series +2 -0
  40. data/modules/emscripten/scons-tools/closure.py +28 -0
  41. data/modules/emscripten/scons-tools/emscripten.py +359 -0
  42. data/modules/emscripten/scons-tools/llvm.py +33 -0
  43. data/modules/emscripten/src/analyzer.js +1695 -0
  44. data/modules/emscripten/src/compiler.html +48 -0
  45. data/modules/emscripten/src/compiler.js +298 -0
  46. data/modules/emscripten/src/corruptionCheck.js +98 -0
  47. data/modules/emscripten/src/determinstic.js +20 -0
  48. data/modules/emscripten/src/embind/embind.js +1677 -0
  49. data/modules/emscripten/src/embind/emval.js +283 -0
  50. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +97 -0
  51. data/modules/emscripten/src/experimental/batching.diff +44 -0
  52. data/modules/emscripten/src/experimental/functypeopt.diff +113 -0
  53. data/modules/emscripten/src/experimental/multiple_heaps.diff +175 -0
  54. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +197 -0
  55. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +124 -0
  56. data/modules/emscripten/src/experimental/remove__label__s.diff +140 -0
  57. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +99 -0
  58. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +57 -0
  59. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +336 -0
  60. data/modules/emscripten/src/experimental/stringCache.diff +147 -0
  61. data/modules/emscripten/src/fastLong.js +299 -0
  62. data/modules/emscripten/src/framework.js +257 -0
  63. data/modules/emscripten/src/gl-matrix.js +1952 -0
  64. data/modules/emscripten/src/headless.js +904 -0
  65. data/modules/emscripten/src/intertyper.js +1050 -0
  66. data/modules/emscripten/src/jsifier.js +1827 -0
  67. data/modules/emscripten/src/library.js +8270 -0
  68. data/modules/emscripten/src/library_browser.js +911 -0
  69. data/modules/emscripten/src/library_egl.js +491 -0
  70. data/modules/emscripten/src/library_gc.js +236 -0
  71. data/modules/emscripten/src/library_gl.js +4452 -0
  72. data/modules/emscripten/src/library_glfw.js +576 -0
  73. data/modules/emscripten/src/library_glut.js +449 -0
  74. data/modules/emscripten/src/library_jansson.js +320 -0
  75. data/modules/emscripten/src/library_openal.js +602 -0
  76. data/modules/emscripten/src/library_sdl.js +2024 -0
  77. data/modules/emscripten/src/library_strtok_r.c +97 -0
  78. data/modules/emscripten/src/library_xlib.js +23 -0
  79. data/modules/emscripten/src/long.js +1609 -0
  80. data/modules/emscripten/src/modules.js +491 -0
  81. data/modules/emscripten/src/parseTools.js +2474 -0
  82. data/modules/emscripten/src/postamble.js +170 -0
  83. data/modules/emscripten/src/postamble_sharedlib.js +16 -0
  84. data/modules/emscripten/src/preamble.js +914 -0
  85. data/modules/emscripten/src/preamble_sharedlib.js +25 -0
  86. data/modules/emscripten/src/relooper/README.markdown +14 -0
  87. data/modules/emscripten/src/relooper/Relooper.cpp +1236 -0
  88. data/modules/emscripten/src/relooper/Relooper.h +250 -0
  89. data/modules/emscripten/src/relooper/doit.sh +70 -0
  90. data/modules/emscripten/src/relooper/emscripten/glue.js +57 -0
  91. data/modules/emscripten/src/relooper/emscripten/test.js +44 -0
  92. data/modules/emscripten/src/relooper/fuzzer.py +116 -0
  93. data/modules/emscripten/src/relooper/ministring.h +35 -0
  94. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  95. data/modules/emscripten/src/relooper/test.cpp +262 -0
  96. data/modules/emscripten/src/relooper/test.txt +155 -0
  97. data/modules/emscripten/src/relooper/test2.c +44 -0
  98. data/modules/emscripten/src/relooper/test2.txt +12 -0
  99. data/modules/emscripten/src/relooper/test3.c +42 -0
  100. data/modules/emscripten/src/relooper/test3.txt +27 -0
  101. data/modules/emscripten/src/relooper/test4.cpp +40 -0
  102. data/modules/emscripten/src/relooper/test4.txt +23 -0
  103. data/modules/emscripten/src/relooper/test5.cpp +40 -0
  104. data/modules/emscripten/src/relooper/test5.txt +32 -0
  105. data/modules/emscripten/src/relooper/test6.cpp +31 -0
  106. data/modules/emscripten/src/relooper/test6.txt +12 -0
  107. data/modules/emscripten/src/relooper/test_dead.cpp +28 -0
  108. data/modules/emscripten/src/relooper/test_dead.txt +9 -0
  109. data/modules/emscripten/src/relooper/test_debug.cpp +30 -0
  110. data/modules/emscripten/src/relooper/test_debug.txt +128 -0
  111. data/modules/emscripten/src/relooper/test_fuzz1.cpp +52 -0
  112. data/modules/emscripten/src/relooper/test_fuzz1.txt +32 -0
  113. data/modules/emscripten/src/relooper/test_fuzz2.cpp +34 -0
  114. data/modules/emscripten/src/relooper/test_fuzz2.txt +13 -0
  115. data/modules/emscripten/src/relooper/test_fuzz3.cpp +36 -0
  116. data/modules/emscripten/src/relooper/test_fuzz3.txt +9 -0
  117. data/modules/emscripten/src/relooper/test_fuzz4.cpp +38 -0
  118. data/modules/emscripten/src/relooper/test_fuzz4.txt +19 -0
  119. data/modules/emscripten/src/relooper/test_fuzz5.cpp +57 -0
  120. data/modules/emscripten/src/relooper/test_fuzz5.txt +52 -0
  121. data/modules/emscripten/src/relooper/test_fuzz6.cpp +322 -0
  122. data/modules/emscripten/src/relooper/test_fuzz6.txt +108 -0
  123. data/modules/emscripten/src/relooper/test_inf.cpp +813 -0
  124. data/modules/emscripten/src/relooper/test_inf.txt +385 -0
  125. data/modules/emscripten/src/relooper/testit.sh +62 -0
  126. data/modules/emscripten/src/relooper/updateit.sh +17 -0
  127. data/modules/emscripten/src/relooper.js +11516 -0
  128. data/modules/emscripten/src/relooper.js.raw.js +11511 -0
  129. data/modules/emscripten/src/runtime.js +546 -0
  130. data/modules/emscripten/src/settings.js +1284 -0
  131. data/modules/emscripten/src/shell.html +92 -0
  132. data/modules/emscripten/src/shell.js +153 -0
  133. data/modules/emscripten/src/shell_sharedlib.js +12 -0
  134. data/modules/emscripten/src/socket.io.js +3870 -0
  135. data/modules/emscripten/src/utility.js +379 -0
  136. data/modules/emscripten/src/wrtcp.js +821 -0
  137. data/modules/emscripten/system/include/AL/al.h +172 -0
  138. data/modules/emscripten/system/include/AL/alc.h +84 -0
  139. data/modules/emscripten/system/include/EGL/egl.h +329 -0
  140. data/modules/emscripten/system/include/EGL/eglext.h +398 -0
  141. data/modules/emscripten/system/include/EGL/eglplatform.h +141 -0
  142. data/modules/emscripten/system/include/GL/freeglut_std.h +628 -0
  143. data/modules/emscripten/system/include/GL/gl.h +2241 -0
  144. data/modules/emscripten/system/include/GL/glew.h +6 -0
  145. data/modules/emscripten/system/include/GL/glext.h +11127 -0
  146. data/modules/emscripten/system/include/GL/glfw.h +518 -0
  147. data/modules/emscripten/system/include/GL/glu.h +353 -0
  148. data/modules/emscripten/system/include/GL/glut.h +21 -0
  149. data/modules/emscripten/system/include/GLES/gl.h +770 -0
  150. data/modules/emscripten/system/include/GLES/glext.h +1278 -0
  151. data/modules/emscripten/system/include/GLES/glplatform.h +30 -0
  152. data/modules/emscripten/system/include/GLES2/gl2.h +621 -0
  153. data/modules/emscripten/system/include/GLES2/gl2ext.h +803 -0
  154. data/modules/emscripten/system/include/GLES2/gl2platform.h +30 -0
  155. data/modules/emscripten/system/include/KHR/khrplatform.h +277 -0
  156. data/modules/emscripten/system/include/SDL/COPYING +19 -0
  157. data/modules/emscripten/system/include/SDL/SDL.h +162 -0
  158. data/modules/emscripten/system/include/SDL/SDL_assert.h +241 -0
  159. data/modules/emscripten/system/include/SDL/SDL_atomic.h +318 -0
  160. data/modules/emscripten/system/include/SDL/SDL_audio.h +509 -0
  161. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +60 -0
  162. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +75 -0
  163. data/modules/emscripten/system/include/SDL/SDL_compat.h +365 -0
  164. data/modules/emscripten/system/include/SDL/SDL_config.h +48 -0
  165. data/modules/emscripten/system/include/SDL/SDL_config.h.in +297 -0
  166. data/modules/emscripten/system/include/SDL/SDL_config_android.h +133 -0
  167. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +148 -0
  168. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +172 -0
  169. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +74 -0
  170. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +129 -0
  171. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +125 -0
  172. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +207 -0
  173. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +119 -0
  174. data/modules/emscripten/system/include/SDL/SDL_copying.h +20 -0
  175. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +150 -0
  176. data/modules/emscripten/system/include/SDL/SDL_endian.h +248 -0
  177. data/modules/emscripten/system/include/SDL/SDL_error.h +77 -0
  178. data/modules/emscripten/system/include/SDL/SDL_events.h +639 -0
  179. data/modules/emscripten/system/include/SDL/SDL_gesture.h +91 -0
  180. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +246 -0
  181. data/modules/emscripten/system/include/SDL/SDL_haptic.h +1200 -0
  182. data/modules/emscripten/system/include/SDL/SDL_hints.h +206 -0
  183. data/modules/emscripten/system/include/SDL/SDL_image.h +138 -0
  184. data/modules/emscripten/system/include/SDL/SDL_input.h +87 -0
  185. data/modules/emscripten/system/include/SDL/SDL_joystick.h +208 -0
  186. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +169 -0
  187. data/modules/emscripten/system/include/SDL/SDL_keycode.h +344 -0
  188. data/modules/emscripten/system/include/SDL/SDL_loadso.h +85 -0
  189. data/modules/emscripten/system/include/SDL/SDL_log.h +211 -0
  190. data/modules/emscripten/system/include/SDL/SDL_main.h +98 -0
  191. data/modules/emscripten/system/include/SDL/SDL_mixer.h +634 -0
  192. data/modules/emscripten/system/include/SDL/SDL_mouse.h +213 -0
  193. data/modules/emscripten/system/include/SDL/SDL_mutex.h +248 -0
  194. data/modules/emscripten/system/include/SDL/SDL_name.h +11 -0
  195. data/modules/emscripten/system/include/SDL/SDL_opengl.h +11116 -0
  196. data/modules/emscripten/system/include/SDL/SDL_opengles.h +38 -0
  197. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +38 -0
  198. data/modules/emscripten/system/include/SDL/SDL_pixels.h +423 -0
  199. data/modules/emscripten/system/include/SDL/SDL_platform.h +160 -0
  200. data/modules/emscripten/system/include/SDL/SDL_power.h +79 -0
  201. data/modules/emscripten/system/include/SDL/SDL_quit.h +58 -0
  202. data/modules/emscripten/system/include/SDL/SDL_rect.h +136 -0
  203. data/modules/emscripten/system/include/SDL/SDL_render.h +615 -0
  204. data/modules/emscripten/system/include/SDL/SDL_revision.h +2 -0
  205. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +2 -0
  206. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +123 -0
  207. data/modules/emscripten/system/include/SDL/SDL_rwops.h +220 -0
  208. data/modules/emscripten/system/include/SDL/SDL_scancode.h +398 -0
  209. data/modules/emscripten/system/include/SDL/SDL_shape.h +147 -0
  210. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +764 -0
  211. data/modules/emscripten/system/include/SDL/SDL_surface.h +499 -0
  212. data/modules/emscripten/system/include/SDL/SDL_syswm.h +241 -0
  213. data/modules/emscripten/system/include/SDL/SDL_thread.h +182 -0
  214. data/modules/emscripten/system/include/SDL/SDL_timer.h +108 -0
  215. data/modules/emscripten/system/include/SDL/SDL_touch.h +124 -0
  216. data/modules/emscripten/system/include/SDL/SDL_ttf.h +249 -0
  217. data/modules/emscripten/system/include/SDL/SDL_types.h +29 -0
  218. data/modules/emscripten/system/include/SDL/SDL_version.h +166 -0
  219. data/modules/emscripten/system/include/SDL/SDL_video.h +820 -0
  220. data/modules/emscripten/system/include/SDL/begin_code.h +135 -0
  221. data/modules/emscripten/system/include/SDL/close_code.h +37 -0
  222. data/modules/emscripten/system/include/X11/X.h +717 -0
  223. data/modules/emscripten/system/include/X11/Xatom.h +79 -0
  224. data/modules/emscripten/system/include/X11/Xfuncproto.h +127 -0
  225. data/modules/emscripten/system/include/X11/Xlib.h +4023 -0
  226. data/modules/emscripten/system/include/X11/Xosdefs.h +116 -0
  227. data/modules/emscripten/system/include/X11/Xutil.h +826 -0
  228. data/modules/emscripten/system/include/X11/keysym.h +73 -0
  229. data/modules/emscripten/system/include/X11/keysymdef.h +2389 -0
  230. data/modules/emscripten/system/include/bsd/float.h +91 -0
  231. data/modules/emscripten/system/include/bsd/readme.txt +2 -0
  232. data/modules/emscripten/system/include/bsd/sys/mman.h +180 -0
  233. data/modules/emscripten/system/include/bsd/sys/utsname.h +70 -0
  234. data/modules/emscripten/system/include/dlfcn.h +31 -0
  235. data/modules/emscripten/system/include/emscripten/bind.h +1210 -0
  236. data/modules/emscripten/system/include/emscripten/emscripten.h +388 -0
  237. data/modules/emscripten/system/include/emscripten/val.h +311 -0
  238. data/modules/emscripten/system/include/emscripten/wire.h +393 -0
  239. data/modules/emscripten/system/include/err.h +95 -0
  240. data/modules/emscripten/system/include/execinfo.h +44 -0
  241. data/modules/emscripten/system/include/features.h +3 -0
  242. data/modules/emscripten/system/include/gc.h +70 -0
  243. data/modules/emscripten/system/include/gfx/png.h +3798 -0
  244. data/modules/emscripten/system/include/gfx/pngconf.h +1665 -0
  245. data/modules/emscripten/system/include/gfx/tiff.h +654 -0
  246. data/modules/emscripten/system/include/gfx/tiffconf.h +104 -0
  247. data/modules/emscripten/system/include/gfx/tiffio.h +526 -0
  248. data/modules/emscripten/system/include/gfx/tiffvers.h +9 -0
  249. data/modules/emscripten/system/include/jansson.h +323 -0
  250. data/modules/emscripten/system/include/jansson_config.h +54 -0
  251. data/modules/emscripten/system/include/libc/_ansi.h +135 -0
  252. data/modules/emscripten/system/include/libc/_syslist.h +40 -0
  253. data/modules/emscripten/system/include/libc/alloca.h +21 -0
  254. data/modules/emscripten/system/include/libc/ar.h +69 -0
  255. data/modules/emscripten/system/include/libc/argz.h +33 -0
  256. data/modules/emscripten/system/include/libc/assert.h +46 -0
  257. data/modules/emscripten/system/include/libc/complex.h +124 -0
  258. data/modules/emscripten/system/include/libc/ctype.h +196 -0
  259. data/modules/emscripten/system/include/libc/dirent.h +16 -0
  260. data/modules/emscripten/system/include/libc/endian.h +3 -0
  261. data/modules/emscripten/system/include/libc/envlock.h +15 -0
  262. data/modules/emscripten/system/include/libc/envz.h +16 -0
  263. data/modules/emscripten/system/include/libc/errno.h +11 -0
  264. data/modules/emscripten/system/include/libc/fastmath.h +13 -0
  265. data/modules/emscripten/system/include/libc/fcntl.h +1 -0
  266. data/modules/emscripten/system/include/libc/fnmatch.h +55 -0
  267. data/modules/emscripten/system/include/libc/getopt.h +196 -0
  268. data/modules/emscripten/system/include/libc/glob.h +89 -0
  269. data/modules/emscripten/system/include/libc/grp.h +94 -0
  270. data/modules/emscripten/system/include/libc/iconv.h +62 -0
  271. data/modules/emscripten/system/include/libc/ieeefp.h +256 -0
  272. data/modules/emscripten/system/include/libc/ifaddrs.h +64 -0
  273. data/modules/emscripten/system/include/libc/inttypes.h +290 -0
  274. data/modules/emscripten/system/include/libc/iso646.h +43 -0
  275. data/modules/emscripten/system/include/libc/langinfo.h +316 -0
  276. data/modules/emscripten/system/include/libc/libgen.h +23 -0
  277. data/modules/emscripten/system/include/libc/limits.h +155 -0
  278. data/modules/emscripten/system/include/libc/locale.h +80 -0
  279. data/modules/emscripten/system/include/libc/machine/_default_types.h +121 -0
  280. data/modules/emscripten/system/include/libc/machine/_types.h +8 -0
  281. data/modules/emscripten/system/include/libc/machine/ansi.h +1 -0
  282. data/modules/emscripten/system/include/libc/machine/endian.h +31 -0
  283. data/modules/emscripten/system/include/libc/machine/fastmath.h +100 -0
  284. data/modules/emscripten/system/include/libc/machine/ieeefp.h +376 -0
  285. data/modules/emscripten/system/include/libc/machine/malloc.h +8 -0
  286. data/modules/emscripten/system/include/libc/machine/param.h +1 -0
  287. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +43 -0
  288. data/modules/emscripten/system/include/libc/machine/setjmp.h +361 -0
  289. data/modules/emscripten/system/include/libc/machine/stdlib.h +8 -0
  290. data/modules/emscripten/system/include/libc/machine/termios.h +1 -0
  291. data/modules/emscripten/system/include/libc/machine/time.h +19 -0
  292. data/modules/emscripten/system/include/libc/machine/types.h +30 -0
  293. data/modules/emscripten/system/include/libc/malloc.h +169 -0
  294. data/modules/emscripten/system/include/libc/math.h +594 -0
  295. data/modules/emscripten/system/include/libc/newlib.h +2 -0
  296. data/modules/emscripten/system/include/libc/paths.h +7 -0
  297. data/modules/emscripten/system/include/libc/process.h +44 -0
  298. data/modules/emscripten/system/include/libc/pthread.h +362 -0
  299. data/modules/emscripten/system/include/libc/pwd.h +78 -0
  300. data/modules/emscripten/system/include/libc/readme.txt +3 -0
  301. data/modules/emscripten/system/include/libc/reent.h +183 -0
  302. data/modules/emscripten/system/include/libc/regdef.h +7 -0
  303. data/modules/emscripten/system/include/libc/regex.h +102 -0
  304. data/modules/emscripten/system/include/libc/sched.h +97 -0
  305. data/modules/emscripten/system/include/libc/search.h +59 -0
  306. data/modules/emscripten/system/include/libc/setjmp.h +20 -0
  307. data/modules/emscripten/system/include/libc/signal.h +30 -0
  308. data/modules/emscripten/system/include/libc/stdarg.h +50 -0
  309. data/modules/emscripten/system/include/libc/stddef.h +64 -0
  310. data/modules/emscripten/system/include/libc/stdint.h +493 -0
  311. data/modules/emscripten/system/include/libc/stdio.h +694 -0
  312. data/modules/emscripten/system/include/libc/stdlib.h +230 -0
  313. data/modules/emscripten/system/include/libc/string.h +105 -0
  314. data/modules/emscripten/system/include/libc/strings.h +35 -0
  315. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +223 -0
  316. data/modules/emscripten/system/include/libc/sys/_types.h +93 -0
  317. data/modules/emscripten/system/include/libc/sys/cdefs.h +123 -0
  318. data/modules/emscripten/system/include/libc/sys/config.h +255 -0
  319. data/modules/emscripten/system/include/libc/sys/custom_file.h +2 -0
  320. data/modules/emscripten/system/include/libc/sys/dir.h +10 -0
  321. data/modules/emscripten/system/include/libc/sys/dirent.h +58 -0
  322. data/modules/emscripten/system/include/libc/sys/errno.h +190 -0
  323. data/modules/emscripten/system/include/libc/sys/fcntl.h +4 -0
  324. data/modules/emscripten/system/include/libc/sys/features.h +212 -0
  325. data/modules/emscripten/system/include/libc/sys/file.h +2 -0
  326. data/modules/emscripten/system/include/libc/sys/iconvnls.h +77 -0
  327. data/modules/emscripten/system/include/libc/sys/lock.h +24 -0
  328. data/modules/emscripten/system/include/libc/sys/param.h +25 -0
  329. data/modules/emscripten/system/include/libc/sys/queue.h +471 -0
  330. data/modules/emscripten/system/include/libc/sys/reent.h +843 -0
  331. data/modules/emscripten/system/include/libc/sys/resource.h +59 -0
  332. data/modules/emscripten/system/include/libc/sys/sched.h +67 -0
  333. data/modules/emscripten/system/include/libc/sys/signal.h +314 -0
  334. data/modules/emscripten/system/include/libc/sys/stat.h +222 -0
  335. data/modules/emscripten/system/include/libc/sys/stdio.h +27 -0
  336. data/modules/emscripten/system/include/libc/sys/string.h +2 -0
  337. data/modules/emscripten/system/include/libc/sys/syslimits.h +65 -0
  338. data/modules/emscripten/system/include/libc/sys/termios.h +280 -0
  339. data/modules/emscripten/system/include/libc/sys/time.h +85 -0
  340. data/modules/emscripten/system/include/libc/sys/timeb.h +39 -0
  341. data/modules/emscripten/system/include/libc/sys/times.h +28 -0
  342. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +97 -0
  343. data/modules/emscripten/system/include/libc/sys/types.h +481 -0
  344. data/modules/emscripten/system/include/libc/sys/unistd.h +514 -0
  345. data/modules/emscripten/system/include/libc/sys/utime.h +26 -0
  346. data/modules/emscripten/system/include/libc/sys/wait.h +40 -0
  347. data/modules/emscripten/system/include/libc/tar.h +39 -0
  348. data/modules/emscripten/system/include/libc/termios.h +7 -0
  349. data/modules/emscripten/system/include/libc/time.h +273 -0
  350. data/modules/emscripten/system/include/libc/unctrl.h +46 -0
  351. data/modules/emscripten/system/include/libc/unistd.h +6 -0
  352. data/modules/emscripten/system/include/libc/utime.h +12 -0
  353. data/modules/emscripten/system/include/libc/utmp.h +8 -0
  354. data/modules/emscripten/system/include/libc/wchar.h +194 -0
  355. data/modules/emscripten/system/include/libc/wctype.h +47 -0
  356. data/modules/emscripten/system/include/libc/wordexp.h +53 -0
  357. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +91 -0
  358. data/modules/emscripten/system/include/libcxx/LICENSE.txt +76 -0
  359. data/modules/emscripten/system/include/libcxx/__bit_reference +1268 -0
  360. data/modules/emscripten/system/include/libcxx/__config +485 -0
  361. data/modules/emscripten/system/include/libcxx/__debug +193 -0
  362. data/modules/emscripten/system/include/libcxx/__functional_03 +2130 -0
  363. data/modules/emscripten/system/include/libcxx/__functional_base +437 -0
  364. data/modules/emscripten/system/include/libcxx/__functional_base_03 +1087 -0
  365. data/modules/emscripten/system/include/libcxx/__hash_table +1945 -0
  366. data/modules/emscripten/system/include/libcxx/__locale +1435 -0
  367. data/modules/emscripten/system/include/libcxx/__mutex_base +438 -0
  368. data/modules/emscripten/system/include/libcxx/__split_buffer +654 -0
  369. data/modules/emscripten/system/include/libcxx/__sso_allocator +77 -0
  370. data/modules/emscripten/system/include/libcxx/__std_stream +317 -0
  371. data/modules/emscripten/system/include/libcxx/__tree +2293 -0
  372. data/modules/emscripten/system/include/libcxx/__tuple +305 -0
  373. data/modules/emscripten/system/include/libcxx/__tuple_03 +27 -0
  374. data/modules/emscripten/system/include/libcxx/__undef_min_max +19 -0
  375. data/modules/emscripten/system/include/libcxx/algorithm +5458 -0
  376. data/modules/emscripten/system/include/libcxx/array +341 -0
  377. data/modules/emscripten/system/include/libcxx/atomic +1521 -0
  378. data/modules/emscripten/system/include/libcxx/bitset +1081 -0
  379. data/modules/emscripten/system/include/libcxx/cassert +25 -0
  380. data/modules/emscripten/system/include/libcxx/ccomplex +29 -0
  381. data/modules/emscripten/system/include/libcxx/cctype +164 -0
  382. data/modules/emscripten/system/include/libcxx/cerrno +393 -0
  383. data/modules/emscripten/system/include/libcxx/cfenv +82 -0
  384. data/modules/emscripten/system/include/libcxx/cfloat +78 -0
  385. data/modules/emscripten/system/include/libcxx/chrono +898 -0
  386. data/modules/emscripten/system/include/libcxx/cinttypes +259 -0
  387. data/modules/emscripten/system/include/libcxx/ciso646 +25 -0
  388. data/modules/emscripten/system/include/libcxx/climits +48 -0
  389. data/modules/emscripten/system/include/libcxx/clocale +53 -0
  390. data/modules/emscripten/system/include/libcxx/cmath +1683 -0
  391. data/modules/emscripten/system/include/libcxx/codecvt +547 -0
  392. data/modules/emscripten/system/include/libcxx/complex +1526 -0
  393. data/modules/emscripten/system/include/libcxx/complex.h +35 -0
  394. data/modules/emscripten/system/include/libcxx/condition_variable +256 -0
  395. data/modules/emscripten/system/include/libcxx/csetjmp +52 -0
  396. data/modules/emscripten/system/include/libcxx/csignal +58 -0
  397. data/modules/emscripten/system/include/libcxx/cstdarg +48 -0
  398. data/modules/emscripten/system/include/libcxx/cstdbool +32 -0
  399. data/modules/emscripten/system/include/libcxx/cstddef +103 -0
  400. data/modules/emscripten/system/include/libcxx/cstdint +191 -0
  401. data/modules/emscripten/system/include/libcxx/cstdio +175 -0
  402. data/modules/emscripten/system/include/libcxx/cstdlib +172 -0
  403. data/modules/emscripten/system/include/libcxx/cstring +112 -0
  404. data/modules/emscripten/system/include/libcxx/ctgmath +29 -0
  405. data/modules/emscripten/system/include/libcxx/ctime +72 -0
  406. data/modules/emscripten/system/include/libcxx/cwchar +208 -0
  407. data/modules/emscripten/system/include/libcxx/cwctype +213 -0
  408. data/modules/emscripten/system/include/libcxx/deque +2846 -0
  409. data/modules/emscripten/system/include/libcxx/exception +250 -0
  410. data/modules/emscripten/system/include/libcxx/ext/__hash +46 -0
  411. data/modules/emscripten/system/include/libcxx/ext/hash_map +1003 -0
  412. data/modules/emscripten/system/include/libcxx/ext/hash_set +657 -0
  413. data/modules/emscripten/system/include/libcxx/forward_list +1636 -0
  414. data/modules/emscripten/system/include/libcxx/fstream +1415 -0
  415. data/modules/emscripten/system/include/libcxx/functional +2063 -0
  416. data/modules/emscripten/system/include/libcxx/future +2505 -0
  417. data/modules/emscripten/system/include/libcxx/initializer_list +105 -0
  418. data/modules/emscripten/system/include/libcxx/iomanip +504 -0
  419. data/modules/emscripten/system/include/libcxx/ios +988 -0
  420. data/modules/emscripten/system/include/libcxx/iosfwd +194 -0
  421. data/modules/emscripten/system/include/libcxx/iostream +60 -0
  422. data/modules/emscripten/system/include/libcxx/istream +1713 -0
  423. data/modules/emscripten/system/include/libcxx/iterator +1869 -0
  424. data/modules/emscripten/system/include/libcxx/limits +809 -0
  425. data/modules/emscripten/system/include/libcxx/list +2275 -0
  426. data/modules/emscripten/system/include/libcxx/locale +4591 -0
  427. data/modules/emscripten/system/include/libcxx/map +1924 -0
  428. data/modules/emscripten/system/include/libcxx/memory +5437 -0
  429. data/modules/emscripten/system/include/libcxx/mutex +566 -0
  430. data/modules/emscripten/system/include/libcxx/new +117 -0
  431. data/modules/emscripten/system/include/libcxx/numeric +197 -0
  432. data/modules/emscripten/system/include/libcxx/ostream +1286 -0
  433. data/modules/emscripten/system/include/libcxx/queue +717 -0
  434. data/modules/emscripten/system/include/libcxx/random +6750 -0
  435. data/modules/emscripten/system/include/libcxx/ratio +487 -0
  436. data/modules/emscripten/system/include/libcxx/readme.txt +1 -0
  437. data/modules/emscripten/system/include/libcxx/regex +6439 -0
  438. data/modules/emscripten/system/include/libcxx/scoped_allocator +578 -0
  439. data/modules/emscripten/system/include/libcxx/set +1025 -0
  440. data/modules/emscripten/system/include/libcxx/sstream +888 -0
  441. data/modules/emscripten/system/include/libcxx/stack +292 -0
  442. data/modules/emscripten/system/include/libcxx/stdexcept +162 -0
  443. data/modules/emscripten/system/include/libcxx/streambuf +564 -0
  444. data/modules/emscripten/system/include/libcxx/string +3987 -0
  445. data/modules/emscripten/system/include/libcxx/strstream +400 -0
  446. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +5 -0
  447. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +38 -0
  448. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +146 -0
  449. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +79 -0
  450. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +116 -0
  451. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +113 -0
  452. data/modules/emscripten/system/include/libcxx/support/win32/support.h +115 -0
  453. data/modules/emscripten/system/include/libcxx/system_error +636 -0
  454. data/modules/emscripten/system/include/libcxx/tgmath.h +29 -0
  455. data/modules/emscripten/system/include/libcxx/thread +459 -0
  456. data/modules/emscripten/system/include/libcxx/tuple +1092 -0
  457. data/modules/emscripten/system/include/libcxx/type_traits +3040 -0
  458. data/modules/emscripten/system/include/libcxx/typeindex +103 -0
  459. data/modules/emscripten/system/include/libcxx/typeinfo +124 -0
  460. data/modules/emscripten/system/include/libcxx/unordered_map +1864 -0
  461. data/modules/emscripten/system/include/libcxx/unordered_set +1144 -0
  462. data/modules/emscripten/system/include/libcxx/utility +583 -0
  463. data/modules/emscripten/system/include/libcxx/valarray +4779 -0
  464. data/modules/emscripten/system/include/libcxx/vector +3228 -0
  465. data/modules/emscripten/system/include/memory.h +10 -0
  466. data/modules/emscripten/system/include/mntent.h +23 -0
  467. data/modules/emscripten/system/include/net/arpa/inet.h +32 -0
  468. data/modules/emscripten/system/include/net/arpa/nameser.h +535 -0
  469. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +187 -0
  470. data/modules/emscripten/system/include/net/if.h +87 -0
  471. data/modules/emscripten/system/include/net/netinet/in.h +166 -0
  472. data/modules/emscripten/system/include/net/netinet/tcp.h +246 -0
  473. data/modules/emscripten/system/include/net/resolv.h +389 -0
  474. data/modules/emscripten/system/include/netdb.h +94 -0
  475. data/modules/emscripten/system/include/nl_types.h +19 -0
  476. data/modules/emscripten/system/include/poll.h +3 -0
  477. data/modules/emscripten/system/include/pty.h +6 -0
  478. data/modules/emscripten/system/include/semaphore.h +31 -0
  479. data/modules/emscripten/system/include/spawn.h +105 -0
  480. data/modules/emscripten/system/include/stdbool.h +16 -0
  481. data/modules/emscripten/system/include/sys/bitypes.h +3 -0
  482. data/modules/emscripten/system/include/sys/io.h +14 -0
  483. data/modules/emscripten/system/include/sys/ioctl.h +26 -0
  484. data/modules/emscripten/system/include/sys/poll.h +31 -0
  485. data/modules/emscripten/system/include/sys/select.h +14 -0
  486. data/modules/emscripten/system/include/sys/socket.h +101 -0
  487. data/modules/emscripten/system/include/sys/socketvar.h +3 -0
  488. data/modules/emscripten/system/include/sys/statvfs.h +32 -0
  489. data/modules/emscripten/system/include/sys/sysctl.h +14 -0
  490. data/modules/emscripten/system/include/sys/uio.h +22 -0
  491. data/modules/emscripten/system/include/sys/un.h +66 -0
  492. data/modules/emscripten/system/include/sysexits.h +108 -0
  493. data/modules/emscripten/system/include/unwind.h +154 -0
  494. data/modules/emscripten/system/include/xlocale.h +47 -0
  495. data/modules/emscripten/system/include/zconf.h +428 -0
  496. data/modules/emscripten/system/include/zlib.h +1613 -0
  497. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +97 -0
  498. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +47 -0
  499. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +116 -0
  500. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +46 -0
  501. data/modules/emscripten/system/lib/compiler-rt/int_math.h +67 -0
  502. data/modules/emscripten/system/lib/compiler-rt/int_types.h +140 -0
  503. data/modules/emscripten/system/lib/compiler-rt/int_util.h +29 -0
  504. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +56 -0
  505. data/modules/emscripten/system/lib/compiler-rt/readme.txt +20 -0
  506. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +36 -0
  507. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +251 -0
  508. data/modules/emscripten/system/lib/debugging.cpp +24 -0
  509. data/modules/emscripten/system/lib/dlmalloc.c +6299 -0
  510. data/modules/emscripten/system/lib/embind/bind.cpp +63 -0
  511. data/modules/emscripten/system/lib/libc/gen/err.c +49 -0
  512. data/modules/emscripten/system/lib/libc/gen/errx.c +49 -0
  513. data/modules/emscripten/system/lib/libc/gen/verr.c +58 -0
  514. data/modules/emscripten/system/lib/libc/gen/verrx.c +51 -0
  515. data/modules/emscripten/system/lib/libc/gen/vwarn.c +55 -0
  516. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +48 -0
  517. data/modules/emscripten/system/lib/libc/gen/warn.c +49 -0
  518. data/modules/emscripten/system/lib/libc/gen/warnx.c +49 -0
  519. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +92 -0
  520. data/modules/emscripten/system/lib/libc/musl/readme.txt +1 -0
  521. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +125 -0
  522. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +7 -0
  523. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +14 -0
  524. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +8 -0
  525. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +10 -0
  526. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +63 -0
  527. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +9 -0
  528. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +7 -0
  529. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +6 -0
  530. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +19 -0
  531. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +12 -0
  532. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +19 -0
  533. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +6 -0
  534. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +7 -0
  535. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +62 -0
  536. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +109 -0
  537. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +268 -0
  538. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +8 -0
  539. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +16 -0
  540. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +29 -0
  541. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +42 -0
  542. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +22 -0
  543. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +71 -0
  544. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +7 -0
  545. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +38 -0
  546. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +22 -0
  547. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +17 -0
  548. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +18 -0
  549. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +57 -0
  550. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +17 -0
  551. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +65 -0
  552. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +100 -0
  553. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +7 -0
  554. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +53 -0
  555. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +38 -0
  556. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +52 -0
  557. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +58 -0
  558. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +7 -0
  559. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +8 -0
  560. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +18 -0
  561. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +6 -0
  562. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +6 -0
  563. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +7 -0
  564. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +6 -0
  565. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +7 -0
  566. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +8 -0
  567. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +7 -0
  568. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +8 -0
  569. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +10 -0
  570. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +11 -0
  571. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +8 -0
  572. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +9 -0
  573. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +6 -0
  574. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +10 -0
  575. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +7 -0
  576. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +9 -0
  577. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +8 -0
  578. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +7 -0
  579. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +8 -0
  580. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +8 -0
  581. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +108 -0
  582. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +12 -0
  583. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +6 -0
  584. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +8 -0
  585. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +8 -0
  586. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +9 -0
  587. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +12 -0
  588. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +9 -0
  589. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +511 -0
  590. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +305 -0
  591. data/modules/emscripten/system/lib/libc.symbols +81 -0
  592. data/modules/emscripten/system/lib/libcextra.symbols +61 -0
  593. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +91 -0
  594. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +76 -0
  595. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +83 -0
  596. data/modules/emscripten/system/lib/libcxx/bind.cpp +30 -0
  597. data/modules/emscripten/system/lib/libcxx/chrono.cpp +132 -0
  598. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +81 -0
  599. data/modules/emscripten/system/lib/libcxx/debug.cpp +504 -0
  600. data/modules/emscripten/system/lib/libcxx/exception.cpp +226 -0
  601. data/modules/emscripten/system/lib/libcxx/future.cpp +285 -0
  602. data/modules/emscripten/system/lib/libcxx/hash.cpp +564 -0
  603. data/modules/emscripten/system/lib/libcxx/ios.cpp +455 -0
  604. data/modules/emscripten/system/lib/libcxx/iostream.cpp +68 -0
  605. data/modules/emscripten/system/lib/libcxx/locale.cpp +6093 -0
  606. data/modules/emscripten/system/lib/libcxx/memory.cpp +223 -0
  607. data/modules/emscripten/system/lib/libcxx/mutex.cpp +250 -0
  608. data/modules/emscripten/system/lib/libcxx/new.cpp +205 -0
  609. data/modules/emscripten/system/lib/libcxx/random.cpp +48 -0
  610. data/modules/emscripten/system/lib/libcxx/readme.txt +1 -0
  611. data/modules/emscripten/system/lib/libcxx/regex.cpp +325 -0
  612. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +196 -0
  613. data/modules/emscripten/system/lib/libcxx/string.cpp +687 -0
  614. data/modules/emscripten/system/lib/libcxx/strstream.cpp +329 -0
  615. data/modules/emscripten/system/lib/libcxx/support/solaris/README +4 -0
  616. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +76 -0
  617. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +93 -0
  618. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +245 -0
  619. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +94 -0
  620. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +70 -0
  621. data/modules/emscripten/system/lib/libcxx/symbols +2927 -0
  622. data/modules/emscripten/system/lib/libcxx/system_error.cpp +201 -0
  623. data/modules/emscripten/system/lib/libcxx/thread.cpp +208 -0
  624. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +60 -0
  625. data/modules/emscripten/system/lib/libcxx/utility.cpp +17 -0
  626. data/modules/emscripten/system/lib/libcxx/valarray.cpp +54 -0
  627. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +38 -0
  628. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +76 -0
  629. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +167 -0
  630. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +175 -0
  631. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +99 -0
  632. data/modules/emscripten/system/lib/libcxxabi/readme.txt +1 -0
  633. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +50 -0
  634. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +33 -0
  635. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +34 -0
  636. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +11036 -0
  637. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +622 -0
  638. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +123 -0
  639. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +91 -0
  640. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +231 -0
  641. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +125 -0
  642. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +54 -0
  643. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +242 -0
  644. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +1055 -0
  645. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +27 -0
  646. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +367 -0
  647. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +31 -0
  648. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +41 -0
  649. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +174 -0
  650. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +1146 -0
  651. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +248 -0
  652. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +169 -0
  653. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +53 -0
  654. data/modules/emscripten/system/lib/libcxxabi/symbols +236 -0
  655. data/modules/emscripten/system/lib/sdl.cpp +13 -0
  656. data/modules/emscripten/system/lib/sdl.symbols +1 -0
  657. data/modules/emscripten/tests/hello_world.js +92 -0
  658. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +2347 -0
  659. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +4 -0
  660. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +657 -0
  661. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +147 -0
  662. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +74 -0
  663. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +249 -0
  664. data/modules/emscripten/third_party/CppHeaderParser/README.html +544 -0
  665. data/modules/emscripten/third_party/CppHeaderParser/README.txt +226 -0
  666. data/modules/emscripten/third_party/CppHeaderParser/setup.py +43 -0
  667. data/modules/emscripten/third_party/ansidecl.h +371 -0
  668. data/modules/emscripten/third_party/closure-compiler/COPYING +202 -0
  669. data/modules/emscripten/third_party/closure-compiler/README +292 -0
  670. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  671. data/modules/emscripten/third_party/closure-compiler/readme.txt +3 -0
  672. data/modules/emscripten/third_party/cp-demangle.h +161 -0
  673. data/modules/emscripten/third_party/demangle.h +549 -0
  674. data/modules/emscripten/third_party/demangler.py +49 -0
  675. data/modules/emscripten/third_party/gcc_demangler.c +4226 -0
  676. data/modules/emscripten/third_party/gcc_demangler.js +21282 -0
  677. data/modules/emscripten/third_party/jni/emjvm.cpp +133 -0
  678. data/modules/emscripten/third_party/jni/emjvm.h +8 -0
  679. data/modules/emscripten/third_party/jni/emjvm.js +185 -0
  680. data/modules/emscripten/third_party/jni/jni.h +1154 -0
  681. data/modules/emscripten/third_party/libiberty.h +634 -0
  682. data/modules/emscripten/third_party/lzma.js/README.markdown +37 -0
  683. data/modules/emscripten/third_party/lzma.js/doit.sh +37 -0
  684. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +7 -0
  685. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +676 -0
  686. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +201 -0
  687. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +56 -0
  688. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +160 -0
  689. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +138 -0
  690. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +22 -0
  691. data/modules/emscripten/third_party/lzma.js/lzip/README +77 -0
  692. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +204 -0
  693. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +106 -0
  694. data/modules/emscripten/third_party/lzma.js/lzip/configure +192 -0
  695. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +252 -0
  696. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +268 -0
  697. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +643 -0
  698. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +582 -0
  699. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +378 -0
  700. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +171 -0
  701. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +264 -0
  702. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +545 -0
  703. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +27 -0
  704. data/modules/emscripten/third_party/lzma.js/lzma-full.js +27 -0
  705. data/modules/emscripten/third_party/lzma.js/native_test.sh +5 -0
  706. data/modules/emscripten/third_party/lzma.js/post.js +13 -0
  707. data/modules/emscripten/third_party/lzma.js/pre.js +13 -0
  708. data/modules/emscripten/third_party/lzma.js/test-decoder.js +39 -0
  709. data/modules/emscripten/third_party/lzma.js/test-full.html +9 -0
  710. data/modules/emscripten/third_party/lzma.js/test-full.js +78 -0
  711. data/modules/emscripten/third_party/ply/ANNOUNCE +40 -0
  712. data/modules/emscripten/third_party/ply/CHANGES +1093 -0
  713. data/modules/emscripten/third_party/ply/PKG-INFO +22 -0
  714. data/modules/emscripten/third_party/ply/README +271 -0
  715. data/modules/emscripten/third_party/ply/TODO +16 -0
  716. data/modules/emscripten/third_party/ply/doc/internal.html +874 -0
  717. data/modules/emscripten/third_party/ply/doc/makedoc.py +194 -0
  718. data/modules/emscripten/third_party/ply/doc/ply.html +3262 -0
  719. data/modules/emscripten/third_party/ply/example/BASIC/README +79 -0
  720. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +71 -0
  721. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +74 -0
  722. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +79 -0
  723. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +441 -0
  724. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +424 -0
  725. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +14 -0
  726. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +5 -0
  727. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +22 -0
  728. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +13 -0
  729. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +4 -0
  730. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +17 -0
  731. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +12 -0
  732. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +13 -0
  733. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +4 -0
  734. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +20 -0
  735. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +18 -0
  736. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +5 -0
  737. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +4 -0
  738. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +709 -0
  739. data/modules/emscripten/third_party/ply/example/GardenSnake/README +5 -0
  740. data/modules/emscripten/third_party/ply/example/README +10 -0
  741. data/modules/emscripten/third_party/ply/example/ansic/README +2 -0
  742. data/modules/emscripten/third_party/ply/example/ansic/clex.py +164 -0
  743. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +863 -0
  744. data/modules/emscripten/third_party/ply/example/calc/calc.py +107 -0
  745. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +113 -0
  746. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +157 -0
  747. data/modules/emscripten/third_party/ply/example/cleanup.sh +2 -0
  748. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +130 -0
  749. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +48 -0
  750. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +160 -0
  751. data/modules/emscripten/third_party/ply/example/optcalc/README +9 -0
  752. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +119 -0
  753. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +117 -0
  754. data/modules/emscripten/third_party/ply/example/yply/README +41 -0
  755. data/modules/emscripten/third_party/ply/example/yply/ylex.py +112 -0
  756. data/modules/emscripten/third_party/ply/example/yply/yparse.py +217 -0
  757. data/modules/emscripten/third_party/ply/example/yply/yply.py +53 -0
  758. data/modules/emscripten/third_party/ply/ply/__init__.py +4 -0
  759. data/modules/emscripten/third_party/ply/ply/cpp.py +898 -0
  760. data/modules/emscripten/third_party/ply/ply/ctokens.py +133 -0
  761. data/modules/emscripten/third_party/ply/ply/lex.py +1058 -0
  762. data/modules/emscripten/third_party/ply/ply/yacc.py +3276 -0
  763. data/modules/emscripten/third_party/ply/setup.py +31 -0
  764. data/modules/emscripten/third_party/ply/test/README +7 -0
  765. data/modules/emscripten/third_party/ply/test/calclex.py +49 -0
  766. data/modules/emscripten/third_party/ply/test/cleanup.sh +4 -0
  767. data/modules/emscripten/third_party/ply/test/lex_closure.py +54 -0
  768. data/modules/emscripten/third_party/ply/test/lex_doc1.py +26 -0
  769. data/modules/emscripten/third_party/ply/test/lex_dup1.py +29 -0
  770. data/modules/emscripten/third_party/ply/test/lex_dup2.py +33 -0
  771. data/modules/emscripten/third_party/ply/test/lex_dup3.py +31 -0
  772. data/modules/emscripten/third_party/ply/test/lex_empty.py +20 -0
  773. data/modules/emscripten/third_party/ply/test/lex_error1.py +24 -0
  774. data/modules/emscripten/third_party/ply/test/lex_error2.py +26 -0
  775. data/modules/emscripten/third_party/ply/test/lex_error3.py +27 -0
  776. data/modules/emscripten/third_party/ply/test/lex_error4.py +27 -0
  777. data/modules/emscripten/third_party/ply/test/lex_hedit.py +47 -0
  778. data/modules/emscripten/third_party/ply/test/lex_ignore.py +31 -0
  779. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +29 -0
  780. data/modules/emscripten/third_party/ply/test/lex_literal1.py +25 -0
  781. data/modules/emscripten/third_party/ply/test/lex_literal2.py +25 -0
  782. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +27 -0
  783. data/modules/emscripten/third_party/ply/test/lex_module.py +10 -0
  784. data/modules/emscripten/third_party/ply/test/lex_module_import.py +42 -0
  785. data/modules/emscripten/third_party/ply/test/lex_object.py +55 -0
  786. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +54 -0
  787. data/modules/emscripten/third_party/ply/test/lex_optimize.py +50 -0
  788. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +50 -0
  789. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +52 -0
  790. data/modules/emscripten/third_party/ply/test/lex_re1.py +27 -0
  791. data/modules/emscripten/third_party/ply/test/lex_re2.py +27 -0
  792. data/modules/emscripten/third_party/ply/test/lex_re3.py +29 -0
  793. data/modules/emscripten/third_party/ply/test/lex_rule1.py +27 -0
  794. data/modules/emscripten/third_party/ply/test/lex_rule2.py +29 -0
  795. data/modules/emscripten/third_party/ply/test/lex_rule3.py +27 -0
  796. data/modules/emscripten/third_party/ply/test/lex_state1.py +40 -0
  797. data/modules/emscripten/third_party/ply/test/lex_state2.py +40 -0
  798. data/modules/emscripten/third_party/ply/test/lex_state3.py +42 -0
  799. data/modules/emscripten/third_party/ply/test/lex_state4.py +41 -0
  800. data/modules/emscripten/third_party/ply/test/lex_state5.py +40 -0
  801. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +39 -0
  802. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +40 -0
  803. data/modules/emscripten/third_party/ply/test/lex_state_try.py +45 -0
  804. data/modules/emscripten/third_party/ply/test/lex_token1.py +19 -0
  805. data/modules/emscripten/third_party/ply/test/lex_token2.py +22 -0
  806. data/modules/emscripten/third_party/ply/test/lex_token3.py +24 -0
  807. data/modules/emscripten/third_party/ply/test/lex_token4.py +26 -0
  808. data/modules/emscripten/third_party/ply/test/lex_token5.py +31 -0
  809. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +29 -0
  810. data/modules/emscripten/third_party/ply/test/testlex.py +606 -0
  811. data/modules/emscripten/third_party/ply/test/testyacc.py +347 -0
  812. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +68 -0
  813. data/modules/emscripten/third_party/ply/test/yacc_badid.py +77 -0
  814. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +64 -0
  815. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +68 -0
  816. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +68 -0
  817. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +68 -0
  818. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +68 -0
  819. data/modules/emscripten/third_party/ply/test/yacc_dup.py +68 -0
  820. data/modules/emscripten/third_party/ply/test/yacc_error1.py +68 -0
  821. data/modules/emscripten/third_party/ply/test/yacc_error2.py +68 -0
  822. data/modules/emscripten/third_party/ply/test/yacc_error3.py +67 -0
  823. data/modules/emscripten/third_party/ply/test/yacc_error4.py +72 -0
  824. data/modules/emscripten/third_party/ply/test/yacc_inf.py +56 -0
  825. data/modules/emscripten/third_party/ply/test/yacc_literal.py +69 -0
  826. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +68 -0
  827. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +68 -0
  828. data/modules/emscripten/third_party/ply/test/yacc_nested.py +33 -0
  829. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +67 -0
  830. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +66 -0
  831. data/modules/emscripten/third_party/ply/test/yacc_nop.py +68 -0
  832. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +66 -0
  833. data/modules/emscripten/third_party/ply/test/yacc_notok.py +67 -0
  834. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +68 -0
  835. data/modules/emscripten/third_party/ply/test/yacc_rr.py +72 -0
  836. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +30 -0
  837. data/modules/emscripten/third_party/ply/test/yacc_simple.py +68 -0
  838. data/modules/emscripten/third_party/ply/test/yacc_sr.py +63 -0
  839. data/modules/emscripten/third_party/ply/test/yacc_term1.py +68 -0
  840. data/modules/emscripten/third_party/ply/test/yacc_unused.py +77 -0
  841. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +72 -0
  842. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +63 -0
  843. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +63 -0
  844. data/modules/emscripten/third_party/readme.txt +7 -0
  845. data/modules/emscripten/third_party/websockify/CHANGES.txt +23 -0
  846. data/modules/emscripten/third_party/websockify/LICENSE.txt +16 -0
  847. data/modules/emscripten/third_party/websockify/MANIFEST.in +1 -0
  848. data/modules/emscripten/third_party/websockify/Makefile +11 -0
  849. data/modules/emscripten/third_party/websockify/README.md +168 -0
  850. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +39 -0
  851. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +24 -0
  852. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +61 -0
  853. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +19 -0
  854. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +129 -0
  855. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +36 -0
  856. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +37 -0
  857. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +41 -0
  858. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +75 -0
  859. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +20 -0
  860. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +621 -0
  861. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +165 -0
  862. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +373 -0
  863. data/modules/emscripten/third_party/websockify/docs/TODO +9 -0
  864. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +4 -0
  865. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +114 -0
  866. data/modules/emscripten/third_party/websockify/docs/notes +17 -0
  867. data/modules/emscripten/third_party/websockify/docs/release.txt +9 -0
  868. data/modules/emscripten/third_party/websockify/docs/websockify.1 +110 -0
  869. data/modules/emscripten/third_party/websockify/include/VT100.js +919 -0
  870. data/modules/emscripten/third_party/websockify/include/base64.js +114 -0
  871. data/modules/emscripten/third_party/websockify/include/keysym.js +99 -0
  872. data/modules/emscripten/third_party/websockify/include/util.js +359 -0
  873. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +109 -0
  874. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  875. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +4 -0
  876. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +391 -0
  877. data/modules/emscripten/third_party/websockify/include/websock.js +422 -0
  878. data/modules/emscripten/third_party/websockify/include/webutil.js +216 -0
  879. data/modules/emscripten/third_party/websockify/include/wsirc.js +235 -0
  880. data/modules/emscripten/third_party/websockify/include/wstelnet.js +335 -0
  881. data/modules/emscripten/third_party/websockify/other/Makefile +14 -0
  882. data/modules/emscripten/third_party/websockify/other/README.md +51 -0
  883. data/modules/emscripten/third_party/websockify/other/launch.sh +108 -0
  884. data/modules/emscripten/third_party/websockify/other/project.clj +13 -0
  885. data/modules/emscripten/third_party/websockify/other/websocket.c +802 -0
  886. data/modules/emscripten/third_party/websockify/other/websocket.h +84 -0
  887. data/modules/emscripten/third_party/websockify/other/websocket.rb +456 -0
  888. data/modules/emscripten/third_party/websockify/other/websockify.c +385 -0
  889. data/modules/emscripten/third_party/websockify/other/websockify.clj +233 -0
  890. data/modules/emscripten/third_party/websockify/other/websockify.js +196 -0
  891. data/modules/emscripten/third_party/websockify/other/websockify.rb +171 -0
  892. data/modules/emscripten/third_party/websockify/other/wswrap +22 -0
  893. data/modules/emscripten/third_party/websockify/rebind +18 -0
  894. data/modules/emscripten/third_party/websockify/rebind.c +94 -0
  895. data/modules/emscripten/third_party/websockify/run +5 -0
  896. data/modules/emscripten/third_party/websockify/setup.py +30 -0
  897. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +29 -0
  898. data/modules/emscripten/third_party/websockify/tests/base64.html +91 -0
  899. data/modules/emscripten/third_party/websockify/tests/base64.js +12 -0
  900. data/modules/emscripten/third_party/websockify/tests/echo.html +148 -0
  901. data/modules/emscripten/third_party/websockify/tests/echo.py +75 -0
  902. data/modules/emscripten/third_party/websockify/tests/echo.rb +62 -0
  903. data/modules/emscripten/third_party/websockify/tests/latency.html +290 -0
  904. data/modules/emscripten/third_party/websockify/tests/latency.py +75 -0
  905. data/modules/emscripten/third_party/websockify/tests/load.html +250 -0
  906. data/modules/emscripten/third_party/websockify/tests/load.py +167 -0
  907. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +168 -0
  908. data/modules/emscripten/third_party/websockify/tests/simple.html +68 -0
  909. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +22 -0
  910. data/modules/emscripten/third_party/websockify/websockify/__init__.py +2 -0
  911. data/modules/emscripten/third_party/websockify/websockify/websocket.py +982 -0
  912. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +393 -0
  913. data/modules/emscripten/third_party/websockify/websockify.py +5 -0
  914. data/modules/emscripten/third_party/websockify/wsirc.html +99 -0
  915. data/modules/emscripten/third_party/websockify/wstelnet.html +74 -0
  916. data/modules/emscripten/tools/__init__.py +0 -0
  917. data/modules/emscripten/tools/__init__.pyc +0 -0
  918. data/modules/emscripten/tools/autodebugger.py +289 -0
  919. data/modules/emscripten/tools/autodebugger_c.py +37 -0
  920. data/modules/emscripten/tools/autodebugger_indenter.py +18 -0
  921. data/modules/emscripten/tools/autodebugger_js.py +47 -0
  922. data/modules/emscripten/tools/autodediffer.py +60 -0
  923. data/modules/emscripten/tools/bindings_generator.py +832 -0
  924. data/modules/emscripten/tools/bisect_pair.py +88 -0
  925. data/modules/emscripten/tools/cache.py +198 -0
  926. data/modules/emscripten/tools/cache.pyc +0 -0
  927. data/modules/emscripten/tools/clean_webconsole.py +34 -0
  928. data/modules/emscripten/tools/crunch-worker.js +124 -0
  929. data/modules/emscripten/tools/diff_autodebugger.py +15 -0
  930. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +5129 -0
  931. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +6861 -0
  932. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +6122 -0
  933. data/modules/emscripten/tools/eliminator/eliminator-test.js +8856 -0
  934. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +888 -0
  935. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +463 -0
  936. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +317 -0
  937. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +75 -0
  938. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +75 -0
  939. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +1363 -0
  940. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +2005 -0
  941. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +51 -0
  942. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +22 -0
  943. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +28 -0
  944. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +402 -0
  945. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  946. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  947. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  948. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  949. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  950. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  951. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  952. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  953. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  954. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  955. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  956. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  957. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  958. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  959. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  960. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  961. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  962. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  963. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  964. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  965. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  966. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  967. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  968. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  969. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  970. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  971. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  972. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  973. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  974. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  975. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  976. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  977. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  978. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  979. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  980. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  981. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  982. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  983. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  984. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  985. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  986. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  987. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  988. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  989. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  990. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  991. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  992. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  993. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  994. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  995. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  996. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  997. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  998. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  999. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  1000. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  1001. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  1002. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  1003. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  1004. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  1005. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  1006. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  1007. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  1008. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  1009. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  1010. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  1011. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  1012. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  1013. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  1014. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  1015. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  1016. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  1017. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  1018. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  1019. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  1020. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  1021. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +55 -0
  1022. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +33 -0
  1023. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +97 -0
  1024. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +138 -0
  1025. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +16 -0
  1026. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +17 -0
  1027. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +85 -0
  1028. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +103 -0
  1029. data/modules/emscripten/tools/emconfiguren.py +19 -0
  1030. data/modules/emscripten/tools/emmaken.py +230 -0
  1031. data/modules/emscripten/tools/emmakenxx.py +18 -0
  1032. data/modules/emscripten/tools/exec_llvm.py +50 -0
  1033. data/modules/emscripten/tools/file2json.py +49 -0
  1034. data/modules/emscripten/tools/file_packager.py +649 -0
  1035. data/modules/emscripten/tools/find_bigfuncs.py +23 -0
  1036. data/modules/emscripten/tools/find_bigis.py +18 -0
  1037. data/modules/emscripten/tools/fix_closure.py +88 -0
  1038. data/modules/emscripten/tools/ie7_fix.py +14 -0
  1039. data/modules/emscripten/tools/js-optimizer.js +3440 -0
  1040. data/modules/emscripten/tools/js_optimizer.py +341 -0
  1041. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  1042. data/modules/emscripten/tools/jsrun.py +27 -0
  1043. data/modules/emscripten/tools/jsrun.pyc +0 -0
  1044. data/modules/emscripten/tools/ll-strip.py +56 -0
  1045. data/modules/emscripten/tools/make_file.py +19 -0
  1046. data/modules/emscripten/tools/make_minigzip.py +13 -0
  1047. data/modules/emscripten/tools/namespacer.py +95 -0
  1048. data/modules/emscripten/tools/nativize_llvm.py +34 -0
  1049. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +58 -0
  1050. data/modules/emscripten/tools/node_modules/source-map/LICENSE +28 -0
  1051. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +166 -0
  1052. data/modules/emscripten/tools/node_modules/source-map/README.md +347 -0
  1053. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +56 -0
  1054. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +152 -0
  1055. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  1056. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +18 -0
  1057. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +8 -0
  1058. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  1059. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +21 -0
  1060. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +8 -0
  1061. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +3 -0
  1062. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +96 -0
  1063. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  1064. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +42 -0
  1065. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  1066. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +430 -0
  1067. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  1068. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +353 -0
  1069. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +117 -0
  1070. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +8 -0
  1071. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  1072. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  1073. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  1074. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  1075. data/modules/emscripten/tools/node_modules/source-map/package.json +74 -0
  1076. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +73 -0
  1077. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +26 -0
  1078. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  1079. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  1080. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1081. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1082. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  1083. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +306 -0
  1084. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  1085. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  1086. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +152 -0
  1087. data/modules/emscripten/tools/reproduceriter.js +216 -0
  1088. data/modules/emscripten/tools/reproduceriter.py +160 -0
  1089. data/modules/emscripten/tools/response_file.py +28 -0
  1090. data/modules/emscripten/tools/response_file.pyc +0 -0
  1091. data/modules/emscripten/tools/scan_js.py +20 -0
  1092. data/modules/emscripten/tools/scan_ll.py +18 -0
  1093. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +3 -0
  1094. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +46 -0
  1095. data/modules/emscripten/tools/settings_template_readonly.py +47 -0
  1096. data/modules/emscripten/tools/shared.py +1437 -0
  1097. data/modules/emscripten/tools/shared.pyc +0 -0
  1098. data/modules/emscripten/tools/source-maps/sourcemap2json.js +15 -0
  1099. data/modules/emscripten/tools/source-maps/sourcemapper.js +177 -0
  1100. data/modules/emscripten/tools/split.py +97 -0
  1101. data/modules/emscripten/tools/tempfiles.py +40 -0
  1102. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  1103. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +75 -0
  1104. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +91 -0
  1105. data/modules/emscripten/tools/test-js-optimizer-asm-outline-output.js +570 -0
  1106. data/modules/emscripten/tools/test-js-optimizer-asm-outline.js +606 -0
  1107. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +540 -0
  1108. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +550 -0
  1109. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +36 -0
  1110. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +37 -0
  1111. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +106 -0
  1112. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +110 -0
  1113. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +9 -0
  1114. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +12 -0
  1115. data/modules/emscripten/tools/test-js-optimizer-output.js +291 -0
  1116. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +232 -0
  1117. data/modules/emscripten/tools/test-js-optimizer-regs.js +237 -0
  1118. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +91 -0
  1119. data/modules/emscripten/tools/test-js-optimizer-t2.js +92 -0
  1120. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +17 -0
  1121. data/modules/emscripten/tools/test-js-optimizer-t2c.js +18 -0
  1122. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +49 -0
  1123. data/modules/emscripten/tools/test-js-optimizer-t3.js +50 -0
  1124. data/modules/emscripten/tools/test-js-optimizer.js +401 -0
  1125. data/modules/mruby/AUTHORS +18 -0
  1126. data/modules/mruby/CONTRIBUTING.md +65 -0
  1127. data/modules/mruby/ChangeLog +15 -0
  1128. data/modules/mruby/INSTALL +29 -0
  1129. data/modules/mruby/LEGAL +6 -0
  1130. data/modules/mruby/MITL +20 -0
  1131. data/modules/mruby/Makefile +18 -0
  1132. data/modules/mruby/NEWS +13 -0
  1133. data/modules/mruby/README.md +116 -0
  1134. data/modules/mruby/Rakefile +114 -0
  1135. data/modules/mruby/TODO +11 -0
  1136. data/modules/mruby/benchmark/ao-render.rb +315 -0
  1137. data/modules/mruby/benchmark/bm_so_lists.rb +47 -0
  1138. data/modules/mruby/benchmark/fib39.rb +8 -0
  1139. data/modules/mruby/build_config.rb +88 -0
  1140. data/modules/mruby/doc/compile/README.md +376 -0
  1141. data/modules/mruby/doc/mrbgems/README.md +254 -0
  1142. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md +4 -0
  1143. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +23 -0
  1144. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
  1145. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +20 -0
  1146. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
  1147. data/modules/mruby/examples/mrbgems/c_extension_example/README.md +4 -0
  1148. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +23 -0
  1149. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +20 -0
  1150. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
  1151. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
  1152. data/modules/mruby/examples/mrbgems/ruby_extension_example/README.md +4 -0
  1153. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +23 -0
  1154. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
  1155. data/modules/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
  1156. data/modules/mruby/examples/targets/ArduinoDue.rb +65 -0
  1157. data/modules/mruby/examples/targets/chipKitMax32.rb +68 -0
  1158. data/modules/mruby/include/mrbconf.h +87 -0
  1159. data/modules/mruby/include/mruby/array.h +63 -0
  1160. data/modules/mruby/include/mruby/class.h +75 -0
  1161. data/modules/mruby/include/mruby/compile.h +176 -0
  1162. data/modules/mruby/include/mruby/data.h +53 -0
  1163. data/modules/mruby/include/mruby/dump.h +151 -0
  1164. data/modules/mruby/include/mruby/gc.h +17 -0
  1165. data/modules/mruby/include/mruby/hash.h +54 -0
  1166. data/modules/mruby/include/mruby/irep.h +40 -0
  1167. data/modules/mruby/include/mruby/khash.h +257 -0
  1168. data/modules/mruby/include/mruby/numeric.h +32 -0
  1169. data/modules/mruby/include/mruby/proc.h +62 -0
  1170. data/modules/mruby/include/mruby/range.h +35 -0
  1171. data/modules/mruby/include/mruby/string.h +78 -0
  1172. data/modules/mruby/include/mruby/value.h +483 -0
  1173. data/modules/mruby/include/mruby/variable.h +78 -0
  1174. data/modules/mruby/include/mruby.h +388 -0
  1175. data/modules/mruby/minirake +477 -0
  1176. data/modules/mruby/mrbgems/default.gembox +61 -0
  1177. data/modules/mruby/mrbgems/full-core.gembox +9 -0
  1178. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +4 -0
  1179. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +204 -0
  1180. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +140 -0
  1181. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +109 -0
  1182. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +5 -0
  1183. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +365 -0
  1184. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +5 -0
  1185. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +243 -0
  1186. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +4 -0
  1187. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +164 -0
  1188. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +44 -0
  1189. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +4 -0
  1190. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +23 -0
  1191. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +4 -0
  1192. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +251 -0
  1193. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +64 -0
  1194. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +4 -0
  1195. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +13 -0
  1196. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +62 -0
  1197. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +26 -0
  1198. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +4 -0
  1199. data/modules/mruby/mrbgems/mruby-math/src/math.c +685 -0
  1200. data/modules/mruby/mrbgems/mruby-math/test/math.rb +136 -0
  1201. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +4 -0
  1202. data/modules/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +31 -0
  1203. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +10 -0
  1204. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +4 -0
  1205. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +108 -0
  1206. data/modules/mruby/mrbgems/mruby-object-ext/test/nil.rb +11 -0
  1207. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +9 -0
  1208. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +4 -0
  1209. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +117 -0
  1210. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +38 -0
  1211. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +4 -0
  1212. data/modules/mruby/mrbgems/mruby-print/mrblib/print.rb +64 -0
  1213. data/modules/mruby/mrbgems/mruby-print/src/print.c +44 -0
  1214. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +4 -0
  1215. data/modules/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +40 -0
  1216. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +97 -0
  1217. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +41 -0
  1218. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +4 -0
  1219. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +193 -0
  1220. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +48 -0
  1221. data/modules/mruby/mrbgems/mruby-random/src/random.c +231 -0
  1222. data/modules/mruby/mrbgems/mruby-random/src/random.h +12 -0
  1223. data/modules/mruby/mrbgems/mruby-random/test/random.rb +32 -0
  1224. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +4 -0
  1225. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +141 -0
  1226. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +20 -0
  1227. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +4 -0
  1228. data/modules/mruby/mrbgems/mruby-sprintf/src/kernel.c +30 -0
  1229. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1102 -0
  1230. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +3 -0
  1231. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +4 -0
  1232. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +52 -0
  1233. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +175 -0
  1234. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +112 -0
  1235. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +4 -0
  1236. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +50 -0
  1237. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +818 -0
  1238. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +77 -0
  1239. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +4 -0
  1240. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +9 -0
  1241. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +55 -0
  1242. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +12 -0
  1243. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +4 -0
  1244. data/modules/mruby/mrbgems/mruby-time/src/time.c +749 -0
  1245. data/modules/mruby/mrbgems/mruby-time/test/time.rb +201 -0
  1246. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +4 -0
  1247. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +11 -0
  1248. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +24 -0
  1249. data/modules/mruby/mrblib/array.rb +111 -0
  1250. data/modules/mruby/mrblib/class.rb +26 -0
  1251. data/modules/mruby/mrblib/compar.rb +104 -0
  1252. data/modules/mruby/mrblib/enum.rb +398 -0
  1253. data/modules/mruby/mrblib/error.rb +66 -0
  1254. data/modules/mruby/mrblib/hash.rb +193 -0
  1255. data/modules/mruby/mrblib/init_mrblib.c +14 -0
  1256. data/modules/mruby/mrblib/kernel.rb +46 -0
  1257. data/modules/mruby/mrblib/mrblib.rake +18 -0
  1258. data/modules/mruby/mrblib/numeric.rb +101 -0
  1259. data/modules/mruby/mrblib/print.rb +18 -0
  1260. data/modules/mruby/mrblib/range.rb +40 -0
  1261. data/modules/mruby/mrblib/string.rb +145 -0
  1262. data/modules/mruby/src/array.c +1150 -0
  1263. data/modules/mruby/src/backtrace.c +73 -0
  1264. data/modules/mruby/src/class.c +1942 -0
  1265. data/modules/mruby/src/codegen.c +2864 -0
  1266. data/modules/mruby/src/compar.c +13 -0
  1267. data/modules/mruby/src/crc.c +38 -0
  1268. data/modules/mruby/src/dump.c +542 -0
  1269. data/modules/mruby/src/enum.c +14 -0
  1270. data/modules/mruby/src/error.c +454 -0
  1271. data/modules/mruby/src/error.h +18 -0
  1272. data/modules/mruby/src/etc.c +204 -0
  1273. data/modules/mruby/src/gc.c +1542 -0
  1274. data/modules/mruby/src/hash.c +1261 -0
  1275. data/modules/mruby/src/init.c +62 -0
  1276. data/modules/mruby/src/kernel.c +1105 -0
  1277. data/modules/mruby/src/keywords +50 -0
  1278. data/modules/mruby/src/lex.def +212 -0
  1279. data/modules/mruby/src/load.c +629 -0
  1280. data/modules/mruby/src/mruby_core.rake +28 -0
  1281. data/modules/mruby/src/node.h +117 -0
  1282. data/modules/mruby/src/numeric.c +1418 -0
  1283. data/modules/mruby/src/object.c +593 -0
  1284. data/modules/mruby/src/opcode.h +160 -0
  1285. data/modules/mruby/src/parse.y +6050 -0
  1286. data/modules/mruby/src/pool.c +190 -0
  1287. data/modules/mruby/src/print.c +71 -0
  1288. data/modules/mruby/src/proc.c +209 -0
  1289. data/modules/mruby/src/range.c +442 -0
  1290. data/modules/mruby/src/re.h +13 -0
  1291. data/modules/mruby/src/state.c +200 -0
  1292. data/modules/mruby/src/string.c +2580 -0
  1293. data/modules/mruby/src/symbol.c +456 -0
  1294. data/modules/mruby/src/value_array.h +27 -0
  1295. data/modules/mruby/src/variable.c +1147 -0
  1296. data/modules/mruby/src/vm.c +2129 -0
  1297. data/modules/mruby/tasks/libmruby.rake +18 -0
  1298. data/modules/mruby/tasks/mrbgem_spec.rake +297 -0
  1299. data/modules/mruby/tasks/mrbgems.rake +85 -0
  1300. data/modules/mruby/tasks/mrbgems_test.rake +88 -0
  1301. data/modules/mruby/tasks/mruby_build.rake +211 -0
  1302. data/modules/mruby/tasks/mruby_build_commands.rake +287 -0
  1303. data/modules/mruby/tasks/mruby_build_gem.rake +67 -0
  1304. data/modules/mruby/tasks/ruby_ext.rake +70 -0
  1305. data/modules/mruby/tasks/toolchains/androideabi.rake +126 -0
  1306. data/modules/mruby/tasks/toolchains/clang.rake +8 -0
  1307. data/modules/mruby/tasks/toolchains/gcc.rake +21 -0
  1308. data/modules/mruby/tasks/toolchains/vs2010.rake +3 -0
  1309. data/modules/mruby/tasks/toolchains/vs2012.rake +44 -0
  1310. data/modules/mruby/test/README.md +7 -0
  1311. data/modules/mruby/test/assert.rb +238 -0
  1312. data/modules/mruby/test/driver.c +118 -0
  1313. data/modules/mruby/test/init_mrbtest.c +24 -0
  1314. data/modules/mruby/test/mrbtest.rake +47 -0
  1315. data/modules/mruby/test/report.rb +4 -0
  1316. data/modules/mruby/test/t/argumenterror.rb +21 -0
  1317. data/modules/mruby/test/t/array.rb +309 -0
  1318. data/modules/mruby/test/t/basicobject.rb +11 -0
  1319. data/modules/mruby/test/t/bs_block.rb +489 -0
  1320. data/modules/mruby/test/t/bs_literal.rb +38 -0
  1321. data/modules/mruby/test/t/class.rb +219 -0
  1322. data/modules/mruby/test/t/comparable.rb +72 -0
  1323. data/modules/mruby/test/t/enumerable.rb +108 -0
  1324. data/modules/mruby/test/t/exception.rb +337 -0
  1325. data/modules/mruby/test/t/false.rb +33 -0
  1326. data/modules/mruby/test/t/float.rb +145 -0
  1327. data/modules/mruby/test/t/gc.rb +45 -0
  1328. data/modules/mruby/test/t/hash.rb +310 -0
  1329. data/modules/mruby/test/t/indexerror.rb +10 -0
  1330. data/modules/mruby/test/t/integer.rb +222 -0
  1331. data/modules/mruby/test/t/kernel.rb +425 -0
  1332. data/modules/mruby/test/t/literals.rb +287 -0
  1333. data/modules/mruby/test/t/localjumperror.rb +13 -0
  1334. data/modules/mruby/test/t/methods.rb +109 -0
  1335. data/modules/mruby/test/t/module.rb +344 -0
  1336. data/modules/mruby/test/t/nameerror.rb +32 -0
  1337. data/modules/mruby/test/t/nil.rb +29 -0
  1338. data/modules/mruby/test/t/nomethoderror.rb +13 -0
  1339. data/modules/mruby/test/t/numeric.rb +29 -0
  1340. data/modules/mruby/test/t/object.rb +11 -0
  1341. data/modules/mruby/test/t/proc.rb +56 -0
  1342. data/modules/mruby/test/t/range.rb +82 -0
  1343. data/modules/mruby/test/t/rangeerror.rb +10 -0
  1344. data/modules/mruby/test/t/regexperror.rb +4 -0
  1345. data/modules/mruby/test/t/runtimeerror.rb +6 -0
  1346. data/modules/mruby/test/t/standarderror.rb +10 -0
  1347. data/modules/mruby/test/t/string.rb +483 -0
  1348. data/modules/mruby/test/t/symbol.rb +27 -0
  1349. data/modules/mruby/test/t/syntax.rb +67 -0
  1350. data/modules/mruby/test/t/true.rb +33 -0
  1351. data/modules/mruby/test/t/typeerror.rb +11 -0
  1352. data/modules/mruby/tools/mrbc/mrbc.c +318 -0
  1353. data/modules/mruby/tools/mrbc/mrbc.rake +14 -0
  1354. data/modules/mruby/travis_config.rb +6 -0
  1355. data/modules/mrubymix/LICENSE +21 -0
  1356. data/modules/mrubymix/README.md +6 -0
  1357. data/modules/mrubymix/bin/mrubymix +29 -0
  1358. data/modules/mrubymix/lib/mrubymix.rb +93 -0
  1359. data/modules/mrubymix/mrubymix.gemspec +13 -0
  1360. data/scripts/gen_gems_config.rb +185 -0
  1361. data/scripts/gen_post.rb +104 -0
  1362. data/templates/minimal/Rakefile +36 -0
  1363. data/templates/minimal/app/app.rb +3 -0
  1364. metadata +1408 -0
@@ -0,0 +1,1636 @@
1
+ // -*- C++ -*-
2
+ //===----------------------- forward_list ---------------------------------===//
3
+ //
4
+ // The LLVM Compiler Infrastructure
5
+ //
6
+ // This file is dual licensed under the MIT and the University of Illinois Open
7
+ // Source Licenses. See LICENSE.TXT for details.
8
+ //
9
+ //===----------------------------------------------------------------------===//
10
+
11
+ #ifndef _LIBCPP_FORWARD_LIST
12
+ #define _LIBCPP_FORWARD_LIST
13
+
14
+ /*
15
+ forward_list synopsis
16
+
17
+ namespace std
18
+ {
19
+
20
+ template <class T, class Allocator = allocator<T>>
21
+ class forward_list
22
+ {
23
+ public:
24
+ typedef T value_type;
25
+ typedef Allocator allocator_type;
26
+
27
+ typedef value_type& reference;
28
+ typedef const value_type& const_reference;
29
+ typedef typename allocator_traits<allocator_type>::pointer pointer;
30
+ typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
31
+ typedef typename allocator_traits<allocator_type>::size_type size_type;
32
+ typedef typename allocator_traits<allocator_type>::difference_type difference_type;
33
+
34
+ typedef <details> iterator;
35
+ typedef <details> const_iterator;
36
+
37
+ forward_list()
38
+ noexcept(is_nothrow_default_constructible<allocator_type>::value);
39
+ explicit forward_list(const allocator_type& a);
40
+ explicit forward_list(size_type n);
41
+ forward_list(size_type n, const value_type& v);
42
+ forward_list(size_type n, const value_type& v, const allocator_type& a);
43
+ template <class InputIterator>
44
+ forward_list(InputIterator first, InputIterator last);
45
+ template <class InputIterator>
46
+ forward_list(InputIterator first, InputIterator last, const allocator_type& a);
47
+ forward_list(const forward_list& x);
48
+ forward_list(const forward_list& x, const allocator_type& a);
49
+ forward_list(forward_list&& x)
50
+ noexcept(is_nothrow_move_constructible<allocator_type>::value);
51
+ forward_list(forward_list&& x, const allocator_type& a);
52
+ forward_list(initializer_list<value_type> il);
53
+ forward_list(initializer_list<value_type> il, const allocator_type& a);
54
+
55
+ ~forward_list();
56
+
57
+ forward_list& operator=(const forward_list& x);
58
+ forward_list& operator=(forward_list&& x)
59
+ noexcept(
60
+ allocator_type::propagate_on_container_move_assignment::value &&
61
+ is_nothrow_move_assignable<allocator_type>::value);
62
+ forward_list& operator=(initializer_list<value_type> il);
63
+
64
+ template <class InputIterator>
65
+ void assign(InputIterator first, InputIterator last);
66
+ void assign(size_type n, const value_type& v);
67
+ void assign(initializer_list<value_type> il);
68
+
69
+ allocator_type get_allocator() const noexcept;
70
+
71
+ iterator begin() noexcept;
72
+ const_iterator begin() const noexcept;
73
+ iterator end() noexcept;
74
+ const_iterator end() const noexcept;
75
+
76
+ const_iterator cbegin() const noexcept;
77
+ const_iterator cend() const noexcept;
78
+
79
+ iterator before_begin() noexcept;
80
+ const_iterator before_begin() const noexcept;
81
+ const_iterator cbefore_begin() const noexcept;
82
+
83
+ bool empty() const noexcept;
84
+ size_type max_size() const noexcept;
85
+
86
+ reference front();
87
+ const_reference front() const;
88
+
89
+ template <class... Args> void emplace_front(Args&&... args);
90
+ void push_front(const value_type& v);
91
+ void push_front(value_type&& v);
92
+
93
+ void pop_front();
94
+
95
+ template <class... Args>
96
+ iterator emplace_after(const_iterator p, Args&&... args);
97
+ iterator insert_after(const_iterator p, const value_type& v);
98
+ iterator insert_after(const_iterator p, value_type&& v);
99
+ iterator insert_after(const_iterator p, size_type n, const value_type& v);
100
+ template <class InputIterator>
101
+ iterator insert_after(const_iterator p,
102
+ InputIterator first, InputIterator last);
103
+ iterator insert_after(const_iterator p, initializer_list<value_type> il);
104
+
105
+ iterator erase_after(const_iterator p);
106
+ iterator erase_after(const_iterator first, const_iterator last);
107
+
108
+ void swap(forward_list& x)
109
+ noexcept(!allocator_type::propagate_on_container_swap::value ||
110
+ __is_nothrow_swappable<allocator_type>::value);
111
+
112
+ void resize(size_type n);
113
+ void resize(size_type n, const value_type& v);
114
+ void clear() noexcept;
115
+
116
+ void splice_after(const_iterator p, forward_list& x);
117
+ void splice_after(const_iterator p, forward_list&& x);
118
+ void splice_after(const_iterator p, forward_list& x, const_iterator i);
119
+ void splice_after(const_iterator p, forward_list&& x, const_iterator i);
120
+ void splice_after(const_iterator p, forward_list& x,
121
+ const_iterator first, const_iterator last);
122
+ void splice_after(const_iterator p, forward_list&& x,
123
+ const_iterator first, const_iterator last);
124
+ void remove(const value_type& v);
125
+ template <class Predicate> void remove_if(Predicate pred);
126
+ void unique();
127
+ template <class BinaryPredicate> void unique(BinaryPredicate binary_pred);
128
+ void merge(forward_list& x);
129
+ void merge(forward_list&& x);
130
+ template <class Compare> void merge(forward_list& x, Compare comp);
131
+ template <class Compare> void merge(forward_list&& x, Compare comp);
132
+ void sort();
133
+ template <class Compare> void sort(Compare comp);
134
+ void reverse() noexcept;
135
+ };
136
+
137
+ template <class T, class Allocator>
138
+ bool operator==(const forward_list<T, Allocator>& x,
139
+ const forward_list<T, Allocator>& y);
140
+
141
+ template <class T, class Allocator>
142
+ bool operator< (const forward_list<T, Allocator>& x,
143
+ const forward_list<T, Allocator>& y);
144
+
145
+ template <class T, class Allocator>
146
+ bool operator!=(const forward_list<T, Allocator>& x,
147
+ const forward_list<T, Allocator>& y);
148
+
149
+ template <class T, class Allocator>
150
+ bool operator> (const forward_list<T, Allocator>& x,
151
+ const forward_list<T, Allocator>& y);
152
+
153
+ template <class T, class Allocator>
154
+ bool operator>=(const forward_list<T, Allocator>& x,
155
+ const forward_list<T, Allocator>& y);
156
+
157
+ template <class T, class Allocator>
158
+ bool operator<=(const forward_list<T, Allocator>& x,
159
+ const forward_list<T, Allocator>& y);
160
+
161
+ template <class T, class Allocator>
162
+ void swap(forward_list<T, Allocator>& x, forward_list<T, Allocator>& y)
163
+ noexcept(noexcept(x.swap(y)));
164
+
165
+ } // std
166
+
167
+ */
168
+
169
+ #include <__config>
170
+
171
+ #include <initializer_list>
172
+ #include <memory>
173
+ #include <limits>
174
+ #include <iterator>
175
+ #include <algorithm>
176
+
177
+ #include <__undef_min_max>
178
+
179
+ #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
180
+ #pragma GCC system_header
181
+ #endif
182
+
183
+ _LIBCPP_BEGIN_NAMESPACE_STD
184
+
185
+ template <class _Tp, class _VoidPtr> struct __forward_list_node;
186
+
187
+ template <class _NodePtr>
188
+ struct __forward_begin_node
189
+ {
190
+ typedef __forward_begin_node __self;
191
+ typedef _NodePtr pointer;
192
+
193
+ pointer __next_;
194
+
195
+ _LIBCPP_INLINE_VISIBILITY __forward_begin_node() : __next_(nullptr) {}
196
+ };
197
+
198
+ template <class _Tp, class _VoidPtr>
199
+ struct __forward_list_node
200
+ : public __forward_begin_node
201
+ <
202
+ typename pointer_traits<_VoidPtr>::template
203
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
204
+ rebind<__forward_list_node<_Tp, _VoidPtr> >
205
+ #else
206
+ rebind<__forward_list_node<_Tp, _VoidPtr> >::other
207
+ #endif
208
+ >
209
+ {
210
+ typedef _Tp value_type;
211
+
212
+ value_type __value_;
213
+ };
214
+
215
+ template<class _Tp, class _Alloc> class _LIBCPP_TYPE_VIS forward_list;
216
+ template<class _NodeConstPtr> class _LIBCPP_TYPE_VIS __forward_list_const_iterator;
217
+
218
+ template <class _NodePtr>
219
+ class _LIBCPP_TYPE_VIS __forward_list_iterator
220
+ {
221
+ typedef _NodePtr __node_pointer;
222
+
223
+ __node_pointer __ptr_;
224
+
225
+ _LIBCPP_INLINE_VISIBILITY
226
+ explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
227
+
228
+ template<class, class> friend class _LIBCPP_TYPE_VIS forward_list;
229
+ template<class> friend class _LIBCPP_TYPE_VIS __forward_list_const_iterator;
230
+
231
+ public:
232
+ typedef forward_iterator_tag iterator_category;
233
+ typedef typename pointer_traits<__node_pointer>::element_type::value_type
234
+ value_type;
235
+ typedef value_type& reference;
236
+ typedef typename pointer_traits<__node_pointer>::difference_type
237
+ difference_type;
238
+ typedef typename pointer_traits<__node_pointer>::template
239
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
240
+ rebind<value_type>
241
+ #else
242
+ rebind<value_type>::other
243
+ #endif
244
+ pointer;
245
+
246
+ _LIBCPP_INLINE_VISIBILITY
247
+ __forward_list_iterator() _NOEXCEPT : __ptr_(nullptr) {}
248
+
249
+ _LIBCPP_INLINE_VISIBILITY
250
+ reference operator*() const {return __ptr_->__value_;}
251
+ _LIBCPP_INLINE_VISIBILITY
252
+ pointer operator->() const {return &__ptr_->__value_;}
253
+
254
+ _LIBCPP_INLINE_VISIBILITY
255
+ __forward_list_iterator& operator++()
256
+ {
257
+ __ptr_ = __ptr_->__next_;
258
+ return *this;
259
+ }
260
+ _LIBCPP_INLINE_VISIBILITY
261
+ __forward_list_iterator operator++(int)
262
+ {
263
+ __forward_list_iterator __t(*this);
264
+ ++(*this);
265
+ return __t;
266
+ }
267
+
268
+ friend _LIBCPP_INLINE_VISIBILITY
269
+ bool operator==(const __forward_list_iterator& __x,
270
+ const __forward_list_iterator& __y)
271
+ {return __x.__ptr_ == __y.__ptr_;}
272
+ friend _LIBCPP_INLINE_VISIBILITY
273
+ bool operator!=(const __forward_list_iterator& __x,
274
+ const __forward_list_iterator& __y)
275
+ {return !(__x == __y);}
276
+ };
277
+
278
+ template <class _NodeConstPtr>
279
+ class _LIBCPP_TYPE_VIS __forward_list_const_iterator
280
+ {
281
+ typedef _NodeConstPtr __node_const_pointer;
282
+
283
+ __node_const_pointer __ptr_;
284
+
285
+ _LIBCPP_INLINE_VISIBILITY
286
+ explicit __forward_list_const_iterator(__node_const_pointer __p) _NOEXCEPT
287
+ : __ptr_(__p) {}
288
+
289
+ typedef typename remove_const
290
+ <
291
+ typename pointer_traits<__node_const_pointer>::element_type
292
+ >::type __node;
293
+ typedef typename pointer_traits<__node_const_pointer>::template
294
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
295
+ rebind<__node>
296
+ #else
297
+ rebind<__node>::other
298
+ #endif
299
+ __node_pointer;
300
+
301
+ template<class, class> friend class forward_list;
302
+
303
+ public:
304
+ typedef forward_iterator_tag iterator_category;
305
+ typedef typename __node::value_type value_type;
306
+ typedef const value_type& reference;
307
+ typedef typename pointer_traits<__node_const_pointer>::difference_type
308
+ difference_type;
309
+ typedef typename pointer_traits<__node_const_pointer>::template
310
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
311
+ rebind<const value_type>
312
+ #else
313
+ rebind<const value_type>::other
314
+ #endif
315
+ pointer;
316
+
317
+ _LIBCPP_INLINE_VISIBILITY
318
+ __forward_list_const_iterator() _NOEXCEPT : __ptr_(nullptr) {}
319
+ _LIBCPP_INLINE_VISIBILITY
320
+ __forward_list_const_iterator(__forward_list_iterator<__node_pointer> __p) _NOEXCEPT
321
+ : __ptr_(__p.__ptr_) {}
322
+
323
+ _LIBCPP_INLINE_VISIBILITY
324
+ reference operator*() const {return __ptr_->__value_;}
325
+ _LIBCPP_INLINE_VISIBILITY
326
+ pointer operator->() const {return &__ptr_->__value_;}
327
+
328
+ _LIBCPP_INLINE_VISIBILITY
329
+ __forward_list_const_iterator& operator++()
330
+ {
331
+ __ptr_ = __ptr_->__next_;
332
+ return *this;
333
+ }
334
+ _LIBCPP_INLINE_VISIBILITY
335
+ __forward_list_const_iterator operator++(int)
336
+ {
337
+ __forward_list_const_iterator __t(*this);
338
+ ++(*this);
339
+ return __t;
340
+ }
341
+
342
+ friend _LIBCPP_INLINE_VISIBILITY
343
+ bool operator==(const __forward_list_const_iterator& __x,
344
+ const __forward_list_const_iterator& __y)
345
+ {return __x.__ptr_ == __y.__ptr_;}
346
+ friend _LIBCPP_INLINE_VISIBILITY
347
+ bool operator!=(const __forward_list_const_iterator& __x,
348
+ const __forward_list_const_iterator& __y)
349
+ {return !(__x == __y);}
350
+ };
351
+
352
+ template <class _Tp, class _Alloc>
353
+ class __forward_list_base
354
+ {
355
+ protected:
356
+ typedef _Tp value_type;
357
+ typedef _Alloc allocator_type;
358
+
359
+ typedef typename allocator_traits<allocator_type>::void_pointer void_pointer;
360
+ typedef __forward_list_node<value_type, void_pointer> __node;
361
+ typedef typename __node::__self __begin_node;
362
+ typedef typename allocator_traits<allocator_type>::template
363
+ #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
364
+ rebind_alloc<__node>
365
+ #else
366
+ rebind_alloc<__node>::other
367
+ #endif
368
+ __node_allocator;
369
+ typedef allocator_traits<__node_allocator> __node_traits;
370
+ typedef typename __node_traits::pointer __node_pointer;
371
+ typedef typename __node_traits::const_pointer __node_const_pointer;
372
+
373
+ __compressed_pair<__begin_node, __node_allocator> __before_begin_;
374
+
375
+ _LIBCPP_INLINE_VISIBILITY
376
+ __node_pointer __before_begin() _NOEXCEPT
377
+ {return pointer_traits<__node_pointer>::pointer_to(
378
+ static_cast<__node&>(__before_begin_.first()));}
379
+ _LIBCPP_INLINE_VISIBILITY
380
+ __node_const_pointer __before_begin() const _NOEXCEPT
381
+ {return pointer_traits<__node_const_pointer>::pointer_to(
382
+ static_cast<const __node&>(__before_begin_.first()));}
383
+
384
+ _LIBCPP_INLINE_VISIBILITY
385
+ __node_allocator& __alloc() _NOEXCEPT
386
+ {return __before_begin_.second();}
387
+ _LIBCPP_INLINE_VISIBILITY
388
+ const __node_allocator& __alloc() const _NOEXCEPT
389
+ {return __before_begin_.second();}
390
+
391
+ typedef __forward_list_iterator<__node_pointer> iterator;
392
+ typedef __forward_list_const_iterator<__node_const_pointer> const_iterator;
393
+
394
+ _LIBCPP_INLINE_VISIBILITY
395
+ __forward_list_base()
396
+ _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)
397
+ : __before_begin_(__begin_node()) {}
398
+ _LIBCPP_INLINE_VISIBILITY
399
+ __forward_list_base(const allocator_type& __a)
400
+ : __before_begin_(__begin_node(), __node_allocator(__a)) {}
401
+
402
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
403
+ public:
404
+ __forward_list_base(__forward_list_base&& __x)
405
+ _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value);
406
+ __forward_list_base(__forward_list_base&& __x, const allocator_type& __a);
407
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
408
+
409
+ private:
410
+ __forward_list_base(const __forward_list_base&);
411
+ __forward_list_base& operator=(const __forward_list_base&);
412
+
413
+ public:
414
+ ~__forward_list_base();
415
+
416
+ protected:
417
+ _LIBCPP_INLINE_VISIBILITY
418
+ void __copy_assign_alloc(const __forward_list_base& __x)
419
+ {__copy_assign_alloc(__x, integral_constant<bool,
420
+ __node_traits::propagate_on_container_copy_assignment::value>());}
421
+
422
+ _LIBCPP_INLINE_VISIBILITY
423
+ void __move_assign_alloc(__forward_list_base& __x)
424
+ _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value ||
425
+ is_nothrow_move_assignable<__node_allocator>::value)
426
+ {__move_assign_alloc(__x, integral_constant<bool,
427
+ __node_traits::propagate_on_container_move_assignment::value>());}
428
+
429
+ public:
430
+ void swap(__forward_list_base& __x)
431
+ _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value ||
432
+ __is_nothrow_swappable<__node_allocator>::value);
433
+ protected:
434
+ void clear() _NOEXCEPT;
435
+
436
+ private:
437
+ _LIBCPP_INLINE_VISIBILITY
438
+ void __copy_assign_alloc(const __forward_list_base&, false_type) {}
439
+ _LIBCPP_INLINE_VISIBILITY
440
+ void __copy_assign_alloc(const __forward_list_base& __x, true_type)
441
+ {
442
+ if (__alloc() != __x.__alloc())
443
+ clear();
444
+ __alloc() = __x.__alloc();
445
+ }
446
+
447
+ _LIBCPP_INLINE_VISIBILITY
448
+ void __move_assign_alloc(__forward_list_base& __x, false_type) _NOEXCEPT
449
+ {}
450
+ _LIBCPP_INLINE_VISIBILITY
451
+ void __move_assign_alloc(__forward_list_base& __x, true_type)
452
+ _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value)
453
+ {__alloc() = _VSTD::move(__x.__alloc());}
454
+
455
+ _LIBCPP_INLINE_VISIBILITY
456
+ static void __swap_alloc(__node_allocator& __x, __node_allocator& __y)
457
+ _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value ||
458
+ __is_nothrow_swappable<__node_allocator>::value)
459
+ {__swap_alloc(__x, __y, integral_constant<bool,
460
+ __node_traits::propagate_on_container_swap::value>());}
461
+ _LIBCPP_INLINE_VISIBILITY
462
+ static void __swap_alloc(__node_allocator& __x, __node_allocator& __y,
463
+ false_type)
464
+ _NOEXCEPT
465
+ {}
466
+ _LIBCPP_INLINE_VISIBILITY
467
+ static void __swap_alloc(__node_allocator& __x, __node_allocator& __y,
468
+ true_type)
469
+ _NOEXCEPT_(__is_nothrow_swappable<__node_allocator>::value)
470
+ {
471
+ using _VSTD::swap;
472
+ swap(__x, __y);
473
+ }
474
+ };
475
+
476
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
477
+
478
+ template <class _Tp, class _Alloc>
479
+ inline _LIBCPP_INLINE_VISIBILITY
480
+ __forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x)
481
+ _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value)
482
+ : __before_begin_(_VSTD::move(__x.__before_begin_))
483
+ {
484
+ __x.__before_begin()->__next_ = nullptr;
485
+ }
486
+
487
+ template <class _Tp, class _Alloc>
488
+ inline _LIBCPP_INLINE_VISIBILITY
489
+ __forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x,
490
+ const allocator_type& __a)
491
+ : __before_begin_(__begin_node(), __node_allocator(__a))
492
+ {
493
+ if (__alloc() == __x.__alloc())
494
+ {
495
+ __before_begin()->__next_ = __x.__before_begin()->__next_;
496
+ __x.__before_begin()->__next_ = nullptr;
497
+ }
498
+ }
499
+
500
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
501
+
502
+ template <class _Tp, class _Alloc>
503
+ __forward_list_base<_Tp, _Alloc>::~__forward_list_base()
504
+ {
505
+ clear();
506
+ }
507
+
508
+ template <class _Tp, class _Alloc>
509
+ inline _LIBCPP_INLINE_VISIBILITY
510
+ void
511
+ __forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x)
512
+ _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value ||
513
+ __is_nothrow_swappable<__node_allocator>::value)
514
+ {
515
+ __swap_alloc(__alloc(), __x.__alloc());
516
+ using _VSTD::swap;
517
+ swap(__before_begin()->__next_, __x.__before_begin()->__next_);
518
+ }
519
+
520
+ template <class _Tp, class _Alloc>
521
+ void
522
+ __forward_list_base<_Tp, _Alloc>::clear() _NOEXCEPT
523
+ {
524
+ __node_allocator& __a = __alloc();
525
+ for (__node_pointer __p = __before_begin()->__next_; __p != nullptr;)
526
+ {
527
+ __node_pointer __next = __p->__next_;
528
+ __node_traits::destroy(__a, _VSTD::addressof(__p->__value_));
529
+ __node_traits::deallocate(__a, __p, 1);
530
+ __p = __next;
531
+ }
532
+ __before_begin()->__next_ = nullptr;
533
+ }
534
+
535
+ template <class _Tp, class _Alloc = allocator<_Tp> >
536
+ class _LIBCPP_TYPE_VIS forward_list
537
+ : private __forward_list_base<_Tp, _Alloc>
538
+ {
539
+ typedef __forward_list_base<_Tp, _Alloc> base;
540
+ typedef typename base::__node_allocator __node_allocator;
541
+ typedef typename base::__node __node;
542
+ typedef typename base::__node_traits __node_traits;
543
+ typedef typename base::__node_pointer __node_pointer;
544
+
545
+ public:
546
+ typedef _Tp value_type;
547
+ typedef _Alloc allocator_type;
548
+
549
+ typedef value_type& reference;
550
+ typedef const value_type& const_reference;
551
+ typedef typename allocator_traits<allocator_type>::pointer pointer;
552
+ typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
553
+ typedef typename allocator_traits<allocator_type>::size_type size_type;
554
+ typedef typename allocator_traits<allocator_type>::difference_type difference_type;
555
+
556
+ typedef typename base::iterator iterator;
557
+ typedef typename base::const_iterator const_iterator;
558
+
559
+ _LIBCPP_INLINE_VISIBILITY
560
+ forward_list()
561
+ _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)
562
+ {} // = default;
563
+ explicit forward_list(const allocator_type& __a);
564
+ explicit forward_list(size_type __n);
565
+ forward_list(size_type __n, const value_type& __v);
566
+ forward_list(size_type __n, const value_type& __v, const allocator_type& __a);
567
+ template <class _InputIterator>
568
+ forward_list(_InputIterator __f, _InputIterator __l,
569
+ typename enable_if<
570
+ __is_input_iterator<_InputIterator>::value
571
+ >::type* = nullptr);
572
+ template <class _InputIterator>
573
+ forward_list(_InputIterator __f, _InputIterator __l,
574
+ const allocator_type& __a,
575
+ typename enable_if<
576
+ __is_input_iterator<_InputIterator>::value
577
+ >::type* = nullptr);
578
+ forward_list(const forward_list& __x);
579
+ forward_list(const forward_list& __x, const allocator_type& __a);
580
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
581
+ _LIBCPP_INLINE_VISIBILITY
582
+ forward_list(forward_list&& __x)
583
+ _NOEXCEPT_(is_nothrow_move_constructible<base>::value)
584
+ : base(_VSTD::move(__x)) {}
585
+ forward_list(forward_list&& __x, const allocator_type& __a);
586
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
587
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
588
+ forward_list(initializer_list<value_type> __il);
589
+ forward_list(initializer_list<value_type> __il, const allocator_type& __a);
590
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
591
+
592
+ // ~forward_list() = default;
593
+
594
+ forward_list& operator=(const forward_list& __x);
595
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
596
+ forward_list& operator=(forward_list&& __x)
597
+ _NOEXCEPT_(
598
+ __node_traits::propagate_on_container_move_assignment::value &&
599
+ is_nothrow_move_assignable<allocator_type>::value);
600
+ #endif
601
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
602
+ forward_list& operator=(initializer_list<value_type> __il);
603
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
604
+
605
+ template <class _InputIterator>
606
+ typename enable_if
607
+ <
608
+ __is_input_iterator<_InputIterator>::value,
609
+ void
610
+ >::type
611
+ assign(_InputIterator __f, _InputIterator __l);
612
+ void assign(size_type __n, const value_type& __v);
613
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
614
+ void assign(initializer_list<value_type> __il);
615
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
616
+
617
+ _LIBCPP_INLINE_VISIBILITY
618
+ allocator_type get_allocator() const _NOEXCEPT
619
+ {return allocator_type(base::__alloc());}
620
+
621
+ _LIBCPP_INLINE_VISIBILITY
622
+ iterator begin() _NOEXCEPT
623
+ {return iterator(base::__before_begin()->__next_);}
624
+ _LIBCPP_INLINE_VISIBILITY
625
+ const_iterator begin() const _NOEXCEPT
626
+ {return const_iterator(base::__before_begin()->__next_);}
627
+ _LIBCPP_INLINE_VISIBILITY
628
+ iterator end() _NOEXCEPT
629
+ {return iterator(nullptr);}
630
+ _LIBCPP_INLINE_VISIBILITY
631
+ const_iterator end() const _NOEXCEPT
632
+ {return const_iterator(nullptr);}
633
+
634
+ _LIBCPP_INLINE_VISIBILITY
635
+ const_iterator cbegin() const _NOEXCEPT
636
+ {return const_iterator(base::__before_begin()->__next_);}
637
+ _LIBCPP_INLINE_VISIBILITY
638
+ const_iterator cend() const _NOEXCEPT
639
+ {return const_iterator(nullptr);}
640
+
641
+ _LIBCPP_INLINE_VISIBILITY
642
+ iterator before_begin() _NOEXCEPT
643
+ {return iterator(base::__before_begin());}
644
+ _LIBCPP_INLINE_VISIBILITY
645
+ const_iterator before_begin() const _NOEXCEPT
646
+ {return const_iterator(base::__before_begin());}
647
+ _LIBCPP_INLINE_VISIBILITY
648
+ const_iterator cbefore_begin() const _NOEXCEPT
649
+ {return const_iterator(base::__before_begin());}
650
+
651
+ _LIBCPP_INLINE_VISIBILITY
652
+ bool empty() const _NOEXCEPT
653
+ {return base::__before_begin()->__next_ == nullptr;}
654
+ _LIBCPP_INLINE_VISIBILITY
655
+ size_type max_size() const _NOEXCEPT
656
+ {return numeric_limits<size_type>::max();}
657
+
658
+ _LIBCPP_INLINE_VISIBILITY
659
+ reference front() {return base::__before_begin()->__next_->__value_;}
660
+ _LIBCPP_INLINE_VISIBILITY
661
+ const_reference front() const {return base::__before_begin()->__next_->__value_;}
662
+
663
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
664
+ #ifndef _LIBCPP_HAS_NO_VARIADICS
665
+ template <class... _Args> void emplace_front(_Args&&... __args);
666
+ #endif
667
+ void push_front(value_type&& __v);
668
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
669
+ void push_front(const value_type& __v);
670
+
671
+ void pop_front();
672
+
673
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
674
+ #ifndef _LIBCPP_HAS_NO_VARIADICS
675
+ template <class... _Args>
676
+ iterator emplace_after(const_iterator __p, _Args&&... __args);
677
+ #endif // _LIBCPP_HAS_NO_VARIADICS
678
+ iterator insert_after(const_iterator __p, value_type&& __v);
679
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
680
+ iterator insert_after(const_iterator __p, const value_type& __v);
681
+ iterator insert_after(const_iterator __p, size_type __n, const value_type& __v);
682
+ template <class _InputIterator>
683
+ _LIBCPP_INLINE_VISIBILITY
684
+ typename enable_if
685
+ <
686
+ __is_input_iterator<_InputIterator>::value,
687
+ iterator
688
+ >::type
689
+ insert_after(const_iterator __p, _InputIterator __f, _InputIterator __l);
690
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
691
+ iterator insert_after(const_iterator __p, initializer_list<value_type> __il)
692
+ {return insert_after(__p, __il.begin(), __il.end());}
693
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
694
+
695
+ iterator erase_after(const_iterator __p);
696
+ iterator erase_after(const_iterator __f, const_iterator __l);
697
+
698
+ _LIBCPP_INLINE_VISIBILITY
699
+ void swap(forward_list& __x)
700
+ _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value ||
701
+ __is_nothrow_swappable<__node_allocator>::value)
702
+ {base::swap(__x);}
703
+
704
+ void resize(size_type __n);
705
+ void resize(size_type __n, const value_type& __v);
706
+ _LIBCPP_INLINE_VISIBILITY
707
+ void clear() _NOEXCEPT {base::clear();}
708
+
709
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
710
+ _LIBCPP_INLINE_VISIBILITY
711
+ void splice_after(const_iterator __p, forward_list&& __x);
712
+ _LIBCPP_INLINE_VISIBILITY
713
+ void splice_after(const_iterator __p, forward_list&& __x, const_iterator __i);
714
+ _LIBCPP_INLINE_VISIBILITY
715
+ void splice_after(const_iterator __p, forward_list&& __x,
716
+ const_iterator __f, const_iterator __l);
717
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
718
+ void splice_after(const_iterator __p, forward_list& __x);
719
+ void splice_after(const_iterator __p, forward_list& __x, const_iterator __i);
720
+ void splice_after(const_iterator __p, forward_list& __x,
721
+ const_iterator __f, const_iterator __l);
722
+ void remove(const value_type& __v);
723
+ template <class _Predicate> void remove_if(_Predicate __pred);
724
+ _LIBCPP_INLINE_VISIBILITY
725
+ void unique() {unique(__equal_to<value_type>());}
726
+ template <class _BinaryPredicate> void unique(_BinaryPredicate __binary_pred);
727
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
728
+ _LIBCPP_INLINE_VISIBILITY
729
+ void merge(forward_list&& __x) {merge(__x, __less<value_type>());}
730
+ template <class _Compare>
731
+ _LIBCPP_INLINE_VISIBILITY
732
+ void merge(forward_list&& __x, _Compare __comp)
733
+ {merge(__x, _VSTD::move(__comp));}
734
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
735
+ _LIBCPP_INLINE_VISIBILITY
736
+ void merge(forward_list& __x) {merge(__x, __less<value_type>());}
737
+ template <class _Compare> void merge(forward_list& __x, _Compare __comp);
738
+ _LIBCPP_INLINE_VISIBILITY
739
+ void sort() {sort(__less<value_type>());}
740
+ template <class _Compare> void sort(_Compare __comp);
741
+ void reverse() _NOEXCEPT;
742
+
743
+ private:
744
+
745
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
746
+ void __move_assign(forward_list& __x, true_type)
747
+ _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);
748
+ void __move_assign(forward_list& __x, false_type);
749
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
750
+
751
+ template <class _Compare>
752
+ static
753
+ __node_pointer
754
+ __merge(__node_pointer __f1, __node_pointer __f2, _Compare& __comp);
755
+
756
+ template <class _Compare>
757
+ static
758
+ __node_pointer
759
+ __sort(__node_pointer __f, difference_type __sz, _Compare& __comp);
760
+ };
761
+
762
+ template <class _Tp, class _Alloc>
763
+ inline _LIBCPP_INLINE_VISIBILITY
764
+ forward_list<_Tp, _Alloc>::forward_list(const allocator_type& __a)
765
+ : base(__a)
766
+ {
767
+ }
768
+
769
+ template <class _Tp, class _Alloc>
770
+ forward_list<_Tp, _Alloc>::forward_list(size_type __n)
771
+ {
772
+ if (__n > 0)
773
+ {
774
+ __node_allocator& __a = base::__alloc();
775
+ typedef __allocator_destructor<__node_allocator> _Dp;
776
+ unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));
777
+ for (__node_pointer __p = base::__before_begin(); __n > 0; --__n,
778
+ __p = __p->__next_)
779
+ {
780
+ __h.reset(__node_traits::allocate(__a, 1));
781
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_));
782
+ __h->__next_ = nullptr;
783
+ __p->__next_ = __h.release();
784
+ }
785
+ }
786
+ }
787
+
788
+ template <class _Tp, class _Alloc>
789
+ forward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v)
790
+ {
791
+ insert_after(cbefore_begin(), __n, __v);
792
+ }
793
+
794
+ template <class _Tp, class _Alloc>
795
+ forward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v,
796
+ const allocator_type& __a)
797
+ : base(__a)
798
+ {
799
+ insert_after(cbefore_begin(), __n, __v);
800
+ }
801
+
802
+ template <class _Tp, class _Alloc>
803
+ template <class _InputIterator>
804
+ forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l,
805
+ typename enable_if<
806
+ __is_input_iterator<_InputIterator>::value
807
+ >::type*)
808
+ {
809
+ insert_after(cbefore_begin(), __f, __l);
810
+ }
811
+
812
+ template <class _Tp, class _Alloc>
813
+ template <class _InputIterator>
814
+ forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l,
815
+ const allocator_type& __a,
816
+ typename enable_if<
817
+ __is_input_iterator<_InputIterator>::value
818
+ >::type*)
819
+ : base(__a)
820
+ {
821
+ insert_after(cbefore_begin(), __f, __l);
822
+ }
823
+
824
+ template <class _Tp, class _Alloc>
825
+ forward_list<_Tp, _Alloc>::forward_list(const forward_list& __x)
826
+ : base(allocator_type(
827
+ __node_traits::select_on_container_copy_construction(__x.__alloc())
828
+ )
829
+ )
830
+ {
831
+ insert_after(cbefore_begin(), __x.begin(), __x.end());
832
+ }
833
+
834
+ template <class _Tp, class _Alloc>
835
+ forward_list<_Tp, _Alloc>::forward_list(const forward_list& __x,
836
+ const allocator_type& __a)
837
+ : base(__a)
838
+ {
839
+ insert_after(cbefore_begin(), __x.begin(), __x.end());
840
+ }
841
+
842
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
843
+
844
+ template <class _Tp, class _Alloc>
845
+ forward_list<_Tp, _Alloc>::forward_list(forward_list&& __x,
846
+ const allocator_type& __a)
847
+ : base(_VSTD::move(__x), __a)
848
+ {
849
+ if (base::__alloc() != __x.__alloc())
850
+ {
851
+ typedef move_iterator<iterator> _Ip;
852
+ insert_after(cbefore_begin(), _Ip(__x.begin()), _Ip(__x.end()));
853
+ }
854
+ }
855
+
856
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
857
+
858
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
859
+
860
+ template <class _Tp, class _Alloc>
861
+ forward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il)
862
+ {
863
+ insert_after(cbefore_begin(), __il.begin(), __il.end());
864
+ }
865
+
866
+ template <class _Tp, class _Alloc>
867
+ forward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il,
868
+ const allocator_type& __a)
869
+ : base(__a)
870
+ {
871
+ insert_after(cbefore_begin(), __il.begin(), __il.end());
872
+ }
873
+
874
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
875
+
876
+ template <class _Tp, class _Alloc>
877
+ forward_list<_Tp, _Alloc>&
878
+ forward_list<_Tp, _Alloc>::operator=(const forward_list& __x)
879
+ {
880
+ if (this != &__x)
881
+ {
882
+ base::__copy_assign_alloc(__x);
883
+ assign(__x.begin(), __x.end());
884
+ }
885
+ return *this;
886
+ }
887
+
888
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
889
+
890
+ template <class _Tp, class _Alloc>
891
+ void
892
+ forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, true_type)
893
+ _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)
894
+ {
895
+ clear();
896
+ base::__move_assign_alloc(__x);
897
+ base::__before_begin()->__next_ = __x.__before_begin()->__next_;
898
+ __x.__before_begin()->__next_ = nullptr;
899
+ }
900
+
901
+ template <class _Tp, class _Alloc>
902
+ void
903
+ forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, false_type)
904
+ {
905
+ if (base::__alloc() == __x.__alloc())
906
+ __move_assign(__x, true_type());
907
+ else
908
+ {
909
+ typedef move_iterator<iterator> _Ip;
910
+ assign(_Ip(__x.begin()), _Ip(__x.end()));
911
+ }
912
+ }
913
+
914
+ template <class _Tp, class _Alloc>
915
+ inline _LIBCPP_INLINE_VISIBILITY
916
+ forward_list<_Tp, _Alloc>&
917
+ forward_list<_Tp, _Alloc>::operator=(forward_list&& __x)
918
+ _NOEXCEPT_(
919
+ __node_traits::propagate_on_container_move_assignment::value &&
920
+ is_nothrow_move_assignable<allocator_type>::value)
921
+ {
922
+ __move_assign(__x, integral_constant<bool,
923
+ __node_traits::propagate_on_container_move_assignment::value>());
924
+ return *this;
925
+ }
926
+
927
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
928
+
929
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
930
+
931
+ template <class _Tp, class _Alloc>
932
+ inline _LIBCPP_INLINE_VISIBILITY
933
+ forward_list<_Tp, _Alloc>&
934
+ forward_list<_Tp, _Alloc>::operator=(initializer_list<value_type> __il)
935
+ {
936
+ assign(__il.begin(), __il.end());
937
+ return *this;
938
+ }
939
+
940
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
941
+
942
+ template <class _Tp, class _Alloc>
943
+ template <class _InputIterator>
944
+ typename enable_if
945
+ <
946
+ __is_input_iterator<_InputIterator>::value,
947
+ void
948
+ >::type
949
+ forward_list<_Tp, _Alloc>::assign(_InputIterator __f, _InputIterator __l)
950
+ {
951
+ iterator __i = before_begin();
952
+ iterator __j = _VSTD::next(__i);
953
+ iterator __e = end();
954
+ for (; __j != __e && __f != __l; ++__i, ++__j, ++__f)
955
+ *__j = *__f;
956
+ if (__j == __e)
957
+ insert_after(__i, __f, __l);
958
+ else
959
+ erase_after(__i, __e);
960
+ }
961
+
962
+ template <class _Tp, class _Alloc>
963
+ void
964
+ forward_list<_Tp, _Alloc>::assign(size_type __n, const value_type& __v)
965
+ {
966
+ iterator __i = before_begin();
967
+ iterator __j = _VSTD::next(__i);
968
+ iterator __e = end();
969
+ for (; __j != __e && __n > 0; --__n, ++__i, ++__j)
970
+ *__j = __v;
971
+ if (__j == __e)
972
+ insert_after(__i, __n, __v);
973
+ else
974
+ erase_after(__i, __e);
975
+ }
976
+
977
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
978
+
979
+ template <class _Tp, class _Alloc>
980
+ inline _LIBCPP_INLINE_VISIBILITY
981
+ void
982
+ forward_list<_Tp, _Alloc>::assign(initializer_list<value_type> __il)
983
+ {
984
+ assign(__il.begin(), __il.end());
985
+ }
986
+
987
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
988
+
989
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
990
+ #ifndef _LIBCPP_HAS_NO_VARIADICS
991
+
992
+ template <class _Tp, class _Alloc>
993
+ template <class... _Args>
994
+ void
995
+ forward_list<_Tp, _Alloc>::emplace_front(_Args&&... __args)
996
+ {
997
+ __node_allocator& __a = base::__alloc();
998
+ typedef __allocator_destructor<__node_allocator> _Dp;
999
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1000
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_),
1001
+ _VSTD::forward<_Args>(__args)...);
1002
+ __h->__next_ = base::__before_begin()->__next_;
1003
+ base::__before_begin()->__next_ = __h.release();
1004
+ }
1005
+
1006
+ #endif // _LIBCPP_HAS_NO_VARIADICS
1007
+
1008
+ template <class _Tp, class _Alloc>
1009
+ void
1010
+ forward_list<_Tp, _Alloc>::push_front(value_type&& __v)
1011
+ {
1012
+ __node_allocator& __a = base::__alloc();
1013
+ typedef __allocator_destructor<__node_allocator> _Dp;
1014
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1015
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), _VSTD::move(__v));
1016
+ __h->__next_ = base::__before_begin()->__next_;
1017
+ base::__before_begin()->__next_ = __h.release();
1018
+ }
1019
+
1020
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1021
+
1022
+ template <class _Tp, class _Alloc>
1023
+ void
1024
+ forward_list<_Tp, _Alloc>::push_front(const value_type& __v)
1025
+ {
1026
+ __node_allocator& __a = base::__alloc();
1027
+ typedef __allocator_destructor<__node_allocator> _Dp;
1028
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1029
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);
1030
+ __h->__next_ = base::__before_begin()->__next_;
1031
+ base::__before_begin()->__next_ = __h.release();
1032
+ }
1033
+
1034
+ template <class _Tp, class _Alloc>
1035
+ void
1036
+ forward_list<_Tp, _Alloc>::pop_front()
1037
+ {
1038
+ __node_allocator& __a = base::__alloc();
1039
+ __node_pointer __p = base::__before_begin()->__next_;
1040
+ base::__before_begin()->__next_ = __p->__next_;
1041
+ __node_traits::destroy(__a, _VSTD::addressof(__p->__value_));
1042
+ __node_traits::deallocate(__a, __p, 1);
1043
+ }
1044
+
1045
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1046
+ #ifndef _LIBCPP_HAS_NO_VARIADICS
1047
+
1048
+ template <class _Tp, class _Alloc>
1049
+ template <class... _Args>
1050
+ typename forward_list<_Tp, _Alloc>::iterator
1051
+ forward_list<_Tp, _Alloc>::emplace_after(const_iterator __p, _Args&&... __args)
1052
+ {
1053
+ __node_pointer const __r = const_cast<__node_pointer>(__p.__ptr_);
1054
+ __node_allocator& __a = base::__alloc();
1055
+ typedef __allocator_destructor<__node_allocator> _Dp;
1056
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1057
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_),
1058
+ _VSTD::forward<_Args>(__args)...);
1059
+ __h->__next_ = __r->__next_;
1060
+ __r->__next_ = __h.release();
1061
+ return iterator(__r->__next_);
1062
+ }
1063
+
1064
+ #endif // _LIBCPP_HAS_NO_VARIADICS
1065
+
1066
+ template <class _Tp, class _Alloc>
1067
+ typename forward_list<_Tp, _Alloc>::iterator
1068
+ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, value_type&& __v)
1069
+ {
1070
+ __node_pointer const __r = const_cast<__node_pointer>(__p.__ptr_);
1071
+ __node_allocator& __a = base::__alloc();
1072
+ typedef __allocator_destructor<__node_allocator> _Dp;
1073
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1074
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), _VSTD::move(__v));
1075
+ __h->__next_ = __r->__next_;
1076
+ __r->__next_ = __h.release();
1077
+ return iterator(__r->__next_);
1078
+ }
1079
+
1080
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1081
+
1082
+ template <class _Tp, class _Alloc>
1083
+ typename forward_list<_Tp, _Alloc>::iterator
1084
+ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, const value_type& __v)
1085
+ {
1086
+ __node_pointer const __r = const_cast<__node_pointer>(__p.__ptr_);
1087
+ __node_allocator& __a = base::__alloc();
1088
+ typedef __allocator_destructor<__node_allocator> _Dp;
1089
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1090
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);
1091
+ __h->__next_ = __r->__next_;
1092
+ __r->__next_ = __h.release();
1093
+ return iterator(__r->__next_);
1094
+ }
1095
+
1096
+ template <class _Tp, class _Alloc>
1097
+ typename forward_list<_Tp, _Alloc>::iterator
1098
+ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, size_type __n,
1099
+ const value_type& __v)
1100
+ {
1101
+ __node_pointer __r = const_cast<__node_pointer>(__p.__ptr_);
1102
+ if (__n > 0)
1103
+ {
1104
+ __node_allocator& __a = base::__alloc();
1105
+ typedef __allocator_destructor<__node_allocator> _Dp;
1106
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1107
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);
1108
+ __node_pointer __first = __h.release();
1109
+ __node_pointer __last = __first;
1110
+ #ifndef _LIBCPP_NO_EXCEPTIONS
1111
+ try
1112
+ {
1113
+ #endif // _LIBCPP_NO_EXCEPTIONS
1114
+ for (--__n; __n != 0; --__n, __last = __last->__next_)
1115
+ {
1116
+ __h.reset(__node_traits::allocate(__a, 1));
1117
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);
1118
+ __last->__next_ = __h.release();
1119
+ }
1120
+ #ifndef _LIBCPP_NO_EXCEPTIONS
1121
+ }
1122
+ catch (...)
1123
+ {
1124
+ while (__first != nullptr)
1125
+ {
1126
+ __node_pointer __next = __first->__next_;
1127
+ __node_traits::destroy(__a, _VSTD::addressof(__first->__value_));
1128
+ __node_traits::deallocate(__a, __first, 1);
1129
+ __first = __next;
1130
+ }
1131
+ throw;
1132
+ }
1133
+ #endif // _LIBCPP_NO_EXCEPTIONS
1134
+ __last->__next_ = __r->__next_;
1135
+ __r->__next_ = __first;
1136
+ __r = __last;
1137
+ }
1138
+ return iterator(__r);
1139
+ }
1140
+
1141
+ template <class _Tp, class _Alloc>
1142
+ template <class _InputIterator>
1143
+ typename enable_if
1144
+ <
1145
+ __is_input_iterator<_InputIterator>::value,
1146
+ typename forward_list<_Tp, _Alloc>::iterator
1147
+ >::type
1148
+ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p,
1149
+ _InputIterator __f, _InputIterator __l)
1150
+ {
1151
+ __node_pointer __r = const_cast<__node_pointer>(__p.__ptr_);
1152
+ if (__f != __l)
1153
+ {
1154
+ __node_allocator& __a = base::__alloc();
1155
+ typedef __allocator_destructor<__node_allocator> _Dp;
1156
+ unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));
1157
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), *__f);
1158
+ __node_pointer __first = __h.release();
1159
+ __node_pointer __last = __first;
1160
+ #ifndef _LIBCPP_NO_EXCEPTIONS
1161
+ try
1162
+ {
1163
+ #endif // _LIBCPP_NO_EXCEPTIONS
1164
+ for (++__f; __f != __l; ++__f, __last = __last->__next_)
1165
+ {
1166
+ __h.reset(__node_traits::allocate(__a, 1));
1167
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), *__f);
1168
+ __last->__next_ = __h.release();
1169
+ }
1170
+ #ifndef _LIBCPP_NO_EXCEPTIONS
1171
+ }
1172
+ catch (...)
1173
+ {
1174
+ while (__first != nullptr)
1175
+ {
1176
+ __node_pointer __next = __first->__next_;
1177
+ __node_traits::destroy(__a, _VSTD::addressof(__first->__value_));
1178
+ __node_traits::deallocate(__a, __first, 1);
1179
+ __first = __next;
1180
+ }
1181
+ throw;
1182
+ }
1183
+ #endif // _LIBCPP_NO_EXCEPTIONS
1184
+ __last->__next_ = __r->__next_;
1185
+ __r->__next_ = __first;
1186
+ __r = __last;
1187
+ }
1188
+ return iterator(__r);
1189
+ }
1190
+
1191
+ template <class _Tp, class _Alloc>
1192
+ typename forward_list<_Tp, _Alloc>::iterator
1193
+ forward_list<_Tp, _Alloc>::erase_after(const_iterator __f)
1194
+ {
1195
+ __node_pointer __p = const_cast<__node_pointer>(__f.__ptr_);
1196
+ __node_pointer __n = __p->__next_;
1197
+ __p->__next_ = __n->__next_;
1198
+ __node_allocator& __a = base::__alloc();
1199
+ __node_traits::destroy(__a, _VSTD::addressof(__n->__value_));
1200
+ __node_traits::deallocate(__a, __n, 1);
1201
+ return iterator(__p->__next_);
1202
+ }
1203
+
1204
+ template <class _Tp, class _Alloc>
1205
+ typename forward_list<_Tp, _Alloc>::iterator
1206
+ forward_list<_Tp, _Alloc>::erase_after(const_iterator __f, const_iterator __l)
1207
+ {
1208
+ __node_pointer __e = const_cast<__node_pointer>(__l.__ptr_);
1209
+ if (__f != __l)
1210
+ {
1211
+ __node_pointer __p = const_cast<__node_pointer>(__f.__ptr_);
1212
+ __node_pointer __n = __p->__next_;
1213
+ if (__n != __e)
1214
+ {
1215
+ __p->__next_ = __e;
1216
+ __node_allocator& __a = base::__alloc();
1217
+ do
1218
+ {
1219
+ __p = __n->__next_;
1220
+ __node_traits::destroy(__a, _VSTD::addressof(__n->__value_));
1221
+ __node_traits::deallocate(__a, __n, 1);
1222
+ __n = __p;
1223
+ } while (__n != __e);
1224
+ }
1225
+ }
1226
+ return iterator(__e);
1227
+ }
1228
+
1229
+ template <class _Tp, class _Alloc>
1230
+ void
1231
+ forward_list<_Tp, _Alloc>::resize(size_type __n)
1232
+ {
1233
+ size_type __sz = 0;
1234
+ iterator __p = before_begin();
1235
+ iterator __i = begin();
1236
+ iterator __e = end();
1237
+ for (; __i != __e && __sz < __n; ++__p, ++__i, ++__sz)
1238
+ ;
1239
+ if (__i != __e)
1240
+ erase_after(__p, __e);
1241
+ else
1242
+ {
1243
+ __n -= __sz;
1244
+ if (__n > 0)
1245
+ {
1246
+ __node_allocator& __a = base::__alloc();
1247
+ typedef __allocator_destructor<__node_allocator> _Dp;
1248
+ unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));
1249
+ for (__node_pointer __ptr = __p.__ptr_; __n > 0; --__n,
1250
+ __ptr = __ptr->__next_)
1251
+ {
1252
+ __h.reset(__node_traits::allocate(__a, 1));
1253
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_));
1254
+ __h->__next_ = nullptr;
1255
+ __ptr->__next_ = __h.release();
1256
+ }
1257
+ }
1258
+ }
1259
+ }
1260
+
1261
+ template <class _Tp, class _Alloc>
1262
+ void
1263
+ forward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v)
1264
+ {
1265
+ size_type __sz = 0;
1266
+ iterator __p = before_begin();
1267
+ iterator __i = begin();
1268
+ iterator __e = end();
1269
+ for (; __i != __e && __sz < __n; ++__p, ++__i, ++__sz)
1270
+ ;
1271
+ if (__i != __e)
1272
+ erase_after(__p, __e);
1273
+ else
1274
+ {
1275
+ __n -= __sz;
1276
+ if (__n > 0)
1277
+ {
1278
+ __node_allocator& __a = base::__alloc();
1279
+ typedef __allocator_destructor<__node_allocator> _Dp;
1280
+ unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));
1281
+ for (__node_pointer __ptr = __p.__ptr_; __n > 0; --__n,
1282
+ __ptr = __ptr->__next_)
1283
+ {
1284
+ __h.reset(__node_traits::allocate(__a, 1));
1285
+ __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);
1286
+ __h->__next_ = nullptr;
1287
+ __ptr->__next_ = __h.release();
1288
+ }
1289
+ }
1290
+ }
1291
+ }
1292
+
1293
+ template <class _Tp, class _Alloc>
1294
+ void
1295
+ forward_list<_Tp, _Alloc>::splice_after(const_iterator __p,
1296
+ forward_list& __x)
1297
+ {
1298
+ if (!__x.empty())
1299
+ {
1300
+ if (__p.__ptr_->__next_ != nullptr)
1301
+ {
1302
+ const_iterator __lm1 = __x.before_begin();
1303
+ while (__lm1.__ptr_->__next_ != nullptr)
1304
+ ++__lm1;
1305
+ const_cast<__node_pointer>(__lm1.__ptr_)->__next_ =
1306
+ const_cast<__node_pointer>(__p.__ptr_)->__next_;
1307
+ }
1308
+ const_cast<__node_pointer>(__p.__ptr_)->__next_ =
1309
+ const_cast<__node_pointer>(__x.__before_begin())->__next_;
1310
+ const_cast<__node_pointer>(__x.__before_begin())->__next_ = nullptr;
1311
+ }
1312
+ }
1313
+
1314
+ template <class _Tp, class _Alloc>
1315
+ void
1316
+ forward_list<_Tp, _Alloc>::splice_after(const_iterator __p,
1317
+ forward_list& __x,
1318
+ const_iterator __i)
1319
+ {
1320
+ const_iterator __lm1 = _VSTD::next(__i);
1321
+ if (__p != __i && __p != __lm1)
1322
+ {
1323
+ const_cast<__node_pointer>(__i.__ptr_)->__next_ =
1324
+ const_cast<__node_pointer>(__lm1.__ptr_)->__next_;
1325
+ const_cast<__node_pointer>(__lm1.__ptr_)->__next_ =
1326
+ const_cast<__node_pointer>(__p.__ptr_)->__next_;
1327
+ const_cast<__node_pointer>(__p.__ptr_)->__next_ =
1328
+ const_cast<__node_pointer>(__lm1.__ptr_);
1329
+ }
1330
+ }
1331
+
1332
+ template <class _Tp, class _Alloc>
1333
+ void
1334
+ forward_list<_Tp, _Alloc>::splice_after(const_iterator __p,
1335
+ forward_list& __x,
1336
+ const_iterator __f, const_iterator __l)
1337
+ {
1338
+ if (__f != __l && __p != __f)
1339
+ {
1340
+ const_iterator __lm1 = __f;
1341
+ while (__lm1.__ptr_->__next_ != __l.__ptr_)
1342
+ ++__lm1;
1343
+ if (__f != __lm1)
1344
+ {
1345
+ const_cast<__node_pointer>(__lm1.__ptr_)->__next_ =
1346
+ const_cast<__node_pointer>(__p.__ptr_)->__next_;
1347
+ const_cast<__node_pointer>(__p.__ptr_)->__next_ =
1348
+ const_cast<__node_pointer>(__f.__ptr_)->__next_;
1349
+ const_cast<__node_pointer>(__f.__ptr_)->__next_ =
1350
+ const_cast<__node_pointer>(__l.__ptr_);
1351
+ }
1352
+ }
1353
+ }
1354
+
1355
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1356
+
1357
+ template <class _Tp, class _Alloc>
1358
+ inline _LIBCPP_INLINE_VISIBILITY
1359
+ void
1360
+ forward_list<_Tp, _Alloc>::splice_after(const_iterator __p,
1361
+ forward_list&& __x)
1362
+ {
1363
+ splice_after(__p, __x);
1364
+ }
1365
+
1366
+ template <class _Tp, class _Alloc>
1367
+ inline _LIBCPP_INLINE_VISIBILITY
1368
+ void
1369
+ forward_list<_Tp, _Alloc>::splice_after(const_iterator __p,
1370
+ forward_list&& __x,
1371
+ const_iterator __i)
1372
+ {
1373
+ splice_after(__p, __x, __i);
1374
+ }
1375
+
1376
+ template <class _Tp, class _Alloc>
1377
+ inline _LIBCPP_INLINE_VISIBILITY
1378
+ void
1379
+ forward_list<_Tp, _Alloc>::splice_after(const_iterator __p,
1380
+ forward_list&& __x,
1381
+ const_iterator __f, const_iterator __l)
1382
+ {
1383
+ splice_after(__p, __x, __f, __l);
1384
+ }
1385
+
1386
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1387
+
1388
+ template <class _Tp, class _Alloc>
1389
+ void
1390
+ forward_list<_Tp, _Alloc>::remove(const value_type& __v)
1391
+ {
1392
+ iterator __e = end();
1393
+ for (iterator __i = before_begin(); __i.__ptr_->__next_ != nullptr;)
1394
+ {
1395
+ if (__i.__ptr_->__next_->__value_ == __v)
1396
+ {
1397
+ iterator __j = _VSTD::next(__i, 2);
1398
+ for (; __j != __e && *__j == __v; ++__j)
1399
+ ;
1400
+ erase_after(__i, __j);
1401
+ if (__j == __e)
1402
+ break;
1403
+ __i = __j;
1404
+ }
1405
+ else
1406
+ ++__i;
1407
+ }
1408
+ }
1409
+
1410
+ template <class _Tp, class _Alloc>
1411
+ template <class _Predicate>
1412
+ void
1413
+ forward_list<_Tp, _Alloc>::remove_if(_Predicate __pred)
1414
+ {
1415
+ iterator __e = end();
1416
+ for (iterator __i = before_begin(); __i.__ptr_->__next_ != nullptr;)
1417
+ {
1418
+ if (__pred(__i.__ptr_->__next_->__value_))
1419
+ {
1420
+ iterator __j = _VSTD::next(__i, 2);
1421
+ for (; __j != __e && __pred(*__j); ++__j)
1422
+ ;
1423
+ erase_after(__i, __j);
1424
+ if (__j == __e)
1425
+ break;
1426
+ __i = __j;
1427
+ }
1428
+ else
1429
+ ++__i;
1430
+ }
1431
+ }
1432
+
1433
+ template <class _Tp, class _Alloc>
1434
+ template <class _BinaryPredicate>
1435
+ void
1436
+ forward_list<_Tp, _Alloc>::unique(_BinaryPredicate __binary_pred)
1437
+ {
1438
+ for (iterator __i = begin(), __e = end(); __i != __e;)
1439
+ {
1440
+ iterator __j = _VSTD::next(__i);
1441
+ for (; __j != __e && __binary_pred(*__i, *__j); ++__j)
1442
+ ;
1443
+ if (__i.__ptr_->__next_ != __j.__ptr_)
1444
+ erase_after(__i, __j);
1445
+ __i = __j;
1446
+ }
1447
+ }
1448
+
1449
+ template <class _Tp, class _Alloc>
1450
+ template <class _Compare>
1451
+ void
1452
+ forward_list<_Tp, _Alloc>::merge(forward_list& __x, _Compare __comp)
1453
+ {
1454
+ if (this != &__x)
1455
+ {
1456
+ base::__before_begin()->__next_ = __merge(base::__before_begin()->__next_,
1457
+ __x.__before_begin()->__next_,
1458
+ __comp);
1459
+ __x.__before_begin()->__next_ = nullptr;
1460
+ }
1461
+ }
1462
+
1463
+ template <class _Tp, class _Alloc>
1464
+ template <class _Compare>
1465
+ typename forward_list<_Tp, _Alloc>::__node_pointer
1466
+ forward_list<_Tp, _Alloc>::__merge(__node_pointer __f1, __node_pointer __f2,
1467
+ _Compare& __comp)
1468
+ {
1469
+ if (__f1 == nullptr)
1470
+ return __f2;
1471
+ if (__f2 == nullptr)
1472
+ return __f1;
1473
+ __node_pointer __r;
1474
+ if (__comp(__f2->__value_, __f1->__value_))
1475
+ {
1476
+ __node_pointer __t = __f2;
1477
+ while (__t->__next_ != nullptr &&
1478
+ __comp(__t->__next_->__value_, __f1->__value_))
1479
+ __t = __t->__next_;
1480
+ __r = __f2;
1481
+ __f2 = __t->__next_;
1482
+ __t->__next_ = __f1;
1483
+ }
1484
+ else
1485
+ __r = __f1;
1486
+ __node_pointer __p = __f1;
1487
+ __f1 = __f1->__next_;
1488
+ while (__f1 != nullptr && __f2 != nullptr)
1489
+ {
1490
+ if (__comp(__f2->__value_, __f1->__value_))
1491
+ {
1492
+ __node_pointer __t = __f2;
1493
+ while (__t->__next_ != nullptr &&
1494
+ __comp(__t->__next_->__value_, __f1->__value_))
1495
+ __t = __t->__next_;
1496
+ __p->__next_ = __f2;
1497
+ __f2 = __t->__next_;
1498
+ __t->__next_ = __f1;
1499
+ }
1500
+ __p = __f1;
1501
+ __f1 = __f1->__next_;
1502
+ }
1503
+ if (__f2 != nullptr)
1504
+ __p->__next_ = __f2;
1505
+ return __r;
1506
+ }
1507
+
1508
+ template <class _Tp, class _Alloc>
1509
+ template <class _Compare>
1510
+ inline _LIBCPP_INLINE_VISIBILITY
1511
+ void
1512
+ forward_list<_Tp, _Alloc>::sort(_Compare __comp)
1513
+ {
1514
+ base::__before_begin()->__next_ = __sort(base::__before_begin()->__next_,
1515
+ _VSTD::distance(begin(), end()), __comp);
1516
+ }
1517
+
1518
+ template <class _Tp, class _Alloc>
1519
+ template <class _Compare>
1520
+ typename forward_list<_Tp, _Alloc>::__node_pointer
1521
+ forward_list<_Tp, _Alloc>::__sort(__node_pointer __f1, difference_type __sz,
1522
+ _Compare& __comp)
1523
+ {
1524
+ switch (__sz)
1525
+ {
1526
+ case 0:
1527
+ case 1:
1528
+ return __f1;
1529
+ case 2:
1530
+ if (__comp(__f1->__next_->__value_, __f1->__value_))
1531
+ {
1532
+ __node_pointer __t = __f1->__next_;
1533
+ __t->__next_ = __f1;
1534
+ __f1->__next_ = nullptr;
1535
+ __f1 = __t;
1536
+ }
1537
+ return __f1;
1538
+ }
1539
+ difference_type __sz1 = __sz / 2;
1540
+ difference_type __sz2 = __sz - __sz1;
1541
+ __node_pointer __t = _VSTD::next(iterator(__f1), __sz1 - 1).__ptr_;
1542
+ __node_pointer __f2 = __t->__next_;
1543
+ __t->__next_ = nullptr;
1544
+ return __merge(__sort(__f1, __sz1, __comp),
1545
+ __sort(__f2, __sz2, __comp), __comp);
1546
+ }
1547
+
1548
+ template <class _Tp, class _Alloc>
1549
+ void
1550
+ forward_list<_Tp, _Alloc>::reverse() _NOEXCEPT
1551
+ {
1552
+ __node_pointer __p = base::__before_begin()->__next_;
1553
+ if (__p != nullptr)
1554
+ {
1555
+ __node_pointer __f = __p->__next_;
1556
+ __p->__next_ = nullptr;
1557
+ while (__f != nullptr)
1558
+ {
1559
+ __node_pointer __t = __f->__next_;
1560
+ __f->__next_ = __p;
1561
+ __p = __f;
1562
+ __f = __t;
1563
+ }
1564
+ base::__before_begin()->__next_ = __p;
1565
+ }
1566
+ }
1567
+
1568
+ template <class _Tp, class _Alloc>
1569
+ bool operator==(const forward_list<_Tp, _Alloc>& __x,
1570
+ const forward_list<_Tp, _Alloc>& __y)
1571
+ {
1572
+ typedef forward_list<_Tp, _Alloc> _Cp;
1573
+ typedef typename _Cp::const_iterator _Ip;
1574
+ _Ip __ix = __x.begin();
1575
+ _Ip __ex = __x.end();
1576
+ _Ip __iy = __y.begin();
1577
+ _Ip __ey = __y.end();
1578
+ for (; __ix != __ex && __iy != __ey; ++__ix, ++__iy)
1579
+ if (!(*__ix == *__iy))
1580
+ return false;
1581
+ return (__ix == __ex) == (__iy == __ey);
1582
+ }
1583
+
1584
+ template <class _Tp, class _Alloc>
1585
+ inline _LIBCPP_INLINE_VISIBILITY
1586
+ bool operator!=(const forward_list<_Tp, _Alloc>& __x,
1587
+ const forward_list<_Tp, _Alloc>& __y)
1588
+ {
1589
+ return !(__x == __y);
1590
+ }
1591
+
1592
+ template <class _Tp, class _Alloc>
1593
+ inline _LIBCPP_INLINE_VISIBILITY
1594
+ bool operator< (const forward_list<_Tp, _Alloc>& __x,
1595
+ const forward_list<_Tp, _Alloc>& __y)
1596
+ {
1597
+ return _VSTD::lexicographical_compare(__x.begin(), __x.end(),
1598
+ __y.begin(), __y.end());
1599
+ }
1600
+
1601
+ template <class _Tp, class _Alloc>
1602
+ inline _LIBCPP_INLINE_VISIBILITY
1603
+ bool operator> (const forward_list<_Tp, _Alloc>& __x,
1604
+ const forward_list<_Tp, _Alloc>& __y)
1605
+ {
1606
+ return __y < __x;
1607
+ }
1608
+
1609
+ template <class _Tp, class _Alloc>
1610
+ inline _LIBCPP_INLINE_VISIBILITY
1611
+ bool operator>=(const forward_list<_Tp, _Alloc>& __x,
1612
+ const forward_list<_Tp, _Alloc>& __y)
1613
+ {
1614
+ return !(__x < __y);
1615
+ }
1616
+
1617
+ template <class _Tp, class _Alloc>
1618
+ inline _LIBCPP_INLINE_VISIBILITY
1619
+ bool operator<=(const forward_list<_Tp, _Alloc>& __x,
1620
+ const forward_list<_Tp, _Alloc>& __y)
1621
+ {
1622
+ return !(__y < __x);
1623
+ }
1624
+
1625
+ template <class _Tp, class _Alloc>
1626
+ inline _LIBCPP_INLINE_VISIBILITY
1627
+ void
1628
+ swap(forward_list<_Tp, _Alloc>& __x, forward_list<_Tp, _Alloc>& __y)
1629
+ _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))
1630
+ {
1631
+ __x.swap(__y);
1632
+ }
1633
+
1634
+ _LIBCPP_END_NAMESPACE_STD
1635
+
1636
+ #endif // _LIBCPP_FORWARD_LIST