script_core 0.2.5 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1576) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CMakeLists.txt +1 -1
  4. data/Gemfile +3 -3
  5. data/README.md +8 -1
  6. data/ext/enterprise_script_service/Rakefile +1 -1
  7. data/ext/enterprise_script_service/flags.rb +2 -2
  8. data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
  9. data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
  10. data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
  11. data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
  12. data/ext/enterprise_script_service/libseccomp/README.md +21 -1
  13. data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
  14. data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
  15. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
  16. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
  17. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
  18. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
  19. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
  20. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
  21. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
  22. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
  23. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
  24. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
  25. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
  26. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
  27. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
  28. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
  29. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
  30. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
  31. data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
  32. data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
  33. data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
  34. data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
  35. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
  36. data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
  37. data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
  38. data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
  39. data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
  40. data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
  41. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
  42. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
  43. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
  44. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
  45. data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
  46. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
  47. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
  48. data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
  49. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
  50. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
  51. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
  52. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
  53. data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
  54. data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
  55. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
  56. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
  57. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
  58. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
  59. data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
  60. data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
  61. data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
  62. data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
  63. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
  64. data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
  65. data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
  66. data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
  67. data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
  68. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
  69. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
  70. data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
  71. data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
  72. data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
  73. data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
  74. data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
  75. data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
  76. data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
  77. data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
  78. data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
  79. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
  80. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
  81. data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
  82. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
  83. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
  84. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
  85. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
  86. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
  87. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
  88. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
  89. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
  90. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
  91. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
  92. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
  93. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
  94. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
  95. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
  96. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
  97. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
  98. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
  99. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
  100. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
  101. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
  102. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
  103. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
  104. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
  105. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
  106. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
  107. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
  108. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
  109. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
  110. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
  111. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
  112. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
  113. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
  114. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
  115. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
  116. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
  117. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.pfc +182 -0
  118. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
  119. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
  120. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
  121. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
  122. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
  123. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
  124. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
  125. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
  126. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
  127. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
  128. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
  129. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
  130. data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
  131. data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
  132. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
  133. data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
  134. data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
  135. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
  136. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
  137. data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
  138. data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
  139. data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +149 -0
  140. data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +55 -0
  141. data/ext/enterprise_script_service/mruby/.github/workflows/lint.yml +23 -0
  142. data/ext/enterprise_script_service/mruby/.github/workflows/oss-fuzz.yml +27 -0
  143. data/ext/enterprise_script_service/mruby/.github/workflows/spell-checker.yml +17 -0
  144. data/ext/enterprise_script_service/mruby/.gitignore +3 -0
  145. data/ext/enterprise_script_service/mruby/.gitlab-ci.yml +3 -3
  146. data/ext/enterprise_script_service/mruby/.markdownlint.yml +16 -0
  147. data/ext/enterprise_script_service/mruby/.travis.yml +7 -10
  148. data/ext/enterprise_script_service/mruby/.yamllint +8 -0
  149. data/ext/enterprise_script_service/mruby/AUTHORS +4 -0
  150. data/ext/enterprise_script_service/mruby/CODEOWNERS +1 -0
  151. data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +6 -13
  152. data/ext/enterprise_script_service/mruby/Doxyfile +4 -4
  153. data/ext/enterprise_script_service/mruby/LICENSE +1 -1
  154. data/ext/enterprise_script_service/mruby/Makefile +1 -1
  155. data/ext/enterprise_script_service/mruby/README.md +5 -11
  156. data/ext/enterprise_script_service/mruby/Rakefile +18 -108
  157. data/ext/enterprise_script_service/mruby/TODO.md +17 -0
  158. data/ext/enterprise_script_service/mruby/appveyor.yml +29 -26
  159. data/ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb +1 -1
  160. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_ArduinoDue.rb → build_config/ArduinoDue.rb} +4 -21
  161. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelEdison.rb → build_config/IntelEdison.rb} +4 -4
  162. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelGalileo.rb → build_config/IntelGalileo.rb} +3 -20
  163. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_RX630.rb → build_config/RX630.rb} +4 -21
  164. data/ext/enterprise_script_service/mruby/build_config/android_arm64-v8a.rb +11 -0
  165. data/ext/enterprise_script_service/mruby/build_config/android_armeabi.rb +11 -0
  166. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_android_armeabi_v7a_neon_hard.rb → build_config/android_armeabi_v7a_neon_hard.rb} +0 -15
  167. data/ext/enterprise_script_service/mruby/build_config/bench.rb +11 -0
  168. data/ext/enterprise_script_service/mruby/build_config/boxing.rb +21 -0
  169. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_chipKITMax32.rb → build_config/chipKITMax32.rb} +4 -21
  170. data/ext/enterprise_script_service/mruby/{appveyor_config.rb → build_config/ci/gcc-clang.rb} +11 -8
  171. data/ext/enterprise_script_service/mruby/build_config/ci/msvc.rb +20 -0
  172. data/ext/enterprise_script_service/mruby/build_config/clang-asan.rb +11 -0
  173. data/ext/enterprise_script_service/mruby/build_config/cross-32bit.rb +14 -0
  174. data/ext/enterprise_script_service/mruby/build_config/default.rb +80 -0
  175. data/ext/enterprise_script_service/mruby/build_config/dreamcast_shelf.rb +94 -0
  176. data/ext/enterprise_script_service/mruby/build_config/gameboyadvance.rb +73 -0
  177. data/ext/enterprise_script_service/mruby/build_config/host-cxx.rb +12 -0
  178. data/ext/enterprise_script_service/mruby/build_config/host-debug.rb +20 -0
  179. data/ext/enterprise_script_service/mruby/build_config/host-gprof.rb +14 -0
  180. data/ext/enterprise_script_service/mruby/build_config/host-m32.rb +15 -0
  181. data/ext/enterprise_script_service/mruby/build_config/host-shared.rb +36 -0
  182. data/ext/enterprise_script_service/mruby/build_config/mrbc.rb +11 -0
  183. data/ext/enterprise_script_service/mruby/build_config/no-float.rb +17 -0
  184. data/ext/enterprise_script_service/mruby/build_config.rb +9 -152
  185. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +142 -49
  186. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +5 -4
  187. data/ext/enterprise_script_service/mruby/doc/guides/gc-arena-howto.md +1 -1
  188. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +53 -30
  189. data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +31 -14
  190. data/ext/enterprise_script_service/mruby/doc/guides/symbol.md +83 -0
  191. data/ext/enterprise_script_service/mruby/doc/limitations.md +35 -36
  192. data/ext/enterprise_script_service/mruby/doc/mruby3.md +163 -0
  193. data/ext/enterprise_script_service/mruby/doc/opcode.md +102 -103
  194. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +1 -1
  195. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +5 -1
  196. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_extension_example/src/example.c +5 -1
  197. data/ext/enterprise_script_service/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +1 -1
  198. data/ext/enterprise_script_service/mruby/include/mrbconf.h +88 -66
  199. data/ext/enterprise_script_service/mruby/include/mruby/array.h +27 -6
  200. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +80 -46
  201. data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +8 -8
  202. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +76 -55
  203. data/ext/enterprise_script_service/mruby/include/mruby/class.h +10 -8
  204. data/ext/enterprise_script_service/mruby/include/mruby/common.h +14 -1
  205. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +20 -6
  206. data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
  207. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +18 -52
  208. data/ext/enterprise_script_service/mruby/include/mruby/endian.h +44 -0
  209. data/ext/enterprise_script_service/mruby/include/mruby/error.h +39 -5
  210. data/ext/enterprise_script_service/mruby/include/mruby/gc.h +1 -0
  211. data/ext/enterprise_script_service/mruby/include/mruby/hash.h +33 -13
  212. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +74 -14
  213. data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
  214. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +19 -9
  215. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +37 -63
  216. data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +1 -27
  217. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +29 -24
  218. data/ext/enterprise_script_service/mruby/include/mruby/presym/disable.h +70 -0
  219. data/ext/enterprise_script_service/mruby/include/mruby/presym/enable.h +37 -0
  220. data/ext/enterprise_script_service/mruby/include/mruby/presym/scanning.h +73 -0
  221. data/ext/enterprise_script_service/mruby/include/mruby/presym.h +40 -0
  222. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +93 -21
  223. data/ext/enterprise_script_service/mruby/include/mruby/string.h +12 -16
  224. data/ext/enterprise_script_service/mruby/include/mruby/throw.h +14 -3
  225. data/ext/enterprise_script_service/mruby/include/mruby/value.h +60 -59
  226. data/ext/enterprise_script_service/mruby/include/mruby/variable.h +1 -0
  227. data/ext/enterprise_script_service/mruby/include/mruby/version.h +25 -6
  228. data/ext/enterprise_script_service/mruby/include/mruby.h +160 -104
  229. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +71 -78
  230. data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +12 -10
  231. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +198 -72
  232. data/ext/enterprise_script_service/mruby/lib/{mruby-core-ext.rb → mruby/core_ext.rb} +10 -3
  233. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +84 -32
  234. data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +1 -1
  235. data/ext/enterprise_script_service/mruby/lib/mruby/presym.rb +132 -0
  236. data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
  237. data/ext/enterprise_script_service/mruby/mrbgems/default-no-fpu.gembox +3 -0
  238. data/ext/enterprise_script_service/mruby/mrbgems/default-no-stdio.gembox +4 -0
  239. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -81
  240. data/ext/enterprise_script_service/mruby/mrbgems/full-core.gembox +1 -4
  241. data/ext/enterprise_script_service/mruby/mrbgems/math.gembox +10 -0
  242. data/ext/enterprise_script_service/mruby/mrbgems/metaprog.gembox +15 -0
  243. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +1 -32
  244. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +10 -12
  245. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
  246. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +30 -18
  247. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mruby-config +18 -8
  248. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +3 -6
  249. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +10 -10
  250. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +14 -9
  251. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +3 -2
  252. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +4 -4
  253. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -6
  254. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +6 -2
  255. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +23 -5
  256. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +11 -2
  257. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +46 -35
  258. data/ext/enterprise_script_service/mruby/mrbgems/{mruby-compiler → mruby-bin-mrbc}/bintest/mrbc.rb +0 -0
  259. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +3 -4
  260. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +41 -28
  261. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +25 -4
  262. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -2
  263. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +26 -6
  264. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +1 -1
  265. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
  266. data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
  267. data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrblib/catch.rb +27 -0
  268. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +7 -1
  269. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +495 -436
  270. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +5 -0
  271. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +49 -44
  272. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +637 -220
  273. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13734 -0
  274. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +20 -23
  275. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +2 -2
  276. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +9 -9
  277. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +4 -4
  278. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +1 -0
  279. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +2 -2
  280. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/mrbgem.rake +2 -2
  281. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
  282. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +19 -238
  283. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
  284. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +19 -15
  285. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +31 -5
  286. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +7 -0
  287. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +5 -6
  288. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +18 -16
  289. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
  290. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
  291. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +9 -4
  292. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
  293. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +9 -14
  294. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +107 -59
  295. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +22 -38
  296. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +417 -203
  297. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +20 -12
  298. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +33 -2
  299. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +58 -50
  300. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +13 -14
  301. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +13 -12
  302. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +5 -4
  303. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +56 -73
  304. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +13 -4
  305. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/README.md +4 -3
  306. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +80 -78
  307. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +4 -4
  308. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +14 -13
  309. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +8 -16
  310. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +18 -13
  311. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
  312. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/src/memsize.c +231 -0
  313. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
  314. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/README.md +15 -18
  315. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +120 -67
  316. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -30
  317. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +65 -26
  318. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +34 -21
  319. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.c +1 -1
  320. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +98 -43
  321. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +2 -2
  322. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +39 -6
  323. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +21 -43
  324. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +27 -3
  325. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +12 -20
  326. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +216 -38
  327. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +6 -6
  328. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +6 -4
  329. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +5 -5
  330. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +3 -2
  331. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
  332. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +47 -45
  333. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
  334. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +161 -93
  335. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +9 -25
  336. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +23 -1
  337. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +17 -14
  338. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +1 -1
  339. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +23 -36
  340. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +7 -6
  341. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
  342. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/README.md +0 -1
  343. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +5 -5
  344. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +17 -44
  345. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +4 -4
  346. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +37 -41
  347. data/ext/enterprise_script_service/mruby/mrbgems/stdlib-ext.gembox +18 -0
  348. data/ext/enterprise_script_service/mruby/mrbgems/stdlib-io.gembox +12 -0
  349. data/ext/enterprise_script_service/mruby/mrbgems/stdlib.gembox +54 -0
  350. data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
  351. data/ext/enterprise_script_service/mruby/mrblib/10error.rb +4 -0
  352. data/ext/enterprise_script_service/mruby/mrblib/array.rb +17 -9
  353. data/ext/enterprise_script_service/mruby/mrblib/enum.rb +1 -1
  354. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -23
  355. data/ext/enterprise_script_service/mruby/mrblib/init_mrblib.c +0 -11
  356. data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +36 -11
  357. data/ext/enterprise_script_service/mruby/mrblib/range.rb +25 -3
  358. data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +2 -2
  359. data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +1 -1
  360. data/ext/enterprise_script_service/mruby/src/array.c +67 -90
  361. data/ext/enterprise_script_service/mruby/src/backtrace.c +18 -19
  362. data/ext/enterprise_script_service/mruby/src/class.c +819 -211
  363. data/ext/enterprise_script_service/mruby/src/codedump.c +226 -197
  364. data/ext/enterprise_script_service/mruby/src/debug.c +14 -11
  365. data/ext/enterprise_script_service/mruby/src/dump.c +470 -207
  366. data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
  367. data/ext/enterprise_script_service/mruby/src/error.c +94 -20
  368. data/ext/enterprise_script_service/mruby/src/etc.c +56 -39
  369. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +103 -27
  370. data/ext/enterprise_script_service/mruby/src/gc.c +86 -349
  371. data/ext/enterprise_script_service/mruby/src/hash.c +1058 -723
  372. data/ext/enterprise_script_service/mruby/src/kernel.c +78 -226
  373. data/ext/enterprise_script_service/mruby/src/load.c +215 -159
  374. data/ext/enterprise_script_service/mruby/src/numeric.c +400 -382
  375. data/ext/enterprise_script_service/mruby/src/object.c +115 -90
  376. data/ext/enterprise_script_service/mruby/src/print.c +31 -6
  377. data/ext/enterprise_script_service/mruby/src/proc.c +56 -45
  378. data/ext/enterprise_script_service/mruby/src/range.c +49 -33
  379. data/ext/enterprise_script_service/mruby/src/state.c +58 -42
  380. data/ext/enterprise_script_service/mruby/src/string.c +151 -156
  381. data/ext/enterprise_script_service/mruby/src/symbol.c +132 -66
  382. data/ext/enterprise_script_service/mruby/src/value_array.h +1 -0
  383. data/ext/enterprise_script_service/mruby/src/variable.c +158 -158
  384. data/ext/enterprise_script_service/mruby/src/vm.c +655 -645
  385. data/ext/enterprise_script_service/mruby/tasks/benchmark.rake +6 -6
  386. data/ext/enterprise_script_service/mruby/tasks/bin.rake +23 -0
  387. data/ext/enterprise_script_service/mruby/tasks/core.rake +12 -0
  388. data/ext/enterprise_script_service/mruby/tasks/doc.rake +50 -38
  389. data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +64 -61
  390. data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +10 -1
  391. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +13 -1
  392. data/ext/enterprise_script_service/mruby/tasks/mrblib.rake +40 -0
  393. data/ext/enterprise_script_service/mruby/tasks/presym.rake +44 -0
  394. data/ext/enterprise_script_service/mruby/tasks/test.rake +68 -0
  395. data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
  396. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +8 -7
  397. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +13 -17
  398. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +21 -25
  399. data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
  400. data/ext/enterprise_script_service/mruby/test/bintest.rb +5 -5
  401. data/ext/enterprise_script_service/mruby/test/t/argumenterror.rb +16 -0
  402. data/ext/enterprise_script_service/mruby/test/t/array.rb +7 -3
  403. data/ext/enterprise_script_service/mruby/test/t/bs_literal.rb +1 -1
  404. data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
  405. data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
  406. data/ext/enterprise_script_service/mruby/test/t/float.rb +18 -8
  407. data/ext/enterprise_script_service/mruby/test/t/hash.rb +903 -281
  408. data/ext/enterprise_script_service/mruby/test/t/integer.rb +10 -38
  409. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +16 -25
  410. data/ext/enterprise_script_service/mruby/test/t/literals.rb +50 -0
  411. data/ext/enterprise_script_service/mruby/test/t/module.rb +2 -2
  412. data/ext/enterprise_script_service/mruby/test/t/numeric.rb +1 -1
  413. data/ext/enterprise_script_service/mruby/test/t/range.rb +83 -1
  414. data/ext/enterprise_script_service/mruby/test/t/string.rb +4 -0
  415. data/ext/enterprise_script_service/mruby/test/t/superclass.rb +10 -10
  416. data/ext/enterprise_script_service/mruby/test/t/syntax.rb +24 -0
  417. data/ext/enterprise_script_service/mruby/test/t/vformat.rb +3 -3
  418. data/ext/enterprise_script_service/mruby-mpdecimal/mrbgem.rake +2 -1
  419. data/ext/enterprise_script_service/mruby_config.rb +2 -5
  420. data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
  421. data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
  422. data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
  423. data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
  424. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
  425. data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
  426. data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
  427. data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
  428. data/ext/enterprise_script_service/msgpack/README.md +3 -2
  429. data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
  430. data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
  431. data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
  432. data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
  433. data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
  434. data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
  435. data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
  436. data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
  437. data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
  438. data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
  439. data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
  440. data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
  441. data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
  442. data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitattributes +96 -0
  443. data/ext/enterprise_script_service/msgpack/external/boost/predef/.gitignore +3 -0
  444. data/ext/enterprise_script_service/msgpack/external/boost/predef/.project +17 -0
  445. data/ext/enterprise_script_service/msgpack/external/boost/predef/.pydevproject +5 -0
  446. data/ext/enterprise_script_service/msgpack/external/boost/predef/.travis.yml +109 -0
  447. data/ext/enterprise_script_service/msgpack/external/boost/predef/appveyor.yml +149 -0
  448. data/ext/enterprise_script_service/msgpack/external/boost/predef/build.jam +6 -0
  449. data/ext/enterprise_script_service/msgpack/external/boost/predef/check/predef.jam +17 -0
  450. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/.gitignore +1 -0
  451. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/build.jam +100 -0
  452. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/hardware_simd.qbk +89 -0
  453. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/history.qbk +93 -0
  454. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/predef.qbk +734 -0
  455. data/ext/enterprise_script_service/msgpack/external/boost/predef/doc/todo.qbk +12 -0
  456. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/detail/endian.hpp +11 -0
  457. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/alpha.h +59 -0
  458. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/arm.h +80 -0
  459. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/blackfin.h +46 -0
  460. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/convex.h +65 -0
  461. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ia64.h +49 -0
  462. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/m68k.h +82 -0
  463. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/mips.h +73 -0
  464. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/parisc.h +64 -0
  465. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ppc.h +72 -0
  466. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/ptx.h +44 -0
  467. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/pyramid.h +42 -0
  468. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/rs6k.h +56 -0
  469. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sparc.h +54 -0
  470. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/superh.h +67 -0
  471. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys370.h +43 -0
  472. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/sys390.h +43 -0
  473. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/32.h +87 -0
  474. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86/64.h +50 -0
  475. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/x86.h +38 -0
  476. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture/z.h +42 -0
  477. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/architecture.h +33 -0
  478. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/borland.h +63 -0
  479. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/clang.h +56 -0
  480. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/comeau.h +61 -0
  481. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/compaq.h +66 -0
  482. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/diab.h +56 -0
  483. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/digitalmars.h +56 -0
  484. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/dignus.h +56 -0
  485. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/edg.h +56 -0
  486. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ekopath.h +57 -0
  487. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc.h +68 -0
  488. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/gcc_xml.h +53 -0
  489. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/greenhills.h +66 -0
  490. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/hp_acc.h +61 -0
  491. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/iar.h +56 -0
  492. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/ibm.h +72 -0
  493. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/intel.h +79 -0
  494. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/kai.h +56 -0
  495. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/llvm.h +57 -0
  496. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metaware.h +53 -0
  497. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/metrowerks.h +77 -0
  498. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/microtec.h +53 -0
  499. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/mpw.h +63 -0
  500. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/nvcc.h +60 -0
  501. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/palm.h +56 -0
  502. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/pgi.h +60 -0
  503. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sgi_mipspro.h +66 -0
  504. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/sunpro.h +76 -0
  505. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/tendra.h +53 -0
  506. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/visualc.h +105 -0
  507. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler/watcom.h +56 -0
  508. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/compiler.h +44 -0
  509. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_cassert.h +17 -0
  510. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/_exception.h +15 -0
  511. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/comp_detected.h +10 -0
  512. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/endian_compat.h +26 -0
  513. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/os_detected.h +10 -0
  514. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/platform_detected.h +10 -0
  515. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test.h +17 -0
  516. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/detail/test_def.h +71 -0
  517. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm/versions.h +32 -0
  518. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/arm.h +59 -0
  519. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc/versions.h +51 -0
  520. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/ppc.h +69 -0
  521. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86/versions.h +129 -0
  522. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86.h +123 -0
  523. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd/versions.h +51 -0
  524. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd/x86_amd.h +87 -0
  525. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware/simd.h +119 -0
  526. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/hardware.h +16 -0
  527. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/cuda.h +52 -0
  528. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/objc.h +42 -0
  529. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdc.h +53 -0
  530. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language/stdcpp.h +121 -0
  531. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/language.h +18 -0
  532. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/_prefix.h +13 -0
  533. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/cloudabi.h +53 -0
  534. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/gnu.h +61 -0
  535. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/uc.h +47 -0
  536. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/vms.h +47 -0
  537. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c/zos.h +56 -0
  538. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/c.h +21 -0
  539. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/_prefix.h +23 -0
  540. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/cxx.h +46 -0
  541. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/dinkumware.h +52 -0
  542. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/libcomo.h +47 -0
  543. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/modena.h +45 -0
  544. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/msl.h +53 -0
  545. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/roguewave.h +56 -0
  546. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/sgi.h +51 -0
  547. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stdcpp3.h +53 -0
  548. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/stlport.h +59 -0
  549. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std/vacpp.h +44 -0
  550. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library/std.h +25 -0
  551. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/library.h +16 -0
  552. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/make.h +97 -0
  553. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/aix.h +66 -0
  554. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/amigaos.h +46 -0
  555. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/android.h +45 -0
  556. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/beos.h +45 -0
  557. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/bsdi.h +48 -0
  558. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/dragonfly.h +50 -0
  559. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/free.h +67 -0
  560. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/net.h +84 -0
  561. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd/open.h +251 -0
  562. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/bsd.h +103 -0
  563. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/cygwin.h +45 -0
  564. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/haiku.h +46 -0
  565. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/hpux.h +47 -0
  566. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/ios.h +51 -0
  567. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/irix.h +46 -0
  568. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/linux.h +46 -0
  569. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/macos.h +65 -0
  570. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/os400.h +45 -0
  571. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/qnxnto.h +59 -0
  572. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/solaris.h +46 -0
  573. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/unix.h +76 -0
  574. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/vms.h +52 -0
  575. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os/windows.h +51 -0
  576. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/os.h +33 -0
  577. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/endian.h +203 -0
  578. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other/workaround.h +87 -0
  579. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/other.h +16 -0
  580. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/cloudabi.h +43 -0
  581. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/ios.h +58 -0
  582. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw.h +69 -0
  583. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw32.h +63 -0
  584. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/mingw64.h +63 -0
  585. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_desktop.h +51 -0
  586. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_phone.h +48 -0
  587. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_runtime.h +53 -0
  588. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_server.h +47 -0
  589. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_store.h +50 -0
  590. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_system.h +47 -0
  591. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform/windows_uwp.h +60 -0
  592. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/platform.h +28 -0
  593. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version.h +15 -0
  594. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef/version_number.h +72 -0
  595. data/ext/enterprise_script_service/msgpack/external/boost/predef/include/boost/predef.h +24 -0
  596. data/ext/enterprise_script_service/msgpack/external/boost/predef/index.html +14 -0
  597. data/ext/enterprise_script_service/msgpack/external/boost/predef/meta/libraries.json +14 -0
  598. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/.gitignore +3 -0
  599. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/build.jam +80 -0
  600. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/check_value.cpp +26 -0
  601. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_c.c +7 -0
  602. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_cpp.cpp +7 -0
  603. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objc.m +7 -0
  604. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/info_as_objcpp.mm +7 -0
  605. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_endian.c +21 -0
  606. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/macos_vs_bsd.c +19 -0
  607. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/make.cpp +94 -0
  608. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/platform_windows.cpp +177 -0
  609. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/predef_info.h +46 -0
  610. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at.cpp +62 -0
  611. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/tested_at_outdated.cpp +18 -0
  612. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/version.cpp +83 -0
  613. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround.cpp +62 -0
  614. data/ext/enterprise_script_service/msgpack/external/boost/predef/test/workaround_strict_config.cpp +17 -0
  615. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/build.jam +9 -0
  616. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef.jam +202 -0
  617. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check.h +98 -0
  618. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_c.c +7 -0
  619. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_cpp.cpp +7 -0
  620. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objc.m +7 -0
  621. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_as_objcpp.mm +7 -0
  622. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc.h +19 -0
  623. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_c.c +7 -0
  624. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_cpp.cpp +7 -0
  625. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objc.m +7 -0
  626. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/check/predef_check_cc_as_objcpp.mm +7 -0
  627. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/build_log.py +428 -0
  628. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/common.py +878 -0
  629. data/ext/enterprise_script_service/msgpack/external/boost/predef/tools/ci/library_test.py +198 -0
  630. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.gitattributes +96 -0
  631. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/.travis.yml +39 -0
  632. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/appveyor.yml +36 -0
  633. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html +2494 -0
  634. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/acknowledgements.html +58 -0
  635. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/bibliography.html +58 -0
  636. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/contents.html +38 -0
  637. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/arrays.html +55 -0
  638. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/lists.html +42 -0
  639. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/sequences.html +60 -0
  640. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data/tuples.html +42 -0
  641. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/data.html +27 -0
  642. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/array_arithmetic.c +196 -0
  643. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/catch_builtin.cpp +51 -0
  644. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/delay.c +95 -0
  645. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/duffs_device.c +61 -0
  646. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/is_integral.cpp +49 -0
  647. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples/linear_fib.c +91 -0
  648. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/examples.html +27 -0
  649. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/add.html +31 -0
  650. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/dec.html +30 -0
  651. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/div.html +31 -0
  652. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/inc.html +30 -0
  653. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mod.html +31 -0
  654. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/mul.html +31 -0
  655. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic/sub.html +31 -0
  656. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/arithmetic.html +36 -0
  657. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/data.html +30 -0
  658. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/elem.html +30 -0
  659. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/enum.html +24 -0
  660. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/insert.html +31 -0
  661. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_back.html +31 -0
  662. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/pop_front.html +31 -0
  663. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_back.html +30 -0
  664. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/push_front.html +30 -0
  665. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/remove.html +31 -0
  666. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/replace.html +31 -0
  667. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/reverse.html +30 -0
  668. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/size.html +30 -0
  669. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_list.html +24 -0
  670. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_seq.html +24 -0
  671. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array/to_tuple.html +24 -0
  672. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/array.html +43 -0
  673. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/assert_msg.html +31 -0
  674. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/cat.html +30 -0
  675. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma.html +31 -0
  676. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comma_if.html +31 -0
  677. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/equal.html +31 -0
  678. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater.html +31 -0
  679. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/greater_equal.html +31 -0
  680. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less.html +31 -0
  681. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/less_equal.html +31 -0
  682. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison/not_equal.html +31 -0
  683. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/comparison.html +35 -0
  684. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/limits.html +44 -0
  685. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/config/variadics.html +32 -0
  686. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/deduce_d.html +30 -0
  687. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_if.html +30 -0
  688. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/expr_iif.html +30 -0
  689. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/if.html +30 -0
  690. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/iif.html +30 -0
  691. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control/while.html +31 -0
  692. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/control.html +35 -0
  693. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/assert.html +31 -0
  694. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug/line.html +30 -0
  695. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/debug.html +31 -0
  696. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/dec.html +31 -0
  697. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/empty.html +31 -0
  698. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum.html +31 -0
  699. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_params.html +31 -0
  700. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted.html +31 -0
  701. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/enum_shifted_params.html +31 -0
  702. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwad.html +31 -0
  703. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/epwd.html +31 -0
  704. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expand.html +31 -0
  705. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/expr_if.html +31 -0
  706. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/apply.html +30 -0
  707. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/empty.html +30 -0
  708. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/expand.html +30 -0
  709. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/identity.html +32 -0
  710. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/intercept.html +30 -0
  711. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities/overload.html +28 -0
  712. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/facilities.html +34 -0
  713. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/for.html +31 -0
  714. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/identity.html +31 -0
  715. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/if.html +31 -0
  716. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/inc.html +31 -0
  717. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iterate.html +31 -0
  718. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/iterate.html +43 -0
  719. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/local.html +30 -0
  720. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration/self.html +30 -0
  721. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/iteration.html +32 -0
  722. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/library.html +26 -0
  723. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/limits.html +31 -0
  724. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/adt.html +35 -0
  725. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/append.html +31 -0
  726. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/at.html +31 -0
  727. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/cat.html +31 -0
  728. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/enum.html +31 -0
  729. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/filter.html +31 -0
  730. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/first_n.html +31 -0
  731. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_left.html +34 -0
  732. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/fold_right.html +34 -0
  733. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each.html +31 -0
  734. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_i.html +31 -0
  735. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/for_each_product.html +31 -0
  736. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/rest_n.html +31 -0
  737. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/reverse.html +31 -0
  738. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/size.html +31 -0
  739. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_array.html +29 -0
  740. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_seq.html +25 -0
  741. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/to_tuple.html +31 -0
  742. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list/transform.html +31 -0
  743. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/list.html +47 -0
  744. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/and.html +30 -0
  745. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitand.html +30 -0
  746. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitnor.html +30 -0
  747. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitor.html +30 -0
  748. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bitxor.html +30 -0
  749. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/bool.html +30 -0
  750. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/compl.html +30 -0
  751. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/nor.html +30 -0
  752. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/not.html +30 -0
  753. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/or.html +30 -0
  754. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical/xor.html +30 -0
  755. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/logical.html +40 -0
  756. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/max.html +31 -0
  757. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/min.html +31 -0
  758. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/preprocessor.html +26 -0
  759. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma.html +30 -0
  760. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/comma_if.html +30 -0
  761. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/is_begin_parens.html +26 -0
  762. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren.html +31 -0
  763. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/paren_if.html +31 -0
  764. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation/remove_parens.html +26 -0
  765. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/punctuation.html +33 -0
  766. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat.html +31 -0
  767. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_2nd.html +31 -0
  768. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_3rd.html +31 -0
  769. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to.html +31 -0
  770. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_2nd.html +31 -0
  771. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repeat_from_to_3rd.html +31 -0
  772. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_r.html +30 -0
  773. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/deduce_z.html +30 -0
  774. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum.html +31 -0
  775. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_binary_params.html +31 -0
  776. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_params.html +31 -0
  777. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted.html +31 -0
  778. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_shifted_params.html +31 -0
  779. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing.html +31 -0
  780. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/enum_trailing_params.html +31 -0
  781. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwad.html +30 -0
  782. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/epwd.html +30 -0
  783. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/esbp.html +31 -0
  784. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/etbp.html +31 -0
  785. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/for.html +31 -0
  786. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat.html +34 -0
  787. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition/repeat_from_to.html +36 -0
  788. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/repetition.html +44 -0
  789. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/max.html +31 -0
  790. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection/min.html +31 -0
  791. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/selection.html +31 -0
  792. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/cat.html +38 -0
  793. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/elem.html +35 -0
  794. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/enum.html +35 -0
  795. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/filter.html +37 -0
  796. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/first_n.html +36 -0
  797. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_left.html +38 -0
  798. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/fold_right.html +38 -0
  799. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each.html +38 -0
  800. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_i.html +38 -0
  801. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/for_each_product.html +38 -0
  802. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/insert.html +35 -0
  803. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_back.html +36 -0
  804. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/pop_front.html +36 -0
  805. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_back.html +35 -0
  806. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/push_front.html +35 -0
  807. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/remove.html +35 -0
  808. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/replace.html +35 -0
  809. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/rest_n.html +36 -0
  810. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/reverse.html +37 -0
  811. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/seq.html +39 -0
  812. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/size.html +35 -0
  813. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/subseq.html +35 -0
  814. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_array.html +36 -0
  815. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_list.html +30 -0
  816. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/to_tuple.html +36 -0
  817. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/transform.html +37 -0
  818. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq/variadic_seq_to_seq.html +34 -0
  819. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/seq.html +86 -0
  820. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/counter.html +31 -0
  821. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot/slot.html +31 -0
  822. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/slot.html +30 -0
  823. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/stringize.html +30 -0
  824. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/eat.html +25 -0
  825. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/elem.html +25 -0
  826. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/enum.html +25 -0
  827. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/insert.html +27 -0
  828. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_back.html +28 -0
  829. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/pop_front.html +28 -0
  830. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_back.html +26 -0
  831. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/push_front.html +26 -0
  832. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/rem.html +27 -0
  833. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/remove.html +27 -0
  834. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/replace.html +28 -0
  835. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/reverse.html +25 -0
  836. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/size.html +25 -0
  837. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_array.html +25 -0
  838. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_list.html +25 -0
  839. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple/to_seq.html +31 -0
  840. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/tuple.html +59 -0
  841. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/elem.html +29 -0
  842. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/size.html +25 -0
  843. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_array.html +25 -0
  844. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_list.html +25 -0
  845. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_seq.html +30 -0
  846. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic/to_tuple.html +31 -0
  847. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/variadic.html +33 -0
  848. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/while.html +31 -0
  849. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers/wstringize.html +30 -0
  850. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/headers.html +249 -0
  851. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/index.html +23 -0
  852. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/miscellanea.html +24 -0
  853. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add.html +68 -0
  854. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/add_d.html +90 -0
  855. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/and.html +64 -0
  856. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/apply.html +64 -0
  857. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_data.html +49 -0
  858. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_elem.html +51 -0
  859. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_enum.html +37 -0
  860. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert.html +71 -0
  861. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_insert_d.html +63 -0
  862. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back.html +59 -0
  863. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_back_z.html +51 -0
  864. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front.html +51 -0
  865. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_pop_front_z.html +51 -0
  866. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_back.html +49 -0
  867. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_push_front.html +49 -0
  868. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove.html +60 -0
  869. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_remove_d.html +51 -0
  870. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace.html +64 -0
  871. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_replace_d.html +55 -0
  872. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_reverse.html +45 -0
  873. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_size.html +45 -0
  874. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_list.html +41 -0
  875. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_seq.html +37 -0
  876. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/array_to_tuple.html +39 -0
  877. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert.html +114 -0
  878. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assert_msg.html +66 -0
  879. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/assign_slot.html +61 -0
  880. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitand.html +65 -0
  881. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitnor.html +65 -0
  882. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitor.html +65 -0
  883. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bitxor.html +66 -0
  884. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/bool.html +54 -0
  885. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/cat.html +57 -0
  886. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma.html +43 -0
  887. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/comma_if.html +60 -0
  888. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/compl.html +58 -0
  889. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/config_extended_line_info.html +54 -0
  890. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/counter.html +58 -0
  891. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/dec.html +54 -0
  892. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_d.html +82 -0
  893. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_r.html +48 -0
  894. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/deduce_z.html +48 -0
  895. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div.html +63 -0
  896. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/div_d.html +85 -0
  897. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/empty.html +47 -0
  898. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum.html +80 -0
  899. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params.html +76 -0
  900. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_binary_params_z.html +93 -0
  901. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params.html +69 -0
  902. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_a_default.html +83 -0
  903. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_with_defaults.html +84 -0
  904. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_params_z.html +82 -0
  905. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted.html +82 -0
  906. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params.html +73 -0
  907. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_params_z.html +79 -0
  908. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_shifted_z.html +93 -0
  909. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing.html +83 -0
  910. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params.html +66 -0
  911. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_params_z.html +81 -0
  912. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_trailing_z.html +96 -0
  913. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/enum_z.html +96 -0
  914. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal.html +64 -0
  915. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/equal_d.html +69 -0
  916. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbp.html +65 -0
  917. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/esbpz.html +67 -0
  918. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbp.html +83 -0
  919. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/etbpz.html +67 -0
  920. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expand.html +67 -0
  921. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_if.html +70 -0
  922. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/expr_iif.html +67 -0
  923. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/filename_x.html +52 -0
  924. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for.html +105 -0
  925. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r.html +148 -0
  926. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/for_r_macros.html +44 -0
  927. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_finish.html +42 -0
  928. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_flags.html +42 -0
  929. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_iteration.html +73 -0
  930. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/frame_start.html +42 -0
  931. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater.html +65 -0
  932. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_d.html +69 -0
  933. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal.html +65 -0
  934. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/greater_equal_d.html +69 -0
  935. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity.html +57 -0
  936. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/identity_n.html +58 -0
  937. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/if.html +63 -0
  938. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iif.html +66 -0
  939. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/inc.html +54 -0
  940. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/include_self.html +101 -0
  941. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/indirect_self.html +45 -0
  942. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/intercept.html +51 -0
  943. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_begin_parens.html +47 -0
  944. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_iterating.html +38 -0
  945. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/is_selfish.html +38 -0
  946. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iterate.html +83 -0
  947. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration.html +55 -0
  948. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_depth.html +73 -0
  949. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_finish.html +57 -0
  950. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_flags.html +68 -0
  951. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_limits.html +59 -0
  952. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_params_x.html +77 -0
  953. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/iteration_start.html +57 -0
  954. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less.html +65 -0
  955. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_d.html +70 -0
  956. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal.html +65 -0
  957. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/less_equal_d.html +70 -0
  958. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_dim.html +35 -0
  959. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_for.html +34 -0
  960. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration.html +34 -0
  961. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_iteration_dim.html +34 -0
  962. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_mag.html +34 -0
  963. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_repeat.html +39 -0
  964. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_seq.html +41 -0
  965. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_count.html +34 -0
  966. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_slot_sig.html +34 -0
  967. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_tuple.html +33 -0
  968. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_variadic.html +24 -0
  969. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/limit_while.html +34 -0
  970. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/line.html +112 -0
  971. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append.html +69 -0
  972. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_append_d.html +96 -0
  973. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at.html +61 -0
  974. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_at_d.html +63 -0
  975. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat.html +58 -0
  976. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cat_d.html +67 -0
  977. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_cons.html +87 -0
  978. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum.html +62 -0
  979. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_enum_r.html +69 -0
  980. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter.html +76 -0
  981. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_filter_d.html +86 -0
  982. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first.html +62 -0
  983. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n.html +62 -0
  984. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_first_n_d.html +71 -0
  985. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left.html +75 -0
  986. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd.html +75 -0
  987. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_2nd_d.html +86 -0
  988. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d.html +81 -0
  989. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_left_d_old.html +86 -0
  990. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right.html +79 -0
  991. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd.html +79 -0
  992. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_2nd_d.html +86 -0
  993. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d.html +81 -0
  994. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_fold_right_d_old.html +90 -0
  995. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each.html +75 -0
  996. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i.html +75 -0
  997. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_i_r.html +82 -0
  998. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product.html +86 -0
  999. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_product_r.html +118 -0
  1000. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_for_each_r.html +81 -0
  1001. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_cons.html +51 -0
  1002. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_is_nil.html +51 -0
  1003. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_nil.html +68 -0
  1004. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest.html +62 -0
  1005. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n.html +62 -0
  1006. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_rest_n_d.html +71 -0
  1007. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse.html +55 -0
  1008. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_reverse_d.html +63 -0
  1009. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size.html +55 -0
  1010. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_size_d.html +67 -0
  1011. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array.html +47 -0
  1012. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_array_d.html +34 -0
  1013. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq.html +44 -0
  1014. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_seq_r.html +32 -0
  1015. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple.html +55 -0
  1016. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_to_tuple_r.html +62 -0
  1017. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform.html +78 -0
  1018. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/list_transform_d.html +86 -0
  1019. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_iterate.html +62 -0
  1020. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_limits.html +80 -0
  1021. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/local_macro.html +64 -0
  1022. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen.html +52 -0
  1023. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/lparen_if.html +61 -0
  1024. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max.html +64 -0
  1025. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/max_d.html +70 -0
  1026. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min.html +64 -0
  1027. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/min_d.html +70 -0
  1028. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod.html +63 -0
  1029. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mod_d.html +75 -0
  1030. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul.html +68 -0
  1031. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/mul_d.html +91 -0
  1032. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nil.html +41 -0
  1033. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/nor.html +64 -0
  1034. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not.html +59 -0
  1035. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal.html +64 -0
  1036. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/not_equal_d.html +69 -0
  1037. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/or.html +64 -0
  1038. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/overload.html +58 -0
  1039. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_finish.html +46 -0
  1040. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_flags.html +46 -0
  1041. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_iteration.html +101 -0
  1042. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/relative_start.html +46 -0
  1043. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/remove_parens.html +44 -0
  1044. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat.html +80 -0
  1045. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_1st.html +82 -0
  1046. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_2nd.html +82 -0
  1047. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_3rd.html +82 -0
  1048. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to.html +102 -0
  1049. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_1st.html +91 -0
  1050. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_2nd.html +91 -0
  1051. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_3rd.html +91 -0
  1052. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d.html +83 -0
  1053. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_d_z.html +84 -0
  1054. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_from_to_z.html +105 -0
  1055. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z.html +92 -0
  1056. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/repeat_z_macros.html +45 -0
  1057. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen.html +53 -0
  1058. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/rparen_if.html +61 -0
  1059. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat.html +64 -0
  1060. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_cat_s.html +60 -0
  1061. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_elem.html +59 -0
  1062. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_enum.html +66 -0
  1063. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter.html +93 -0
  1064. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_filter_s.html +79 -0
  1065. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_first_n.html +67 -0
  1066. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left.html +90 -0
  1067. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_left_s.html +96 -0
  1068. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right.html +92 -0
  1069. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_fold_right_s.html +97 -0
  1070. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each.html +90 -0
  1071. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i.html +91 -0
  1072. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_i_r.html +78 -0
  1073. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product.html +100 -0
  1074. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_product_r.html +81 -0
  1075. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_for_each_r.html +77 -0
  1076. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_head.html +63 -0
  1077. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_insert.html +70 -0
  1078. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_nil.html +81 -0
  1079. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_back.html +68 -0
  1080. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_pop_front.html +68 -0
  1081. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_back.html +76 -0
  1082. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_push_front.html +78 -0
  1083. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_remove.html +66 -0
  1084. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_replace.html +71 -0
  1085. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_rest_n.html +55 -0
  1086. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse.html +68 -0
  1087. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_reverse_s.html +55 -0
  1088. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_size.html +55 -0
  1089. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_subseq.html +69 -0
  1090. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_tail.html +63 -0
  1091. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_array.html +55 -0
  1092. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_list.html +34 -0
  1093. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_to_tuple.html +55 -0
  1094. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform.html +93 -0
  1095. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/seq_transform_s.html +79 -0
  1096. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/slot.html +60 -0
  1097. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/stringize.html +50 -0
  1098. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub.html +63 -0
  1099. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/sub_d.html +85 -0
  1100. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_eat.html +58 -0
  1101. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_elem.html +65 -0
  1102. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_enum.html +55 -0
  1103. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert.html +54 -0
  1104. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_insert_d.html +46 -0
  1105. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back.html +48 -0
  1106. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_back_z.html +40 -0
  1107. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front.html +47 -0
  1108. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_pop_front_z.html +40 -0
  1109. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_back.html +39 -0
  1110. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_push_front.html +39 -0
  1111. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem.html +60 -0
  1112. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_rem_ctor.html +61 -0
  1113. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove.html +50 -0
  1114. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_remove_d.html +41 -0
  1115. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace.html +51 -0
  1116. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_replace_d.html +42 -0
  1117. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_reverse.html +61 -0
  1118. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_size.html +32 -0
  1119. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_array.html +50 -0
  1120. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_list.html +60 -0
  1121. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/tuple_to_seq.html +51 -0
  1122. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/update_counter.html +34 -0
  1123. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/value.html +37 -0
  1124. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_elem.html +42 -0
  1125. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_seq_to_seq.html +35 -0
  1126. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_size.html +33 -0
  1127. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_array.html +32 -0
  1128. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_list.html +31 -0
  1129. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_seq.html +32 -0
  1130. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadic_to_tuple.html +32 -0
  1131. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/variadics.html +30 -0
  1132. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while.html +116 -0
  1133. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d.html +117 -0
  1134. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/while_d_macros.html +89 -0
  1135. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/wstringize.html +49 -0
  1136. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref/xor.html +64 -0
  1137. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/ref.html +319 -0
  1138. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/styles.css +87 -0
  1139. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/syntax.html +307 -0
  1140. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/evaluated.html +27 -0
  1141. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms/named_external.html +25 -0
  1142. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/terms.html +23 -0
  1143. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/title.html +25 -0
  1144. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/top.html +32 -0
  1145. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/evaluated_slots.html +157 -0
  1146. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/file_iteration.html +1044 -0
  1147. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/incompatible.html +140 -0
  1148. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/local_iteration.html +156 -0
  1149. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/motivation.html +119 -0
  1150. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/problems.html +135 -0
  1151. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/reentrancy.html +298 -0
  1152. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/techniques.html +350 -0
  1153. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics/variadic_macros.html +262 -0
  1154. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/doc/topics.html +27 -0
  1155. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/add.hpp +51 -0
  1156. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/dec.hpp +289 -0
  1157. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
  1158. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/div.hpp +39 -0
  1159. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/inc.hpp +288 -0
  1160. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mod.hpp +39 -0
  1161. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/mul.hpp +53 -0
  1162. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic/sub.hpp +50 -0
  1163. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/arithmetic.hpp +25 -0
  1164. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/data.hpp +28 -0
  1165. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/detail/get_data.hpp +55 -0
  1166. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/elem.hpp +29 -0
  1167. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/enum.hpp +33 -0
  1168. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/insert.hpp +55 -0
  1169. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_back.hpp +37 -0
  1170. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/pop_front.hpp +38 -0
  1171. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_back.hpp +35 -0
  1172. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/push_front.hpp +35 -0
  1173. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/remove.hpp +54 -0
  1174. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/replace.hpp +49 -0
  1175. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/reverse.hpp +29 -0
  1176. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/size.hpp +28 -0
  1177. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_list.hpp +47 -0
  1178. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_seq.hpp +46 -0
  1179. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array/to_tuple.hpp +33 -0
  1180. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/array.hpp +32 -0
  1181. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/assert_msg.hpp +17 -0
  1182. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/cat.hpp +35 -0
  1183. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma.hpp +17 -0
  1184. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comma_if.hpp +17 -0
  1185. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/equal.hpp +34 -0
  1186. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater.hpp +38 -0
  1187. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/greater_equal.hpp +38 -0
  1188. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less.hpp +46 -0
  1189. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/less_equal.hpp +39 -0
  1190. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison/not_equal.hpp +814 -0
  1191. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/comparison.hpp +24 -0
  1192. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/config.hpp +106 -0
  1193. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/config/limits.hpp +30 -0
  1194. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/deduce_d.hpp +22 -0
  1195. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/dmc/while.hpp +536 -0
  1196. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/edg/while.hpp +534 -0
  1197. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/msvc/while.hpp +277 -0
  1198. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/detail/while.hpp +536 -0
  1199. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_if.hpp +30 -0
  1200. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/expr_iif.hpp +31 -0
  1201. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/if.hpp +30 -0
  1202. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/iif.hpp +34 -0
  1203. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control/while.hpp +312 -0
  1204. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/control.hpp +22 -0
  1205. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/assert.hpp +44 -0
  1206. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/error.hpp +33 -0
  1207. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug/line.hpp +35 -0
  1208. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/debug.hpp +18 -0
  1209. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/dec.hpp +17 -0
  1210. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/auto_rec.hpp +293 -0
  1211. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/check.hpp +48 -0
  1212. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/dmc/auto_rec.hpp +286 -0
  1213. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_binary.hpp +30 -0
  1214. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_nullary.hpp +30 -0
  1215. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/is_unary.hpp +30 -0
  1216. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/null.hpp +17 -0
  1217. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/detail/split.hpp +35 -0
  1218. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/empty.hpp +17 -0
  1219. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum.hpp +17 -0
  1220. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params.hpp +17 -0
  1221. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_a_default.hpp +17 -0
  1222. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_params_with_defaults.hpp +17 -0
  1223. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted.hpp +17 -0
  1224. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/enum_shifted_params.hpp +17 -0
  1225. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expand.hpp +17 -0
  1226. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/expr_if.hpp +17 -0
  1227. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/apply.hpp +34 -0
  1228. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/detail/is_empty.hpp +55 -0
  1229. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/empty.hpp +23 -0
  1230. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/expand.hpp +28 -0
  1231. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/identity.hpp +27 -0
  1232. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/intercept.hpp +277 -0
  1233. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_1.hpp +23 -0
  1234. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty.hpp +56 -0
  1235. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_or_1.hpp +31 -0
  1236. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/is_empty_variadic.hpp +57 -0
  1237. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities/overload.hpp +25 -0
  1238. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/facilities.hpp +23 -0
  1239. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/for.hpp +17 -0
  1240. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/identity.hpp +17 -0
  1241. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/if.hpp +17 -0
  1242. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/inc.hpp +17 -0
  1243. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iterate.hpp +17 -0
  1244. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -0
  1245. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower2.hpp +99 -0
  1246. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower3.hpp +99 -0
  1247. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower4.hpp +99 -0
  1248. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/lower5.hpp +99 -0
  1249. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -0
  1250. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper2.hpp +99 -0
  1251. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper3.hpp +99 -0
  1252. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper4.hpp +99 -0
  1253. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/bounds/upper5.hpp +99 -0
  1254. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/finish.hpp +99 -0
  1255. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -0
  1256. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward2.hpp +1338 -0
  1257. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward3.hpp +1338 -0
  1258. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward4.hpp +1338 -0
  1259. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/forward5.hpp +1338 -0
  1260. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp +1296 -0
  1261. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse2.hpp +1296 -0
  1262. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse3.hpp +1296 -0
  1263. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse4.hpp +1296 -0
  1264. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/iter/reverse5.hpp +1296 -0
  1265. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/local.hpp +812 -0
  1266. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/rlocal.hpp +782 -0
  1267. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/self.hpp +21 -0
  1268. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/detail/start.hpp +99 -0
  1269. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/iterate.hpp +82 -0
  1270. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/local.hpp +26 -0
  1271. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration/self.hpp +19 -0
  1272. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/iteration.hpp +19 -0
  1273. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/library.hpp +37 -0
  1274. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/limits.hpp +17 -0
  1275. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/adt.hpp +73 -0
  1276. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/append.hpp +40 -0
  1277. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/at.hpp +39 -0
  1278. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/cat.hpp +42 -0
  1279. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +279 -0
  1280. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_left.hpp +536 -0
  1281. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/edg/fold_right.hpp +794 -0
  1282. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_left.hpp +279 -0
  1283. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/detail/fold_right.hpp +277 -0
  1284. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/enum.hpp +41 -0
  1285. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/filter.hpp +54 -0
  1286. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/first_n.hpp +58 -0
  1287. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_left.hpp +303 -0
  1288. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/fold_right.hpp +40 -0
  1289. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each.hpp +49 -0
  1290. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_i.hpp +65 -0
  1291. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/for_each_product.hpp +141 -0
  1292. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/rest_n.hpp +55 -0
  1293. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/reverse.hpp +40 -0
  1294. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/size.hpp +58 -0
  1295. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_array.hpp +155 -0
  1296. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_seq.hpp +32 -0
  1297. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/to_tuple.hpp +61 -0
  1298. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list/transform.hpp +49 -0
  1299. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/list.hpp +37 -0
  1300. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/and.hpp +30 -0
  1301. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitand.hpp +38 -0
  1302. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitnor.hpp +38 -0
  1303. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitor.hpp +38 -0
  1304. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bitxor.hpp +38 -0
  1305. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/bool.hpp +288 -0
  1306. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/compl.hpp +36 -0
  1307. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/nor.hpp +30 -0
  1308. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/not.hpp +30 -0
  1309. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/or.hpp +30 -0
  1310. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical/xor.hpp +30 -0
  1311. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/logical.hpp +29 -0
  1312. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/max.hpp +17 -0
  1313. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/min.hpp +17 -0
  1314. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma.hpp +21 -0
  1315. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/comma_if.hpp +31 -0
  1316. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +48 -0
  1317. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/is_begin_parens.hpp +51 -0
  1318. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren.hpp +23 -0
  1319. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/paren_if.hpp +38 -0
  1320. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation/remove_parens.hpp +39 -0
  1321. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/punctuation.hpp +22 -0
  1322. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat.hpp +17 -0
  1323. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_2nd.hpp +17 -0
  1324. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_3rd.hpp +17 -0
  1325. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to.hpp +17 -0
  1326. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_2nd.hpp +17 -0
  1327. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repeat_from_to_3rd.hpp +17 -0
  1328. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_r.hpp +22 -0
  1329. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/deduce_z.hpp +22 -0
  1330. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/dmc/for.hpp +536 -0
  1331. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/edg/for.hpp +534 -0
  1332. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/for.hpp +536 -0
  1333. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/detail/msvc/for.hpp +277 -0
  1334. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum.hpp +66 -0
  1335. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_binary_params.hpp +54 -0
  1336. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params.hpp +41 -0
  1337. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_a_default.hpp +25 -0
  1338. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_params_with_defaults.hpp +24 -0
  1339. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted.hpp +68 -0
  1340. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +51 -0
  1341. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
  1342. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing.hpp +63 -0
  1343. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +53 -0
  1344. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
  1345. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/for.hpp +324 -0
  1346. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat.hpp +825 -0
  1347. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition/repeat_from_to.hpp +87 -0
  1348. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/repetition.hpp +32 -0
  1349. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/max.hpp +39 -0
  1350. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection/min.hpp +39 -0
  1351. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/selection.hpp +18 -0
  1352. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/cat.hpp +49 -0
  1353. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/binary_transform.hpp +47 -0
  1354. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/is_empty.hpp +49 -0
  1355. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/split.hpp +284 -0
  1356. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
  1357. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/elem.hpp +304 -0
  1358. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/enum.hpp +288 -0
  1359. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/filter.hpp +54 -0
  1360. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/first_n.hpp +30 -0
  1361. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_left.hpp +1070 -0
  1362. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/fold_right.hpp +288 -0
  1363. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each.hpp +107 -0
  1364. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_i.hpp +109 -0
  1365. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/for_each_product.hpp +126 -0
  1366. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/insert.hpp +28 -0
  1367. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_back.hpp +29 -0
  1368. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/pop_front.hpp +27 -0
  1369. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_back.hpp +19 -0
  1370. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/push_front.hpp +19 -0
  1371. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/remove.hpp +29 -0
  1372. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/replace.hpp +45 -0
  1373. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/rest_n.hpp +46 -0
  1374. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/reverse.hpp +39 -0
  1375. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/seq.hpp +44 -0
  1376. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/size.hpp +548 -0
  1377. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/subseq.hpp +28 -0
  1378. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_array.hpp +28 -0
  1379. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_list.hpp +41 -0
  1380. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/to_tuple.hpp +27 -0
  1381. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/transform.hpp +48 -0
  1382. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq/variadic_seq_to_seq.hpp +28 -0
  1383. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/seq.hpp +44 -0
  1384. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/counter.hpp +25 -0
  1385. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/counter.hpp +269 -0
  1386. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/def.hpp +49 -0
  1387. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/shared.hpp +247 -0
  1388. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot1.hpp +267 -0
  1389. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot2.hpp +267 -0
  1390. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot3.hpp +267 -0
  1391. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot4.hpp +267 -0
  1392. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/detail/slot5.hpp +267 -0
  1393. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot/slot.hpp +32 -0
  1394. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/slot.hpp +17 -0
  1395. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/stringize.hpp +33 -0
  1396. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/detail/is_single_return.hpp +28 -0
  1397. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/eat.hpp +115 -0
  1398. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/elem.hpp +201 -0
  1399. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/enum.hpp +22 -0
  1400. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/insert.hpp +37 -0
  1401. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_back.hpp +64 -0
  1402. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/pop_front.hpp +65 -0
  1403. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_back.hpp +31 -0
  1404. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/push_front.hpp +32 -0
  1405. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/rem.hpp +149 -0
  1406. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/remove.hpp +64 -0
  1407. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/replace.hpp +37 -0
  1408. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/reverse.hpp +117 -0
  1409. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/size.hpp +28 -0
  1410. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_array.hpp +39 -0
  1411. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_list.hpp +118 -0
  1412. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple/to_seq.hpp +119 -0
  1413. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/tuple.hpp +35 -0
  1414. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/detail/is_single_return.hpp +28 -0
  1415. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/elem.hpp +94 -0
  1416. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/size.hpp +30 -0
  1417. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_array.hpp +32 -0
  1418. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_list.hpp +25 -0
  1419. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_seq.hpp +25 -0
  1420. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic/to_tuple.hpp +24 -0
  1421. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/variadic.hpp +23 -0
  1422. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/while.hpp +17 -0
  1423. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor/wstringize.hpp +29 -0
  1424. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/include/boost/preprocessor.hpp +19 -0
  1425. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/index.html +18 -0
  1426. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/meta/libraries.json +15 -0
  1427. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/Jamfile.v2 +252 -0
  1428. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.c +12 -0
  1429. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cpp +12 -0
  1430. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/arithmetic.cxx +82 -0
  1431. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.c +14 -0
  1432. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cpp +14 -0
  1433. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/array.cxx +192 -0
  1434. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.c +13 -0
  1435. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cpp +12 -0
  1436. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/comparison.cxx +45 -0
  1437. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/config_info.cpp +93 -0
  1438. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.c +12 -0
  1439. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cpp +12 -0
  1440. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/control.cxx +40 -0
  1441. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.c +12 -0
  1442. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cpp +12 -0
  1443. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/debug.cxx +21 -0
  1444. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.c +12 -0
  1445. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cpp +12 -0
  1446. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/facilities.cxx +55 -0
  1447. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.c +12 -0
  1448. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cpp +12 -0
  1449. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty.cxx +145 -0
  1450. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.c +12 -0
  1451. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cpp +12 -0
  1452. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure.cxx +25 -0
  1453. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.c +12 -0
  1454. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cpp +12 -0
  1455. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/isempty_variadic_standard_failure2.cxx +25 -0
  1456. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.cpp +33 -0
  1457. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/iteration.h +62 -0
  1458. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.c +14 -0
  1459. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cpp +14 -0
  1460. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/list.cxx +91 -0
  1461. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.c +12 -0
  1462. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cpp +12 -0
  1463. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/logical.cxx +59 -0
  1464. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.c +14 -0
  1465. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cpp +14 -0
  1466. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/punctuation.cxx +54 -0
  1467. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/repetition.cpp +50 -0
  1468. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.c +12 -0
  1469. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cpp +12 -0
  1470. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/selection.cxx +21 -0
  1471. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.c +14 -0
  1472. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cpp +14 -0
  1473. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/seq.cxx +222 -0
  1474. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.c +12 -0
  1475. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cpp +12 -0
  1476. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/slot.cxx +53 -0
  1477. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/test.h +37 -0
  1478. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.c +14 -0
  1479. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cpp +14 -0
  1480. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple.cxx +266 -0
  1481. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/tuple_elem_bug_test.cxx +38 -0
  1482. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.c +12 -0
  1483. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cpp +12 -0
  1484. data/ext/enterprise_script_service/msgpack/external/boost/preprocessor/test/variadic.cxx +56 -0
  1485. data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
  1486. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
  1487. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
  1488. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
  1489. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
  1490. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
  1491. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
  1492. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
  1493. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
  1494. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
  1495. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
  1496. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
  1497. data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
  1498. data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
  1499. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
  1500. data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
  1501. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
  1502. data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
  1503. data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
  1504. data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
  1505. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
  1506. data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
  1507. data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
  1508. data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
  1509. data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
  1510. data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
  1511. data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
  1512. data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
  1513. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
  1514. data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
  1515. data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
  1516. data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
  1517. data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
  1518. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
  1519. data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
  1520. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
  1521. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
  1522. data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
  1523. data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
  1524. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
  1525. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
  1526. data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
  1527. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
  1528. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
  1529. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
  1530. data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
  1531. data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
  1532. data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
  1533. data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
  1534. data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
  1535. data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
  1536. data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
  1537. data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
  1538. data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
  1539. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
  1540. data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
  1541. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
  1542. data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
  1543. data/ext/enterprise_script_service/timer.cpp +8 -28
  1544. data/ext/enterprise_script_service/timer.hpp +3 -2
  1545. data/lib/script_core/version.rb +1 -1
  1546. data/script_core.gemspec +1 -1
  1547. data/spec/dummy/db/schema.rb +3 -3
  1548. data/spec/script_core_spec.rb +13 -0
  1549. data/tests/timer_test.cpp +13 -5
  1550. metadata +1166 -48
  1551. data/.ruby-version +0 -1
  1552. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
  1553. data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
  1554. data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
  1555. data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
  1556. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
  1557. data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
  1558. data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
  1559. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
  1560. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
  1561. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
  1562. data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
  1563. data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
  1564. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
  1565. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
  1566. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
  1567. data/ext/enterprise_script_service/mruby/TODO +0 -8
  1568. data/ext/enterprise_script_service/mruby/benchmark/build_config_boxing.rb +0 -28
  1569. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +0 -26
  1570. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +0 -26
  1571. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +0 -30
  1572. data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +0 -18
  1573. data/ext/enterprise_script_service/mruby/src/crc.c +0 -39
  1574. data/ext/enterprise_script_service/mruby/src/mruby_core.rake +0 -19
  1575. data/ext/enterprise_script_service/mruby/travis_config.rb +0 -54
  1576. data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
