nutcracker 0.2.3 → 0.2.4.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (296) hide show
  1. data/README.md +53 -5
  2. data/Rakefile +14 -19
  3. data/bin/nutcracker +6 -1
  4. data/ext/nutcracker/ChangeLog +9 -0
  5. data/ext/nutcracker/LICENSE +0 -0
  6. data/ext/nutcracker/Makefile +643 -0
  7. data/ext/nutcracker/Makefile.am +0 -0
  8. data/ext/nutcracker/Makefile.in +66 -149
  9. data/ext/nutcracker/NOTICE +0 -0
  10. data/ext/nutcracker/README.md +13 -11
  11. data/ext/nutcracker/aclocal.m4 +112 -201
  12. data/ext/nutcracker/autom4te.cache/output.0 +18664 -0
  13. data/ext/nutcracker/autom4te.cache/output.1 +18664 -0
  14. data/ext/nutcracker/autom4te.cache/output.2 +18664 -0
  15. data/ext/nutcracker/autom4te.cache/requests +494 -0
  16. data/ext/nutcracker/autom4te.cache/traces.0 +2415 -0
  17. data/ext/nutcracker/autom4te.cache/traces.1 +945 -0
  18. data/ext/nutcracker/autom4te.cache/traces.2 +2415 -0
  19. data/ext/nutcracker/conf/nutcracker.leaf.yml +0 -0
  20. data/ext/nutcracker/conf/nutcracker.root.yml +0 -0
  21. data/ext/nutcracker/conf/nutcracker.yml +0 -0
  22. data/ext/nutcracker/config.h +332 -0
  23. data/ext/nutcracker/config.h.in +15 -0
  24. data/ext/nutcracker/config.log +2684 -0
  25. data/ext/nutcracker/config.status +2317 -0
  26. data/ext/nutcracker/config/config.guess +23 -84
  27. data/ext/nutcracker/config/config.sub +23 -93
  28. data/ext/nutcracker/config/depcomp +35 -81
  29. data/ext/nutcracker/config/install-sh +109 -122
  30. data/ext/nutcracker/config/ltmain.sh +1053 -721
  31. data/ext/nutcracker/config/missing +20 -29
  32. data/ext/nutcracker/configure +2122 -2320
  33. data/ext/nutcracker/configure.ac +35 -3
  34. data/ext/nutcracker/contrib/Makefile +494 -0
  35. data/ext/nutcracker/contrib/Makefile.am +0 -0
  36. data/ext/nutcracker/contrib/Makefile.in +41 -107
  37. data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
  38. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile +736 -0
  39. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +13102 -0
  40. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +13085 -0
  41. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.2 +13085 -0
  42. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +476 -0
  43. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.0 +2339 -0
  44. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +545 -0
  45. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +2339 -0
  46. data/ext/nutcracker/contrib/yaml-0.1.4/config.h +81 -0
  47. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +80 -0
  48. data/ext/nutcracker/contrib/yaml-0.1.4/config.log +688 -0
  49. data/ext/nutcracker/contrib/yaml-0.1.4/config.status +2032 -0
  50. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/annotated.html +51 -0
  51. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/bc_s.png +0 -0
  52. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/classes.html +41 -0
  53. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/closed.png +0 -0
  54. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.css +656 -0
  55. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.png +0 -0
  56. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/files.html +40 -0
  57. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions.html +91 -0
  58. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x62.html +84 -0
  59. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x63.html +87 -0
  60. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x64.html +83 -0
  61. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x65.html +110 -0
  62. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x66.html +79 -0
  63. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x68.html +80 -0
  64. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x69.html +92 -0
  65. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6b.html +71 -0
  66. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6c.html +88 -0
  67. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6d.html +96 -0
  68. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6e.html +71 -0
  69. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6f.html +80 -0
  70. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x70.html +100 -0
  71. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x71.html +71 -0
  72. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x72.html +87 -0
  73. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x73.html +163 -0
  74. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x74.html +115 -0
  75. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x75.html +71 -0
  76. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x76.html +80 -0
  77. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x77.html +77 -0
  78. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars.html +91 -0
  79. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x62.html +84 -0
  80. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x63.html +87 -0
  81. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x64.html +83 -0
  82. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x65.html +110 -0
  83. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x66.html +79 -0
  84. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x68.html +80 -0
  85. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x69.html +92 -0
  86. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6b.html +71 -0
  87. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6c.html +88 -0
  88. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6d.html +96 -0
  89. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6e.html +71 -0
  90. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6f.html +80 -0
  91. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x70.html +100 -0
  92. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x71.html +71 -0
  93. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x72.html +87 -0
  94. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x73.html +163 -0
  95. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x74.html +115 -0
  96. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x75.html +71 -0
  97. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x76.html +80 -0
  98. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x77.html +77 -0
  99. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals.html +667 -0
  100. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_defs.html +81 -0
  101. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_enum.html +78 -0
  102. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_eval.html +373 -0
  103. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_func.html +196 -0
  104. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_type.html +126 -0
  105. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__basic.html +320 -0
  106. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__emitter.html +819 -0
  107. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__events.html +664 -0
  108. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__export.html +60 -0
  109. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__nodes.html +795 -0
  110. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__parser.html +606 -0
  111. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__styles.html +222 -0
  112. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__tokens.html +246 -0
  113. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__version.html +106 -0
  114. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/index.html +31 -0
  115. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/modules.html +42 -0
  116. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_f.png +0 -0
  117. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_h.png +0 -0
  118. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/open.png +0 -0
  119. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__alias__data__s.html +108 -0
  120. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__document__s.html +235 -0
  121. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__emitter__s.html +1300 -0
  122. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__event__s.html +496 -0
  123. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__mark__s.html +108 -0
  124. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__pair__s.html +91 -0
  125. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__s.html +420 -0
  126. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__parser__s.html +1229 -0
  127. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__simple__key__s.html +97 -0
  128. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__tag__directive__s.html +91 -0
  129. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__token__s.html +413 -0
  130. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__version__directive__s.html +91 -0
  131. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_a.png +0 -0
  132. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_b.png +0 -0
  133. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_h.png +0 -0
  134. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_s.png +0 -0
  135. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tabs.css +59 -0
  136. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/yaml_8h.html +525 -0
  137. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.am +17 -0
  138. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.in +470 -0
  139. data/ext/nutcracker/contrib/yaml-0.1.4/libtool +8890 -0
  140. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile +484 -0
  141. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.lo +12 -0
  142. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.o +0 -0
  143. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.lo +12 -0
  144. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.o +0 -0
  145. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.lo +12 -0
  146. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.o +0 -0
  147. data/ext/nutcracker/contrib/yaml-0.1.4/src/libyaml.la +41 -0
  148. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.lo +12 -0
  149. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.o +0 -0
  150. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.lo +12 -0
  151. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.o +0 -0
  152. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.lo +12 -0
  153. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.o +0 -0
  154. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.lo +12 -0
  155. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.o +0 -0
  156. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.lo +12 -0
  157. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.o +0 -0
  158. data/ext/nutcracker/contrib/yaml-0.1.4/stamp-h1 +1 -0
  159. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile +675 -0
  160. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor +0 -0
  161. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt +0 -0
  162. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.o +0 -0
  163. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.o +0 -0
  164. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter +0 -0
  165. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt +0 -0
  166. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.o +0 -0
  167. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.o +0 -0
  168. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper +0 -0
  169. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.o +0 -0
  170. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter +0 -0
  171. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.o +0 -0
  172. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader +0 -0
  173. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.o +0 -0
  174. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser +0 -0
  175. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.o +0 -0
  176. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner +0 -0
  177. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.o +0 -0
  178. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc +10 -0
  179. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc.in +10 -0
  180. data/ext/nutcracker/extconf.rb +0 -5
  181. data/ext/nutcracker/libtool +9403 -0
  182. data/ext/nutcracker/m4/libtool.m4 +553 -492
  183. data/ext/nutcracker/m4/ltoptions.m4 +7 -6
  184. data/ext/nutcracker/m4/ltversion.m4 +5 -5
  185. data/ext/nutcracker/m4/lt~obsolete.m4 +9 -3
  186. data/ext/nutcracker/notes/c-styleguide.txt +0 -0
  187. data/ext/nutcracker/notes/debug.txt +0 -0
  188. data/ext/nutcracker/notes/memcache.txt +0 -0
  189. data/ext/nutcracker/notes/recommendation.md +21 -2
  190. data/ext/nutcracker/notes/redis.md +9 -9
  191. data/ext/nutcracker/notes/socket.txt +0 -0
  192. data/ext/nutcracker/scripts/nutcracker.init +0 -0
  193. data/ext/nutcracker/scripts/nutcracker.spec +0 -0
  194. data/ext/nutcracker/scripts/redis-check.py +0 -0
  195. data/ext/nutcracker/scripts/redis-check.sh +9 -0
  196. data/ext/nutcracker/src/Makefile +647 -0
  197. data/ext/nutcracker/src/Makefile.am +1 -1
  198. data/ext/nutcracker/src/Makefile.in +74 -153
  199. data/ext/nutcracker/src/hashkit/Makefile +476 -0
  200. data/ext/nutcracker/src/hashkit/Makefile.am +1 -0
  201. data/ext/nutcracker/src/hashkit/Makefile.in +39 -64
  202. data/ext/nutcracker/src/hashkit/libhashkit.a +0 -0
  203. data/ext/nutcracker/src/hashkit/nc_crc16.c +66 -0
  204. data/ext/nutcracker/src/hashkit/nc_crc16.o +0 -0
  205. data/ext/nutcracker/src/hashkit/nc_crc32.c +0 -0
  206. data/ext/nutcracker/src/hashkit/nc_crc32.o +0 -0
  207. data/ext/nutcracker/src/hashkit/nc_fnv.c +0 -0
  208. data/ext/nutcracker/src/hashkit/nc_fnv.o +0 -0
  209. data/ext/nutcracker/src/hashkit/nc_hashkit.h +2 -0
  210. data/ext/nutcracker/src/hashkit/nc_hsieh.c +0 -0
  211. data/ext/nutcracker/src/hashkit/nc_hsieh.o +0 -0
  212. data/ext/nutcracker/src/hashkit/nc_jenkins.c +0 -0
  213. data/ext/nutcracker/src/hashkit/nc_jenkins.o +0 -0
  214. data/ext/nutcracker/src/hashkit/nc_ketama.c +0 -0
  215. data/ext/nutcracker/src/hashkit/nc_ketama.o +0 -0
  216. data/ext/nutcracker/src/hashkit/nc_md5.c +0 -0
  217. data/ext/nutcracker/src/hashkit/nc_md5.o +0 -0
  218. data/ext/nutcracker/src/hashkit/nc_modula.c +18 -6
  219. data/ext/nutcracker/src/hashkit/nc_modula.o +0 -0
  220. data/ext/nutcracker/src/hashkit/nc_murmur.c +0 -0
  221. data/ext/nutcracker/src/hashkit/nc_murmur.o +0 -0
  222. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +0 -0
  223. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.o +0 -0
  224. data/ext/nutcracker/src/hashkit/nc_random.c +0 -0
  225. data/ext/nutcracker/src/hashkit/nc_random.o +0 -0
  226. data/ext/nutcracker/src/nc.c +0 -0
  227. data/ext/nutcracker/src/nc.o +0 -0
  228. data/ext/nutcracker/src/nc_array.c +0 -0
  229. data/ext/nutcracker/src/nc_array.h +0 -0
  230. data/ext/nutcracker/src/nc_array.o +0 -0
  231. data/ext/nutcracker/src/nc_client.c +0 -0
  232. data/ext/nutcracker/src/nc_client.h +0 -0
  233. data/ext/nutcracker/src/nc_client.o +0 -0
  234. data/ext/nutcracker/src/nc_conf.c +14 -35
  235. data/ext/nutcracker/src/nc_conf.h +1 -1
  236. data/ext/nutcracker/src/nc_conf.o +0 -0
  237. data/ext/nutcracker/src/nc_connection.c +0 -0
  238. data/ext/nutcracker/src/nc_connection.h +0 -0
  239. data/ext/nutcracker/src/nc_connection.o +0 -0
  240. data/ext/nutcracker/src/nc_core.c +29 -26
  241. data/ext/nutcracker/src/nc_core.h +13 -5
  242. data/ext/nutcracker/src/nc_core.o +0 -0
  243. data/ext/nutcracker/src/{nc_event.c → nc_epoll.c} +94 -30
  244. data/ext/nutcracker/src/nc_epoll.o +0 -0
  245. data/ext/nutcracker/src/nc_event.h +33 -13
  246. data/ext/nutcracker/src/nc_kqueue.c +296 -0
  247. data/ext/nutcracker/src/nc_kqueue.o +0 -0
  248. data/ext/nutcracker/src/nc_log.c +0 -0
  249. data/ext/nutcracker/src/nc_log.h +0 -0
  250. data/ext/nutcracker/src/nc_log.o +0 -0
  251. data/ext/nutcracker/src/nc_mbuf.c +0 -0
  252. data/ext/nutcracker/src/nc_mbuf.h +0 -0
  253. data/ext/nutcracker/src/nc_mbuf.o +0 -0
  254. data/ext/nutcracker/src/nc_message.c +0 -0
  255. data/ext/nutcracker/src/nc_message.h +2 -0
  256. data/ext/nutcracker/src/nc_message.o +0 -0
  257. data/ext/nutcracker/src/nc_proxy.c +8 -8
  258. data/ext/nutcracker/src/nc_proxy.h +0 -0
  259. data/ext/nutcracker/src/nc_proxy.o +0 -0
  260. data/ext/nutcracker/src/nc_queue.h +0 -0
  261. data/ext/nutcracker/src/nc_rbtree.c +0 -0
  262. data/ext/nutcracker/src/nc_rbtree.h +0 -0
  263. data/ext/nutcracker/src/nc_rbtree.o +0 -0
  264. data/ext/nutcracker/src/nc_request.c +3 -3
  265. data/ext/nutcracker/src/nc_request.o +0 -0
  266. data/ext/nutcracker/src/nc_response.c +4 -6
  267. data/ext/nutcracker/src/nc_response.o +0 -0
  268. data/ext/nutcracker/src/nc_server.c +14 -12
  269. data/ext/nutcracker/src/nc_server.h +0 -0
  270. data/ext/nutcracker/src/nc_server.o +0 -0
  271. data/ext/nutcracker/src/nc_signal.c +0 -0
  272. data/ext/nutcracker/src/nc_signal.h +0 -0
  273. data/ext/nutcracker/src/nc_signal.o +0 -0
  274. data/ext/nutcracker/src/nc_stats.c +16 -21
  275. data/ext/nutcracker/src/nc_stats.h +3 -4
  276. data/ext/nutcracker/src/nc_stats.o +0 -0
  277. data/ext/nutcracker/src/nc_string.c +0 -0
  278. data/ext/nutcracker/src/nc_string.h +0 -0
  279. data/ext/nutcracker/src/nc_string.o +0 -0
  280. data/ext/nutcracker/src/nc_util.c +16 -0
  281. data/ext/nutcracker/src/nc_util.h +1 -0
  282. data/ext/nutcracker/src/nc_util.o +0 -0
  283. data/ext/nutcracker/src/nutcracker +0 -0
  284. data/ext/nutcracker/src/proto/Makefile +454 -0
  285. data/ext/nutcracker/src/proto/Makefile.am +0 -0
  286. data/ext/nutcracker/src/proto/Makefile.in +32 -60
  287. data/ext/nutcracker/src/proto/libproto.a +0 -0
  288. data/ext/nutcracker/src/proto/nc_memcache.c +0 -0
  289. data/ext/nutcracker/src/proto/nc_memcache.o +0 -0
  290. data/ext/nutcracker/src/proto/nc_proto.h +0 -0
  291. data/ext/nutcracker/src/proto/nc_redis.c +17 -4
  292. data/ext/nutcracker/src/proto/nc_redis.o +0 -0
  293. data/ext/nutcracker/stamp-h1 +1 -0
  294. data/lib/nutcracker.rb +64 -2
  295. data/lib/nutcracker/version.rb +1 -1
  296. metadata +237 -9
