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,1521 @@
1
+ // -*- C++ -*-
2
+ //===--------------------------- atomic -----------------------------------===//
3
+ //
4
+ // The LLVM Compiler Infrastructure
5
+ //
6
+ // This file is distributed under the University of Illinois Open Source
7
+ // License. See LICENSE.TXT for details.
8
+ //
9
+ //===----------------------------------------------------------------------===//
10
+
11
+ #ifndef _LIBCPP_ATOMIC
12
+ #define _LIBCPP_ATOMIC
13
+
14
+ /*
15
+ atomic synopsis
16
+
17
+ namespace std
18
+ {
19
+
20
+ // order and consistency
21
+
22
+ typedef enum memory_order
23
+ {
24
+ memory_order_relaxed,
25
+ memory_order_consume, // load-consume
26
+ memory_order_acquire, // load-acquire
27
+ memory_order_release, // store-release
28
+ memory_order_acq_rel, // store-release load-acquire
29
+ memory_order_seq_cst // store-release load-acquire
30
+ } memory_order;
31
+
32
+ template <class T> T kill_dependency(T y) noexcept;
33
+
34
+ // lock-free property
35
+
36
+ #define ATOMIC_BOOL_LOCK_FREE unspecified
37
+ #define ATOMIC_CHAR_LOCK_FREE unspecified
38
+ #define ATOMIC_CHAR16_T_LOCK_FREE unspecified
39
+ #define ATOMIC_CHAR32_T_LOCK_FREE unspecified
40
+ #define ATOMIC_WCHAR_T_LOCK_FREE unspecified
41
+ #define ATOMIC_SHORT_LOCK_FREE unspecified
42
+ #define ATOMIC_INT_LOCK_FREE unspecified
43
+ #define ATOMIC_LONG_LOCK_FREE unspecified
44
+ #define ATOMIC_LLONG_LOCK_FREE unspecified
45
+ #define ATOMIC_POINTER_LOCK_FREE unspecified
46
+
47
+ // flag type and operations
48
+
49
+ typedef struct atomic_flag
50
+ {
51
+ bool test_and_set(memory_order m = memory_order_seq_cst) volatile noexcept;
52
+ bool test_and_set(memory_order m = memory_order_seq_cst) noexcept;
53
+ void clear(memory_order m = memory_order_seq_cst) volatile noexcept;
54
+ void clear(memory_order m = memory_order_seq_cst) noexcept;
55
+ atomic_flag() noexcept = default;
56
+ atomic_flag(const atomic_flag&) = delete;
57
+ atomic_flag& operator=(const atomic_flag&) = delete;
58
+ atomic_flag& operator=(const atomic_flag&) volatile = delete;
59
+ } atomic_flag;
60
+
61
+ bool
62
+ atomic_flag_test_and_set(volatile atomic_flag* obj) noexcept;
63
+
64
+ bool
65
+ atomic_flag_test_and_set(atomic_flag* obj) noexcept;
66
+
67
+ bool
68
+ atomic_flag_test_and_set_explicit(volatile atomic_flag* obj,
69
+ memory_order m) noexcept;
70
+
71
+ bool
72
+ atomic_flag_test_and_set_explicit(atomic_flag* obj, memory_order m) noexcept;
73
+
74
+ void
75
+ atomic_flag_clear(volatile atomic_flag* obj) noexcept;
76
+
77
+ void
78
+ atomic_flag_clear(atomic_flag* obj) noexcept;
79
+
80
+ void
81
+ atomic_flag_clear_explicit(volatile atomic_flag* obj, memory_order m) noexcept;
82
+
83
+ void
84
+ atomic_flag_clear_explicit(atomic_flag* obj, memory_order m) noexcept;
85
+
86
+ #define ATOMIC_FLAG_INIT see below
87
+ #define ATOMIC_VAR_INIT(value) see below
88
+
89
+ template <class T>
90
+ struct atomic
91
+ {
92
+ bool is_lock_free() const volatile noexcept;
93
+ bool is_lock_free() const noexcept;
94
+ void store(T desr, memory_order m = memory_order_seq_cst) volatile noexcept;
95
+ void store(T desr, memory_order m = memory_order_seq_cst) noexcept;
96
+ T load(memory_order m = memory_order_seq_cst) const volatile noexcept;
97
+ T load(memory_order m = memory_order_seq_cst) const noexcept;
98
+ operator T() const volatile noexcept;
99
+ operator T() const noexcept;
100
+ T exchange(T desr, memory_order m = memory_order_seq_cst) volatile noexcept;
101
+ T exchange(T desr, memory_order m = memory_order_seq_cst) noexcept;
102
+ bool compare_exchange_weak(T& expc, T desr,
103
+ memory_order s, memory_order f) volatile noexcept;
104
+ bool compare_exchange_weak(T& expc, T desr, memory_order s, memory_order f) noexcept;
105
+ bool compare_exchange_strong(T& expc, T desr,
106
+ memory_order s, memory_order f) volatile noexcept;
107
+ bool compare_exchange_strong(T& expc, T desr,
108
+ memory_order s, memory_order f) noexcept;
109
+ bool compare_exchange_weak(T& expc, T desr,
110
+ memory_order m = memory_order_seq_cst) volatile noexcept;
111
+ bool compare_exchange_weak(T& expc, T desr,
112
+ memory_order m = memory_order_seq_cst) noexcept;
113
+ bool compare_exchange_strong(T& expc, T desr,
114
+ memory_order m = memory_order_seq_cst) volatile noexcept;
115
+ bool compare_exchange_strong(T& expc, T desr,
116
+ memory_order m = memory_order_seq_cst) noexcept;
117
+
118
+ atomic() noexcept = default;
119
+ constexpr atomic(T desr) noexcept;
120
+ atomic(const atomic&) = delete;
121
+ atomic& operator=(const atomic&) = delete;
122
+ atomic& operator=(const atomic&) volatile = delete;
123
+ T operator=(T) volatile noexcept;
124
+ T operator=(T) noexcept;
125
+ };
126
+
127
+ template <>
128
+ struct atomic<integral>
129
+ {
130
+ bool is_lock_free() const volatile noexcept;
131
+ bool is_lock_free() const noexcept;
132
+ void store(integral desr, memory_order m = memory_order_seq_cst) volatile noexcept;
133
+ void store(integral desr, memory_order m = memory_order_seq_cst) noexcept;
134
+ integral load(memory_order m = memory_order_seq_cst) const volatile noexcept;
135
+ integral load(memory_order m = memory_order_seq_cst) const noexcept;
136
+ operator integral() const volatile noexcept;
137
+ operator integral() const noexcept;
138
+ integral exchange(integral desr,
139
+ memory_order m = memory_order_seq_cst) volatile noexcept;
140
+ integral exchange(integral desr, memory_order m = memory_order_seq_cst) noexcept;
141
+ bool compare_exchange_weak(integral& expc, integral desr,
142
+ memory_order s, memory_order f) volatile noexcept;
143
+ bool compare_exchange_weak(integral& expc, integral desr,
144
+ memory_order s, memory_order f) noexcept;
145
+ bool compare_exchange_strong(integral& expc, integral desr,
146
+ memory_order s, memory_order f) volatile noexcept;
147
+ bool compare_exchange_strong(integral& expc, integral desr,
148
+ memory_order s, memory_order f) noexcept;
149
+ bool compare_exchange_weak(integral& expc, integral desr,
150
+ memory_order m = memory_order_seq_cst) volatile noexcept;
151
+ bool compare_exchange_weak(integral& expc, integral desr,
152
+ memory_order m = memory_order_seq_cst) noexcept;
153
+ bool compare_exchange_strong(integral& expc, integral desr,
154
+ memory_order m = memory_order_seq_cst) volatile noexcept;
155
+ bool compare_exchange_strong(integral& expc, integral desr,
156
+ memory_order m = memory_order_seq_cst) noexcept;
157
+
158
+ integral
159
+ fetch_add(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;
160
+ integral fetch_add(integral op, memory_order m = memory_order_seq_cst) noexcept;
161
+ integral
162
+ fetch_sub(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;
163
+ integral fetch_sub(integral op, memory_order m = memory_order_seq_cst) noexcept;
164
+ integral
165
+ fetch_and(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;
166
+ integral fetch_and(integral op, memory_order m = memory_order_seq_cst) noexcept;
167
+ integral
168
+ fetch_or(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;
169
+ integral fetch_or(integral op, memory_order m = memory_order_seq_cst) noexcept;
170
+ integral
171
+ fetch_xor(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;
172
+ integral fetch_xor(integral op, memory_order m = memory_order_seq_cst) noexcept;
173
+
174
+ atomic() noexcept = default;
175
+ constexpr atomic(integral desr) noexcept;
176
+ atomic(const atomic&) = delete;
177
+ atomic& operator=(const atomic&) = delete;
178
+ atomic& operator=(const atomic&) volatile = delete;
179
+ integral operator=(integral desr) volatile noexcept;
180
+ integral operator=(integral desr) noexcept;
181
+
182
+ integral operator++(int) volatile noexcept;
183
+ integral operator++(int) noexcept;
184
+ integral operator--(int) volatile noexcept;
185
+ integral operator--(int) noexcept;
186
+ integral operator++() volatile noexcept;
187
+ integral operator++() noexcept;
188
+ integral operator--() volatile noexcept;
189
+ integral operator--() noexcept;
190
+ integral operator+=(integral op) volatile noexcept;
191
+ integral operator+=(integral op) noexcept;
192
+ integral operator-=(integral op) volatile noexcept;
193
+ integral operator-=(integral op) noexcept;
194
+ integral operator&=(integral op) volatile noexcept;
195
+ integral operator&=(integral op) noexcept;
196
+ integral operator|=(integral op) volatile noexcept;
197
+ integral operator|=(integral op) noexcept;
198
+ integral operator^=(integral op) volatile noexcept;
199
+ integral operator^=(integral op) noexcept;
200
+ };
201
+
202
+ template <class T>
203
+ struct atomic<T*>
204
+ {
205
+ bool is_lock_free() const volatile noexcept;
206
+ bool is_lock_free() const noexcept;
207
+ void store(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept;
208
+ void store(T* desr, memory_order m = memory_order_seq_cst) noexcept;
209
+ T* load(memory_order m = memory_order_seq_cst) const volatile noexcept;
210
+ T* load(memory_order m = memory_order_seq_cst) const noexcept;
211
+ operator T*() const volatile noexcept;
212
+ operator T*() const noexcept;
213
+ T* exchange(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept;
214
+ T* exchange(T* desr, memory_order m = memory_order_seq_cst) noexcept;
215
+ bool compare_exchange_weak(T*& expc, T* desr,
216
+ memory_order s, memory_order f) volatile noexcept;
217
+ bool compare_exchange_weak(T*& expc, T* desr,
218
+ memory_order s, memory_order f) noexcept;
219
+ bool compare_exchange_strong(T*& expc, T* desr,
220
+ memory_order s, memory_order f) volatile noexcept;
221
+ bool compare_exchange_strong(T*& expc, T* desr,
222
+ memory_order s, memory_order f) noexcept;
223
+ bool compare_exchange_weak(T*& expc, T* desr,
224
+ memory_order m = memory_order_seq_cst) volatile noexcept;
225
+ bool compare_exchange_weak(T*& expc, T* desr,
226
+ memory_order m = memory_order_seq_cst) noexcept;
227
+ bool compare_exchange_strong(T*& expc, T* desr,
228
+ memory_order m = memory_order_seq_cst) volatile noexcept;
229
+ bool compare_exchange_strong(T*& expc, T* desr,
230
+ memory_order m = memory_order_seq_cst) noexcept;
231
+ T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept;
232
+ T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept;
233
+ T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept;
234
+ T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept;
235
+
236
+ atomic() noexcept = default;
237
+ constexpr atomic(T* desr) noexcept;
238
+ atomic(const atomic&) = delete;
239
+ atomic& operator=(const atomic&) = delete;
240
+ atomic& operator=(const atomic&) volatile = delete;
241
+
242
+ T* operator=(T*) volatile noexcept;
243
+ T* operator=(T*) noexcept;
244
+ T* operator++(int) volatile noexcept;
245
+ T* operator++(int) noexcept;
246
+ T* operator--(int) volatile noexcept;
247
+ T* operator--(int) noexcept;
248
+ T* operator++() volatile noexcept;
249
+ T* operator++() noexcept;
250
+ T* operator--() volatile noexcept;
251
+ T* operator--() noexcept;
252
+ T* operator+=(ptrdiff_t op) volatile noexcept;
253
+ T* operator+=(ptrdiff_t op) noexcept;
254
+ T* operator-=(ptrdiff_t op) volatile noexcept;
255
+ T* operator-=(ptrdiff_t op) noexcept;
256
+ };
257
+
258
+
259
+ template <class T>
260
+ bool
261
+ atomic_is_lock_free(const volatile atomic<T>* obj) noexcept;
262
+
263
+ template <class T>
264
+ bool
265
+ atomic_is_lock_free(const atomic<T>* obj) noexcept;
266
+
267
+ template <class T>
268
+ void
269
+ atomic_init(volatile atomic<T>* obj, T desr) noexcept;
270
+
271
+ template <class T>
272
+ void
273
+ atomic_init(atomic<T>* obj, T desr) noexcept;
274
+
275
+ template <class T>
276
+ void
277
+ atomic_store(volatile atomic<T>* obj, T desr) noexcept;
278
+
279
+ template <class T>
280
+ void
281
+ atomic_store(atomic<T>* obj, T desr) noexcept;
282
+
283
+ template <class T>
284
+ void
285
+ atomic_store_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;
286
+
287
+ template <class T>
288
+ void
289
+ atomic_store_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;
290
+
291
+ template <class T>
292
+ T
293
+ atomic_load(const volatile atomic<T>* obj) noexcept;
294
+
295
+ template <class T>
296
+ T
297
+ atomic_load(const atomic<T>* obj) noexcept;
298
+
299
+ template <class T>
300
+ T
301
+ atomic_load_explicit(const volatile atomic<T>* obj, memory_order m) noexcept;
302
+
303
+ template <class T>
304
+ T
305
+ atomic_load_explicit(const atomic<T>* obj, memory_order m) noexcept;
306
+
307
+ template <class T>
308
+ T
309
+ atomic_exchange(volatile atomic<T>* obj, T desr) noexcept;
310
+
311
+ template <class T>
312
+ T
313
+ atomic_exchange(atomic<T>* obj, T desr) noexcept;
314
+
315
+ template <class T>
316
+ T
317
+ atomic_exchange_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;
318
+
319
+ template <class T>
320
+ T
321
+ atomic_exchange_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;
322
+
323
+ template <class T>
324
+ bool
325
+ atomic_compare_exchange_weak(volatile atomic<T>* obj, T* expc, T desr) noexcept;
326
+
327
+ template <class T>
328
+ bool
329
+ atomic_compare_exchange_weak(atomic<T>* obj, T* expc, T desr) noexcept;
330
+
331
+ template <class T>
332
+ bool
333
+ atomic_compare_exchange_strong(volatile atomic<T>* obj, T* expc, T desr) noexcept;
334
+
335
+ template <class T>
336
+ bool
337
+ atomic_compare_exchange_strong(atomic<T>* obj, T* expc, T desr) noexcept;
338
+
339
+ template <class T>
340
+ bool
341
+ atomic_compare_exchange_weak_explicit(volatile atomic<T>* obj, T* expc,
342
+ T desr,
343
+ memory_order s, memory_order f) noexcept;
344
+
345
+ template <class T>
346
+ bool
347
+ atomic_compare_exchange_weak_explicit(atomic<T>* obj, T* expc, T desr,
348
+ memory_order s, memory_order f) noexcept;
349
+
350
+ template <class T>
351
+ bool
352
+ atomic_compare_exchange_strong_explicit(volatile atomic<T>* obj,
353
+ T* expc, T desr,
354
+ memory_order s, memory_order f) noexcept;
355
+
356
+ template <class T>
357
+ bool
358
+ atomic_compare_exchange_strong_explicit(atomic<T>* obj, T* expc,
359
+ T desr,
360
+ memory_order s, memory_order f) noexcept;
361
+
362
+ template <class Integral>
363
+ Integral
364
+ atomic_fetch_add(volatile atomic<Integral>* obj, Integral op) noexcept;
365
+
366
+ template <class Integral>
367
+ Integral
368
+ atomic_fetch_add(atomic<Integral>* obj, Integral op) noexcept;
369
+
370
+ template <class Integral>
371
+ Integral
372
+ atomic_fetch_add_explicit(volatile atomic<Integral>* obj, Integral op,
373
+ memory_order m) noexcept;
374
+ template <class Integral>
375
+ Integral
376
+ atomic_fetch_add_explicit(atomic<Integral>* obj, Integral op,
377
+ memory_order m) noexcept;
378
+ template <class Integral>
379
+ Integral
380
+ atomic_fetch_sub(volatile atomic<Integral>* obj, Integral op) noexcept;
381
+
382
+ template <class Integral>
383
+ Integral
384
+ atomic_fetch_sub(atomic<Integral>* obj, Integral op) noexcept;
385
+
386
+ template <class Integral>
387
+ Integral
388
+ atomic_fetch_sub_explicit(volatile atomic<Integral>* obj, Integral op,
389
+ memory_order m) noexcept;
390
+ template <class Integral>
391
+ Integral
392
+ atomic_fetch_sub_explicit(atomic<Integral>* obj, Integral op,
393
+ memory_order m) noexcept;
394
+ template <class Integral>
395
+ Integral
396
+ atomic_fetch_and(volatile atomic<Integral>* obj, Integral op) noexcept;
397
+
398
+ template <class Integral>
399
+ Integral
400
+ atomic_fetch_and(atomic<Integral>* obj, Integral op) noexcept;
401
+
402
+ template <class Integral>
403
+ Integral
404
+ atomic_fetch_and_explicit(volatile atomic<Integral>* obj, Integral op,
405
+ memory_order m) noexcept;
406
+ template <class Integral>
407
+ Integral
408
+ atomic_fetch_and_explicit(atomic<Integral>* obj, Integral op,
409
+ memory_order m) noexcept;
410
+ template <class Integral>
411
+ Integral
412
+ atomic_fetch_or(volatile atomic<Integral>* obj, Integral op) noexcept;
413
+
414
+ template <class Integral>
415
+ Integral
416
+ atomic_fetch_or(atomic<Integral>* obj, Integral op) noexcept;
417
+
418
+ template <class Integral>
419
+ Integral
420
+ atomic_fetch_or_explicit(volatile atomic<Integral>* obj, Integral op,
421
+ memory_order m) noexcept;
422
+ template <class Integral>
423
+ Integral
424
+ atomic_fetch_or_explicit(atomic<Integral>* obj, Integral op,
425
+ memory_order m) noexcept;
426
+ template <class Integral>
427
+ Integral
428
+ atomic_fetch_xor(volatile atomic<Integral>* obj, Integral op) noexcept;
429
+
430
+ template <class Integral>
431
+ Integral
432
+ atomic_fetch_xor(atomic<Integral>* obj, Integral op) noexcept;
433
+
434
+ template <class Integral>
435
+ Integral
436
+ atomic_fetch_xor_explicit(volatile atomic<Integral>* obj, Integral op,
437
+ memory_order m) noexcept;
438
+ template <class Integral>
439
+ Integral
440
+ atomic_fetch_xor_explicit(atomic<Integral>* obj, Integral op,
441
+ memory_order m) noexcept;
442
+
443
+ template <class T>
444
+ T*
445
+ atomic_fetch_add(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;
446
+
447
+ template <class T>
448
+ T*
449
+ atomic_fetch_add(atomic<T*>* obj, ptrdiff_t op) noexcept;
450
+
451
+ template <class T>
452
+ T*
453
+ atomic_fetch_add_explicit(volatile atomic<T*>* obj, ptrdiff_t op,
454
+ memory_order m) noexcept;
455
+ template <class T>
456
+ T*
457
+ atomic_fetch_add_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;
458
+
459
+ template <class T>
460
+ T*
461
+ atomic_fetch_sub(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;
462
+
463
+ template <class T>
464
+ T*
465
+ atomic_fetch_sub(atomic<T*>* obj, ptrdiff_t op) noexcept;
466
+
467
+ template <class T>
468
+ T*
469
+ atomic_fetch_sub_explicit(volatile atomic<T*>* obj, ptrdiff_t op,
470
+ memory_order m) noexcept;
471
+ template <class T>
472
+ T*
473
+ atomic_fetch_sub_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;
474
+
475
+ // Atomics for standard typedef types
476
+
477
+ typedef atomic<bool> atomic_bool;
478
+ typedef atomic<char> atomic_char;
479
+ typedef atomic<signed char> atomic_schar;
480
+ typedef atomic<unsigned char> atomic_uchar;
481
+ typedef atomic<short> atomic_short;
482
+ typedef atomic<unsigned short> atomic_ushort;
483
+ typedef atomic<int> atomic_int;
484
+ typedef atomic<unsigned int> atomic_uint;
485
+ typedef atomic<long> atomic_long;
486
+ typedef atomic<unsigned long> atomic_ulong;
487
+ typedef atomic<long long> atomic_llong;
488
+ typedef atomic<unsigned long long> atomic_ullong;
489
+ typedef atomic<char16_t> atomic_char16_t;
490
+ typedef atomic<char32_t> atomic_char32_t;
491
+ typedef atomic<wchar_t> atomic_wchar_t;
492
+
493
+ typedef atomic<int_least8_t> atomic_int_least8_t;
494
+ typedef atomic<uint_least8_t> atomic_uint_least8_t;
495
+ typedef atomic<int_least16_t> atomic_int_least16_t;
496
+ typedef atomic<uint_least16_t> atomic_uint_least16_t;
497
+ typedef atomic<int_least32_t> atomic_int_least32_t;
498
+ typedef atomic<uint_least32_t> atomic_uint_least32_t;
499
+ typedef atomic<int_least64_t> atomic_int_least64_t;
500
+ typedef atomic<uint_least64_t> atomic_uint_least64_t;
501
+
502
+ typedef atomic<int_fast8_t> atomic_int_fast8_t;
503
+ typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
504
+ typedef atomic<int_fast16_t> atomic_int_fast16_t;
505
+ typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
506
+ typedef atomic<int_fast32_t> atomic_int_fast32_t;
507
+ typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
508
+ typedef atomic<int_fast64_t> atomic_int_fast64_t;
509
+ typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
510
+
511
+ typedef atomic<intptr_t> atomic_intptr_t;
512
+ typedef atomic<uintptr_t> atomic_uintptr_t;
513
+ typedef atomic<size_t> atomic_size_t;
514
+ typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
515
+ typedef atomic<intmax_t> atomic_intmax_t;
516
+ typedef atomic<uintmax_t> atomic_uintmax_t;
517
+
518
+ // fences
519
+
520
+ void atomic_thread_fence(memory_order m) noexcept;
521
+ void atomic_signal_fence(memory_order m) noexcept;
522
+
523
+ } // std
524
+
525
+ */
526
+
527
+ #include <__config>
528
+ #include <cstddef>
529
+ #include <cstdint>
530
+ #include <type_traits>
531
+
532
+ #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
533
+ #pragma GCC system_header
534
+ #endif
535
+
536
+ _LIBCPP_BEGIN_NAMESPACE_STD
537
+
538
+ #if !__has_feature(cxx_atomic)
539
+ #error <atomic> is not implemented
540
+ #else
541
+
542
+ typedef enum memory_order
543
+ {
544
+ memory_order_relaxed, memory_order_consume, memory_order_acquire,
545
+ memory_order_release, memory_order_acq_rel, memory_order_seq_cst
546
+ } memory_order;
547
+
548
+ template <class _Tp>
549
+ inline _LIBCPP_INLINE_VISIBILITY
550
+ _Tp
551
+ kill_dependency(_Tp __y) _NOEXCEPT
552
+ {
553
+ return __y;
554
+ }
555
+
556
+ // general atomic<T>
557
+
558
+ template <class _Tp, bool = is_integral<_Tp>::value && !is_same<_Tp, bool>::value>
559
+ struct __atomic_base // false
560
+ {
561
+ mutable _Atomic(_Tp) __a_;
562
+
563
+ _LIBCPP_INLINE_VISIBILITY
564
+ bool is_lock_free() const volatile _NOEXCEPT
565
+ {return __c11_atomic_is_lock_free(sizeof(_Tp));}
566
+ _LIBCPP_INLINE_VISIBILITY
567
+ bool is_lock_free() const _NOEXCEPT
568
+ {return __c11_atomic_is_lock_free(sizeof(_Tp));}
569
+ _LIBCPP_INLINE_VISIBILITY
570
+ void store(_Tp __d, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
571
+ {__c11_atomic_store(&__a_, __d, __m);}
572
+ _LIBCPP_INLINE_VISIBILITY
573
+ void store(_Tp __d, memory_order __m = memory_order_seq_cst) _NOEXCEPT
574
+ {__c11_atomic_store(&__a_, __d, __m);}
575
+ _LIBCPP_INLINE_VISIBILITY
576
+ _Tp load(memory_order __m = memory_order_seq_cst) const volatile _NOEXCEPT
577
+ {return __c11_atomic_load(&__a_, __m);}
578
+ _LIBCPP_INLINE_VISIBILITY
579
+ _Tp load(memory_order __m = memory_order_seq_cst) const _NOEXCEPT
580
+ {return __c11_atomic_load(&__a_, __m);}
581
+ _LIBCPP_INLINE_VISIBILITY
582
+ operator _Tp() const volatile _NOEXCEPT {return load();}
583
+ _LIBCPP_INLINE_VISIBILITY
584
+ operator _Tp() const _NOEXCEPT {return load();}
585
+ _LIBCPP_INLINE_VISIBILITY
586
+ _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
587
+ {return __c11_atomic_exchange(&__a_, __d, __m);}
588
+ _LIBCPP_INLINE_VISIBILITY
589
+ _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) _NOEXCEPT
590
+ {return __c11_atomic_exchange(&__a_, __d, __m);}
591
+ _LIBCPP_INLINE_VISIBILITY
592
+ bool compare_exchange_weak(_Tp& __e, _Tp __d,
593
+ memory_order __s, memory_order __f) volatile _NOEXCEPT
594
+ {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);}
595
+ _LIBCPP_INLINE_VISIBILITY
596
+ bool compare_exchange_weak(_Tp& __e, _Tp __d,
597
+ memory_order __s, memory_order __f) _NOEXCEPT
598
+ {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);}
599
+ _LIBCPP_INLINE_VISIBILITY
600
+ bool compare_exchange_strong(_Tp& __e, _Tp __d,
601
+ memory_order __s, memory_order __f) volatile _NOEXCEPT
602
+ {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);}
603
+ _LIBCPP_INLINE_VISIBILITY
604
+ bool compare_exchange_strong(_Tp& __e, _Tp __d,
605
+ memory_order __s, memory_order __f) _NOEXCEPT
606
+ {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);}
607
+ _LIBCPP_INLINE_VISIBILITY
608
+ bool compare_exchange_weak(_Tp& __e, _Tp __d,
609
+ memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
610
+ {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);}
611
+ _LIBCPP_INLINE_VISIBILITY
612
+ bool compare_exchange_weak(_Tp& __e, _Tp __d,
613
+ memory_order __m = memory_order_seq_cst) _NOEXCEPT
614
+ {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);}
615
+ _LIBCPP_INLINE_VISIBILITY
616
+ bool compare_exchange_strong(_Tp& __e, _Tp __d,
617
+ memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
618
+ {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);}
619
+ _LIBCPP_INLINE_VISIBILITY
620
+ bool compare_exchange_strong(_Tp& __e, _Tp __d,
621
+ memory_order __m = memory_order_seq_cst) _NOEXCEPT
622
+ {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);}
623
+
624
+ _LIBCPP_INLINE_VISIBILITY
625
+ __atomic_base() _NOEXCEPT {} // = default;
626
+ _LIBCPP_INLINE_VISIBILITY
627
+ _LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __a_(__d) {}
628
+ #ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS
629
+ __atomic_base(const __atomic_base&) = delete;
630
+ __atomic_base& operator=(const __atomic_base&) = delete;
631
+ __atomic_base& operator=(const __atomic_base&) volatile = delete;
632
+ #else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
633
+ private:
634
+ __atomic_base(const __atomic_base&);
635
+ __atomic_base& operator=(const __atomic_base&);
636
+ __atomic_base& operator=(const __atomic_base&) volatile;
637
+ #endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
638
+ };
639
+
640
+ // atomic<Integral>
641
+
642
+ template <class _Tp>
643
+ struct __atomic_base<_Tp, true>
644
+ : public __atomic_base<_Tp, false>
645
+ {
646
+ typedef __atomic_base<_Tp, false> __base;
647
+ _LIBCPP_INLINE_VISIBILITY
648
+ __atomic_base() _NOEXCEPT {} // = default;
649
+ _LIBCPP_INLINE_VISIBILITY
650
+ _LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __base(__d) {}
651
+
652
+ _LIBCPP_INLINE_VISIBILITY
653
+ _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
654
+ {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}
655
+ _LIBCPP_INLINE_VISIBILITY
656
+ _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
657
+ {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}
658
+ _LIBCPP_INLINE_VISIBILITY
659
+ _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
660
+ {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}
661
+ _LIBCPP_INLINE_VISIBILITY
662
+ _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
663
+ {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}
664
+ _LIBCPP_INLINE_VISIBILITY
665
+ _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
666
+ {return __c11_atomic_fetch_and(&this->__a_, __op, __m);}
667
+ _LIBCPP_INLINE_VISIBILITY
668
+ _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
669
+ {return __c11_atomic_fetch_and(&this->__a_, __op, __m);}
670
+ _LIBCPP_INLINE_VISIBILITY
671
+ _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
672
+ {return __c11_atomic_fetch_or(&this->__a_, __op, __m);}
673
+ _LIBCPP_INLINE_VISIBILITY
674
+ _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
675
+ {return __c11_atomic_fetch_or(&this->__a_, __op, __m);}
676
+ _LIBCPP_INLINE_VISIBILITY
677
+ _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
678
+ {return __c11_atomic_fetch_xor(&this->__a_, __op, __m);}
679
+ _LIBCPP_INLINE_VISIBILITY
680
+ _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
681
+ {return __c11_atomic_fetch_xor(&this->__a_, __op, __m);}
682
+
683
+ _LIBCPP_INLINE_VISIBILITY
684
+ _Tp operator++(int) volatile _NOEXCEPT {return fetch_add(_Tp(1));}
685
+ _LIBCPP_INLINE_VISIBILITY
686
+ _Tp operator++(int) _NOEXCEPT {return fetch_add(_Tp(1));}
687
+ _LIBCPP_INLINE_VISIBILITY
688
+ _Tp operator--(int) volatile _NOEXCEPT {return fetch_sub(_Tp(1));}
689
+ _LIBCPP_INLINE_VISIBILITY
690
+ _Tp operator--(int) _NOEXCEPT {return fetch_sub(_Tp(1));}
691
+ _LIBCPP_INLINE_VISIBILITY
692
+ _Tp operator++() volatile _NOEXCEPT {return fetch_add(_Tp(1)) + _Tp(1);}
693
+ _LIBCPP_INLINE_VISIBILITY
694
+ _Tp operator++() _NOEXCEPT {return fetch_add(_Tp(1)) + _Tp(1);}
695
+ _LIBCPP_INLINE_VISIBILITY
696
+ _Tp operator--() volatile _NOEXCEPT {return fetch_sub(_Tp(1)) - _Tp(1);}
697
+ _LIBCPP_INLINE_VISIBILITY
698
+ _Tp operator--() _NOEXCEPT {return fetch_sub(_Tp(1)) - _Tp(1);}
699
+ _LIBCPP_INLINE_VISIBILITY
700
+ _Tp operator+=(_Tp __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;}
701
+ _LIBCPP_INLINE_VISIBILITY
702
+ _Tp operator+=(_Tp __op) _NOEXCEPT {return fetch_add(__op) + __op;}
703
+ _LIBCPP_INLINE_VISIBILITY
704
+ _Tp operator-=(_Tp __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;}
705
+ _LIBCPP_INLINE_VISIBILITY
706
+ _Tp operator-=(_Tp __op) _NOEXCEPT {return fetch_sub(__op) - __op;}
707
+ _LIBCPP_INLINE_VISIBILITY
708
+ _Tp operator&=(_Tp __op) volatile _NOEXCEPT {return fetch_and(__op) & __op;}
709
+ _LIBCPP_INLINE_VISIBILITY
710
+ _Tp operator&=(_Tp __op) _NOEXCEPT {return fetch_and(__op) & __op;}
711
+ _LIBCPP_INLINE_VISIBILITY
712
+ _Tp operator|=(_Tp __op) volatile _NOEXCEPT {return fetch_or(__op) | __op;}
713
+ _LIBCPP_INLINE_VISIBILITY
714
+ _Tp operator|=(_Tp __op) _NOEXCEPT {return fetch_or(__op) | __op;}
715
+ _LIBCPP_INLINE_VISIBILITY
716
+ _Tp operator^=(_Tp __op) volatile _NOEXCEPT {return fetch_xor(__op) ^ __op;}
717
+ _LIBCPP_INLINE_VISIBILITY
718
+ _Tp operator^=(_Tp __op) _NOEXCEPT {return fetch_xor(__op) ^ __op;}
719
+ };
720
+
721
+ // atomic<T>
722
+
723
+ template <class _Tp>
724
+ struct atomic
725
+ : public __atomic_base<_Tp>
726
+ {
727
+ typedef __atomic_base<_Tp> __base;
728
+ _LIBCPP_INLINE_VISIBILITY
729
+ atomic() _NOEXCEPT {} // = default;
730
+ _LIBCPP_INLINE_VISIBILITY
731
+ _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
732
+
733
+ _LIBCPP_INLINE_VISIBILITY
734
+ _Tp operator=(_Tp __d) volatile _NOEXCEPT
735
+ {__base::store(__d); return __d;}
736
+ _LIBCPP_INLINE_VISIBILITY
737
+ _Tp operator=(_Tp __d) _NOEXCEPT
738
+ {__base::store(__d); return __d;}
739
+ };
740
+
741
+ // atomic<T*>
742
+
743
+ template <class _Tp>
744
+ struct atomic<_Tp*>
745
+ : public __atomic_base<_Tp*>
746
+ {
747
+ typedef __atomic_base<_Tp*> __base;
748
+ _LIBCPP_INLINE_VISIBILITY
749
+ atomic() _NOEXCEPT {} // = default;
750
+ _LIBCPP_INLINE_VISIBILITY
751
+ _LIBCPP_CONSTEXPR atomic(_Tp* __d) _NOEXCEPT : __base(__d) {}
752
+
753
+ _LIBCPP_INLINE_VISIBILITY
754
+ _Tp* operator=(_Tp* __d) volatile _NOEXCEPT
755
+ {__base::store(__d); return __d;}
756
+ _LIBCPP_INLINE_VISIBILITY
757
+ _Tp* operator=(_Tp* __d) _NOEXCEPT
758
+ {__base::store(__d); return __d;}
759
+
760
+ _LIBCPP_INLINE_VISIBILITY
761
+ _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst)
762
+ volatile _NOEXCEPT
763
+ {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}
764
+ _LIBCPP_INLINE_VISIBILITY
765
+ _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
766
+ {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}
767
+ _LIBCPP_INLINE_VISIBILITY
768
+ _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst)
769
+ volatile _NOEXCEPT
770
+ {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}
771
+ _LIBCPP_INLINE_VISIBILITY
772
+ _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
773
+ {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}
774
+
775
+ _LIBCPP_INLINE_VISIBILITY
776
+ _Tp* operator++(int) volatile _NOEXCEPT {return fetch_add(1);}
777
+ _LIBCPP_INLINE_VISIBILITY
778
+ _Tp* operator++(int) _NOEXCEPT {return fetch_add(1);}
779
+ _LIBCPP_INLINE_VISIBILITY
780
+ _Tp* operator--(int) volatile _NOEXCEPT {return fetch_sub(1);}
781
+ _LIBCPP_INLINE_VISIBILITY
782
+ _Tp* operator--(int) _NOEXCEPT {return fetch_sub(1);}
783
+ _LIBCPP_INLINE_VISIBILITY
784
+ _Tp* operator++() volatile _NOEXCEPT {return fetch_add(1) + 1;}
785
+ _LIBCPP_INLINE_VISIBILITY
786
+ _Tp* operator++() _NOEXCEPT {return fetch_add(1) + 1;}
787
+ _LIBCPP_INLINE_VISIBILITY
788
+ _Tp* operator--() volatile _NOEXCEPT {return fetch_sub(1) - 1;}
789
+ _LIBCPP_INLINE_VISIBILITY
790
+ _Tp* operator--() _NOEXCEPT {return fetch_sub(1) - 1;}
791
+ _LIBCPP_INLINE_VISIBILITY
792
+ _Tp* operator+=(ptrdiff_t __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;}
793
+ _LIBCPP_INLINE_VISIBILITY
794
+ _Tp* operator+=(ptrdiff_t __op) _NOEXCEPT {return fetch_add(__op) + __op;}
795
+ _LIBCPP_INLINE_VISIBILITY
796
+ _Tp* operator-=(ptrdiff_t __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;}
797
+ _LIBCPP_INLINE_VISIBILITY
798
+ _Tp* operator-=(ptrdiff_t __op) _NOEXCEPT {return fetch_sub(__op) - __op;}
799
+ };
800
+
801
+ // atomic_is_lock_free
802
+
803
+ template <class _Tp>
804
+ inline _LIBCPP_INLINE_VISIBILITY
805
+ bool
806
+ atomic_is_lock_free(const volatile atomic<_Tp>* __o) _NOEXCEPT
807
+ {
808
+ return __o->is_lock_free();
809
+ }
810
+
811
+ template <class _Tp>
812
+ inline _LIBCPP_INLINE_VISIBILITY
813
+ bool
814
+ atomic_is_lock_free(const atomic<_Tp>* __o) _NOEXCEPT
815
+ {
816
+ return __o->is_lock_free();
817
+ }
818
+
819
+ // atomic_init
820
+
821
+ template <class _Tp>
822
+ inline _LIBCPP_INLINE_VISIBILITY
823
+ void
824
+ atomic_init(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
825
+ {
826
+ __c11_atomic_init(&__o->__a_, __d);
827
+ }
828
+
829
+ template <class _Tp>
830
+ inline _LIBCPP_INLINE_VISIBILITY
831
+ void
832
+ atomic_init(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
833
+ {
834
+ __c11_atomic_init(&__o->__a_, __d);
835
+ }
836
+
837
+ // atomic_store
838
+
839
+ template <class _Tp>
840
+ inline _LIBCPP_INLINE_VISIBILITY
841
+ void
842
+ atomic_store(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
843
+ {
844
+ __o->store(__d);
845
+ }
846
+
847
+ template <class _Tp>
848
+ inline _LIBCPP_INLINE_VISIBILITY
849
+ void
850
+ atomic_store(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
851
+ {
852
+ __o->store(__d);
853
+ }
854
+
855
+ // atomic_store_explicit
856
+
857
+ template <class _Tp>
858
+ inline _LIBCPP_INLINE_VISIBILITY
859
+ void
860
+ atomic_store_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
861
+ {
862
+ __o->store(__d, __m);
863
+ }
864
+
865
+ template <class _Tp>
866
+ inline _LIBCPP_INLINE_VISIBILITY
867
+ void
868
+ atomic_store_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
869
+ {
870
+ __o->store(__d, __m);
871
+ }
872
+
873
+ // atomic_load
874
+
875
+ template <class _Tp>
876
+ inline _LIBCPP_INLINE_VISIBILITY
877
+ _Tp
878
+ atomic_load(const volatile atomic<_Tp>* __o) _NOEXCEPT
879
+ {
880
+ return __o->load();
881
+ }
882
+
883
+ template <class _Tp>
884
+ inline _LIBCPP_INLINE_VISIBILITY
885
+ _Tp
886
+ atomic_load(const atomic<_Tp>* __o) _NOEXCEPT
887
+ {
888
+ return __o->load();
889
+ }
890
+
891
+ // atomic_load_explicit
892
+
893
+ template <class _Tp>
894
+ inline _LIBCPP_INLINE_VISIBILITY
895
+ _Tp
896
+ atomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
897
+ {
898
+ return __o->load(__m);
899
+ }
900
+
901
+ template <class _Tp>
902
+ inline _LIBCPP_INLINE_VISIBILITY
903
+ _Tp
904
+ atomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
905
+ {
906
+ return __o->load(__m);
907
+ }
908
+
909
+ // atomic_exchange
910
+
911
+ template <class _Tp>
912
+ inline _LIBCPP_INLINE_VISIBILITY
913
+ _Tp
914
+ atomic_exchange(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
915
+ {
916
+ return __o->exchange(__d);
917
+ }
918
+
919
+ template <class _Tp>
920
+ inline _LIBCPP_INLINE_VISIBILITY
921
+ _Tp
922
+ atomic_exchange(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
923
+ {
924
+ return __o->exchange(__d);
925
+ }
926
+
927
+ // atomic_exchange_explicit
928
+
929
+ template <class _Tp>
930
+ inline _LIBCPP_INLINE_VISIBILITY
931
+ _Tp
932
+ atomic_exchange_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
933
+ {
934
+ return __o->exchange(__d, __m);
935
+ }
936
+
937
+ template <class _Tp>
938
+ inline _LIBCPP_INLINE_VISIBILITY
939
+ _Tp
940
+ atomic_exchange_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
941
+ {
942
+ return __o->exchange(__d, __m);
943
+ }
944
+
945
+ // atomic_compare_exchange_weak
946
+
947
+ template <class _Tp>
948
+ inline _LIBCPP_INLINE_VISIBILITY
949
+ bool
950
+ atomic_compare_exchange_weak(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
951
+ {
952
+ return __o->compare_exchange_weak(*__e, __d);
953
+ }
954
+
955
+ template <class _Tp>
956
+ inline _LIBCPP_INLINE_VISIBILITY
957
+ bool
958
+ atomic_compare_exchange_weak(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
959
+ {
960
+ return __o->compare_exchange_weak(*__e, __d);
961
+ }
962
+
963
+ // atomic_compare_exchange_strong
964
+
965
+ template <class _Tp>
966
+ inline _LIBCPP_INLINE_VISIBILITY
967
+ bool
968
+ atomic_compare_exchange_strong(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
969
+ {
970
+ return __o->compare_exchange_strong(*__e, __d);
971
+ }
972
+
973
+ template <class _Tp>
974
+ inline _LIBCPP_INLINE_VISIBILITY
975
+ bool
976
+ atomic_compare_exchange_strong(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
977
+ {
978
+ return __o->compare_exchange_strong(*__e, __d);
979
+ }
980
+
981
+ // atomic_compare_exchange_weak_explicit
982
+
983
+ template <class _Tp>
984
+ inline _LIBCPP_INLINE_VISIBILITY
985
+ bool
986
+ atomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, _Tp* __e,
987
+ _Tp __d,
988
+ memory_order __s, memory_order __f) _NOEXCEPT
989
+ {
990
+ return __o->compare_exchange_weak(*__e, __d, __s, __f);
991
+ }
992
+
993
+ template <class _Tp>
994
+ inline _LIBCPP_INLINE_VISIBILITY
995
+ bool
996
+ atomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, _Tp* __e, _Tp __d,
997
+ memory_order __s, memory_order __f) _NOEXCEPT
998
+ {
999
+ return __o->compare_exchange_weak(*__e, __d, __s, __f);
1000
+ }
1001
+
1002
+ // atomic_compare_exchange_strong_explicit
1003
+
1004
+ template <class _Tp>
1005
+ inline _LIBCPP_INLINE_VISIBILITY
1006
+ bool
1007
+ atomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o,
1008
+ _Tp* __e, _Tp __d,
1009
+ memory_order __s, memory_order __f) _NOEXCEPT
1010
+ {
1011
+ return __o->compare_exchange_strong(*__e, __d, __s, __f);
1012
+ }
1013
+
1014
+ template <class _Tp>
1015
+ inline _LIBCPP_INLINE_VISIBILITY
1016
+ bool
1017
+ atomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, _Tp* __e,
1018
+ _Tp __d,
1019
+ memory_order __s, memory_order __f) _NOEXCEPT
1020
+ {
1021
+ return __o->compare_exchange_strong(*__e, __d, __s, __f);
1022
+ }
1023
+
1024
+ // atomic_fetch_add
1025
+
1026
+ template <class _Tp>
1027
+ inline _LIBCPP_INLINE_VISIBILITY
1028
+ typename enable_if
1029
+ <
1030
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1031
+ _Tp
1032
+ >::type
1033
+ atomic_fetch_add(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1034
+ {
1035
+ return __o->fetch_add(__op);
1036
+ }
1037
+
1038
+ template <class _Tp>
1039
+ inline _LIBCPP_INLINE_VISIBILITY
1040
+ typename enable_if
1041
+ <
1042
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1043
+ _Tp
1044
+ >::type
1045
+ atomic_fetch_add(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1046
+ {
1047
+ return __o->fetch_add(__op);
1048
+ }
1049
+
1050
+ template <class _Tp>
1051
+ inline _LIBCPP_INLINE_VISIBILITY
1052
+ _Tp*
1053
+ atomic_fetch_add(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1054
+ {
1055
+ return __o->fetch_add(__op);
1056
+ }
1057
+
1058
+ template <class _Tp>
1059
+ inline _LIBCPP_INLINE_VISIBILITY
1060
+ _Tp*
1061
+ atomic_fetch_add(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1062
+ {
1063
+ return __o->fetch_add(__op);
1064
+ }
1065
+
1066
+ // atomic_fetch_add_explicit
1067
+
1068
+ template <class _Tp>
1069
+ inline _LIBCPP_INLINE_VISIBILITY
1070
+ typename enable_if
1071
+ <
1072
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1073
+ _Tp
1074
+ >::type
1075
+ atomic_fetch_add_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1076
+ {
1077
+ return __o->fetch_add(__op, __m);
1078
+ }
1079
+
1080
+ template <class _Tp>
1081
+ inline _LIBCPP_INLINE_VISIBILITY
1082
+ typename enable_if
1083
+ <
1084
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1085
+ _Tp
1086
+ >::type
1087
+ atomic_fetch_add_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1088
+ {
1089
+ return __o->fetch_add(__op, __m);
1090
+ }
1091
+
1092
+ template <class _Tp>
1093
+ inline _LIBCPP_INLINE_VISIBILITY
1094
+ _Tp*
1095
+ atomic_fetch_add_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,
1096
+ memory_order __m) _NOEXCEPT
1097
+ {
1098
+ return __o->fetch_add(__op, __m);
1099
+ }
1100
+
1101
+ template <class _Tp>
1102
+ inline _LIBCPP_INLINE_VISIBILITY
1103
+ _Tp*
1104
+ atomic_fetch_add_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT
1105
+ {
1106
+ return __o->fetch_add(__op, __m);
1107
+ }
1108
+
1109
+ // atomic_fetch_sub
1110
+
1111
+ template <class _Tp>
1112
+ inline _LIBCPP_INLINE_VISIBILITY
1113
+ typename enable_if
1114
+ <
1115
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1116
+ _Tp
1117
+ >::type
1118
+ atomic_fetch_sub(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1119
+ {
1120
+ return __o->fetch_sub(__op);
1121
+ }
1122
+
1123
+ template <class _Tp>
1124
+ inline _LIBCPP_INLINE_VISIBILITY
1125
+ typename enable_if
1126
+ <
1127
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1128
+ _Tp
1129
+ >::type
1130
+ atomic_fetch_sub(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1131
+ {
1132
+ return __o->fetch_sub(__op);
1133
+ }
1134
+
1135
+ template <class _Tp>
1136
+ inline _LIBCPP_INLINE_VISIBILITY
1137
+ _Tp*
1138
+ atomic_fetch_sub(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1139
+ {
1140
+ return __o->fetch_sub(__op);
1141
+ }
1142
+
1143
+ template <class _Tp>
1144
+ inline _LIBCPP_INLINE_VISIBILITY
1145
+ _Tp*
1146
+ atomic_fetch_sub(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1147
+ {
1148
+ return __o->fetch_sub(__op);
1149
+ }
1150
+
1151
+ // atomic_fetch_sub_explicit
1152
+
1153
+ template <class _Tp>
1154
+ inline _LIBCPP_INLINE_VISIBILITY
1155
+ typename enable_if
1156
+ <
1157
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1158
+ _Tp
1159
+ >::type
1160
+ atomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1161
+ {
1162
+ return __o->fetch_sub(__op, __m);
1163
+ }
1164
+
1165
+ template <class _Tp>
1166
+ inline _LIBCPP_INLINE_VISIBILITY
1167
+ typename enable_if
1168
+ <
1169
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1170
+ _Tp
1171
+ >::type
1172
+ atomic_fetch_sub_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1173
+ {
1174
+ return __o->fetch_sub(__op, __m);
1175
+ }
1176
+
1177
+ template <class _Tp>
1178
+ inline _LIBCPP_INLINE_VISIBILITY
1179
+ _Tp*
1180
+ atomic_fetch_sub_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,
1181
+ memory_order __m) _NOEXCEPT
1182
+ {
1183
+ return __o->fetch_sub(__op, __m);
1184
+ }
1185
+
1186
+ template <class _Tp>
1187
+ inline _LIBCPP_INLINE_VISIBILITY
1188
+ _Tp*
1189
+ atomic_fetch_sub_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT
1190
+ {
1191
+ return __o->fetch_sub(__op, __m);
1192
+ }
1193
+
1194
+ // atomic_fetch_and
1195
+
1196
+ template <class _Tp>
1197
+ inline _LIBCPP_INLINE_VISIBILITY
1198
+ typename enable_if
1199
+ <
1200
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1201
+ _Tp
1202
+ >::type
1203
+ atomic_fetch_and(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1204
+ {
1205
+ return __o->fetch_and(__op);
1206
+ }
1207
+
1208
+ template <class _Tp>
1209
+ inline _LIBCPP_INLINE_VISIBILITY
1210
+ typename enable_if
1211
+ <
1212
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1213
+ _Tp
1214
+ >::type
1215
+ atomic_fetch_and(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1216
+ {
1217
+ return __o->fetch_and(__op);
1218
+ }
1219
+
1220
+ // atomic_fetch_and_explicit
1221
+
1222
+ template <class _Tp>
1223
+ inline _LIBCPP_INLINE_VISIBILITY
1224
+ typename enable_if
1225
+ <
1226
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1227
+ _Tp
1228
+ >::type
1229
+ atomic_fetch_and_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1230
+ {
1231
+ return __o->fetch_and(__op, __m);
1232
+ }
1233
+
1234
+ template <class _Tp>
1235
+ inline _LIBCPP_INLINE_VISIBILITY
1236
+ typename enable_if
1237
+ <
1238
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1239
+ _Tp
1240
+ >::type
1241
+ atomic_fetch_and_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1242
+ {
1243
+ return __o->fetch_and(__op, __m);
1244
+ }
1245
+
1246
+ // atomic_fetch_or
1247
+
1248
+ template <class _Tp>
1249
+ inline _LIBCPP_INLINE_VISIBILITY
1250
+ typename enable_if
1251
+ <
1252
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1253
+ _Tp
1254
+ >::type
1255
+ atomic_fetch_or(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1256
+ {
1257
+ return __o->fetch_or(__op);
1258
+ }
1259
+
1260
+ template <class _Tp>
1261
+ inline _LIBCPP_INLINE_VISIBILITY
1262
+ typename enable_if
1263
+ <
1264
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1265
+ _Tp
1266
+ >::type
1267
+ atomic_fetch_or(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1268
+ {
1269
+ return __o->fetch_or(__op);
1270
+ }
1271
+
1272
+ // atomic_fetch_or_explicit
1273
+
1274
+ template <class _Tp>
1275
+ inline _LIBCPP_INLINE_VISIBILITY
1276
+ typename enable_if
1277
+ <
1278
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1279
+ _Tp
1280
+ >::type
1281
+ atomic_fetch_or_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1282
+ {
1283
+ return __o->fetch_or(__op, __m);
1284
+ }
1285
+
1286
+ template <class _Tp>
1287
+ inline _LIBCPP_INLINE_VISIBILITY
1288
+ typename enable_if
1289
+ <
1290
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1291
+ _Tp
1292
+ >::type
1293
+ atomic_fetch_or_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1294
+ {
1295
+ return __o->fetch_or(__op, __m);
1296
+ }
1297
+
1298
+ // atomic_fetch_xor
1299
+
1300
+ template <class _Tp>
1301
+ inline _LIBCPP_INLINE_VISIBILITY
1302
+ typename enable_if
1303
+ <
1304
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1305
+ _Tp
1306
+ >::type
1307
+ atomic_fetch_xor(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1308
+ {
1309
+ return __o->fetch_xor(__op);
1310
+ }
1311
+
1312
+ template <class _Tp>
1313
+ inline _LIBCPP_INLINE_VISIBILITY
1314
+ typename enable_if
1315
+ <
1316
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1317
+ _Tp
1318
+ >::type
1319
+ atomic_fetch_xor(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1320
+ {
1321
+ return __o->fetch_xor(__op);
1322
+ }
1323
+
1324
+ // atomic_fetch_xor_explicit
1325
+
1326
+ template <class _Tp>
1327
+ inline _LIBCPP_INLINE_VISIBILITY
1328
+ typename enable_if
1329
+ <
1330
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1331
+ _Tp
1332
+ >::type
1333
+ atomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1334
+ {
1335
+ return __o->fetch_xor(__op, __m);
1336
+ }
1337
+
1338
+ template <class _Tp>
1339
+ inline _LIBCPP_INLINE_VISIBILITY
1340
+ typename enable_if
1341
+ <
1342
+ is_integral<_Tp>::value && !is_same<_Tp, bool>::value,
1343
+ _Tp
1344
+ >::type
1345
+ atomic_fetch_xor_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1346
+ {
1347
+ return __o->fetch_xor(__op, __m);
1348
+ }
1349
+
1350
+ // flag type and operations
1351
+
1352
+ typedef struct atomic_flag
1353
+ {
1354
+ _Atomic(bool) __a_;
1355
+
1356
+ _LIBCPP_INLINE_VISIBILITY
1357
+ bool test_and_set(memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
1358
+ {return __c11_atomic_exchange(&__a_, true, __m);}
1359
+ _LIBCPP_INLINE_VISIBILITY
1360
+ bool test_and_set(memory_order __m = memory_order_seq_cst) _NOEXCEPT
1361
+ {return __c11_atomic_exchange(&__a_, true, __m);}
1362
+ _LIBCPP_INLINE_VISIBILITY
1363
+ void clear(memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
1364
+ {__c11_atomic_store(&__a_, false, __m);}
1365
+ _LIBCPP_INLINE_VISIBILITY
1366
+ void clear(memory_order __m = memory_order_seq_cst) _NOEXCEPT
1367
+ {__c11_atomic_store(&__a_, false, __m);}
1368
+
1369
+ _LIBCPP_INLINE_VISIBILITY
1370
+ atomic_flag() _NOEXCEPT {} // = default;
1371
+ _LIBCPP_INLINE_VISIBILITY
1372
+ atomic_flag(bool __b) _NOEXCEPT : __a_(__b) {}
1373
+
1374
+ #ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS
1375
+ atomic_flag(const atomic_flag&) = delete;
1376
+ atomic_flag& operator=(const atomic_flag&) = delete;
1377
+ atomic_flag& operator=(const atomic_flag&) volatile = delete;
1378
+ #else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
1379
+ private:
1380
+ atomic_flag(const atomic_flag&);
1381
+ atomic_flag& operator=(const atomic_flag&);
1382
+ atomic_flag& operator=(const atomic_flag&) volatile;
1383
+ #endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
1384
+ } atomic_flag;
1385
+
1386
+ inline _LIBCPP_INLINE_VISIBILITY
1387
+ bool
1388
+ atomic_flag_test_and_set(volatile atomic_flag* __o) _NOEXCEPT
1389
+ {
1390
+ return __o->test_and_set();
1391
+ }
1392
+
1393
+ inline _LIBCPP_INLINE_VISIBILITY
1394
+ bool
1395
+ atomic_flag_test_and_set(atomic_flag* __o) _NOEXCEPT
1396
+ {
1397
+ return __o->test_and_set();
1398
+ }
1399
+
1400
+ inline _LIBCPP_INLINE_VISIBILITY
1401
+ bool
1402
+ atomic_flag_test_and_set_explicit(volatile atomic_flag* __o, memory_order __m) _NOEXCEPT
1403
+ {
1404
+ return __o->test_and_set(__m);
1405
+ }
1406
+
1407
+ inline _LIBCPP_INLINE_VISIBILITY
1408
+ bool
1409
+ atomic_flag_test_and_set_explicit(atomic_flag* __o, memory_order __m) _NOEXCEPT
1410
+ {
1411
+ return __o->test_and_set(__m);
1412
+ }
1413
+
1414
+ inline _LIBCPP_INLINE_VISIBILITY
1415
+ void
1416
+ atomic_flag_clear(volatile atomic_flag* __o) _NOEXCEPT
1417
+ {
1418
+ __o->clear();
1419
+ }
1420
+
1421
+ inline _LIBCPP_INLINE_VISIBILITY
1422
+ void
1423
+ atomic_flag_clear(atomic_flag* __o) _NOEXCEPT
1424
+ {
1425
+ __o->clear();
1426
+ }
1427
+
1428
+ inline _LIBCPP_INLINE_VISIBILITY
1429
+ void
1430
+ atomic_flag_clear_explicit(volatile atomic_flag* __o, memory_order __m) _NOEXCEPT
1431
+ {
1432
+ __o->clear(__m);
1433
+ }
1434
+
1435
+ inline _LIBCPP_INLINE_VISIBILITY
1436
+ void
1437
+ atomic_flag_clear_explicit(atomic_flag* __o, memory_order __m) _NOEXCEPT
1438
+ {
1439
+ __o->clear(__m);
1440
+ }
1441
+
1442
+ // fences
1443
+
1444
+ inline _LIBCPP_INLINE_VISIBILITY
1445
+ void
1446
+ atomic_thread_fence(memory_order __m) _NOEXCEPT
1447
+ {
1448
+ __c11_atomic_thread_fence(__m);
1449
+ }
1450
+
1451
+ inline _LIBCPP_INLINE_VISIBILITY
1452
+ void
1453
+ atomic_signal_fence(memory_order __m) _NOEXCEPT
1454
+ {
1455
+ __c11_atomic_signal_fence(__m);
1456
+ }
1457
+
1458
+ // Atomics for standard typedef types
1459
+
1460
+ typedef atomic<bool> atomic_bool;
1461
+ typedef atomic<char> atomic_char;
1462
+ typedef atomic<signed char> atomic_schar;
1463
+ typedef atomic<unsigned char> atomic_uchar;
1464
+ typedef atomic<short> atomic_short;
1465
+ typedef atomic<unsigned short> atomic_ushort;
1466
+ typedef atomic<int> atomic_int;
1467
+ typedef atomic<unsigned int> atomic_uint;
1468
+ typedef atomic<long> atomic_long;
1469
+ typedef atomic<unsigned long> atomic_ulong;
1470
+ typedef atomic<long long> atomic_llong;
1471
+ typedef atomic<unsigned long long> atomic_ullong;
1472
+ typedef atomic<char16_t> atomic_char16_t;
1473
+ typedef atomic<char32_t> atomic_char32_t;
1474
+ typedef atomic<wchar_t> atomic_wchar_t;
1475
+
1476
+ typedef atomic<int_least8_t> atomic_int_least8_t;
1477
+ typedef atomic<uint_least8_t> atomic_uint_least8_t;
1478
+ typedef atomic<int_least16_t> atomic_int_least16_t;
1479
+ typedef atomic<uint_least16_t> atomic_uint_least16_t;
1480
+ typedef atomic<int_least32_t> atomic_int_least32_t;
1481
+ typedef atomic<uint_least32_t> atomic_uint_least32_t;
1482
+ typedef atomic<int_least64_t> atomic_int_least64_t;
1483
+ typedef atomic<uint_least64_t> atomic_uint_least64_t;
1484
+
1485
+ typedef atomic<int_fast8_t> atomic_int_fast8_t;
1486
+ typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
1487
+ typedef atomic<int_fast16_t> atomic_int_fast16_t;
1488
+ typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
1489
+ typedef atomic<int_fast32_t> atomic_int_fast32_t;
1490
+ typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
1491
+ typedef atomic<int_fast64_t> atomic_int_fast64_t;
1492
+ typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
1493
+
1494
+ typedef atomic<intptr_t> atomic_intptr_t;
1495
+ typedef atomic<uintptr_t> atomic_uintptr_t;
1496
+ typedef atomic<size_t> atomic_size_t;
1497
+ typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
1498
+ typedef atomic<intmax_t> atomic_intmax_t;
1499
+ typedef atomic<uintmax_t> atomic_uintmax_t;
1500
+
1501
+ #define ATOMIC_FLAG_INIT {false}
1502
+ #define ATOMIC_VAR_INIT(__v) {__v}
1503
+
1504
+ // lock-free property
1505
+
1506
+ #define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE
1507
+ #define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE
1508
+ #define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE
1509
+ #define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE
1510
+ #define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE
1511
+ #define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE
1512
+ #define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE
1513
+ #define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE
1514
+ #define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE
1515
+ #define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
1516
+
1517
+ #endif // !__has_feature(cxx_atomic)
1518
+
1519
+ _LIBCPP_END_NAMESPACE_STD
1520
+
1521
+ #endif // _LIBCPP_ATOMIC