@@ -4,88 +4,320 @@
4
4
  ** See Copyright Notice in mruby.h
5
5
  */
6
6
 
7
+ #include <string.h>
7
8
  #include <mruby.h>
8
9
  #include <mruby/array.h>
9
10
  #include <mruby/class.h>
10
11
  #include <mruby/hash.h>
11
12
  #include <mruby/string.h>
12
13
  #include <mruby/variable.h>
14
+ #include <mruby/presym.h>
13
15
 
14
- #ifndef MRB_WITHOUT_FLOAT
15
- /* a function to get hash value of a float number */
16
- mrb_int mrb_float_id(mrb_float f);
16
+ /*
17
+ * === Glossary
18
+ *
19
+ * [EA]
20
+ * Entry Array. Store `Hash' entries in insertion order.
21
+ *
22
+ * [AR]
23
+ * Array Table Implementation. The structure of `Hash` that doesn't have a
24
+ * hash table and linearly searches EA. It is used when `Hash` size <= 16.
25
+ *
26
+ * [IB]
27
+ * Index Buckets. The buckets of hash table, where the bucket value is EA
28
+ * index. The index is represented by variable length bits according to
29
+ * the capacity.
30
+ *
31
+ * [HT]
32
+ * Hash Table Implementation. The structure of `Hash` that has IB and is
33
+ * searched by hash table algorithm. It is used when `Hash` size > 16.
34
+ * Collision resolution strategy is open addressing method.
35
+ *
36
+ * [size]
37
+ * The number of `Hash` entries (value of `Hash#size`).
38
+ *
39
+ * [slot]
40
+ * The generic term for EA or IB elements.
41
+ *
42
+ * [active]
43
+ * The state in which a slot is recognized as a `Hash` entry.
44
+ *
45
+ * [deleted]
46
+ * The state in which a slot is marked as deleted.
47
+ *
48
+ * [used]
49
+ * The state in which a slot is active or deleted.
50
+ *
51
+ * [empty]
52
+ * The state in which a slot is not used. Capacity is equal to the sum of
53
+ * the number of used slots and the number of empty slots.
54
+ */
55
+
56
+ #define EA_N_RESERVED_INDICES 2 /* empty and deleted */
57
+ #define EA_INCREASE_RATIO 6 / 5 + 6
58
+ #define EA_MAX_INCREASE UINT16_MAX
59
+ #define EA_MAX_CAPA U32(lesser(IB_MAX_CAPA - EA_N_RESERVED_INDICES, MRB_INT_MAX))
60
+ #define IB_MAX_CAPA (U32(1) << IB_MAX_BIT)
61
+ #define IB_TYPE_BIT 32
62
+ #define IB_INIT_BIT ( \
63
+ ib_upper_bound_for(32) <= AR_MAX_SIZE ? 6 : \
64
+ ib_upper_bound_for(16) <= AR_MAX_SIZE ? 5 : \
65
+ 4 \
66
+ )
67
+ #define IB_MAX_BIT (IB_TYPE_BIT - 1)
68
+ #define AR_DEFAULT_CAPA 4
69
+ #define AR_MAX_SIZE 16
70
+ #define H_MAX_SIZE EA_MAX_CAPA
71
+
72
+ mrb_static_assert1(offsetof(struct RHash, iv) == offsetof(struct RObject, iv));
73
+ mrb_static_assert1(AR_MAX_SIZE < (1 << MRB_HASH_AR_EA_CAPA_BIT));
74
+
75
+ typedef struct hash_entry {
76
+ mrb_value key;
77
+ mrb_value val;
78
+ } hash_entry;
79
+
80
+ typedef struct hash_table {
81
+ hash_entry *ea;
82
+ #ifdef MRB_32BIT
83
+ uint32_t ea_capa;
84
+ uint32_t ea_n_used;
85
+ #endif
86
+ uint32_t ib[];
87
+ } hash_table;
88
+
89
+ typedef struct index_buckets_iter {
90
+ struct RHash *h;
91
+ uint32_t bit;
92
+ uint32_t mask;
93
+ uint32_t pos;
94
+ uint32_t ary_index;
95
+ uint32_t ea_index;
96
+ uint32_t shift1;
97
+ uint32_t shift2;
98
+ uint32_t step;
99
+ } index_buckets_iter;
100
+
101
+ /*
102
+ * `c_` :: receiver class (category)
103
+ * `n_` :: attribute name
104
+ * `t_` :: attribute type
105
+ * `p_` :: struct member path
106
+ * `k_` :: macro key
107
+ */
108
+ #define DEFINE_GETTER(c_, n_, t_, p_) \
109
+ MRB_INLINE t_ c_##_##n_(const struct RHash *h) {return h->p_;}
110
+ #define DEFINE_SETTER(c_, n_, t_, p_) \
111
+ MRB_INLINE void c_##_set_##n_(struct RHash *h, t_ v) {h->p_ = v;}
112
+ #define DEFINE_ACCESSOR(c_, n_, t_, p_) \
113
+ DEFINE_GETTER(c_, n_, t_, p_) \
114
+ DEFINE_SETTER(c_, n_, t_, p_)
115
+ #define DEFINE_FLAG_GETTER(c_, n_, t_, k_) \
116
+ MRB_INLINE t_ c_##_##n_(const struct RHash *h) { \
117
+ return (t_)((h->flags & MRB_HASH_##k_##_MASK) >> MRB_HASH_##k_##_SHIFT); \
118
+ }
119
+ #define DEFINE_FLAG_SETTER(c_, n_, t_, k_) \
120
+ MRB_INLINE void c_##_set_##n_(struct RHash *h, t_ v) { \
121
+ h->flags &= ~MRB_HASH_##k_##_MASK; \
122
+ h->flags |= v << MRB_HASH_##k_##_SHIFT; \
123
+ }
124
+ #define DEFINE_FLAG_ACCESSOR(c_, n_, t_, k_) \
125
+ DEFINE_FLAG_GETTER(c_, n_, t_, k_) \
126
+ DEFINE_FLAG_SETTER(c_, n_, t_, k_)
127
+ #define DEFINE_INCREMENTER(c_, n_) \
128
+ MRB_INLINE void c_##_inc_##n_(struct RHash *h) { \
129
+ c_##_set_##n_(h, c_##_##n_(h) + 1); \
130
+ }
131
+ #define DEFINE_DECREMENTER(c_, n_) \
132
+ MRB_INLINE void c_##_dec_##n_(struct RHash *h) { \
133
+ c_##_set_##n_(h, c_##_##n_(h) - 1); \
134
+ }
135
+ #define DEFINE_SWITCHER(n_, k_) \
136
+ MRB_INLINE void h_##n_##_on(struct RHash *h) { \
137
+ h->flags |= MRB_HASH_##k_; \
138
+ } \
139
+ MRB_INLINE void h_##n_##_off(struct RHash *h) { \
140
+ h->flags &= ~MRB_HASH_##k_; \
141
+ } \
142
+ MRB_INLINE mrb_bool h_##n_##_p(const struct RHash *h) { \
143
+ return (h->flags & MRB_HASH_##k_) == MRB_HASH_##k_; \
144
+ }
145
+
146
+ #ifdef MRB_64BIT
147
+ DEFINE_ACCESSOR(ar, ea_capa, uint32_t, ea_capa)
148
+ DEFINE_ACCESSOR(ar, ea_n_used, uint32_t, ea_n_used)
149
+ DEFINE_ACCESSOR(ht, ea_capa, uint32_t, ea_capa)
150
+ DEFINE_ACCESSOR(ht, ea_n_used, uint32_t, ea_n_used)
151
+ #else
152
+ DEFINE_FLAG_ACCESSOR(ar, ea_capa, uint32_t, AR_EA_CAPA)
153
+ DEFINE_FLAG_ACCESSOR(ar, ea_n_used, uint32_t, AR_EA_N_USED)
154
+ DEFINE_ACCESSOR(ht, ea_capa, uint32_t, ht->ea_capa)
155
+ DEFINE_ACCESSOR(ht, ea_n_used, uint32_t, ht->ea_n_used)
17
156
  #endif