File without changes
@@ -35,7 +35,7 @@ To build nutcracker from source with _debug logs enabled_ and _assertions disabl
35
35
  + Supports proxying to multiple servers.
36
36
  + Supports multiple server pools simultaneously.
37
37
  + Shard data automatically across multiple servers.
38
- + Implements the complete [memcached ascii](https://github.com/twitter/twemproxy/blob/master/notes/memcache.txt) and [redis](https://github.com/twitter/twemproxy/blob/master/notes/redis.md) protocol.
38
+ + Implements the complete [memcached ascii](notes/memcache.txt) and [redis](notes/redis.md) protocol.
39
39
  + Easy configuration of server pools through a YAML file.
40
40
  + Supports multiple hashing modes including consistent hashing and distribution.
41
41
  + Can be configured to disable nodes on failures.
@@ -76,6 +76,7 @@ nutcracker can be configured through a YAML file specified by the -c or --conf-f
76
76
  + **hash**: The name of the hash function. Possible values are:
77
77
  + one_at_a_time
78
78
  + md5
79
+ + crc16
79
80
  + crc32
80
81
  + fnv1_64
81
82
  + fnv1a_64
@@ -84,7 +85,7 @@ nutcracker can be configured through a YAML file specified by the -c or --conf-f
84
85
  + hsieh
85
86
  + murmur
86
87
  + jenkins
87
- + **hash_tag**: A two character string that specifies the part of the key used for hashing. Eg "{}" or "$$". [Hash tag](https://github.com/twitter/twemproxy/blob/master/notes/recommendation.md#hash-tags) enable mapping different keys to the same server as long as the part of the key within the tag is the same.
88
+ + **hash_tag**: A two character string that specifies the part of the key used for hashing. Eg "{}" or "$$". [Hash tag](notes/recommendation.md#hash-tags) enable mapping different keys to the same server as long as the part of the key within the tag is the same.
88
89
  + **distribution**: The key distribution mode. Possible values are:
89
90
  + ketama
90
91
  + modula
@@ -94,13 +95,13 @@ nutcracker can be configured through a YAML file specified by the -c or --conf-f
94
95
  + **preconnect**: A boolean value that controls if nutcracker should preconnect to all the servers in this pool on process start. Defaults to false.
95
96
  + **redis**: A boolean value that controls if a server pool speaks redis or memcached protocol. Defaults to false.
96
97
  + **server_connections**: The maximum number of connections that can be opened to each server. By default, we open at most 1 server connection.
97
- + **auto_eject_hosts**: A boolean value that controls if server should be ejected temporarily when it fails consecutively server_failure_limit times. Defaults to false.
98
+ + **auto_eject_hosts**: A boolean value that controls if server should be ejected temporarily when it fails consecutively server_failure_limit times. See [liveness recommendations](notes/recommendation.md#liveness) for information. Defaults to false.
98
99
  + **server_retry_timeout**: The timeout value in msec to wait for before retrying on a temporarily ejected server, when auto_eject_host is set to true. Defaults to 30000 msec.
99
100
  + **server_failure_limit**: The number of conseutive failures on a server that would leads to it being temporarily ejected when auto_eject_host is set to true. Defaults to 2.
100
101
  + **servers**: A list of server address, port and weight (name:port:weight or ip:port:weight) for this server pool.
101
102
 
102
103
 
103
- For example, the configuration file in [conf/nutcracker.yml](https://github.com/twitter/twemproxy/blob/master/conf/nutcracker.yml), also shown below, configures 5 server pools with names - _alpha_, _beta_, _gamma_, _delta_ and omega. Clients that intend to send requests to one of the 10 servers in pool delta connect to port 22124 on 127.0.0.1. Clients that intend to send request to one of 2 servers in pool omega connect to unix path /tmp/gamma. Requests sent to pool alpha and omega have no timeout and might require timeout functionality to be implemented on the client side. On the other hand, requests sent to pool beta, gamma and delta timeout after 400 msec, 400 msec and 100 msec respectively when no response is received from the server. Of the 5 server pools, only pools alpha, gamma and deleta are configured to use server ejection and hence are resilient to server failures. All the 5 server pools use ketama consistent hashing for key distribution with the key hasher for pools alpha, beta, gamma and delta set to fnv1a_64 while that for pool omega set to hsieh. Also only pool beta uses [nodes names](https://github.com/twitter/twemproxy/blob/master/notes/recommendation.md#node-names-for-consistent-hashing) for consistent hashing, while pool alpha, gamma, delta and omega use 'host:port:weight' for consistent hashing. Finally, only pool alpha and beta can speak redis protocol, while pool gamma, deta and omega speak memcached protocol.
104
+ For example, the configuration file in [conf/nutcracker.yml](conf/nutcracker.yml), also shown below, configures 5 server pools with names - _alpha_, _beta_, _gamma_, _delta_ and omega. Clients that intend to send requests to one of the 10 servers in pool delta connect to port 22124 on 127.0.0.1. Clients that intend to send request to one of 2 servers in pool omega connect to unix path /tmp/gamma. Requests sent to pool alpha and omega have no timeout and might require timeout functionality to be implemented on the client side. On the other hand, requests sent to pool beta, gamma and delta timeout after 400 msec, 400 msec and 100 msec respectively when no response is received from the server. Of the 5 server pools, only pools alpha, gamma and delta are configured to use server ejection and hence are resilient to server failures. All the 5 server pools use ketama consistent hashing for key distribution with the key hasher for pools alpha, beta, gamma and delta set to fnv1a_64 while that for pool omega set to hsieh. Also only pool beta uses [nodes names](notes/recommendation.md#node-names-for-consistent-hashing) for consistent hashing, while pool alpha, gamma, delta and omega use 'host:port:weight' for consistent hashing. Finally, only pool alpha and beta can speak redis protocol, while pool gamma, deta and omega speak memcached protocol.
104
105
 
105
106
  alpha:
106
107
  listen: 127.0.0.1:22121
@@ -112,7 +113,7 @@ For example, the configuration file in [conf/nutcracker.yml](https://github.com/
112
113
  server_failure_limit: 1
113
114
  servers:
114
115
  - 127.0.0.1:6379:1
115
-
116
+
116
117
  beta:
117
118
  listen: 127.0.0.1:22122
118
119
  hash: fnv1a_64
@@ -126,7 +127,7 @@ For example, the configuration file in [conf/nutcracker.yml](https://github.com/
126
127
  - 127.0.0.1:6381:1 server2
127
128
  - 127.0.0.1:6382:1 server3
128
129
  - 127.0.0.1:6383:1 server4
129
-
130
+
130
131
  gamma:
131
132
  listen: 127.0.0.1:22123
132
133
  hash: fnv1a_64
@@ -140,7 +141,7 @@ For example, the configuration file in [conf/nutcracker.yml](https://github.com/
140
141
  servers:
141
142
  - 127.0.0.1:11212:1
142
143
  - 127.0.0.1:11213:1
143
-
144
+
144
145
  delta:
145
146
  listen: 127.0.0.1:22124
146
147
  hash: fnv1a_64
@@ -160,7 +161,7 @@ For example, the configuration file in [conf/nutcracker.yml](https://github.com/
160
161
  - 127.0.0.1:11221:1
161
162
  - 127.0.0.1:11222:1
162
163
  - 127.0.0.1:11223:1
163
-
164
+
164
165
  omega:
165
166
  listen: /tmp/gamma
166
167
  hash: hsieh
@@ -169,7 +170,7 @@ For example, the configuration file in [conf/nutcracker.yml](https://github.com/
169
170
  servers:
170
171
  - 127.0.0.1:11214:100000
171
172
  - 127.0.0.1:11215:1
172
-
173
+
173
174
  Finally, to make writing syntactically correct configuration file easier, nutcracker provides a command-line argument -t or --test-conf that can be used to test the YAML configuration file for any syntax error.
174
175
 
175
176
  ## Observability
@@ -207,7 +208,7 @@ Logging in nutcracker is only available when nutcracker is built with logging en
207
208
  ## Pipelining
208
209
 
209
210
 
210
- Nutcracker enables proxying multiple client connections onto one or few server connections. This architectural setup makes it ideal for pipelining requests and responses and hence saving on the round trip time.
211
+ Nutcracker enables proxying multiple client connections onto one or few server connections. This architectural setup makes it ideal for pipelining requests and responses and hence saving on the round trip time.
211
212
 
212
213
  For example, if nutcracker is proxing three client connections onto a single server and we get requests - 'get key\r\n', 'set key 0 0 3\r\nval\r\n' and 'delete key\r\n' on these three connections respectively, nutcracker would try to batch these requests and send them as a single message onto the server connection as 'get key\r\nset key 0 0 3\r\nval\r\ndelete key\r\n'.
213
214
 
@@ -215,13 +216,14 @@ Pipelining is the reason why nutcracker ends up doing better in terms of through
215
216
 
216
217
  ## Deployment
217
218
 
218
- If you are deploying nutcracker in production, you might consider reading through the [recommendation document](https://github.com/twitter/twemproxy/blob/master/notes/recommendation.md) to understand the parameters you could tune in nutcracker to run it efficiently in the production environment.
219
+ If you are deploying nutcracker in production, you might consider reading through the [recommendation document](notes/recommendation.md) to understand the parameters you could tune in nutcracker to run it efficiently in the production environment.
219
220
 
220
221
  ## Users
221
222
  + [Pinterest](http://pinterest.com/)
222
223
  + [Tumblr](https://www.tumblr.com/)
223
224
  + [Twitter](https://twitter.com/)
224
225
  + [Vine](http://vine.co/)
226
+ + [Kiip](http://www.kiip.me/)
225
227
 
226
228
  ## Issues and Support
227
229
 
@@ -1,7 +1,7 @@
1
- # generated automatically by aclocal 1.11 -*- Autoconf -*-
1
+ # generated automatically by aclocal 1.10 -*- Autoconf -*-
2
2
 
3
3
  # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4
- # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
4
+ # 2005, 2006 Free Software Foundation, Inc.
5
5
  # This file is free software; the Free Software Foundation
6
6
  # gives unlimited permission to copy and/or distribute it,
7
7
  # with or without modifications, as long as this notice is preserved.
@@ -11,15 +11,12 @@
11
11
  # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12
12
  # PARTICULAR PURPOSE.
13
13
 
14
- m4_ifndef([AC_AUTOCONF_VERSION],
15
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16
- m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],,
17
- [m4_warning([this file was generated for autoconf 2.64.
18
- You have another version of autoconf. It may work, but is not guaranteed to.
19
- If you have problems, you may need to regenerate the build system entirely.
20
- To do so, use the procedure documented by the package, typically `autoreconf'.])])
14
+ m4_if(m4_PACKAGE_VERSION, [2.69],,
15
+ [m4_fatal([this file was generated for autoconf 2.69.
16
+ You have another version of autoconf. If you want to use that,
17
+ you should regenerate the build system entirely.], [63])])
21
18
 
22
- # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
19
+ # Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
23
20
  #
24
21
  # This file is free software; the Free Software Foundation
25
22
  # gives unlimited permission to copy and/or distribute it,
@@ -31,10 +28,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
31
28
  # generated from the m4 files accompanying Automake X.Y.
32
29
  # (This private macro should not be called outside this file.)
33
30
  AC_DEFUN([AM_AUTOMAKE_VERSION],
34
- [am__api_version='1.11'
31
+ [am__api_version='1.10'
35
32
  dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
36
33
  dnl require some minimum version. Point them to the right macro.
37
- m4_if([$1], [1.11], [],
34
+ m4_if([$1], [1.10], [],
38
35
  [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
39
36
  ])
40
37
 
@@ -48,12 +45,10 @@ m4_define([_AM_AUTOCONF_VERSION], [])
48
45
  # AM_SET_CURRENT_AUTOMAKE_VERSION
49
46
  # -------------------------------
50
47
  # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
51
- # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
48
+ # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
52
49
  AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
53
- [AM_AUTOMAKE_VERSION([1.11])dnl
54
- m4_ifndef([AC_AUTOCONF_VERSION],
55
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
56
- _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
50
+ [AM_AUTOMAKE_VERSION([1.10])dnl
51
+ _AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
57
52
 
58
53
  # AM_AUX_DIR_EXPAND -*- Autoconf -*-
59
54
 
@@ -110,14 +105,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
110
105
 
111
106
  # AM_CONDITIONAL -*- Autoconf -*-
112
107
 
113
- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
108
+ # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
114
109
  # Free Software Foundation, Inc.
115
110
  #
116
111
  # This file is free software; the Free Software Foundation
117
112
  # gives unlimited permission to copy and/or distribute it,
118
113
  # with or without modifications, as long as this notice is preserved.
119
114
 
120
- # serial 9
115
+ # serial 8
121
116
 
122
117
  # AM_CONDITIONAL(NAME, SHELL-CONDITION)
123
118
  # -------------------------------------
@@ -130,7 +125,6 @@ AC_SUBST([$1_TRUE])dnl
130
125
  AC_SUBST([$1_FALSE])dnl
131
126
  _AM_SUBST_NOTMAKE([$1_TRUE])dnl
132
127
  _AM_SUBST_NOTMAKE([$1_FALSE])dnl
133
- m4_define([_AM_COND_VALUE_$1], [$2])dnl
134
128
  if $2; then
135
129
  $1_TRUE=
136
130
  $1_FALSE='#'
@@ -144,14 +138,14 @@ AC_CONFIG_COMMANDS_PRE(
144
138
  Usually this means the macro was only invoked conditionally.]])
145
139
  fi])])
146
140
 
147
- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
141
+ # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
148
142
  # Free Software Foundation, Inc.
149
143
  #
150
144
  # This file is free software; the Free Software Foundation
151
145
  # gives unlimited permission to copy and/or distribute it,
152
146
  # with or without modifications, as long as this notice is preserved.
153
147
 
154
- # serial 10
148
+ # serial 9
155
149
 
156
150
  # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
157
151
  # written in clear, in which case automake, when reading aclocal.m4,
@@ -208,16 +202,6 @@ AC_CACHE_CHECK([dependency style of $depcc],
208
202
  if test "$am_compiler_list" = ""; then
209
203
  am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
210
204
  fi
211
- am__universal=false
212
- m4_case([$1], [CC],
213
- [case " $depcc " in #(
214
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
215
- esac],
216
- [CXX],
217
- [case " $depcc " in #(
218
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
219
- esac])
220
-
221
205
  for depmode in $am_compiler_list; do
222
206
  # Setup a source with many dependencies, because some compilers
223
207
  # like to wrap large dependency lists on column 80 (with \), and
@@ -235,17 +219,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
235
219
  done
236
220
  echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
237
221
 
238
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
239
- # mode. It turns out that the SunPro C++ compiler does not properly
240
- # handle `-M -o', and we need to detect this. Also, some Intel
241
- # versions had trouble with output in subdirs
242
- am__obj=sub/conftest.${OBJEXT-o}
243
- am__minus_obj="-o $am__obj"
244
222
  case $depmode in
245
- gcc)
246
- # This depmode causes a compiler race in universal mode.
247
- test "$am__universal" = false || continue
248
- ;;
249
223
  nosideeffect)
250
224
  # after this tag, mechanisms are not by side-effect, so they'll
251
225
  # only be used when explicitly requested
@@ -255,23 +229,19 @@ AC_CACHE_CHECK([dependency style of $depcc],
255
229
  break
256
230
  fi
257
231
  ;;
258
- msvisualcpp | msvcmsys)
259
- # This compiler won't grok `-c -o', but also, the minuso test has
260
- # not run yet. These depmodes are late enough in the game, and
261
- # so weak that their functioning should not be impacted.
262
- am__obj=conftest.${OBJEXT-o}
263
- am__minus_obj=
264
- ;;
265
232
  none) break ;;
266
233
  esac
234
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
235
+ # mode. It turns out that the SunPro C++ compiler does not properly
236
+ # handle `-M -o', and we need to detect this.
267
237
  if depmode=$depmode \
268
- source=sub/conftest.c object=$am__obj \
238
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
269
239
  depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
270
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
240
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
271
241
  >/dev/null 2>conftest.err &&
272
242
  grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
273
243
  grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
274
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
244
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
275
245
  ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
276
246
  # icc doesn't choke on unknown options, it will just issue warnings
277
247
  # or remarks (even with -Werror). So we grep stderr for any message
@@ -328,68 +298,57 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
328
298
 
329
299
  # Generate code to set up dependency tracking. -*- Autoconf -*-
330
300
 
331
- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
301
+ # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
332
302
  # Free Software Foundation, Inc.
333
303
  #
334
304
  # This file is free software; the Free Software Foundation
335
305
  # gives unlimited permission to copy and/or distribute it,
336
306
  # with or without modifications, as long as this notice is preserved.
337
307
 
338
- #serial 5
308
+ #serial 3
339
309
 
340
310
  # _AM_OUTPUT_DEPENDENCY_COMMANDS
341
311
  # ------------------------------
342
312
  AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
343
- [{
344
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
345
- # are listed without --file. Let's play safe and only enable the eval
346
- # if we detect the quoting.
347
- case $CONFIG_FILES in
348
- *\'*) eval set x "$CONFIG_FILES" ;;
349
- *) set x $CONFIG_FILES ;;
350
- esac
351
- shift
352
- for mf
353
- do
354
- # Strip MF so we end up with the name of the file.
355
- mf=`echo "$mf" | sed -e 's/:.*$//'`
356
- # Check whether this is an Automake generated Makefile or not.
357
- # We used to match only the files named `Makefile.in', but
358
- # some people rename them; so instead we look at the file content.
359
- # Grep'ing the first line is not enough: some people post-process
360
- # each Makefile.in and add a new line on top of each file to say so.
361
- # Grep'ing the whole file is not good either: AIX grep has a line
362
- # limit of 2048, but all sed's we know have understand at least 4000.
363
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
364
- dirpart=`AS_DIRNAME("$mf")`
365
- else
366
- continue
367
- fi
368
- # Extract the definition of DEPDIR, am__include, and am__quote
369
- # from the Makefile without running `make'.
370
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
371
- test -z "$DEPDIR" && continue
372
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
373
- test -z "am__include" && continue
374
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
375
- # When using ansi2knr, U may be empty or an underscore; expand it
376
- U=`sed -n 's/^U = //p' < "$mf"`
377
- # Find all dependency output files, they are included files with
378
- # $(DEPDIR) in their names. We invoke sed twice because it is the
379
- # simplest approach to changing $(DEPDIR) to its actual value in the
380
- # expansion.
381
- for file in `sed -n "
382
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
383
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
384
- # Make sure the directory exists.
385
- test -f "$dirpart/$file" && continue
386
- fdir=`AS_DIRNAME(["$file"])`
387
- AS_MKDIR_P([$dirpart/$fdir])
388
- # echo "creating $dirpart/$file"
389
- echo '# dummy' > "$dirpart/$file"
390
- done
313
+ [for mf in $CONFIG_FILES; do
314
+ # Strip MF so we end up with the name of the file.
315
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
316
+ # Check whether this is an Automake generated Makefile or not.
317
+ # We used to match only the files named `Makefile.in', but
318
+ # some people rename them; so instead we look at the file content.
319
+ # Grep'ing the first line is not enough: some people post-process
320
+ # each Makefile.in and add a new line on top of each file to say so.
321
+ # Grep'ing the whole file is not good either: AIX grep has a line
322
+ # limit of 2048, but all sed's we know have understand at least 4000.
323
+ if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
324
+ dirpart=`AS_DIRNAME("$mf")`
325
+ else
326
+ continue
327
+ fi
328
+ # Extract the definition of DEPDIR, am__include, and am__quote
329
+ # from the Makefile without running `make'.
330
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
331
+ test -z "$DEPDIR" && continue
332
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
333
+ test -z "am__include" && continue
334
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
335
+ # When using ansi2knr, U may be empty or an underscore; expand it
336
+ U=`sed -n 's/^U = //p' < "$mf"`
337
+ # Find all dependency output files, they are included files with
338
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
339
+ # simplest approach to changing $(DEPDIR) to its actual value in the
340
+ # expansion.
341
+ for file in `sed -n "
342
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
343
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
344
+ # Make sure the directory exists.
345
+ test -f "$dirpart/$file" && continue
346
+ fdir=`AS_DIRNAME(["$file"])`
347
+ AS_MKDIR_P([$dirpart/$fdir])
348
+ # echo "creating $dirpart/$file"
349
+ echo '# dummy' > "$dirpart/$file"
391
350
  done
392
- }
351
+ done
393
352
  ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
394
353
 
395
354
 
@@ -409,13 +368,13 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
409
368
  # Do all the work for Automake. -*- Autoconf -*-
410
369
 
411
370
  # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
412
- # 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
371
+ # 2005, 2006 Free Software Foundation, Inc.
413
372
  #
414
373
  # This file is free software; the Free Software Foundation
415
374
  # gives unlimited permission to copy and/or distribute it,
416
375
  # with or without modifications, as long as this notice is preserved.
417
376
 
418
- # serial 16
377
+ # serial 12
419
378
 
420
379
  # This macro actually does too much. Some checks are only needed if
421
380
  # your package does certain things. But this isn't really a big deal.
@@ -432,7 +391,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
432
391
  # arguments mandatory, and then we can depend on a new Autoconf
433
392
  # release and drop the old call support.
434
393
  AC_DEFUN([AM_INIT_AUTOMAKE],
435
- [AC_PREREQ([2.62])dnl
394
+ [AC_PREREQ([2.60])dnl
436
395
  dnl Autoconf wants to disallow AM_ names. We explicitly allow
437
396
  dnl the ones we care about.
438
397
  m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -483,8 +442,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
483
442
  AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
484
443
  AM_MISSING_PROG(AUTOHEADER, autoheader)
485
444
  AM_MISSING_PROG(MAKEINFO, makeinfo)
486
- AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
487
- AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
445
+ AM_PROG_INSTALL_SH
446
+ AM_PROG_INSTALL_STRIP
488
447
  AC_REQUIRE([AM_PROG_MKDIR_P])dnl
489
448
  # We need awk for the "check" target. The system "awk" is bad on
490
449
  # some platforms.
@@ -492,37 +451,24 @@ AC_REQUIRE([AC_PROG_AWK])dnl
492
451
  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
493
452
  AC_REQUIRE([AM_SET_LEADING_DOT])dnl
494
453
  _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
495
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
496
- [_AM_PROG_TAR([v7])])])
454
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
455
+ [_AM_PROG_TAR([v7])])])
497
456
  _AM_IF_OPTION([no-dependencies],,
498
457
  [AC_PROVIDE_IFELSE([AC_PROG_CC],
499
- [_AM_DEPENDENCIES(CC)],
500
- [define([AC_PROG_CC],
501
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
458
+ [_AM_DEPENDENCIES(CC)],
459
+ [define([AC_PROG_CC],
460
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
502
461
  AC_PROVIDE_IFELSE([AC_PROG_CXX],
503
- [_AM_DEPENDENCIES(CXX)],
504
- [define([AC_PROG_CXX],
505
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
462
+ [_AM_DEPENDENCIES(CXX)],
463
+ [define([AC_PROG_CXX],
464
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
506
465
  AC_PROVIDE_IFELSE([AC_PROG_OBJC],
507
- [_AM_DEPENDENCIES(OBJC)],
508
- [define([AC_PROG_OBJC],
509
- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
466
+ [_AM_DEPENDENCIES(OBJC)],
467
+ [define([AC_PROG_OBJC],
468
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
510
469
  ])
511
- _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
512
- dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
513
- dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
514
- dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
515
- AC_CONFIG_COMMANDS_PRE(dnl
516
- [m4_provide_if([_AM_COMPILER_EXEEXT],
517
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
518
470
  ])
519
471
 
520
- dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
521
- dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
522
- dnl mangled by Autoconf and run in a shell conditional statement.
523
- m4_define([_AC_COMPILER_EXEEXT],
524
- m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
525
-
526
472
 
527
473
  # When config.status generates a header, we must update the stamp-h file.
528
474
  # This file resides in the same directory as the config header
@@ -533,19 +479,18 @@ m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
533
479
  # our stamp files there.
534
480
  AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
535
481
  [# Compute $1's index in $config_headers.
536
- _am_arg=$1
537
482
  _am_stamp_count=1
538
483
  for _am_header in $config_headers :; do
539
484
  case $_am_header in
540
- $_am_arg | $_am_arg:* )
485
+ $1 | $1:* )
541
486
  break ;;
542
487
  * )
543
488
  _am_stamp_count=`expr $_am_stamp_count + 1` ;;
544
489
  esac
545
490
  done
546
- echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
491
+ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
547
492
 
548
- # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
493
+ # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
549
494
  #
550
495
  # This file is free software; the Free Software Foundation
551
496
  # gives unlimited permission to copy and/or distribute it,
@@ -556,14 +501,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
556
501
  # Define $install_sh.
557
502
  AC_DEFUN([AM_PROG_INSTALL_SH],
558
503
  [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
559
- if test x"${install_sh}" != xset; then
560
- case $am_aux_dir in
561
- *\ * | *\ *)
562
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
563
- *)
564
- install_sh="\${SHELL} $am_aux_dir/install-sh"
565
- esac
566
- fi
504
+ install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
567
505
  AC_SUBST(install_sh)])
568
506
 
569
507
  # Copyright (C) 2003, 2005 Free Software Foundation, Inc.
@@ -589,13 +527,13 @@ AC_SUBST([am__leading_dot])])
589
527
 
590
528
  # Check to see how 'make' treats includes. -*- Autoconf -*-
591
529
 
592
- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
530
+ # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
593
531
  #
594
532
  # This file is free software; the Free Software Foundation
595
533
  # gives unlimited permission to copy and/or distribute it,
596
534
  # with or without modifications, as long as this notice is preserved.
597
535
 
598
- # serial 4
536
+ # serial 3
599
537
 
600
538
  # AM_MAKE_INCLUDE()
601
539
  # -----------------
@@ -604,7 +542,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
604
542
  [am_make=${MAKE-make}
605
543
  cat > confinc << 'END'
606
544
  am__doit:
607
- @echo this is the am__doit target
545
+ @echo done
608
546
  .PHONY: am__doit
609
547
  END
610
548
  # If we don't find an include directive, just comment out the code.
@@ -614,24 +552,24 @@ am__quote=
614
552
  _am_result=none
615
553
  # First try GNU make style include.
616
554
  echo "include confinc" > confmf
617
- # Ignore all kinds of additional output from `make'.
618
- case `$am_make -s -f confmf 2> /dev/null` in #(
619
- *the\ am__doit\ target*)
620
- am__include=include
621
- am__quote=
622
- _am_result=GNU
623
- ;;
624
- esac
555
+ # We grep out `Entering directory' and `Leaving directory'
556
+ # messages which can occur if `w' ends up in MAKEFLAGS.
557
+ # In particular we don't look at `^make:' because GNU make might
558
+ # be invoked under some other name (usually "gmake"), in which
559
+ # case it prints its new name instead of `make'.
560
+ if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
561
+ am__include=include
562
+ am__quote=
563
+ _am_result=GNU
564
+ fi
625
565
  # Now try BSD make style include.
626
566
  if test "$am__include" = "#"; then
627
567
  echo '.include "confinc"' > confmf
628
- case `$am_make -s -f confmf 2> /dev/null` in #(
629
- *the\ am__doit\ target*)
630
- am__include=.include
631
- am__quote="\""
632
- _am_result=BSD
633
- ;;
634
- esac
568
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
569
+ am__include=.include
570
+ am__quote="\""
571
+ _am_result=BSD
572
+ fi
635
573
  fi
636
574
  AC_SUBST([am__include])
637
575
  AC_SUBST([am__quote])
@@ -641,14 +579,14 @@ rm -f confinc confmf
641
579
 
642
580
  # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
643
581
 
644
- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
582
+ # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
645
583
  # Free Software Foundation, Inc.
646
584
  #
647
585
  # This file is free software; the Free Software Foundation
648
586
  # gives unlimited permission to copy and/or distribute it,
649
587
  # with or without modifications, as long as this notice is preserved.
650
588
 
651
- # serial 6
589
+ # serial 5
652
590
 
653
591
  # AM_MISSING_PROG(NAME, PROGRAM)
654
592
  # ------------------------------
@@ -665,14 +603,7 @@ AC_SUBST($1)])
665
603
  AC_DEFUN([AM_MISSING_HAS_RUN],
666
604
  [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
667
605
  AC_REQUIRE_AUX_FILE([missing])dnl
668
- if test x"${MISSING+set}" != xset; then
669
- case $am_aux_dir in
670
- *\ * | *\ *)
671
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
672
- *)
673
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
674
- esac
675
- fi
606
+ test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
676
607
  # Use eval to expand $SHELL
677
608
  if eval "$MISSING --run true"; then
678
609
  am_missing_run="$MISSING --run "
@@ -710,13 +641,13 @@ esac
710
641
 
711
642
  # Helper functions for option handling. -*- Autoconf -*-
712
643
 
713
- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
644
+ # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
714
645
  #
715
646
  # This file is free software; the Free Software Foundation
716
647
  # gives unlimited permission to copy and/or distribute it,
717
648
  # with or without modifications, as long as this notice is preserved.
718
649
 
719
- # serial 4
650
+ # serial 3
720
651
 
721
652
  # _AM_MANGLE_OPTION(NAME)
722
653
  # -----------------------
@@ -733,7 +664,7 @@ AC_DEFUN([_AM_SET_OPTION],
733
664
  # ----------------------------------
734
665
  # OPTIONS is a space-separated list of Automake options.
735
666
  AC_DEFUN([_AM_SET_OPTIONS],
736
- [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
667
+ [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
737
668
 
738
669
  # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
739
670
  # -------------------------------------------
@@ -743,14 +674,14 @@ AC_DEFUN([_AM_IF_OPTION],
743
674
 
744
675
  # Check to make sure that the build environment is sane. -*- Autoconf -*-
745
676
 
746
- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
677
+ # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
747
678
  # Free Software Foundation, Inc.
748
679
  #
749
680
  # This file is free software; the Free Software Foundation
750
681
  # gives unlimited permission to copy and/or distribute it,
751
682
  # with or without modifications, as long as this notice is preserved.
752
683
 
753
- # serial 5
684
+ # serial 4
754
685
 
755
686
  # AM_SANITY_CHECK
756
687
  # ---------------
@@ -759,29 +690,16 @@ AC_DEFUN([AM_SANITY_CHECK],
759
690
  # Just in case
760
691
  sleep 1
761
692
  echo timestamp > conftest.file
762
- # Reject unsafe characters in $srcdir or the absolute working directory
763
- # name. Accept space and tab only in the latter.
764
- am_lf='
765
- '
766
- case `pwd` in
767
- *[[\\\"\#\$\&\'\`$am_lf]]*)
768
- AC_MSG_ERROR([unsafe absolute working directory name]);;
769
- esac
770
- case $srcdir in
771
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
772
- AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
773
- esac
774
-
775
693
  # Do `set' in a subshell so we don't clobber the current shell's
776
694
  # arguments. Must try -L first in case configure is actually a
777
695
  # symlink; some systems play weird games with the mod time of symlinks
778
696
  # (eg FreeBSD returns the mod time of the symlink's containing
779
697
  # directory).
780
698
  if (
781
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
699
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
782
700
  if test "$[*]" = "X"; then
783
701
  # -L didn't work.
784
- set X `ls -t "$srcdir/configure" conftest.file`
702
+ set X `ls -t $srcdir/configure conftest.file`
785
703
  fi
786
704
  rm -f conftest.file
787
705
  if test "$[*]" != "X $srcdir/configure conftest.file" \
@@ -834,25 +752,18 @@ fi
834
752
  INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
835
753
  AC_SUBST([INSTALL_STRIP_PROGRAM])])
836
754
 
837
- # Copyright (C) 2006, 2008 Free Software Foundation, Inc.
755
+ # Copyright (C) 2006 Free Software Foundation, Inc.
838
756
  #
839
757
  # This file is free software; the Free Software Foundation
840
758
  # gives unlimited permission to copy and/or distribute it,
841
759
  # with or without modifications, as long as this notice is preserved.
842
760
 
843
- # serial 2
844
-
845
761
  # _AM_SUBST_NOTMAKE(VARIABLE)
846
762
  # ---------------------------
847
- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
763
+ # Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
848
764
  # This macro is traced by Automake.
849
765
  AC_DEFUN([_AM_SUBST_NOTMAKE])
850
766
 
851
- # AM_SUBST_NOTMAKE(VARIABLE)
852
- # ---------------------------
853
- # Public sister of _AM_SUBST_NOTMAKE.
854
- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
855
-
856
767
  # Check how to create a tarball. -*- Autoconf -*-
857
768
 
858
769
  # Copyright (C) 2004, 2005 Free Software Foundation, Inc.