157
+ DEFINE_FLAG_ACCESSOR(ib, bit, uint32_t, IB_BIT)
158
+ DEFINE_ACCESSOR(ar, size, uint32_t, size)
159
+ DEFINE_ACCESSOR(ar, ea, hash_entry*, ea)
160
+ DEFINE_DECREMENTER(ar, size)
161
+ DEFINE_ACCESSOR(ht, size, uint32_t, size)
162
+ DEFINE_ACCESSOR(ht, ea, hash_entry*, ht->ea)
163
+ DEFINE_GETTER(ht, ib, uint32_t*, ht->ib)
164
+ DEFINE_INCREMENTER(ht, size)
165
+ DEFINE_DECREMENTER(ht, size)
166
+ DEFINE_GETTER(h, size, uint32_t, size)
167
+ DEFINE_ACCESSOR(h, ht, hash_table*, ht)
168
+ DEFINE_SWITCHER(ht, HT)
169
+
170
+ #define ea_each_used(ea, n_used, entry_var, code) do { \
171
+ hash_entry *entry_var = ea, *ea_end__ = entry_var + (n_used); \
172
+ for (; entry_var < ea_end__; ++entry_var) { \
173
+ code; \
174
+ } \
175
+ } while (0)
176
+
177
+ #define ea_each(ea, size, entry_var, code) do { \
178
+ hash_entry *entry_var = ea; \
179
+ uint32_t size__ = size; \
180
+ for (; 0 < size__; ++entry_var) { \
181
+ if (entry_deleted_p(entry_var)) continue; \
182
+ --size__; \
183
+ code; \
184
+ } \
185
+ } while (0)
186
+
187
+ #define ib_cycle_by_key(mrb, h, key, it_var, code) do { \
188
+ index_buckets_iter it_var[1]; \
189
+ ib_it_init(mrb, it_var, h, key); \
190
+ for (;;) { \
191
+ ib_it_next(it_var); \
192
+ code; \
193
+ } \
194
+ } while (0)
195
+
196
+ #define ib_find_by_key(mrb, h_, key_, it_var, code) do { \
197
+ mrb_value ib_fbk_key__ = key_; \
198
+ ib_cycle_by_key(mrb, h_, ib_fbk_key__, it_var, { \
199
+ if (ib_it_empty_p(it_var)) break; \
200
+ if (ib_it_deleted_p(it_var)) continue; \
201
+ if (obj_eql(mrb, ib_fbk_key__, ib_it_entry(it_var)->key, it_var->h)) { \
202
+ code; \
203
+ break; \
204
+ } \
205
+ }); \
206
+ } while (0)
207
+
208
+ #define h_each(h, entry_var, code) do { \
209
+ struct RHash *h__ = h; \
210
+ hash_entry *h_e_ea__; \
211
+ uint32_t h_e_size__; \
212
+ h_ar_p(h) ? (h_e_ea__ = ar_ea(h__), h_e_size__ = ar_size(h__)) : \
213
+ (h_e_ea__ = ht_ea(h__), h_e_size__ = ht_size(h__)); \
214
+ ea_each(h_e_ea__, h_e_size__, entry_var, code); \
215
+ } while (0)
18
216
 
19
- #ifndef MRB_HT_INIT_SIZE
20
- #define MRB_HT_INIT_SIZE 4
217
+ /*
218
+ * `h_check_modified` raises an exception when a dangerous modification is
219
+ * made to `h` by executing `code`.
220
+ *
221
+ * This macro is not called if `h->ht` (`h->ea`) is `NULL` (`Hash` size is
222
+ * zero). And because the `hash_entry` is rather large, `h->ht->ea` and
223
+ * `h->ht->ea_capa` are able to be safely accessed even in AR. This nature
224
+ * is used to eliminate branch of AR or HT.
225
+ *
226
+ * `HT_ASSERT_SAFE_READ` checks if members can be accessed according to its
227
+ * assumptions.
228
+ */
229
+ #define HT_ASSERT_SAFE_READ(attr_name) \
230
+ mrb_static_assert1( \
231
+ offsetof(hash_table, attr_name) + sizeof(((hash_table*)0)->attr_name) <= \
232
+ sizeof(hash_entry))
233
+ HT_ASSERT_SAFE_READ(ea);
234
+ #ifdef MRB_32BIT
235
+ HT_ASSERT_SAFE_READ(ea_capa);
21
236
  #endif
22
- #define HT_SEG_INCREASE_RATIO 6 / 5
237
+ #undef HT_ASSERT_SAFE_READ
238
+ #define h_check_modified(mrb, h, code) do { \
239
+ struct RHash *h__ = h; \
240
+ uint32_t mask = MRB_HASH_HT|MRB_HASH_IB_BIT_MASK|MRB_HASH_AR_EA_CAPA_MASK; \
241
+ uint32_t flags = h__->flags & mask; \
242
+ void* tbl__ = (mrb_assert(h__->ht), h__->ht); \
243
+ uint32_t ht_ea_capa__ = ht_ea_capa(h__); \
244
+ hash_entry *ht_ea__ = ht_ea(h__); \
245
+ code; \
246
+ if (flags != (h__->flags & mask) || \
247
+ tbl__ != h__->ht || \
248
+ ht_ea_capa__ != ht_ea_capa(h__) || \
249
+ ht_ea__ != ht_ea(h__)) { \
250
+ mrb_raise(mrb, E_RUNTIME_ERROR, "hash modified"); \
251
+ } \
252
+ } while (0)
23
253
 
24
- struct segkv {
25
- mrb_value key;
26
- mrb_value val;
27
- };
28
-
29
- typedef struct segment {
30
- uint16_t size;
31
- struct segment *next;
32
- struct segkv e[];
33
- } segment;
34
-
35
- typedef struct segindex {
36
- size_t size;
37
- size_t capa;
38
- struct segkv *table[];
39
- } segindex;
40
-
41
- /* hash table structure */
42
- typedef struct htable {
43
- segment *rootseg;
44
- segment *lastseg;
45
- mrb_int size;
46
- uint16_t last_len;
47
- segindex *index;
48
- } htable;
49
-
50
- static /* inline */ size_t
51
- ht_hash_func(mrb_state *mrb, htable *t, mrb_value key)
254
+ #define U32(v) ((uint32_t)(v))
255
+ #define h_ar_p(h) (!h_ht_p(h))
256
+ #define h_ar_on(h) h_ht_off(h)
257
+ #define lesser(a, b) ((a) < (b) ? (a) : (b))
258
+ #define RHASH_IFNONE(hash) mrb_iv_get(mrb, (hash), MRB_SYM(ifnone))
259
+ #define RHASH_PROCDEFAULT(hash) RHASH_IFNONE(hash)
260
+
261
+ static uint32_t ib_upper_bound_for(uint32_t capa);
262
+ static uint32_t ib_bit_to_capa(uint32_t bit);
263
+ static void ht_init(
264
+ mrb_state *mrb, struct RHash *h, uint32_t size,
265
+ hash_entry *ea, uint32_t ea_capa, hash_table *ht, uint32_t ib_bit);
266
+ static void ht_set_without_ib_adjustment(
267
+ mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value val);
268
+
269
+ static uint32_t
270
+ next_power2(uint32_t v)
52
271
  {
53
- enum mrb_vtype tt = mrb_type(key);
54
- mrb_value hv;
55
- size_t h;
56
- segindex *index = t->index;
57
- size_t capa = index ? index->capa : 0;
272
+ mrb_assert(v != 0);
273
+ #ifdef __GNUC__
274
+ return U32(1) << ((sizeof(unsigned) * CHAR_BIT) - __builtin_clz(v));
275
+ #else
276
+ v |= v >> 1;
277
+ v |= v >> 2;
278
+ v |= v >> 4;
279
+ v |= v >> 8;
280
+ v |= v >> 16;
281
+ ++v;
282
+ return v;
283
+ #endif
284
+ }
58
285
 
286
+ static uint32_t
287
+ obj_hash_code(mrb_state *mrb, mrb_value key, struct RHash *h)
288
+ {
289
+ enum mrb_vtype tt = mrb_type(key);
290
+ uint32_t hash_code;
291
+ mrb_value hash_code_obj;
59
292
  switch (tt) {
60
293
  case MRB_TT_STRING:
61
- h = mrb_str_hash(mrb, key);
294
+ hash_code = mrb_str_hash(mrb, key);
62
295
  break;
63
-
64
296
  case MRB_TT_TRUE:
65
297
  case MRB_TT_FALSE:
66
298
  case MRB_TT_SYMBOL:
67
- case MRB_TT_FIXNUM:
68
- #ifndef MRB_WITHOUT_FLOAT
299
+ case MRB_TT_INTEGER:
300
+ #ifndef MRB_NO_FLOAT
69
301
  case MRB_TT_FLOAT:
70
302
  #endif
71
- h = (size_t)mrb_obj_id(key);
303
+ hash_code = U32(mrb_obj_id(key));
72
304
  break;
73
-
74
305
  default:
75
- hv = mrb_funcall(mrb, key, "hash", 0);
76
- h = (size_t)t ^ (size_t)mrb_fixnum(hv);
306
+ h_check_modified(mrb, h, {
307
+ hash_code_obj = mrb_funcall_argv(mrb, key, MRB_SYM(hash), 0, NULL);
308
+ });
309
+
310
+ hash_code = U32(tt) ^ U32(mrb_integer(hash_code_obj));
77
311
  break;
78
312
  }
79
- if (index && (index != t->index || capa != index->capa)) {
80
- mrb_raise(mrb, E_RUNTIME_ERROR, "hash modified");
81
- }
82
- return ((h)^((h)<<2)^((h)>>2));
313
+ return hash_code ^ (hash_code << 2) ^ (hash_code >> 2);
83
314
  }
84
315
 
85
- static inline mrb_bool
86
- ht_hash_equal(mrb_state *mrb, htable *t, mrb_value a, mrb_value b)
316
+ static mrb_bool
317
+ obj_eql(mrb_state *mrb, mrb_value a, mrb_value b, struct RHash *h)
87
318
  {
88
319
  enum mrb_vtype tt = mrb_type(a);
320
+ mrb_bool eql;
89
321
 
90
322
  switch (tt) {
91
323
  case MRB_TT_STRING:
@@ -95,611 +327,848 @@ ht_hash_equal(mrb_state *mrb, htable *t, mrb_value a, mrb_value b)
95
327
  if (!mrb_symbol_p(b)) return FALSE;
96
328
  return mrb_symbol(a) == mrb_symbol(b);
97
329
 
98
- case MRB_TT_FIXNUM:
99
- switch (mrb_type(b)) {
100
- case MRB_TT_FIXNUM:
101
- return mrb_fixnum(a) == mrb_fixnum(b);
102
- #ifndef MRB_WITHOUT_FLOAT
103
- case MRB_TT_FLOAT:
104
- return (mrb_float)mrb_fixnum(a) == mrb_float(b);
105
- #endif
106
- default:
107
- return FALSE;
108
- }
330
+ case MRB_TT_INTEGER:
331
+ if (!mrb_integer_p(b)) return FALSE;
332
+ return mrb_integer(a) == mrb_integer(b);
109
333
 
110
- #ifndef MRB_WITHOUT_FLOAT
334
+ #ifndef MRB_NO_FLOAT
111
335
  case MRB_TT_FLOAT:
112
- switch (mrb_type(b)) {
113
- case MRB_TT_FIXNUM:
114
- return mrb_float(a) == (mrb_float)mrb_fixnum(b);
115
- case MRB_TT_FLOAT:
116
- return mrb_float(a) == mrb_float(b);
117
- default:
118
- return FALSE;
119
- }
336
+ if (!mrb_float_p(b)) return FALSE;
337
+ return mrb_float(a) == mrb_float(b);
120
338
  #endif
121
339
 
122
340
  default:
123
- {
124
- segindex *index = t->index;
125
- size_t capa = index ? index->capa : 0;
126
- mrb_bool eql = mrb_eql(mrb, a, b);
127
- if (index && (index != t->index || capa != index->capa)) {
128
- mrb_raise(mrb, E_RUNTIME_ERROR, "hash modified");
129
- }
130
- return eql;
131
- }
132
- }
341
+ h_check_modified(mrb, h, {eql = mrb_eql(mrb, a, b);});
342
+ return eql;
343
+ }
133
344
  }
134
345
 
135
- /* Creates the hash table. */
136
- static htable*
137
- ht_new(mrb_state *mrb)
346
+ static mrb_bool
347
+ entry_deleted_p(const hash_entry* entry)
138
348
  {
139
- htable *t;
349
+ return mrb_undef_p(entry->key);
350
+ }
140
351
 
141
- t = (htable*)mrb_malloc(mrb, sizeof(htable));
142
- t->size = 0;
143
- t->rootseg = NULL;
144
- t->lastseg = NULL;
145
- t->last_len = 0;
146
- t->index = NULL;
352
+ static void
353
+ entry_delete(hash_entry* entry)
354
+ {
355
+ entry->key = mrb_undef_value();
356
+ }
147
357
 
148
- return t;
358
+ static uint32_t
359
+ ea_next_capa_for(uint32_t size, uint32_t max_capa)
360
+ {
361
+ if (size < AR_DEFAULT_CAPA) {
362
+ return AR_DEFAULT_CAPA;
363
+ }
364
+ else {
365
+ /*
366
+ * For 32-bit CPU, the theoretical value of maximum EA capacity is
367
+ * `UINT32_MAX / sizeof (hash_entry)`. At this time, if
368
+ * `EA_INCREASE_RATIO` is the current value, 32-bit range will not be
369
+ * exceeded during the calculation of `capa`, so `size_t` is used.
370
+ */
371
+ size_t capa = (size_t)size * EA_INCREASE_RATIO, inc = capa - size;
372
+ if (EA_MAX_INCREASE < inc) capa = size + EA_MAX_INCREASE;
373
+ return capa <= max_capa ? U32(capa) : max_capa;
374
+ }
149
375
  }
150
376
 
151
- #define power2(v) do { \
152
- v--;\
153
- v |= v >> 1;\
154
- v |= v >> 2;\
155
- v |= v >> 4;\
156
- v |= v >> 8;\
157
- v |= v >> 16;\
158
- v++;\
159
- } while (0)
377
+ static hash_entry*
378
+ ea_resize(mrb_state *mrb, hash_entry *ea, uint32_t capa)
379
+ {
380
+ return (hash_entry*)mrb_realloc(mrb, ea, sizeof(hash_entry) * capa);
381
+ }
160
382
 
161
- #ifndef UPPER_BOUND
162
- #define UPPER_BOUND(x) ((x)>>2|(x)>>1)
163
- #endif
383
+ static void
384
+ ea_compress(hash_entry *ea, uint32_t n_used)
385
+ {
386
+ hash_entry *w_entry = ea;
387
+ ea_each_used(ea, n_used, r_entry, {
388
+ if (entry_deleted_p(r_entry)) continue;
389
+ if (r_entry != w_entry) *w_entry = *r_entry;
390
+ ++w_entry;
391
+ });
392
+ }
393
+
394
+ /*
395
+ * Increase or decrease capacity of `ea` to a standard size that can
396
+ * accommodate `*capap + 1` entries (but, not exceed `max_capa`). Set the
397
+ * changed capacity to `*capap` and return a pointer to `mrb_realloc`ed EA.
398
+ */
399
+ static hash_entry*
400
+ ea_adjust(mrb_state *mrb, hash_entry *ea, uint32_t *capap, uint32_t max_capa)
401
+ {
402
+ *capap = ea_next_capa_for(*capap, max_capa);
403
+ return ea_resize(mrb, ea, *capap);
404
+ }
164
405
 
165
- #define HT_MASK(index) ((index->capa)-1)
406
+ static hash_entry*
407
+ ea_dup(mrb_state *mrb, const hash_entry *ea, uint32_t capa)
408
+ {
409
+ size_t byte_size = sizeof(hash_entry) * capa;
410
+ hash_entry *new_ea = (hash_entry*)mrb_malloc(mrb, byte_size);
411
+ return (hash_entry*)memcpy(new_ea, ea, byte_size);
412
+ }
413
+
414
+ static hash_entry*
415
+ ea_get_by_key(mrb_state *mrb, hash_entry *ea, uint32_t size, mrb_value key,
416
+ struct RHash *h)
417
+ {
418
+ ea_each(ea, size, entry, {
419
+ if (obj_eql(mrb, key, entry->key, h)) return entry;
420
+ });
421
+ return NULL;
422
+ }
423
+
424
+ static hash_entry*
425
+ ea_get(hash_entry *ea, uint32_t index)
426
+ {
427
+ return &ea[index];
428
+ }
166
429
 
167
- /* Build index for the hash table */
168
430
  static void
169
- ht_index(mrb_state *mrb, htable *t)
431
+ ea_set(hash_entry *ea, uint32_t index, mrb_value key, mrb_value val)
170
432
  {
171
- size_t size = (size_t)t->size;
172
- size_t mask;
173
- segindex *index = t->index;
174
- segment *seg;
175
- size_t i;
433
+ ea[index].key = key;
434
+ ea[index].val = val;
435
+ }
176
436
 
177
- /* allocate index table */
178
- if (index && index->size >= UPPER_BOUND(index->capa)) {
179
- size = index->capa+1;
180
- }
181
- power2(size);
182
- if (!index || index->capa < size) {
183
- index = (segindex*)mrb_realloc_simple(mrb, index, sizeof(segindex)+sizeof(struct segkv*)*size);
184
- if (index == NULL) {
185
- mrb_free(mrb, t->index);
186
- t->index = NULL;
187
- return;
188
- }
189
- t->index = index;
190
- }
191
- index->size = t->size;
192
- index->capa = size;
193
- for (i=0; i<size; i++) {
194
- index->table[i] = NULL;
195
- }
437
+ static void
438
+ ar_init(struct RHash *h, uint32_t size,
439
+ hash_entry *ea, uint32_t ea_capa, uint32_t ea_n_used)
440
+ {
441
+ h_ar_on(h);
442
+ ar_set_size(h, size);
443
+ ar_set_ea(h, ea);
444
+ ar_set_ea_capa(h, ea_capa);
445
+ ar_set_ea_n_used(h, ea_n_used);
446
+ }
196
447
 
197
- /* rebuld index */
198
- mask = HT_MASK(index);
199
- seg = t->rootseg;
200
- while (seg) {
201
- for (i=0; i<seg->size; i++) {
202
- mrb_value key;
203
- size_t k, step = 0;
448
+ static void
449
+ ar_free(mrb_state *mrb, struct RHash *h)
450
+ {
451
+ mrb_free(mrb, ar_ea(h));
452
+ }
204
453
 
205
- if (!seg->next && i >= (size_t)t->last_len) {
206
- return;
207
- }
208
- key = seg->e[i].key;
209
- if (mrb_undef_p(key)) continue;
210
- k = ht_hash_func(mrb, t, key) & mask;
211
- while (index->table[k]) {
212
- k = (k+(++step)) & mask;
213
- }
214
- index->table[k] = &seg->e[i];
215
- }
216
- seg = seg->next;
217
- }
454
+ static void
455
+ ar_adjust_ea(mrb_state *mrb, struct RHash *h, uint32_t size, uint32_t max_ea_capa)
456
+ {
457
+ uint32_t ea_capa = size;
458
+ hash_entry *ea = ea_adjust(mrb, ar_ea(h), &ea_capa, max_ea_capa);
459
+ ar_set_ea(h, ea);
460
+ ar_set_ea_capa(h, ea_capa);
218
461
  }
219
462
 
220
- /* Compacts the hash table removing deleted entries. */
221
463
  static void
222
- ht_compact(mrb_state *mrb, htable *t)
223
- {
224
- segment *seg;
225
- mrb_int i;
226
- segment *seg2 = NULL;
227
- mrb_int i2;
228
- mrb_int size = 0;
229
-
230
- if (t == NULL) return;
231
- seg = t->rootseg;
232
- if (t->index && (size_t)t->size == t->index->size) {
233
- ht_index(mrb, t);
234
- return;
235
- }
236
- while (seg) {
237
- for (i=0; i<seg->size; i++) {
238
- mrb_value k = seg->e[i].key;
464
+ ar_compress(mrb_state *mrb, struct RHash *h)
465
+ {
466
+ uint32_t size = ar_size(h);
467
+ ea_compress(ar_ea(h), ar_ea_n_used(h));
468
+ ar_set_ea_n_used(h, size);
469
+ ar_adjust_ea(mrb, h, size, lesser(ar_ea_capa(h), AR_MAX_SIZE));
470
+ }
239
471
 
240
- if (!seg->next && i >= t->last_len) {
241
- goto exit;
242
- }
243
- if (mrb_undef_p(k)) { /* found deleted key */
244
- if (seg2 == NULL) {
245
- seg2 = seg;
246
- i2 = i;
472
+ static mrb_bool
473
+ ar_get(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value *valp)
474
+ {
475
+ ea_each(ar_ea(h), ar_size(h), entry, {
476
+ if (!obj_eql(mrb, key, entry->key, h)) continue;
477
+ *valp = entry->val;
478
+ return TRUE;
479
+ });
480
+ return FALSE;
481
+ }
482
+
483
+ static void
484
+ ar_set(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value val)
485
+ {
486
+ uint32_t size = ar_size(h);
487
+ hash_entry *entry;
488
+ if ((entry = ea_get_by_key(mrb, ar_ea(h), size, key, h))) {
489
+ entry->val = val;
490
+ }
491
+ else {
492
+ uint32_t ea_capa = ar_ea_capa(h), ea_n_used = ar_ea_n_used(h);
493
+ if (ea_capa == ea_n_used) {
494
+ if (size == ea_n_used) {
495
+ if (size == AR_MAX_SIZE) {
496
+ hash_entry *ea = ea_adjust(mrb, ar_ea(h), &ea_capa, EA_MAX_CAPA);
497
+ ea_set(ea, ea_n_used, key, val);
498
+ ht_init(mrb, h, ++size, ea, ea_capa, NULL, IB_INIT_BIT);
499
+ return;
500
+ }
501
+ else {
502
+ ar_adjust_ea(mrb, h, size, AR_MAX_SIZE);
247
503
  }
248
504
  }
249
505
  else {
250
- size++;
251
- if (seg2 != NULL) {
252
- seg2->e[i2++] = seg->e[i];
253
- if (i2 >= seg2->size) {
254
- seg2 = seg2->next;
255
- i2 = 0;
256
- }
257
- }
506
+ ar_compress(mrb, h);
507
+ ea_n_used = size;
258
508
  }
259
509
  }
260
- seg = seg->next;
510
+ ea_set(ar_ea(h), ea_n_used, key, val);
511
+ ar_set_size(h, ++size);
512
+ ar_set_ea_n_used(h, ++ea_n_used);
261
513
  }
262
- exit:
263
- /* reached at end */
264
- t->size = size;
265
- if (seg2) {
266
- seg = seg2->next;
267
- seg2->next = NULL;
268
- t->last_len = i2;
269
- t->lastseg = seg2;
270
- while (seg) {
271
- seg2 = seg->next;
272
- mrb_free(mrb, seg);
273
- seg = seg2;
514
+ }
515
+
516
+ static mrb_bool
517
+ ar_delete(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value *valp)
518
+ {
519
+ hash_entry *entry = ea_get_by_key(mrb, ar_ea(h), ar_size(h), key, h);
520
+ if (!entry) return FALSE;
521
+ *valp = entry->val;
522
+ entry_delete(entry);
523
+ ar_dec_size(h);
524
+ return TRUE;
525
+ }
526
+
527
+ static void
528
+ ar_shift(mrb_state *mrb, struct RHash *h, mrb_value *keyp, mrb_value *valp)
529
+ {
530
+ uint32_t size = ar_size(h);
531
+ ea_each(ar_ea(h), size, entry, {
532
+ *keyp = entry->key;
533
+ *valp = entry->val;
534
+ entry_delete(entry);
535
+ ar_set_size(h, --size);
536
+ return;
537
+ });
538
+ }
539
+
540
+ static void
541
+ ar_rehash(mrb_state *mrb, struct RHash *h)
542
+ {
543
+ /* see comments in `h_rehash` */
544
+ uint32_t size = ar_size(h), w_size = 0, ea_capa = ar_ea_capa(h);
545
+ hash_entry *ea = ar_ea(h), *w_entry;
546
+ ea_each(ea, size, r_entry, {
547
+ if ((w_entry = ea_get_by_key(mrb, ea, w_size, r_entry->key, h))) {
548
+ w_entry->val = r_entry->val;
549
+ ar_set_size(h, --size);
550
+ entry_delete(r_entry);
274
551
  }
275
- }
276
- if (t->index) {
277
- ht_index(mrb, t);
278
- }
552
+ else {
553
+ if (w_size != U32(r_entry - ea)) {
554
+ ea_set(ea, w_size, r_entry->key, r_entry->val);
555
+ entry_delete(r_entry);
556
+ }
557
+ ++w_size;
558
+ }
559
+ });
560
+ mrb_assert(size == w_size);
561
+ ar_set_ea_n_used(h, size);
562
+ ar_adjust_ea(mrb, h, size, ea_capa);
279
563
  }
280
564
 
281
- static segment*
282
- segment_alloc(mrb_state *mrb, segment *seg)
565
+ static uint32_t
566
+ ib_it_pos_for(index_buckets_iter *it, uint32_t v)
283
567
  {
284
- uint32_t size;
568
+ return v & it->mask;
569
+ }
285
570
 
286
- if (!seg) size = MRB_HT_INIT_SIZE;
287
- else {
288
- size = seg->size*HT_SEG_INCREASE_RATIO + 1;
289
- if (size > UINT16_MAX) size = UINT16_MAX;
290
- }
571
+ static uint32_t
572
+ ib_it_empty_value(const index_buckets_iter *it)
573
+ {
574
+ return it->mask;
575
+ }
291
576
 
292
- seg = (segment*)mrb_malloc(mrb, sizeof(segment)+sizeof(struct segkv)*size);
293
- seg->size = size;
294
- seg->next = NULL;
577
+ static uint32_t
578
+ ib_it_deleted_value(const index_buckets_iter *it)
579
+ {
580
+ return it->mask - 1;
581
+ }
295
582
 
296
- return seg;
583
+ static mrb_bool
584
+ ib_it_empty_p(const index_buckets_iter *it)
585
+ {
586
+ return it->ea_index == ib_it_empty_value(it);
587
+ }
588
+
589
+ static mrb_bool
590
+ ib_it_deleted_p(const index_buckets_iter *it)
591
+ {
592
+ return it->ea_index == ib_it_deleted_value(it);
593
+ }
594
+
595
+ static mrb_bool
596
+ ib_it_active_p(const index_buckets_iter *it)
597
+ {
598
+ return it->ea_index < ib_it_deleted_value(it);
297
599
  }
298
600
 
299
- /* Set the value for the key in the indexed table. */
300
601
  static void
301
- ht_index_put(mrb_state *mrb, htable *t, mrb_value key, mrb_value val)
602
+ ib_it_init(mrb_state *mrb, index_buckets_iter *it, struct RHash *h, mrb_value key)
302
603
  {
303
- segindex *index = t->index;
304
- size_t k, sp, step = 0, mask;
305
- segment *seg;
604
+ it->h = h;
605
+ it->bit = ib_bit(h);
606
+ it->mask = ib_bit_to_capa(it->bit) - 1;
607
+ it->pos = ib_it_pos_for(it, obj_hash_code(mrb, key, h));
608
+ it->step = 0;
609
+ }
306
610
 
307
- if (index->size >= UPPER_BOUND(index->capa)) {
308
- /* need to expand table */
309
- ht_compact(mrb, t);
310
- index = t->index;
311
- }
312
- mask = HT_MASK(index);
313
- sp = index->capa;
314
- k = ht_hash_func(mrb, t, key) & mask;
315
- while (index->table[k]) {
316
- mrb_value key2 = index->table[k]->key;
317
- if (mrb_undef_p(key2)) {
318
- if (sp == index->capa) sp = k;
319
- }
320
- else if (ht_hash_equal(mrb, t, key, key2)) {
321
- index->table[k]->val = val;
322
- return;
323
- }
324
- k = (k+(++step)) & mask;
611
+ static void
612
+ ib_it_next(index_buckets_iter *it)
613
+ {
614
+ /*
615
+ * [IB image]
616
+ *
617
+ * ary_index(1) --.
618
+ * \ .-- shift1(3) .-- shift2(29)
619
+ * pos(6) --. \ / /
620
+ * View | \ \ <-o-> <----------o---------->
621
+ * -------- +---------------------\----\--+-----------------------------+-----
622
+ * array | 0 `--. `-|--- o 1 | ...
623
+ * +---------+---------+-----+\--+-----+---------+---------+---+-----
624
+ * buckets | 0 | 1 | ... | o 6 | 7 | 8 | ...
625
+ * +---------+---------+-----+=========+---------+---------+---------
626
+ * bit set |1 1 1 0 0|0 0 0 1 1| ... |0 1 0 1 1|0 1 1 1 0|0 1 0 1 0| ...
627
+ * +---------+---------+-----+========*+---------+---------+---------
628
+ * <---o---> \
629
+ * \ `-- bit_pos(34)
630
+ * `-- bit(5)
631
+ */
632
+
633
+ /* Slide to handle as `capa == 32` to avoid 64-bit operations */
634
+ uint32_t slid_pos = it->pos & (IB_TYPE_BIT - 1);
635
+ uint32_t slid_bit_pos = it->bit * (slid_pos + 1) - 1;
636
+ uint32_t slid_ary_index = slid_bit_pos / IB_TYPE_BIT;
637
+ it->ary_index = slid_ary_index + it->pos / IB_TYPE_BIT * it->bit;
638
+ it->shift2 = (slid_ary_index + 1) * IB_TYPE_BIT - slid_bit_pos - 1;
639
+ it->ea_index = (ht_ib(it->h)[it->ary_index] >> it->shift2) & it->mask;
640
+ if (IB_TYPE_BIT - it->bit < it->shift2) {
641
+ it->shift1 = IB_TYPE_BIT - it->shift2;
642
+ it->ea_index |= (ht_ib(it->h)[it->ary_index - 1] << it->shift1) & it->mask;
325
643
  }
326
- if (sp < index->capa) {
327
- k = sp;
644
+ else {
645
+ it->shift1 = 0;
328
646
  }
647
+ it->pos = ib_it_pos_for(it, it->pos + (++it->step));
648
+ }
329
649
 
330
- /* put the value at the last */
331
- seg = t->lastseg;
332
- if (t->last_len < seg->size) {
333
- index->table[k] = &seg->e[t->last_len++];
334
- }
335
- else { /* append a new segment */
336
- seg->next = segment_alloc(mrb, seg);
337
- seg = seg->next;
338
- seg->next = NULL;
339
- t->lastseg = seg;
340
- t->last_len = 1;
341
- index->table[k] = &seg->e[0];
650
+ static uint32_t
651
+ ib_it_get(const index_buckets_iter *it)
652
+ {
653
+ return it->ea_index;
654
+ }
655
+
656
+ static void
657
+ ib_it_set(index_buckets_iter *it, uint32_t ea_index)
658
+ {
659
+ uint32_t mask, i;
660
+ it->ea_index = ea_index;
661
+ if (it->shift1) {
662
+ i = it->ary_index - 1;
663
+ mask = it->mask >> it->shift1;
664
+ ht_ib(it->h)[i] = (ht_ib(it->h)[i] & ~mask) | (ea_index >> it->shift1);
342
665
  }
343
- index->table[k]->key = key;
344
- index->table[k]->val = val;
345
- index->size++;
346
- t->size++;
666
+ i = it->ary_index;
667
+ mask = it->mask << it->shift2;
668
+ ht_ib(it->h)[i] = (ht_ib(it->h)[i] & ~mask) | (ea_index << it->shift2);
347
669
  }
348
670
 
349
- /* Set the value for the key in the hash table. */
350
671
  static void
351
- ht_put(mrb_state *mrb, htable *t, mrb_value key, mrb_value val)
672
+ ib_it_delete(index_buckets_iter *it)
352
673
  {
353
- segment *seg;
354
- mrb_int i, deleted = 0;
674
+ ib_it_set(it, ib_it_deleted_value(it));
675
+ }
355
676
 
356
- if (t == NULL) return;
357
- if (t->index) {
358
- ht_index_put(mrb, t, key, val);
359
- return;
360
- }
361
- seg = t->rootseg;
362
- while (seg) {
363
- for (i=0; i<seg->size; i++) {
364
- mrb_value k = seg->e[i].key;
365
- /* Found room in last segment after last_len */
366
- if (!seg->next && i >= t->last_len) {
367
- seg->e[i].key = key;
368
- seg->e[i].val = val;
369
- t->last_len = i+1;
370
- t->size++;
371
- return;
372
- }
373
- if (mrb_undef_p(k)) {
374
- deleted++;
375
- continue;
376
- }
377
- if (ht_hash_equal(mrb, t, k, key)) {
378
- seg->e[i].val = val;
379
- return;
380
- }
381
- }
382
- seg = seg->next;
383
- }
384
- /* Not found */
677
+ static hash_entry*
678
+ ib_it_entry(index_buckets_iter *it)
679
+ {
680
+ return ea_get(ht_ea(it->h), it->ea_index);
681
+ }
385
682
 
386
- /* Compact if last segment has room */
387
- if (deleted > 0 && deleted > MRB_HT_INIT_SIZE) {
388
- ht_compact(mrb, t);
389
- }
390
- t->size++;
683
+ static uint32_t
684
+ ib_capa_to_bit(uint32_t capa)
685
+ {
686
+ #ifdef __GNUC__
687
+ return U32(__builtin_ctz(capa));
688
+ #else
689
+ /* http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn */
690
+ static const uint32_t MultiplyDeBruijnBitPosition2[] = {
691
+ 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8,
692
+ 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9
693
+ };
694
+ return MultiplyDeBruijnBitPosition2[U32(capa * 0x077CB531U) >> 27];
695
+ #endif
696
+ }
391
697
 
392
- /* check if thre's room after compaction */
393
- if (t->lastseg && t->last_len < t->lastseg->size) {
394
- seg = t->lastseg;
395
- i = t->last_len;
396
- }
397
- else {
398
- /* append new segment */
399
- seg = segment_alloc(mrb, t->lastseg);
400
- i = 0;
401
- if (t->rootseg == NULL) {
402
- t->rootseg = seg;
403
- }
404
- else {
405
- t->lastseg->next = seg;
406
- }
407
- t->lastseg = seg;
408
- }
409
- seg->e[i].key = key;
410
- seg->e[i].val = val;
411
- t->last_len = i+1;
412
- if (t->index == NULL && t->size > MRB_HT_INIT_SIZE*4) {
413
- ht_index(mrb, t);
414
- }
698
+ static uint32_t
699
+ ib_bit_to_capa(uint32_t bit)
700
+ {
701
+ return U32(1) << bit;
415
702
  }
416
703
 
417
- /* Get a value for a key from the indexed table. */
418
- static mrb_bool
419
- ht_index_get(mrb_state *mrb, htable *t, mrb_value key, mrb_value *vp)
420
- {
421
- segindex *index = t->index;
422
- size_t mask = HT_MASK(index);
423
- size_t k = ht_hash_func(mrb, t, key) & mask;
424
- size_t step = 0;
425
-
426
- while (index->table[k]) {
427
- mrb_value key2 = index->table[k]->key;
428
- if (!mrb_undef_p(key2) && ht_hash_equal(mrb, t, key, key2)) {
429
- if (vp) *vp = index->table[k]->val;
430
- return TRUE;
431
- }
432
- k = (k+(++step)) & mask;
433
- }
434
- return FALSE;
704
+ static uint32_t
705
+ ib_upper_bound_for(uint32_t capa)
706
+ {
707
+ return (capa >> 2) | (capa >> 1); /* 3/4 */
435
708
  }
436
709
 
437
- /* Get a value for a key from the hash table. */
438
- static mrb_bool
439
- ht_get(mrb_state *mrb, htable *t, mrb_value key, mrb_value *vp)
710
+ static uint32_t
711
+ ib_bit_for(uint32_t size)
440
712
  {
441
- segment *seg;
442
- mrb_int i;
713
+ uint32_t capa = next_power2(size);
714
+ if (capa != IB_MAX_CAPA && ib_upper_bound_for(capa) < size) capa *= 2;
715
+ return ib_capa_to_bit(capa);
716
+ }
443
717
 
444
- if (t == NULL) return FALSE;
445
- if (t->index) {
446
- return ht_index_get(mrb, t, key, vp);
447
- }
718
+ static uint32_t
719
+ ib_byte_size_for(uint32_t ib_bit)
720
+ {
721
+ uint32_t ary_size = IB_INIT_BIT == 4 ?
722
+ ib_bit_to_capa(ib_bit) * 2 / IB_TYPE_BIT * ib_bit / 2 :
723
+ ib_bit_to_capa(ib_bit) / IB_TYPE_BIT * ib_bit;
724
+ return U32(sizeof(uint32_t) * ary_size);
725
+ }
448
726
 
449
- seg = t->rootseg;
450
- while (seg) {
451
- for (i=0; i<seg->size; i++) {
452
- mrb_value k = seg->e[i].key;
727
+ static void
728
+ ib_init(mrb_state *mrb, struct RHash *h, uint32_t ib_bit, size_t ib_byte_size)
729
+ {
730
+ hash_entry *ea = ht_ea(h);
731
+ memset(ht_ib(h), 0xff, ib_byte_size);
732
+ ib_set_bit(h, ib_bit);
733
+ ea_each_used(ea, ht_ea_n_used(h), entry, {
734
+ ib_cycle_by_key(mrb, h, entry->key, it, {
735
+ if (!ib_it_empty_p(it)) continue;
736
+ ib_it_set(it, U32(entry - ea));
737
+ break;
738
+ });
739
+ });
740
+ }
453
741
 
454
- if (!seg->next && i >= t->last_len) {
455
- return FALSE;
456
- }
457
- if (mrb_undef_p(k)) continue;
458
- if (ht_hash_equal(mrb, t, k, key)) {
459
- if (vp) *vp = seg->e[i].val;
460
- return TRUE;
461
- }
462
- }
463
- seg = seg->next;
464
- }
465
- return FALSE;
742
+ static void
743
+ ht_init(mrb_state *mrb, struct RHash *h, uint32_t size,
744
+ hash_entry *ea, uint32_t ea_capa, hash_table *ht, uint32_t ib_bit)
745
+ {
746
+ size_t ib_byte_size = ib_byte_size_for(ib_bit);
747
+ size_t ht_byte_size = sizeof(hash_table) + ib_byte_size;
748
+ h_ht_on(h);
749
+ h_set_ht(h, (hash_table*)mrb_realloc(mrb, ht, ht_byte_size));
750
+ ht_set_size(h, size);
751
+ ht_set_ea(h, ea);
752
+ ht_set_ea_capa(h, ea_capa);
753
+ ht_set_ea_n_used(h, size);
754
+ ib_init(mrb, h, ib_bit, ib_byte_size);
755
+ }
756
+
757
+ static void
758
+ ht_free(mrb_state *mrb, struct RHash *h)
759
+ {
760
+ mrb_free(mrb, ht_ea(h));
761
+ mrb_free(mrb, h_ht(h));
762
+ }
763
+
764
+ static hash_table*
765
+ ht_dup(mrb_state *mrb, const struct RHash *h)
766
+ {
767
+ size_t ib_byte_size = ib_byte_size_for(ib_bit(h));
768
+ size_t ht_byte_size = sizeof(hash_table) + ib_byte_size;
769
+ hash_table *new_ht = (hash_table*)mrb_malloc(mrb, ht_byte_size);
770
+ return (hash_table*)memcpy(new_ht, h_ht(h), ht_byte_size);
771
+ }
772
+
773
+ static void
774
+ ht_adjust_ea(mrb_state *mrb, struct RHash *h, uint32_t size, uint32_t max_ea_capa)
775
+ {
776
+ uint32_t ea_capa = size;
777
+ hash_entry *ea = ea_adjust(mrb, ht_ea(h), &ea_capa, max_ea_capa);
778
+ ht_set_ea(h, ea);
779
+ ht_set_ea_capa(h, ea_capa);
780
+ }
781
+
782
+ static void
783
+ ht_to_ar(mrb_state *mrb, struct RHash *h)
784
+ {
785
+ uint32_t size = ht_size(h), ea_capa = size;
786
+ hash_entry *ea = ht_ea(h);
787
+ ea_compress(ea, ht_ea_n_used(h));
788
+ ea = ea_adjust(mrb, ea, &ea_capa, AR_MAX_SIZE);
789
+ mrb_free(mrb, h_ht(h));
790
+ ar_init(h, size, ea, ea_capa, size);
466
791
  }
467
792
 
468
- /* Deletes the value for the symbol from the hash table. */
469
- /* Deletion is done by overwriting keys by `undef`. */
470
793
  static mrb_bool
471
- ht_del(mrb_state *mrb, htable *t, mrb_value key, mrb_value *vp)
794
+ ht_get(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value *valp)
472
795
  {
473
- segment *seg;
474
- mrb_int i;
796
+ ib_find_by_key(mrb, h, key, it, {
797
+ *valp = ib_it_entry(it)->val;
798
+ return TRUE;
799
+ });
800
+ return FALSE;
801
+ }
475
802
 
476
- if (t == NULL) return FALSE;
477
- seg = t->rootseg;
478
- while (seg) {
479
- for (i=0; i<seg->size; i++) {
480
- mrb_value key2;
803
+ static void
804
+ ht_set_as_ar(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value val)
805
+ {
806
+ ht_to_ar(mrb, h);
807
+ ar_set(mrb, h, key, val);
808
+ }
481
809
 
482
- if (!seg->next && i >= t->last_len) {
483
- /* not found */
484
- return FALSE;
810
+ static void
811
+ ht_set_without_ib_adjustment(mrb_state *mrb, struct RHash *h,
812
+ mrb_value key, mrb_value val)
813
+ {
814
+ mrb_assert(ht_size(h) < ib_bit_to_capa(ib_bit(h)));
815
+ ib_cycle_by_key(mrb, h, key, it, {
816
+ if (ib_it_active_p(it)) {
817
+ if (!obj_eql(mrb, key, ib_it_entry(it)->key, h)) continue;
818
+ ib_it_entry(it)->val = val;
819
+ }
820
+ else {
821
+ uint32_t ea_n_used = ht_ea_n_used(h);
822
+ if (ea_n_used == H_MAX_SIZE) {
823
+ mrb_assert(ht_size(h) == ea_n_used);
824
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "hash too big");
485
825
  }
486
- key2 = seg->e[i].key;
487
- if (!mrb_undef_p(key2) && ht_hash_equal(mrb, t, key, key2)) {
488
- if (vp) *vp = seg->e[i].val;
489
- seg->e[i].key = mrb_undef_value();
490
- t->size--;
491
- return TRUE;
826
+ if (ea_n_used == ht_ea_capa(h)) ht_adjust_ea(mrb, h, ea_n_used, EA_MAX_CAPA);
827
+ ib_it_set(it, ea_n_used);
828
+ ea_set(ht_ea(h), ea_n_used, key, val);
829
+ ht_inc_size(h);
830
+ ht_set_ea_n_used(h, ++ea_n_used);
831
+ }
832
+ return;
833
+ });
834
+ }
835
+
836
+ static void
837
+ ht_set(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value val)
838
+ {
839
+ uint32_t size = ht_size(h);
840
+ uint32_t ib_bit_width = ib_bit(h), ib_capa = ib_bit_to_capa(ib_bit_width);
841
+ if (ib_upper_bound_for(ib_capa) <= size) {
842
+ if (size != ht_ea_n_used(h)) ea_compress(ht_ea(h), ht_ea_n_used(h));
843
+ ht_init(mrb, h, size, ht_ea(h), ht_ea_capa(h), h_ht(h), ++ib_bit_width);
844
+ }
845
+ else if (size != ht_ea_n_used(h)) {
846
+ if (ib_capa - EA_N_RESERVED_INDICES <= ht_ea_n_used(h)) goto compress;
847
+ if (ht_ea_capa(h) == ht_ea_n_used(h)) {
848
+ if (size <= AR_MAX_SIZE) {ht_set_as_ar(mrb, h, key, val); return;}
849
+ if (ea_next_capa_for(size, EA_MAX_CAPA) <= ht_ea_capa(h)) {
850
+ compress:
851
+ ea_compress(ht_ea(h), ht_ea_n_used(h));
852
+ ht_adjust_ea(mrb, h, size, ht_ea_capa(h));
853
+ ht_init(mrb, h, size, ht_ea(h), ht_ea_capa(h), h_ht(h), ib_bit_width);
492
854
  }
493
855
  }
494
- seg = seg->next;
495
856
  }
857
+ ht_set_without_ib_adjustment(mrb, h, key, val);
858
+ }
859
+
860
+ static mrb_bool
861
+ ht_delete(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value *valp)
862
+ {
863
+ ib_find_by_key(mrb, h, key, it, {
864
+ hash_entry *entry = ib_it_entry(it);
865
+ *valp = entry->val;
866
+ ib_it_delete(it);
867
+ entry_delete(entry);
868
+ ht_dec_size(h);
869
+ return TRUE;
870
+ });
496
871
  return FALSE;
497
872
  }
498
873
 
499
- /* Iterates over the hash table. */
500
874
  static void
501
- ht_foreach(mrb_state *mrb, htable *t, mrb_hash_foreach_func *func, void *p)
502
- {
503
- segment *seg;
504
- mrb_int i;
505
-
506
- if (t == NULL) return;
507
- seg = t->rootseg;
508
- while (seg) {
509
- for (i=0; i<seg->size; i++) {
510
- /* no value in last segment after last_len */
511
- if (!seg->next && i >= t->last_len) {
512
- return;
875
+ ht_shift(mrb_state *mrb, struct RHash *h, mrb_value *keyp, mrb_value *valp)
876
+ {
877
+ hash_entry *ea = ht_ea(h);
878
+ ea_each(ea, ht_size(h), entry, {
879
+ ib_cycle_by_key(mrb, h, entry->key, it, {
880
+ if (ib_it_get(it) != U32(entry - ea)) continue;
881
+ *keyp = entry->key;
882
+ *valp = entry->val;
883
+ ib_it_delete(it);
884
+ entry_delete(entry);
885
+ ht_dec_size(h);
886
+ return;
887
+ });
888
+ });
889
+ }
890
+
891
+ static void
892
+ ht_rehash(mrb_state *mrb, struct RHash *h)
893
+ {
894
+ /* see comments in `h_rehash` */
895
+ uint32_t size = ht_size(h), w_size = 0, ea_capa = ht_ea_capa(h);
896
+ hash_entry *ea = ht_ea(h);
897
+ ht_init(mrb, h, 0, ea, ea_capa, h_ht(h), ib_bit_for(size));
898
+ ht_set_size(h, size);
899
+ ht_set_ea_n_used(h, ht_ea_n_used(h));
900
+ ea_each(ea, size, r_entry, {
901
+ ib_cycle_by_key(mrb, h, r_entry->key, it, {
902
+ if (ib_it_active_p(it)) {
903
+ if (!obj_eql(mrb, r_entry->key, ib_it_entry(it)->key, h)) continue;
904
+ ib_it_entry(it)->val = r_entry->val;
905
+ ht_set_size(h, --size);
906
+ entry_delete(r_entry);
513
907
  }
514
- if (mrb_undef_p(seg->e[i].key)) continue;
515
- if ((*func)(mrb, seg->e[i].key, seg->e[i].val, p) != 0)
516
- return;
517
- }
518
- seg = seg->next;
908
+ else {
909
+ if (w_size != U32(r_entry - ea)) {
910
+ ea_set(ea, w_size, r_entry->key, r_entry->val);
911
+ entry_delete(r_entry);
912
+ }
913
+ ib_it_set(it, w_size++);
914
+ }
915
+ break;
916
+ });
917
+ });
918
+ mrb_assert(size == w_size);
919
+ ht_set_ea_n_used(h, size);
920
+ size <= AR_MAX_SIZE ? ht_to_ar(mrb, h) : ht_adjust_ea(mrb, h, size, ea_capa);
921
+ }
922
+
923
+ static mrb_value
924
+ h_key_for(mrb_state *mrb, mrb_value key)
925
+ {
926
+ if (mrb_string_p(key) && !MRB_FROZEN_P(mrb_str_ptr(key))) {
927
+ key = mrb_str_dup(mrb, key);
928
+ MRB_SET_FROZEN_FLAG(mrb_str_ptr(key));
519
929
  }
930
+ return key;
520
931
  }
521
932
 
522
- /* Iterates over the hash table. */
523
- MRB_API void
524
- mrb_hash_foreach(mrb_state *mrb, struct RHash *hash, mrb_hash_foreach_func *func, void *p)
933
+ static struct RHash*
934
+ h_alloc(mrb_state *mrb)
525
935
  {
526
- ht_foreach(mrb, hash->ht, func, p);
936
+ return (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class);
527
937
  }
528
938
 
529
- /* Copy the hash table. */
530
- static htable*
531
- ht_copy(mrb_state *mrb, htable *t)
939
+ static void
940
+ h_init(struct RHash *h)
532
941
  {
533
- segment *seg;
534
- htable *t2;
535
- mrb_int i;
942
+ ar_init(h, 0, NULL, 0, 0);
943
+ }
536
944
 
537
- seg = t->rootseg;
538
- t2 = ht_new(mrb);
539
- if (t->size == 0) return t2;
945
+ static void
946
+ h_free_table(mrb_state *mrb, struct RHash *h)
947
+ {
948
+ (h_ar_p(h) ? ar_free : ht_free)(mrb, h);
949
+ }
540
950
 
541
- while (seg) {
542
- for (i=0; i<seg->size; i++) {
543
- mrb_value key = seg->e[i].key;
544
- mrb_value val = seg->e[i].val;
951
+ static void
952
+ h_clear(mrb_state *mrb, struct RHash *h)
953
+ {
954
+ h_free_table(mrb, h);
955
+ h_init(h);
956
+ }
545
957
 
546
- if ((seg->next == NULL) && (i >= t->last_len)) {
547
- return t2;
548
- }
549
- if (mrb_undef_p(key)) continue; /* skip deleted key */
550
- ht_put(mrb, t2, key, val);
551
- }
552
- seg = seg->next;
553
- }
554
- return t2;
958
+ static mrb_bool
959
+ h_get(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value *valp)
960
+ {
961
+ return (h_ar_p(h) ? ar_get : ht_get)(mrb, h, key, valp);
555
962
  }
556
963
 
557
- /* Free memory of the hash table. */
558
964
  static void
559
- ht_free(mrb_state *mrb, htable *t)
965
+ h_set(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value val)
560
966
  {
561
- segment *seg;
967
+ (h_ar_p(h) ? ar_set : ht_set)(mrb, h, key, val);
968
+ }
562
969
 
563
- if (!t) return;
564
- seg = t->rootseg;
565
- while (seg) {
566
- segment *p = seg;
567
- seg = seg->next;
568
- mrb_free(mrb, p);
569
- }
570
- if (t->index) mrb_free(mrb, t->index);
571
- mrb_free(mrb, t);
970
+ static mrb_bool
971
+ h_delete(mrb_state *mrb, struct RHash *h, mrb_value key, mrb_value *valp)
972
+ {
973
+ return (h_ar_p(h) ? ar_delete : ht_delete)(mrb, h, key, valp);
572
974
  }
573
975
 
574
- static void mrb_hash_modify(mrb_state *mrb, mrb_value hash);
976
+ /* find first element in the table, and remove it. */
977
+ static void
978
+ h_shift(mrb_state *mrb, struct RHash *h, mrb_value *keyp, mrb_value *valp)
979
+ {
980
+ (h_ar_p(h) ? ar_shift : ht_shift)(mrb, h, keyp, valp);
981
+ }
575
982
 
576
- static inline mrb_value
577
- ht_key(mrb_state *mrb, mrb_value key)
983
+ static void
984
+ h_rehash(mrb_state *mrb, struct RHash *h)
578
985
  {
579
- if (mrb_string_p(key) && !mrb_frozen_p(mrb_str_ptr(key))) {
580
- key = mrb_str_dup(mrb, key);
581
- MRB_SET_FROZEN_FLAG(mrb_str_ptr(key));
986
+ /*
987
+ * ==== Comments common to `ar_rehash` and `ht_rehash`
988
+ *
989
+ * - Because reindex (such as elimination of duplicate keys) must be
990
+ * guaranteed, it is necessary to set one by one.
991
+ *
992
+ * - To prevent EA from breaking if an exception occurs in the middle,
993
+ * delete the slot before moving when moving the entry, and update size
994
+ * at any time when overwriting.
995
+ */
996
+ (h_size(h) == 0 ? h_clear : h_ar_p(h) ? ar_rehash : ht_rehash)(mrb, h);
997
+ }
998
+
999
+ static void
1000
+ h_replace(mrb_state *mrb, struct RHash *h, struct RHash *orig_h)
1001
+ {
1002
+ uint32_t size = h_size(orig_h);
1003
+ if (size == 0) {
1004
+ h_clear(mrb, h);
1005
+ }
1006
+ else if (h_ar_p(orig_h)) {
1007
+ uint32_t ea_capa = ar_ea_capa(orig_h);
1008
+ hash_entry *ea = ea_dup(mrb, ar_ea(orig_h), ea_capa);
1009
+ h_free_table(mrb, h);
1010
+ ar_init(h, size, ea, ea_capa, ar_ea_n_used(orig_h));
1011
+ }
1012
+ else { /* HT */
1013
+ uint32_t ea_capa = ht_ea_capa(orig_h);
1014
+ hash_entry *ea = ea_dup(mrb, ht_ea(orig_h), ea_capa);
1015
+ hash_table *ht = ht_dup(mrb, orig_h);
1016
+ h_free_table(mrb, h);
1017
+ h_ht_on(h);
1018
+ h_set_ht(h, ht);
1019
+ ht_set_size(h, size);
1020
+ ht_set_ea(h, ea);
1021
+ #ifdef MRB_64BIT
1022
+ ht_set_ea_capa(h, ea_capa);
1023
+ ht_set_ea_n_used(h, ht_ea_n_used(orig_h));
1024
+ #endif
1025
+ ib_set_bit(h, ib_bit(orig_h));
582
1026
  }
583
- return key;
584
1027
  }
585
1028
 
586
- #define KEY(key) ht_key(mrb, key)
1029
+ void
1030
+ mrb_gc_mark_hash(mrb_state *mrb, struct RHash *h)
1031
+ {
1032
+ h_each(h, entry, {
1033
+ mrb_gc_mark_value(mrb, entry->key);
1034
+ mrb_gc_mark_value(mrb, entry->val);
1035
+ });
1036
+ }
587
1037
 
588
- static int
589
- hash_mark_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1038
+ size_t
1039
+ mrb_gc_mark_hash_size(mrb_state *mrb, struct RHash *h)
590
1040
  {
591
- mrb_gc_mark_value(mrb, key);
592
- mrb_gc_mark_value(mrb, val);
593
- return 0;
1041
+ return h_size(h) * 2;
594
1042
  }
595
1043
 
596
1044
  void
597
- mrb_gc_mark_hash(mrb_state *mrb, struct RHash *hash)
1045
+ mrb_gc_free_hash(mrb_state *mrb, struct RHash *h)
598
1046
  {
599
- ht_foreach(mrb, hash->ht, hash_mark_i, NULL);
1047
+ h_free_table(mrb, h);
600
1048
  }
601
1049
 
602
1050
  size_t
603
- mrb_gc_mark_hash_size(mrb_state *mrb, struct RHash *hash)
1051
+ mrb_hash_memsize(mrb_value self)
604
1052
  {
605
- if (!hash->ht) return 0;
606
- return hash->ht->size*2;
1053
+ struct RHash *h = mrb_hash_ptr(self);
1054
+ return mrb_obj_iv_tbl_memsize(self) +
1055
+ (h_ar_p(h) ? (ar_ea_capa(h) * sizeof(hash_entry)) :
1056
+ (ht_ea_capa(h) * sizeof(hash_entry) +
1057
+ sizeof(hash_table) +
1058
+ ib_byte_size_for(ib_bit(h))));
607
1059
  }
608
1060
 
609
- void
610
- mrb_gc_free_hash(mrb_state *mrb, struct RHash *hash)
1061
+ /* Iterates over the key/value pairs. */
1062
+ MRB_API void
1063
+ mrb_hash_foreach(mrb_state *mrb, struct RHash *h, mrb_hash_foreach_func *func, void *data)
611
1064
  {
612
- ht_free(mrb, hash->ht);
1065
+ h_each(h, entry, {
1066
+ if (func(mrb, entry->key, entry->val, data) != 0) return;
1067
+ });
613
1068
  }
614
1069
 
615
1070
  MRB_API mrb_value
616
1071
  mrb_hash_new(mrb_state *mrb)
617
1072
  {
618
- struct RHash *h;
619
-
620
- h = (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class);
621
- h->ht = 0;
622
- h->iv = 0;
1073
+ struct RHash *h = h_alloc(mrb);
623
1074
  return mrb_obj_value(h);
624
1075
  }
625
1076
 
1077
+ /*
1078
+ * Set the capacity of EA and IB to minimum capacity (and appropriate load
1079
+ * factor) that does not cause expansion when inserting `capa` elements.
1080
+ */
626
1081
  MRB_API mrb_value
627
1082
  mrb_hash_new_capa(mrb_state *mrb, mrb_int capa)
628
1083
  {
629
- struct RHash *h;
630
-
631
- h = (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class);
632
- /* preallocate hash table */
633
- h->ht = ht_new(mrb);
634
- /* capacity ignored */
635
- h->iv = 0;
636
- return mrb_obj_value(h);
1084
+ if (capa < 0 || EA_MAX_CAPA < capa) {
1085
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "hash too big");
1086
+ return mrb_nil_value(); /* not reached */
1087
+ }
1088
+ else if (capa == 0) {
1089
+ return mrb_hash_new(mrb);
1090
+ }
1091
+ else {
1092
+ uint32_t size = U32(capa);
1093
+ struct RHash *h = h_alloc(mrb);
1094
+ hash_entry *ea = ea_resize(mrb, NULL, size);
1095
+ if (size <= AR_MAX_SIZE) {
1096
+ ar_init(h, 0, ea, size, 0);
1097
+ }
1098
+ else {
1099
+ ht_init(mrb, h, 0, ea, size, NULL, ib_bit_for(size));
1100
+ }
1101
+ return mrb_obj_value(h);
1102
+ }
637
1103
  }
638
1104
 
639
1105
  static mrb_value mrb_hash_default(mrb_state *mrb, mrb_value hash);
640
- static mrb_value hash_default(mrb_state *mrb, mrb_value hash, mrb_value key);
1106
+
1107
+ static void
1108
+ hash_modify(mrb_state *mrb, mrb_value hash)
1109
+ {
1110
+ mrb_check_frozen(mrb, mrb_hash_ptr(hash));
1111
+ }
641
1112
 
642
1113
  static mrb_value
643
- mrb_hash_init_copy(mrb_state *mrb, mrb_value self)
1114
+ hash_default(mrb_state *mrb, mrb_value hash, mrb_value key)
644
1115
  {
645
- mrb_value orig;
646
- struct RHash* copy;
647
- htable *orig_h;
648
- mrb_value ifnone, vret;
649
-
650
- mrb_get_args(mrb, "o", &orig);
651
- if (mrb_obj_equal(mrb, self, orig)) return self;
652
- if ((mrb_type(self) != mrb_type(orig)) || (mrb_obj_class(mrb, self) != mrb_obj_class(mrb, orig))) {
653
- mrb_raise(mrb, E_TYPE_ERROR, "initialize_copy should take same class object");
1116
+ if (MRB_RHASH_DEFAULT_P(hash)) {
1117
+ if (MRB_RHASH_PROCDEFAULT_P(hash)) {
1118
+ return mrb_funcall_id(mrb, RHASH_PROCDEFAULT(hash), MRB_SYM(call), 2, hash, key);
1119
+ }
1120
+ else {
1121
+ return RHASH_IFNONE(hash);
1122
+ }
654
1123
  }
1124
+ return mrb_nil_value();
1125
+ }
655
1126
 
656
- orig_h = RHASH_TBL(self);
657
- copy = (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class);
658
- copy->ht = ht_copy(mrb, orig_h);
659
-
660
- if (MRB_RHASH_DEFAULT_P(self)) {
661
- copy->flags |= MRB_HASH_DEFAULT;
662
- }
663
- if (MRB_RHASH_PROCDEFAULT_P(self)) {
664
- copy->flags |= MRB_HASH_PROC_DEFAULT;
1127
+ static void
1128
+ hash_replace(mrb_state *mrb, mrb_value self, mrb_value orig)
1129
+ {
1130
+ struct RHash *h = mrb_hash_ptr(self), *orig_h = mrb_hash_ptr(orig);
1131
+ uint32_t mask = MRB_HASH_DEFAULT | MRB_HASH_PROC_DEFAULT;
1132
+ mrb_sym name;
1133
+ h_replace(mrb, h, orig_h);
1134
+ name = MRB_SYM(ifnone);
1135
+ if (orig_h->flags & MRB_HASH_DEFAULT) {
1136
+ mrb_iv_set(mrb, self, name, mrb_iv_get(mrb, orig, name));
665
1137
  }
666
- vret = mrb_obj_value(copy);
667
- ifnone = RHASH_IFNONE(self);
668
- if (!mrb_nil_p(ifnone)) {
669
- mrb_iv_set(mrb, vret, mrb_intern_lit(mrb, "ifnone"), ifnone);
1138
+ else {
1139
+ mrb_iv_remove(mrb, self, name);
670
1140
  }
671
- return vret;
1141
+ h->flags &= ~mask;
1142
+ h->flags |= orig_h->flags & mask;
672
1143
  }
673
1144
 
674
- static int
675
- check_kdict_i(mrb_state *mrb, mrb_value key, mrb_value val, void *data)
1145
+ static mrb_value
1146
+ mrb_hash_init_copy(mrb_state *mrb, mrb_value self)
676
1147
  {
677
- if (!mrb_symbol_p(key)) {
678
- mrb_raise(mrb, E_ARGUMENT_ERROR, "keyword argument hash with non symbol keys");
679
- }
680
- return 0;
1148
+ mrb_value orig;
1149
+ mrb_get_args(mrb, "H", &orig);
1150
+ hash_modify(mrb, self);
1151
+ if (mrb_hash_ptr(self) != mrb_hash_ptr(orig)) hash_replace(mrb, self, orig);
1152
+ return self;
681
1153
  }
682
1154
 
683
1155
  void
684
1156
  mrb_hash_check_kdict(mrb_state *mrb, mrb_value self)
685
1157
  {
686
- htable *t;
687
-
688
- t = RHASH_TBL(self);
689
- if (!t || t->size == 0) return;
690
- ht_foreach(mrb, t, check_kdict_i, NULL);
1158
+ h_each(mrb_hash_ptr(self), entry, {
1159
+ if (mrb_symbol_p(entry->key)) continue;
1160
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "keyword argument hash with non symbol keys");
1161
+ });
691
1162
  }
692
1163
 
693
1164
  MRB_API mrb_value
694
1165
  mrb_hash_dup(mrb_state *mrb, mrb_value self)
695
1166
  {
696
- struct RHash* copy;
697
- htable *orig_h;
698
-
699
- orig_h = RHASH_TBL(self);
700
- copy = (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class);
701
- copy->ht = orig_h ? ht_copy(mrb, orig_h) : NULL;
702
- return mrb_obj_value(copy);
1167
+ struct RHash* copy_h = h_alloc(mrb);
1168
+ mrb_value copy = mrb_obj_value(copy_h);
1169
+ copy_h->c = mrb_hash_ptr(self)->c;
1170
+ hash_replace(mrb, copy, self);
1171
+ return copy;
703
1172
  }
704
1173
 
705
1174
  MRB_API mrb_value
@@ -708,11 +1177,11 @@ mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key)
708
1177
  mrb_value val;
709
1178
  mrb_sym mid;
710
1179
 
711
- if (ht_get(mrb, RHASH_TBL(hash), key, &val)) {
1180
+ if (h_get(mrb, mrb_hash_ptr(hash), key, &val)) {
712
1181
  return val;
713
1182
  }
714
1183
 
715
- mid = mrb_intern_lit(mrb, "default");
1184
+ mid = MRB_SYM(default);
716
1185
  if (mrb_func_basic_p(mrb, hash, mid, mrb_hash_default)) {
717
1186
  return hash_default(mrb, hash, key);
718
1187
  }
@@ -725,7 +1194,7 @@ mrb_hash_fetch(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value def)
725
1194
  {
726
1195
  mrb_value val;
727
1196
 
728
- if (ht_get(mrb, RHASH_TBL(hash), key, &val)) {
1197
+ if (h_get(mrb, mrb_hash_ptr(hash), key, &val)) {
729
1198
  return val;
730
1199
  }
731
1200
  /* not found */
@@ -735,22 +1204,11 @@ mrb_hash_fetch(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value def)
735
1204
  MRB_API void
736
1205
  mrb_hash_set(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value val)
737
1206
  {
738
- mrb_hash_modify(mrb, hash);
739
-
740
- key = KEY(key);
741
- ht_put(mrb, RHASH_TBL(hash), key, val);
742
- mrb_field_write_barrier_value(mrb, (struct RBasic*)RHASH(hash), key);
743
- mrb_field_write_barrier_value(mrb, (struct RBasic*)RHASH(hash), val);
744
- return;
745
- }
746
-
747
- static void
748
- mrb_hash_modify(mrb_state *mrb, mrb_value hash)
749
- {
750
- mrb_check_frozen(mrb, mrb_hash_ptr(hash));
751
- if (!RHASH_TBL(hash)) {
752
- RHASH_TBL(hash) = ht_new(mrb);
753
- }
1207
+ hash_modify(mrb, hash);
1208
+ key = h_key_for(mrb, key);
1209
+ h_set(mrb, mrb_hash_ptr(hash), key, val);
1210
+ mrb_field_write_barrier_value(mrb, mrb_basic_ptr(hash), key);
1211
+ mrb_field_write_barrier_value(mrb, mrb_basic_ptr(hash), val);
754
1212
  }
755
1213
 
756
1214
  /* 15.2.13.4.16 */
@@ -797,7 +1255,7 @@ mrb_hash_init(mrb_state *mrb, mrb_value hash)
797
1255
 
798
1256
  ifnone = mrb_nil_value();
799
1257
  mrb_get_args(mrb, "&|o?", &block, &ifnone, &ifnone_p);
800
- mrb_hash_modify(mrb, hash);
1258
+ hash_modify(mrb, hash);
801
1259
  if (!mrb_nil_p(block)) {
802
1260
  if (ifnone_p) {
803
1261
  mrb_argnum_error(mrb, 1, 0, 0);
@@ -807,7 +1265,7 @@ mrb_hash_init(mrb_state *mrb, mrb_value hash)
807
1265
  }
808
1266
  if (!mrb_nil_p(ifnone)) {
809
1267
  RHASH(hash)->flags |= MRB_HASH_DEFAULT;
810
- mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
1268
+ mrb_iv_set(mrb, hash, MRB_SYM(ifnone), ifnone);
811
1269
  }
812
1270
  return hash;
813
1271
  }
@@ -829,26 +1287,11 @@ mrb_hash_init(mrb_state *mrb, mrb_value hash)
829
1287
  static mrb_value
830
1288
  mrb_hash_aget(mrb_state *mrb, mrb_value self)
831
1289
  {
832
- mrb_value key;
1290
+ mrb_value key = mrb_get_arg1(mrb);
833
1291
 
834
- mrb_get_args(mrb, "o", &key);
835
1292
  return mrb_hash_get(mrb, self, key);
836
1293
  }
837
1294
 
838
- static mrb_value
839
- hash_default(mrb_state *mrb, mrb_value hash, mrb_value key)
840
- {
841
- if (MRB_RHASH_DEFAULT_P(hash)) {
842
- if (MRB_RHASH_PROCDEFAULT_P(hash)) {
843
- return mrb_funcall(mrb, RHASH_PROCDEFAULT(hash), "call", 2, hash, key);
844
- }
845
- else {
846
- return RHASH_IFNONE(hash);
847
- }
848
- }
849
- return mrb_nil_value();
850
- }
851
-
852
1295
  /* 15.2.13.4.5 */
853
1296
  /*
854
1297
  * call-seq:
@@ -881,7 +1324,7 @@ mrb_hash_default(mrb_state *mrb, mrb_value hash)
881
1324
  if (MRB_RHASH_DEFAULT_P(hash)) {
882
1325
  if (MRB_RHASH_PROCDEFAULT_P(hash)) {
883
1326
  if (!given) return mrb_nil_value();
884
- return mrb_funcall(mrb, RHASH_PROCDEFAULT(hash), "call", 2, hash, key);
1327
+ return mrb_funcall_id(mrb, RHASH_PROCDEFAULT(hash), MRB_SYM(call), 2, hash, key);
885
1328
  }
886
1329
  else {
887
1330
  return RHASH_IFNONE(hash);
@@ -914,11 +1357,10 @@ mrb_hash_default(mrb_state *mrb, mrb_value hash)
914
1357
  static mrb_value
915
1358
  mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
916
1359
  {
917
- mrb_value ifnone;
1360
+ mrb_value ifnone = mrb_get_arg1(mrb);
918
1361
 
919
- mrb_get_args(mrb, "o", &ifnone);
920
- mrb_hash_modify(mrb, hash);
921
- mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
1362
+ hash_modify(mrb, hash);
1363
+ mrb_iv_set(mrb, hash, MRB_SYM(ifnone), ifnone);
922
1364
  RHASH(hash)->flags &= ~MRB_HASH_PROC_DEFAULT;
923
1365
  if (!mrb_nil_p(ifnone)) {
924
1366
  RHASH(hash)->flags |= MRB_HASH_DEFAULT;
@@ -944,7 +1386,6 @@ mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
944
1386
  * a #=> [nil, nil, 4]
945
1387
  */
946
1388
 
947
-
948
1389
  static mrb_value
949
1390
  mrb_hash_default_proc(mrb_state *mrb, mrb_value hash)
950
1391
  {
@@ -970,11 +1411,10 @@ mrb_hash_default_proc(mrb_state *mrb, mrb_value hash)
970
1411
  static mrb_value
971
1412
  mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
972
1413
  {
973
- mrb_value ifnone;
1414
+ mrb_value ifnone = mrb_get_arg1(mrb);
974
1415
 
975
- mrb_get_args(mrb, "o", &ifnone);
976
- mrb_hash_modify(mrb, hash);
977
- mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
1416
+ hash_modify(mrb, hash);
1417
+ mrb_iv_set(mrb, hash, MRB_SYM(ifnone), ifnone);
978
1418
  if (!mrb_nil_p(ifnone)) {
979
1419
  RHASH(hash)->flags |= MRB_HASH_PROC_DEFAULT;
980
1420
  RHASH(hash)->flags |= MRB_HASH_DEFAULT;
@@ -990,10 +1430,10 @@ mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
990
1430
  MRB_API mrb_value
991
1431
  mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key)
992
1432
  {
993
- htable *t = RHASH_TBL(hash);
994
1433
  mrb_value del_val;
995
1434
 
996
- if (ht_del(mrb, t, key, &del_val)) {
1435
+ hash_modify(mrb, hash);
1436
+ if (h_delete(mrb, mrb_hash_ptr(hash), key, &del_val)) {
997
1437
  return del_val;
998
1438
  }
999
1439
 
@@ -1004,40 +1444,10 @@ mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key)
1004
1444
  static mrb_value
1005
1445
  mrb_hash_delete(mrb_state *mrb, mrb_value self)
1006
1446
  {
1007
- mrb_value key;
1008
-
1009
- mrb_get_args(mrb, "o", &key);
1010
- mrb_hash_modify(mrb, self);
1447
+ mrb_value key = mrb_get_arg1(mrb);
1011
1448
  return mrb_hash_delete_key(mrb, self, key);
1012
1449
  }
1013
1450
 
1014
- /* find first element in the hash table, and remove it. */
1015
- static void
1016
- ht_shift(mrb_state *mrb, htable *t, mrb_value *kp, mrb_value *vp)
1017
- {
1018
- segment *seg = t->rootseg;
1019
- mrb_int i;
1020
-
1021
- while (seg) {
1022
- for (i=0; i<seg->size; i++) {
1023
- mrb_value key;
1024
-
1025
- if (!seg->next && i >= t->last_len) {
1026
- return;
1027
- }
1028
- key = seg->e[i].key;
1029
- if (mrb_undef_p(key)) continue;
1030
- *kp = key;
1031
- *vp = seg->e[i].val;
1032
- /* delete element */
1033
- seg->e[i].key = mrb_undef_value();
1034
- t->size--;
1035
- return;
1036
- }
1037
- seg = seg->next;
1038
- }
1039
- }
1040
-
1041
1451
  /* 15.2.13.4.24 */
1042
1452
  /*
1043
1453
  * call-seq:
@@ -1055,27 +1465,19 @@ ht_shift(mrb_state *mrb, htable *t, mrb_value *kp, mrb_value *vp)
1055
1465
  static mrb_value
1056
1466
  mrb_hash_shift(mrb_state *mrb, mrb_value hash)
1057
1467
  {
1058
- htable *t = RHASH_TBL(hash);
1468
+ struct RHash *h = mrb_hash_ptr(hash);
1059
1469
 
1060
- mrb_hash_modify(mrb, hash);
1061
- if (t && t->size > 0) {
1470
+ hash_modify(mrb, hash);
1471
+ if (h_size(h) == 0) {
1472
+ return hash_default(mrb, hash, mrb_nil_value());
1473
+ }
1474
+ else {
1062
1475
  mrb_value del_key, del_val;
1063
-
1064
- ht_shift(mrb, t, &del_key, &del_val);
1476
+ h_shift(mrb, h, &del_key, &del_val);
1065
1477
  mrb_gc_protect(mrb, del_key);
1066
1478
  mrb_gc_protect(mrb, del_val);
1067
1479
  return mrb_assoc_new(mrb, del_key, del_val);
1068
1480
  }
1069
-
1070
- if (MRB_RHASH_DEFAULT_P(hash)) {
1071
- if (MRB_RHASH_PROCDEFAULT_P(hash)) {
1072
- return mrb_funcall(mrb, RHASH_PROCDEFAULT(hash), "call", 2, hash, mrb_nil_value());
1073
- }
1074
- else {
1075
- return RHASH_IFNONE(hash);
1076
- }
1077
- }
1078
- return mrb_nil_value();
1079
1481
  }
1080
1482
 
1081
1483
  /* 15.2.13.4.4 */
@@ -1093,13 +1495,8 @@ mrb_hash_shift(mrb_state *mrb, mrb_value hash)
1093
1495
  MRB_API mrb_value
1094
1496
  mrb_hash_clear(mrb_state *mrb, mrb_value hash)
1095
1497
  {
1096
- htable *t = RHASH_TBL(hash);
1097
-
1098
- mrb_hash_modify(mrb, hash);
1099
- if (t) {
1100
- ht_free(mrb, t);
1101
- RHASH_TBL(hash) = NULL;
1102
- }
1498
+ hash_modify(mrb, hash);
1499
+ h_clear(mrb, mrb_hash_ptr(hash));
1103
1500
  return hash;
1104
1501
  }
1105
1502
 
@@ -1135,18 +1532,15 @@ mrb_hash_aset(mrb_state *mrb, mrb_value self)
1135
1532
  MRB_API mrb_int
1136
1533
  mrb_hash_size(mrb_state *mrb, mrb_value hash)
1137
1534
  {
1138
- htable *t = RHASH_TBL(hash);
1139
-
1140
- if (!t) return 0;
1141
- return t->size;
1535
+ return (mrb_int)h_size(mrb_hash_ptr(hash));
1142
1536
  }
1143
1537
 
1144
1538
  /* 15.2.13.4.20 */
1145
1539
  /* 15.2.13.4.25 */
1146
1540
  /*
1147
1541
  * call-seq:
1148
- * hsh.length -> fixnum
1149
- * hsh.size -> fixnum
1542
+ * hsh.length -> integer
1543
+ * hsh.size -> integer
1150
1544
  *
1151
1545
  * Returns the number of key-value pairs in the hash.
1152
1546
  *
@@ -1159,16 +1553,13 @@ static mrb_value
1159
1553
  mrb_hash_size_m(mrb_state *mrb, mrb_value self)
1160
1554
  {
1161
1555
  mrb_int size = mrb_hash_size(mrb, self);
1162
- return mrb_fixnum_value(size);
1556
+ return mrb_int_value(mrb, size);
1163
1557
  }
1164
1558
 
1165
1559
  MRB_API mrb_bool
1166
1560
  mrb_hash_empty_p(mrb_state *mrb, mrb_value self)
1167
1561
  {
1168
- htable *t = RHASH_TBL(self);
1169
-
1170
- if (!t) return TRUE;
1171
- return t->size == 0;
1562
+ return h_size(mrb_hash_ptr(self)) == 0;
1172
1563
  }
1173
1564
 
1174
1565
  /* 15.2.13.4.12 */
@@ -1187,13 +1578,6 @@ mrb_hash_empty_m(mrb_state *mrb, mrb_value self)
1187
1578
  return mrb_bool_value(mrb_hash_empty_p(mrb, self));
1188
1579
  }
1189
1580
 
1190
- static int
1191
- hash_keys_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1192
- {
1193
- mrb_ary_push(mrb, *(mrb_value*)p, key);
1194
- return 0;
1195
- }
1196
-
1197
1581
  /* 15.2.13.4.19 */
1198
1582
  /*
1199
1583
  * call-seq:
@@ -1210,24 +1594,14 @@ hash_keys_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1210
1594
  MRB_API mrb_value
1211
1595
  mrb_hash_keys(mrb_state *mrb, mrb_value hash)
1212
1596
  {
1213
- htable *t = RHASH_TBL(hash);
1214
- mrb_int size;
1215
- mrb_value ary;
1216
-
1217
- if (!t || (size = t->size) == 0)
1218
- return mrb_ary_new(mrb);
1219
- ary = mrb_ary_new_capa(mrb, size);
1220
- ht_foreach(mrb, t, hash_keys_i, (void*)&ary);
1597
+ struct RHash *h = mrb_hash_ptr(hash);
1598
+ mrb_value ary = mrb_ary_new_capa(mrb, (mrb_int)h_size(h));
1599
+ h_each(h, entry, {
1600
+ mrb_ary_push(mrb, ary, entry->key);
1601
+ });
1221
1602
  return ary;
1222
1603
  }
1223
1604
 
1224
- static int
1225
- hash_vals_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1226
- {
1227
- mrb_ary_push(mrb, *(mrb_value*)p, val);
1228
- return 0;
1229
- }
1230
-
1231
1605
  /* 15.2.13.4.28 */
1232
1606
  /*
1233
1607
  * call-seq:
@@ -1244,14 +1618,11 @@ hash_vals_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1244
1618
  MRB_API mrb_value
1245
1619
  mrb_hash_values(mrb_state *mrb, mrb_value hash)
1246
1620
  {
1247
- htable *t = RHASH_TBL(hash);
1248
- mrb_int size;
1249
- mrb_value ary;
1250
-
1251
- if (!t || (size = t->size) == 0)
1252
- return mrb_ary_new(mrb);
1253
- ary = mrb_ary_new_capa(mrb, size);
1254
- ht_foreach(mrb, t, hash_vals_i, (void*)&ary);
1621
+ struct RHash *h = mrb_hash_ptr(hash);
1622
+ mrb_value ary = mrb_ary_new_capa(mrb, (mrb_int)h_size(h));
1623
+ h_each(h, entry, {
1624
+ mrb_ary_push(mrb, ary, entry->val);
1625
+ });
1255
1626
  return ary;
1256
1627
  }
1257
1628
 
@@ -1277,43 +1648,20 @@ mrb_hash_values(mrb_state *mrb, mrb_value hash)
1277
1648
  MRB_API mrb_bool
1278
1649
  mrb_hash_key_p(mrb_state *mrb, mrb_value hash, mrb_value key)
1279
1650
  {
1280
- htable *t;
1281
-
1282
- t = RHASH_TBL(hash);
1283
- if (ht_get(mrb, t, key, NULL)) {
1284
- return TRUE;
1285
- }
1286
- return FALSE;
1651
+ mrb_value val;
1652
+ return h_get(mrb, mrb_hash_ptr(hash), key, &val);
1287
1653
  }
1288
1654
 
1289
1655
  static mrb_value
1290
1656
  mrb_hash_has_key(mrb_state *mrb, mrb_value hash)
1291
1657
  {
1292
- mrb_value key;
1658
+ mrb_value key = mrb_get_arg1(mrb);
1293
1659
  mrb_bool key_p;
1294
1660
 
1295
- mrb_get_args(mrb, "o", &key);
1296
1661
  key_p = mrb_hash_key_p(mrb, hash, key);
1297
1662
  return mrb_bool_value(key_p);
1298
1663
  }
1299
1664
 
1300
- struct has_v_arg {
1301
- mrb_bool found;
1302
- mrb_value val;
1303
- };
1304
-
1305
- static int
1306
- hash_has_value_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1307
- {
1308
- struct has_v_arg *arg = (struct has_v_arg*)p;
1309
-
1310
- if (mrb_equal(mrb, arg->val, val)) {
1311
- arg->found = TRUE;
1312
- return 1;
1313
- }
1314
- return 0;
1315
- }
1316
-
1317
1665
  /* 15.2.13.4.14 */
1318
1666
  /* 15.2.13.4.27 */
1319
1667
  /*
@@ -1332,43 +1680,33 @@ hash_has_value_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
1332
1680
  static mrb_value
1333
1681
  mrb_hash_has_value(mrb_state *mrb, mrb_value hash)
1334
1682
  {
1335
- mrb_value val;
1336
- struct has_v_arg arg;
1337
-
1338
- mrb_get_args(mrb, "o", &val);
1339
- arg.found = FALSE;
1340
- arg.val = val;
1341
- ht_foreach(mrb, RHASH_TBL(hash), hash_has_value_i, &arg);
1342
- return mrb_bool_value(arg.found);
1343
- }
1344
-
1345
- static int
1346
- merge_i(mrb_state *mrb, mrb_value key, mrb_value val, void *data)
1347
- {
1348
- htable *h1 = (htable*)data;
1349
-
1350
- ht_put(mrb, h1, key, val);
1351
- return 0;
1683
+ mrb_value val = mrb_get_arg1(mrb);
1684
+ struct RHash *h = mrb_hash_ptr(hash);
1685
+ h_each(h, entry, {
1686
+ h_check_modified(mrb, h, {
1687
+ if (mrb_equal(mrb, val, entry->val)) return mrb_true_value();
1688
+ });
1689
+ });
1690
+ return mrb_false_value();
1352
1691
  }
1353
1692
 
1354
1693
  MRB_API void
1355
1694
  mrb_hash_merge(mrb_state *mrb, mrb_value hash1, mrb_value hash2)
1356
1695
  {
1357
- htable *h1, *h2;
1358
-
1359
- mrb_hash_modify(mrb, hash1);
1360
- hash2 = mrb_ensure_hash_type(mrb, hash2);
1361
- h1 = RHASH_TBL(hash1);
1362
- h2 = RHASH_TBL(hash2);
1363
-
1364
- if (!h2) return;
1365
- if (!h1) {
1366
- RHASH_TBL(hash1) = ht_copy(mrb, h2);
1367
- return;
1368
- }
1369
- ht_foreach(mrb, h2, merge_i, h1);
1370
- mrb_write_barrier(mrb, (struct RBasic*)RHASH(hash1));
1371
- return;
1696
+ struct RHash *h1, *h2;
1697
+
1698
+ hash_modify(mrb, hash1);
1699
+ mrb_ensure_hash_type(mrb, hash2);
1700
+ h1 = mrb_hash_ptr(hash1);
1701
+ h2 = mrb_hash_ptr(hash2);
1702
+
1703
+ if (h1 == h2) return;
1704
+ if (h_size(h2) == 0) return;
1705
+ h_each(h2, entry, {
1706
+ h_check_modified(mrb, h2, {h_set(mrb, h1, entry->key, entry->val);});
1707
+ mrb_field_write_barrier_value(mrb, (struct RBasic *)h1, entry->key);
1708
+ mrb_field_write_barrier_value(mrb, (struct RBasic *)h1, entry->val);
1709
+ });
1372
1710
  }
1373
1711
 
1374
1712
  /*
@@ -1383,14 +1721,10 @@ mrb_hash_merge(mrb_state *mrb, mrb_value hash1, mrb_value hash2)
1383
1721
  * k = keys[0]
1384
1722
  * h = {}
1385
1723
  * keys.each{|key| h[key] = key[0]}
1386
- * h #=> { [1]=> 1, [2]=> 2, [3]=> 3, [4]=> 4, [5]=> 5, [6]=> 6, [7]=> 7,
1387
- * [8]=> 8, [9]=> 9,[10]=>10,[11]=>11,[12]=>12,[13]=>13,[14]=>14,
1388
- * [15]=>15,[16]=>16,[17]=>17}
1724
+ * h #=> { [1]=>1, [2]=>2, ... [16]=>16, [17]=>17}
1389
1725
  * h[k] #=> 1
1390
1726
  * k[0] = keys.size + 1
1391
- * h #=> {[18]=> 1, [2]=> 2, [3]=> 3, [4]=> 4, [5]=> 5, [6]=> 6, [7]=> 7,
1392
- * [8]=> 8, [9]=> 9,[10]=>10,[11]=>11,[12]=>12,[13]=>13,[14]=>14,
1393
- * [15]=>15,[16]=>16,[17]=>17}
1727
+ * h #=> {[18]=>1, [2]=>2, ... [16]=>16, [17]=>17}
1394
1728
  * h[k] #=> nil
1395
1729
  * h.rehash
1396
1730
  * h[k] #=> 1
@@ -1398,7 +1732,7 @@ mrb_hash_merge(mrb_state *mrb, mrb_value hash1, mrb_value hash2)
1398
1732
  static mrb_value
1399
1733
  mrb_hash_rehash(mrb_state *mrb, mrb_value self)
1400
1734
  {
1401
- ht_compact(mrb, RHASH_TBL(self));
1735
+ h_rehash(mrb, mrb_hash_ptr(self));
1402
1736
  return self;
1403
1737
  }
1404
1738
 
@@ -1410,11 +1744,10 @@ mrb_init_hash(mrb_state *mrb)
1410
1744
  mrb->hash_class = h = mrb_define_class(mrb, "Hash", mrb->object_class); /* 15.2.13 */
1411
1745
  MRB_SET_INSTANCE_TT(h, MRB_TT_HASH);
1412
1746
 
1413
- mrb_define_method(mrb, h, "initialize_copy", mrb_hash_init_copy, MRB_ARGS_REQ(1));
1414
1747
  mrb_define_method(mrb, h, "[]", mrb_hash_aget, MRB_ARGS_REQ(1)); /* 15.2.13.4.2 */
1415
1748
  mrb_define_method(mrb, h, "[]=", mrb_hash_aset, MRB_ARGS_REQ(2)); /* 15.2.13.4.3 */
1416
1749
  mrb_define_method(mrb, h, "clear", mrb_hash_clear, MRB_ARGS_NONE()); /* 15.2.13.4.4 */
1417
- mrb_define_method(mrb, h, "default", mrb_hash_default, MRB_ARGS_OPT(1)); /* 15.2.13.4.5 */
1750
+ mrb_define_method(mrb, h, "default", mrb_hash_default, MRB_ARGS_OPT(1)); /* 15.2.13.4.5 */
1418
1751
  mrb_define_method(mrb, h, "default=", mrb_hash_set_default, MRB_ARGS_REQ(1)); /* 15.2.13.4.6 */
1419
1752
  mrb_define_method(mrb, h, "default_proc", mrb_hash_default_proc,MRB_ARGS_NONE()); /* 15.2.13.4.7 */
1420
1753
  mrb_define_method(mrb, h, "default_proc=", mrb_hash_set_default_proc,MRB_ARGS_REQ(1)); /* 15.2.13.4.7 */
@@ -1424,10 +1757,12 @@ mrb_init_hash(mrb_state *mrb)
1424
1757
  mrb_define_method(mrb, h, "has_value?", mrb_hash_has_value, MRB_ARGS_REQ(1)); /* 15.2.13.4.14 */
1425
1758
  mrb_define_method(mrb, h, "include?", mrb_hash_has_key, MRB_ARGS_REQ(1)); /* 15.2.13.4.15 */
1426
1759
  mrb_define_method(mrb, h, "initialize", mrb_hash_init, MRB_ARGS_OPT(1)|MRB_ARGS_BLOCK()); /* 15.2.13.4.16 */
1760
+ mrb_define_method(mrb, h, "initialize_copy", mrb_hash_init_copy, MRB_ARGS_REQ(1)); /* 15.2.13.4.17 */
1427
1761
  mrb_define_method(mrb, h, "key?", mrb_hash_has_key, MRB_ARGS_REQ(1)); /* 15.2.13.4.18 */
1428
1762
  mrb_define_method(mrb, h, "keys", mrb_hash_keys, MRB_ARGS_NONE()); /* 15.2.13.4.19 */
1429
1763
  mrb_define_method(mrb, h, "length", mrb_hash_size_m, MRB_ARGS_NONE()); /* 15.2.13.4.20 */
1430
1764
  mrb_define_method(mrb, h, "member?", mrb_hash_has_key, MRB_ARGS_REQ(1)); /* 15.2.13.4.21 */
1765
+ mrb_define_method(mrb, h, "replace", mrb_hash_init_copy, MRB_ARGS_REQ(1)); /* 15.2.13.4.23 */
1431
1766
  mrb_define_method(mrb, h, "shift", mrb_hash_shift, MRB_ARGS_NONE()); /* 15.2.13.4.24 */
1432
1767
  mrb_define_method(mrb, h, "size", mrb_hash_size_m, MRB_ARGS_NONE()); /* 15.2.13.4.25 */
1433
1768
  mrb_define_method(mrb, h, "store", mrb_hash_aset, MRB_ARGS_REQ(2)); /* 15.2.13.4.26 */