nutcracker 0.4.0.16 → 0.4.1.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -3
  3. data/ext/nutcracker/ChangeLog +33 -8
  4. data/ext/nutcracker/Makefile.in +34 -21
  5. data/ext/nutcracker/README.md +61 -26
  6. data/ext/nutcracker/aclocal.m4 +34 -31
  7. data/ext/nutcracker/autom4te.cache/output.0 +1875 -1330
  8. data/ext/nutcracker/autom4te.cache/output.1 +1875 -1330
  9. data/ext/nutcracker/autom4te.cache/requests +232 -451
  10. data/ext/nutcracker/autom4te.cache/traces.0 +2256 -2129
  11. data/ext/nutcracker/autom4te.cache/traces.1 +73 -59
  12. data/ext/nutcracker/config.h.in +1 -2
  13. data/ext/nutcracker/config.h.in~ +333 -0
  14. data/ext/nutcracker/config/compile +1 -1
  15. data/ext/nutcracker/config/config.guess +13 -160
  16. data/ext/nutcracker/config/config.sub +25 -11
  17. data/ext/nutcracker/config/depcomp +1 -1
  18. data/ext/nutcracker/config/install-sh +170 -196
  19. data/ext/nutcracker/config/ltmain.sh +3509 -2018
  20. data/ext/nutcracker/config/missing +1 -1
  21. data/ext/nutcracker/configure +1874 -1329
  22. data/ext/nutcracker/configure.ac +3 -2
  23. data/ext/nutcracker/contrib/Makefile.in +18 -5
  24. data/ext/nutcracker/contrib/yaml-0.1.4/LICENSE +19 -0
  25. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.am +20 -0
  26. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.in +832 -0
  27. data/ext/nutcracker/contrib/yaml-0.1.4/README +27 -0
  28. data/ext/nutcracker/contrib/yaml-0.1.4/aclocal.m4 +1157 -0
  29. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +13342 -0
  30. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +14611 -0
  31. data/ext/nutcracker/{autom4te.cache → contrib/yaml-0.1.4/autom4te.cache}/output.2 +3465 -8761
  32. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +516 -0
  33. data/ext/nutcracker/{autom4te.cache/traces.2 → contrib/yaml-0.1.4/autom4te.cache/traces.0} +662 -698
  34. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +577 -0
  35. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +2721 -0
  36. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in +79 -0
  37. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +80 -0
  38. data/ext/nutcracker/contrib/yaml-0.1.4/config/compile +347 -0
  39. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.guess +1421 -0
  40. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.sub +1807 -0
  41. data/ext/nutcracker/contrib/yaml-0.1.4/config/depcomp +791 -0
  42. data/ext/nutcracker/contrib/yaml-0.1.4/config/install-sh +501 -0
  43. data/ext/nutcracker/contrib/yaml-0.1.4/config/ltmain.sh +11147 -0
  44. data/ext/nutcracker/contrib/yaml-0.1.4/config/missing +215 -0
  45. data/ext/nutcracker/contrib/yaml-0.1.4/config/test-driver +148 -0
  46. data/ext/nutcracker/contrib/yaml-0.1.4/configure +14611 -0
  47. data/ext/nutcracker/contrib/yaml-0.1.4/configure.ac +75 -0
  48. data/ext/nutcracker/contrib/yaml-0.1.4/doc/doxygen.cfg +222 -0
  49. data/ext/nutcracker/contrib/yaml-0.1.4/include/yaml.h +1971 -0
  50. data/ext/nutcracker/contrib/yaml-0.1.4/m4/libtool.m4 +8369 -0
  51. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltoptions.m4 +437 -0
  52. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltsugar.m4 +124 -0
  53. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltversion.m4 +23 -0
  54. data/ext/nutcracker/contrib/yaml-0.1.4/m4/lt~obsolete.m4 +99 -0
  55. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.am +4 -0
  56. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.in +600 -0
  57. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.c +1392 -0
  58. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.c +394 -0
  59. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.c +2329 -0
  60. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.c +432 -0
  61. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.c +1374 -0
  62. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.c +465 -0
  63. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.c +3570 -0
  64. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.c +141 -0
  65. data/ext/nutcracker/contrib/yaml-0.1.4/src/yaml_private.h +640 -0
  66. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.am +8 -0
  67. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.in +1083 -0
  68. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.c +800 -0
  69. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.c +1130 -0
  70. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.c +217 -0
  71. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.c +202 -0
  72. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.c +311 -0
  73. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.c +327 -0
  74. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.c +63 -0
  75. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.c +63 -0
  76. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.c +63 -0
  77. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-reader.c +354 -0
  78. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-version.c +29 -0
  79. data/ext/nutcracker/m4/libtool.m4 +1474 -1087
  80. data/ext/nutcracker/m4/ltoptions.m4 +90 -37
  81. data/ext/nutcracker/m4/ltsugar.m4 +4 -3
  82. data/ext/nutcracker/m4/ltversion.m4 +6 -6
  83. data/ext/nutcracker/m4/lt~obsolete.m4 +4 -3
  84. data/ext/nutcracker/man/nutcracker.8 +1 -1
  85. data/ext/nutcracker/notes/memcache.md +162 -0
  86. data/ext/nutcracker/notes/recommendation.md +10 -5
  87. data/ext/nutcracker/notes/redis.md +23 -9
  88. data/ext/nutcracker/scripts/nutcracker.init +10 -0
  89. data/ext/nutcracker/scripts/nutcracker.init.debian +83 -0
  90. data/ext/nutcracker/scripts/nutcracker.spec +36 -2
  91. data/ext/nutcracker/scripts/redis-check.sh +4 -0
  92. data/ext/nutcracker/src/Makefile.am +6 -1
  93. data/ext/nutcracker/src/Makefile.in +26 -12
  94. data/ext/nutcracker/src/event/Makefile.in +19 -6
  95. data/ext/nutcracker/src/hashkit/Makefile.in +19 -6
  96. data/ext/nutcracker/src/hashkit/nc_jenkins.c +1 -1
  97. data/ext/nutcracker/src/hashkit/nc_ketama.c +3 -3
  98. data/ext/nutcracker/src/nc.c +1 -1
  99. data/ext/nutcracker/src/nc_conf.c +67 -19
  100. data/ext/nutcracker/src/nc_conf.h +9 -4
  101. data/ext/nutcracker/src/nc_connection.c +35 -2
  102. data/ext/nutcracker/src/nc_connection.h +53 -47
  103. data/ext/nutcracker/src/nc_core.c +8 -1
  104. data/ext/nutcracker/src/nc_message.c +23 -7
  105. data/ext/nutcracker/src/nc_message.h +24 -1
  106. data/ext/nutcracker/src/nc_proxy.c +14 -3
  107. data/ext/nutcracker/src/nc_rbtree.c +1 -5
  108. data/ext/nutcracker/src/nc_request.c +58 -10
  109. data/ext/nutcracker/src/nc_response.c +27 -4
  110. data/ext/nutcracker/src/nc_server.c +33 -5
  111. data/ext/nutcracker/src/nc_server.h +10 -9
  112. data/ext/nutcracker/src/nc_string.h +17 -0
  113. data/ext/nutcracker/src/nc_util.c +5 -1
  114. data/ext/nutcracker/src/proto/Makefile.in +19 -6
  115. data/ext/nutcracker/src/proto/nc_memcache.c +76 -12
  116. data/ext/nutcracker/src/proto/nc_proto.h +9 -0
  117. data/ext/nutcracker/src/proto/nc_redis.c +400 -18
  118. data/lib/nutcracker.rb +1 -1
  119. data/lib/nutcracker/version.rb +1 -1
  120. metadata +61 -6
  121. data/ext/nutcracker/notes/memcache.txt +0 -123
@@ -1,14 +1,14 @@
1
1
  # Helper functions for option handling. -*- Autoconf -*-
2
2
  #
3
- # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
4
- # Inc.
3
+ # Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
4
+ # Foundation, Inc.
5
5
  # Written by Gary V. Vaughan, 2004
6
6
  #
7
7
  # This file is free software; the Free Software Foundation gives
8
8
  # unlimited permission to copy and/or distribute it, with or without
9
9
  # modifications, as long as this notice is preserved.
10
10
 
11
- # serial 7 ltoptions.m4
11
+ # serial 8 ltoptions.m4
12
12
 
13
13
  # This is to help aclocal find these macros, as it can't see m4_define.
14
14
  AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -29,7 +29,7 @@ m4_define([_LT_SET_OPTION],
29
29
  [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
30
30
  m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
31
31
  _LT_MANGLE_DEFUN([$1], [$2]),
32
- [m4_warning([Unknown $1 option `$2'])])[]dnl
32
+ [m4_warning([Unknown $1 option '$2'])])[]dnl
33
33
  ])
34
34
 
35
35
 
@@ -75,13 +75,15 @@ m4_if([$1],[LT_INIT],[
75
75
  dnl
76
76
  dnl If no reference was made to various pairs of opposing options, then
77
77
  dnl we run the default mode handler for the pair. For example, if neither
78
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
78
+ dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
79
79
  dnl archives by default:
80
80
  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
81
81
  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
82
82
  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
83
83
  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
84
- [_LT_ENABLE_FAST_INSTALL])
84
+ [_LT_ENABLE_FAST_INSTALL])
85
+ _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
86
+ [_LT_WITH_AIX_SONAME([aix])])
85
87
  ])
86
88
  ])# _LT_SET_OPTIONS
87
89
 
@@ -112,7 +114,7 @@ AU_DEFUN([AC_LIBTOOL_DLOPEN],
112
114
  [_LT_SET_OPTION([LT_INIT], [dlopen])
113
115
  AC_DIAGNOSE([obsolete],
114
116
  [$0: Remove this warning and the call to _LT_SET_OPTION when you
115
- put the `dlopen' option into LT_INIT's first parameter.])
117
+ put the 'dlopen' option into LT_INIT's first parameter.])
116
118
  ])
117
119
 
118
120
  dnl aclocal-1.4 backwards compatibility:
@@ -148,7 +150,7 @@ AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
148
150
  _LT_SET_OPTION([LT_INIT], [win32-dll])
149
151
  AC_DIAGNOSE([obsolete],
150
152
  [$0: Remove this warning and the call to _LT_SET_OPTION when you
151
- put the `win32-dll' option into LT_INIT's first parameter.])
153
+ put the 'win32-dll' option into LT_INIT's first parameter.])
152
154
  ])
153
155
 
154
156
  dnl aclocal-1.4 backwards compatibility:
@@ -157,9 +159,9 @@ dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
157
159
 
158
160
  # _LT_ENABLE_SHARED([DEFAULT])
159
161
  # ----------------------------
160
- # implement the --enable-shared flag, and supports the `shared' and
161
- # `disable-shared' LT_INIT options.
162
- # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
162
+ # implement the --enable-shared flag, and supports the 'shared' and
163
+ # 'disable-shared' LT_INIT options.
164
+ # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
163
165
  m4_define([_LT_ENABLE_SHARED],
164
166
  [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
165
167
  AC_ARG_ENABLE([shared],
@@ -172,14 +174,14 @@ AC_ARG_ENABLE([shared],
172
174
  *)
173
175
  enable_shared=no
174
176
  # Look at the argument we got. We use all the common list separators.
175
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
177
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
176
178
  for pkg in $enableval; do
177
- IFS="$lt_save_ifs"
179
+ IFS=$lt_save_ifs
178
180
  if test "X$pkg" = "X$p"; then
179
181
  enable_shared=yes
180
182
  fi
181
183
  done
182
- IFS="$lt_save_ifs"
184
+ IFS=$lt_save_ifs
183
185
  ;;
184
186
  esac],
185
187
  [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
@@ -211,9 +213,9 @@ dnl AC_DEFUN([AM_DISABLE_SHARED], [])
211
213
 
212
214
  # _LT_ENABLE_STATIC([DEFAULT])
213
215
  # ----------------------------
214
- # implement the --enable-static flag, and support the `static' and
215
- # `disable-static' LT_INIT options.
216
- # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
216
+ # implement the --enable-static flag, and support the 'static' and
217
+ # 'disable-static' LT_INIT options.
218
+ # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
217
219
  m4_define([_LT_ENABLE_STATIC],
218
220
  [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
219
221
  AC_ARG_ENABLE([static],
@@ -226,14 +228,14 @@ AC_ARG_ENABLE([static],
226
228
  *)
227
229
  enable_static=no
228
230
  # Look at the argument we got. We use all the common list separators.
229
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
231
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
230
232
  for pkg in $enableval; do
231
- IFS="$lt_save_ifs"
233
+ IFS=$lt_save_ifs
232
234
  if test "X$pkg" = "X$p"; then
233
235
  enable_static=yes
234
236
  fi
235
237
  done
236
- IFS="$lt_save_ifs"
238
+ IFS=$lt_save_ifs
237
239
  ;;
238
240
  esac],
239
241
  [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
@@ -265,9 +267,9 @@ dnl AC_DEFUN([AM_DISABLE_STATIC], [])
265
267
 
266
268
  # _LT_ENABLE_FAST_INSTALL([DEFAULT])
267
269
  # ----------------------------------
268
- # implement the --enable-fast-install flag, and support the `fast-install'
269
- # and `disable-fast-install' LT_INIT options.
270
- # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
270
+ # implement the --enable-fast-install flag, and support the 'fast-install'
271
+ # and 'disable-fast-install' LT_INIT options.
272
+ # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
271
273
  m4_define([_LT_ENABLE_FAST_INSTALL],
272
274
  [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
273
275
  AC_ARG_ENABLE([fast-install],
@@ -280,14 +282,14 @@ AC_ARG_ENABLE([fast-install],
280
282
  *)
281
283
  enable_fast_install=no
282
284
  # Look at the argument we got. We use all the common list separators.
283
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
285
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
284
286
  for pkg in $enableval; do
285
- IFS="$lt_save_ifs"
287
+ IFS=$lt_save_ifs
286
288
  if test "X$pkg" = "X$p"; then
287
289
  enable_fast_install=yes
288
290
  fi
289
291
  done
290
- IFS="$lt_save_ifs"
292
+ IFS=$lt_save_ifs
291
293
  ;;
292
294
  esac],
293
295
  [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
@@ -304,14 +306,14 @@ AU_DEFUN([AC_ENABLE_FAST_INSTALL],
304
306
  [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
305
307
  AC_DIAGNOSE([obsolete],
306
308
  [$0: Remove this warning and the call to _LT_SET_OPTION when you put
307
- the `fast-install' option into LT_INIT's first parameter.])
309
+ the 'fast-install' option into LT_INIT's first parameter.])
308
310
  ])
309
311
 
310
312
  AU_DEFUN([AC_DISABLE_FAST_INSTALL],
311
313
  [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
312
314
  AC_DIAGNOSE([obsolete],
313
315
  [$0: Remove this warning and the call to _LT_SET_OPTION when you put
314
- the `disable-fast-install' option into LT_INIT's first parameter.])
316
+ the 'disable-fast-install' option into LT_INIT's first parameter.])
315
317
  ])
316
318
 
317
319
  dnl aclocal-1.4 backwards compatibility:
@@ -319,11 +321,64 @@ dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
319
321
  dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
320
322
 
321
323
 
324
+ # _LT_WITH_AIX_SONAME([DEFAULT])
325
+ # ----------------------------------
326
+ # implement the --with-aix-soname flag, and support the `aix-soname=aix'
327
+ # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
328
+ # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
329
+ m4_define([_LT_WITH_AIX_SONAME],
330
+ [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
331
+ shared_archive_member_spec=
332
+ case $host,$enable_shared in
333
+ power*-*-aix[[5-9]]*,yes)
334
+ AC_MSG_CHECKING([which variant of shared library versioning to provide])
335
+ AC_ARG_WITH([aix-soname],
336
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
337
+ [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
338
+ [case $withval in
339
+ aix|svr4|both)
340
+ ;;
341
+ *)
342
+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])
343
+ ;;
344
+ esac
345
+ lt_cv_with_aix_soname=$with_aix_soname],
346
+ [AC_CACHE_VAL([lt_cv_with_aix_soname],
347
+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
348
+ with_aix_soname=$lt_cv_with_aix_soname])
349
+ AC_MSG_RESULT([$with_aix_soname])
350
+ if test aix != "$with_aix_soname"; then
351
+ # For the AIX way of multilib, we name the shared archive member
352
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
353
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
354
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
355
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
356
+ if test 64 = "${OBJECT_MODE-32}"; then
357
+ shared_archive_member_spec=shr_64
358
+ else
359
+ shared_archive_member_spec=shr
360
+ fi
361
+ fi
362
+ ;;
363
+ *)
364
+ with_aix_soname=aix
365
+ ;;
366
+ esac
367
+
368
+ _LT_DECL([], [shared_archive_member_spec], [0],
369
+ [Shared archive member basename, for filename based shared library versioning on AIX])dnl
370
+ ])# _LT_WITH_AIX_SONAME
371
+
372
+ LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
373
+ LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
374
+ LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
375
+
376
+
322
377
  # _LT_WITH_PIC([MODE])
323
378
  # --------------------
324
- # implement the --with-pic flag, and support the `pic-only' and `no-pic'
379
+ # implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
325
380
  # LT_INIT options.
326
- # MODE is either `yes' or `no'. If omitted, it defaults to `both'.
381
+ # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
327
382
  m4_define([_LT_WITH_PIC],
328
383
  [AC_ARG_WITH([pic],
329
384
  [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
@@ -334,19 +389,17 @@ m4_define([_LT_WITH_PIC],
334
389
  *)
335
390
  pic_mode=default
336
391
  # Look at the argument we got. We use all the common list separators.
337
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
392
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
338
393
  for lt_pkg in $withval; do
339
- IFS="$lt_save_ifs"
394
+ IFS=$lt_save_ifs
340
395
  if test "X$lt_pkg" = "X$lt_p"; then
341
396
  pic_mode=yes
342
397
  fi
343
398
  done
344
- IFS="$lt_save_ifs"
399
+ IFS=$lt_save_ifs
345
400
  ;;
346
401
  esac],
347
- [pic_mode=default])
348
-
349
- test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
402
+ [pic_mode=m4_default([$1], [default])])
350
403
 
351
404
  _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
352
405
  ])# _LT_WITH_PIC
@@ -359,7 +412,7 @@ AU_DEFUN([AC_LIBTOOL_PICMODE],
359
412
  [_LT_SET_OPTION([LT_INIT], [pic-only])
360
413
  AC_DIAGNOSE([obsolete],
361
414
  [$0: Remove this warning and the call to _LT_SET_OPTION when you
362
- put the `pic-only' option into LT_INIT's first parameter.])
415
+ put the 'pic-only' option into LT_INIT's first parameter.])
363
416
  ])
364
417
 
365
418
  dnl aclocal-1.4 backwards compatibility:
@@ -1,6 +1,7 @@
1
1
  # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
2
2
  #
3
- # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
3
+ # Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
4
+ # Foundation, Inc.
4
5
  # Written by Gary V. Vaughan, 2004
5
6
  #
6
7
  # This file is free software; the Free Software Foundation gives
@@ -33,7 +34,7 @@ m4_define([_lt_join],
33
34
  # ------------
34
35
  # Manipulate m4 lists.
35
36
  # These macros are necessary as long as will still need to support
36
- # Autoconf-2.59 which quotes differently.
37
+ # Autoconf-2.59, which quotes differently.
37
38
  m4_define([lt_car], [[$1]])
38
39
  m4_define([lt_cdr],
39
40
  [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
@@ -44,7 +45,7 @@ m4_define([lt_unquote], $1)
44
45
 
45
46
  # lt_append(MACRO-NAME, STRING, [SEPARATOR])
46
47
  # ------------------------------------------
47
- # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
48
+ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
48
49
  # Note that neither SEPARATOR nor STRING are expanded; they are appended
49
50
  # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
50
51
  # No SEPARATOR is output if MACRO-NAME was previously undefined (different
@@ -1,6 +1,6 @@
1
1
  # ltversion.m4 -- version numbers -*- Autoconf -*-
2
2
  #
3
- # Copyright (C) 2004 Free Software Foundation, Inc.
3
+ # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
4
4
  # Written by Scott James Remnant, 2004
5
5
  #
6
6
  # This file is free software; the Free Software Foundation gives
@@ -9,15 +9,15 @@
9
9
 
10
10
  # @configure_input@
11
11
 
12
- # serial 3337 ltversion.m4
12
+ # serial 4179 ltversion.m4
13
13
  # This file is part of GNU Libtool
14
14
 
15
- m4_define([LT_PACKAGE_VERSION], [2.4.2])
16
- m4_define([LT_PACKAGE_REVISION], [1.3337])
15
+ m4_define([LT_PACKAGE_VERSION], [2.4.6])
16
+ m4_define([LT_PACKAGE_REVISION], [2.4.6])
17
17
 
18
18
  AC_DEFUN([LTVERSION_VERSION],
19
- [macro_version='2.4.2'
20
- macro_revision='1.3337'
19
+ [macro_version='2.4.6'
20
+ macro_revision='2.4.6'
21
21
  _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
22
22
  _LT_DECL(, macro_revision, 0)
23
23
  ])
@@ -1,6 +1,7 @@
1
1
  # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
2
2
  #
3
- # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
3
+ # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
4
+ # Foundation, Inc.
4
5
  # Written by Scott James Remnant, 2004.
5
6
  #
6
7
  # This file is free software; the Free Software Foundation gives
@@ -11,7 +12,7 @@
11
12
 
12
13
  # These exist entirely to fool aclocal when bootstrapping libtool.
13
14
  #
14
- # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
15
+ # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
15
16
  # which have later been changed to m4_define as they aren't part of the
16
17
  # exported API, or moved to Autoconf or Automake where they belong.
17
18
  #
@@ -25,7 +26,7 @@
25
26
  # included after everything else. This provides aclocal with the
26
27
  # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
27
28
  # because those macros already exist, or will be overwritten later.
28
- # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
29
+ # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
29
30
  #
30
31
  # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
31
32
  # Yes, that means every name once taken will need to remain here until
@@ -39,7 +39,7 @@ Test configuration for syntax errors and exit.
39
39
  .BR \-D ", " \-\-describe-stats
40
40
  Print stats description and exit.
41
41
  .TP
42
- .BR \-v ", " \-\-verbosity=\fIN\fP
42
+ .BR \-v ", " \-\-verbose=\fIN\fP
43
43
  Set logging level to \fIN\fP. (default: 5, min: 0, max: 11)
44
44
  .TP
45
45
  .BR \-o ", " \-\-output=\fIfilename\fP
@@ -0,0 +1,162 @@
1
+ ## Memcache Command Support
2
+
3
+ ### Request
4
+
5
+ - Twemproxy implements only the memached ASCII commands
6
+ - Binary commands are currently unsupported
7
+
8
+ #### Ascii Storage Command
9
+
10
+ +-------------------+------------+--------------------------------------------------------------------------+
11
+ | Command | Supported? | Format |
12
+ +-------------------+------------+--------------------------------------------------------------------------+
13
+ | set | Yes | set <key> <flags> <expiry> <datalen> [noreply]\r\n<data>\r\n |
14
+ +-------------------+------------+--------------------------------------------------------------------------+
15
+ | add | Yes | add <key> <flags> <expiry> <datalen> [noreply]\r\n<data>\r\n |
16
+ +-------------------+------------+--------------------------------------------------------------------------+
17
+ | replace | Yes | replace <key> <flags> <expiry> <datalen> [noreply]\r\n<data>\r\n |
18
+ +-------------------+------------+--------------------------------------------------------------------------+
19
+ | append | Yes | append <key> <flags> <expiry> <datalen> [noreply]\r\n<data>\r\n |
20
+ +-------------------+------------+--------------------------------------------------------------------------+
21
+ | prepend | Yes | prepend <key> <flags> <expiry> <datalen> [noreply]\r\n<data>\r\n |
22
+ +-------------------+------------+--------------------------------------------------------------------------+
23
+ | cas | Yes | cas <key> <flags> <expiry> <datalen> <cas> [noreply]\r\n<data>\r\n |
24
+ +-------------------+------------+--------------------------------------------------------------------------+
25
+
26
+ * Where,
27
+ * <flags> - uint32_t : data specific client side flags
28
+ * <expiry> - uint32_t : expiration time (in seconds)
29
+ * <datalen> - uint32_t : size of the data (in bytes)
30
+ * <data> - uint8_t[]: data block
31
+ * <cas> - uint64_t
32
+
33
+ #### Ascii Retrival Command
34
+
35
+ +-------------------+------------+--------------------------------------------------------------------------+
36
+ | Command | Supported? | Format |
37
+ +-------------------+------------+--------------------------------------------------------------------------+
38
+ | get | Yes | get <key> [<key>]+\r\n |
39
+ +-------------------+------------+--------------------------------------------------------------------------+
40
+ | gets | Yes | gets <key> [<key>]+\r\n |
41
+ +-------------------+------------+--------------------------------------------------------------------------+
42
+
43
+ #### Ascii Delete
44
+
45
+ +-------------------+------------+--------------------------------------------------------------------------+
46
+ | Command | Supported? | Format |
47
+ +-------------------+------------+--------------------------------------------------------------------------+
48
+ | delete | Yes | delete <key> [noreply]\r\n |
49
+ +-------------------+------------+--------------------------------------------------------------------------+
50
+
51
+ #### Ascii Arithmetic Command
52
+
53
+ +-------------------+------------+--------------------------------------------------------------------------+
54
+ | Command | Supported? | Format |
55
+ +-------------------+------------+--------------------------------------------------------------------------+
56
+ | incr | Yes | incr <key> <value> [noreply]\r\n |
57
+ +-------------------+------------+--------------------------------------------------------------------------+
58
+ | decr | Yes | decr <key> <value> [noreply]\r\n |
59
+ +-------------------+------------+--------------------------------------------------------------------------+
60
+
61
+ * Where,
62
+ * <value> - uint64_t
63
+
64
+ #### Ascii Misc Command
65
+
66
+ +-------------------+------------+--------------------------------------------------------------------------+
67
+ | Command | Supported? | Format |
68
+ +-------------------+------------+--------------------------------------------------------------------------+
69
+ | set | Yes | touch <key> <expiry>[noreply]\r\n |
70
+ +-------------------+------------+--------------------------------------------------------------------------+
71
+ | quit | Yes | quit\r\n |
72
+ +-------------------+------------+--------------------------------------------------------------------------+
73
+ | flush_all | No | flush_all [<delay>] [noreply]\r\n |
74
+ +-------------------+------------+--------------------------------------------------------------------------+
75
+ | version | No | version\r\n |
76
+ +-------------------+------------+--------------------------------------------------------------------------+
77
+ | verbosity | No | verbosity <num> [noreply]\r\n |
78
+ +-------------------+------------+--------------------------------------------------------------------------+
79
+ | stats | No | stats\r\n |
80
+ +-------------------+------------+--------------------------------------------------------------------------+
81
+ | stats | No | stats <args>\r\n |
82
+ +-------------------+------------+--------------------------------------------------------------------------+
83
+
84
+ ### Response
85
+
86
+ #### Error Responses
87
+
88
+ ERROR\r\n
89
+ CLIENT_ERROR [error]\r\n
90
+ SERVER_ERROR [error]\r\n
91
+
92
+ Where,
93
+ - ERROR means client sent a non-existent command name
94
+ - CLIENT_ERROR means that command sent by the client does not conform to the protocol
95
+ - SERVER_ERROR means that there was an error on the server side that made processing of the command impossible
96
+
97
+ #### Storage Command Responses
98
+
99
+ STORED\r\n
100
+ NOT_STORED\r\n
101
+ EXISTS\r\n
102
+ NOT_FOUND\r\n
103
+
104
+ Where,
105
+ - STORED indicates success.
106
+ - NOT_STORED indicates the data was not stored because condition for an add or replace wasn't met.
107
+ - EXISTS indicates that the item you are trying to store with a cas has been modified since you last fetched it.
108
+ - NOT_FOUND indicates that the item you are trying to store with a cas does not exist.
109
+
110
+ #### Delete Command Responses
111
+
112
+ NOT_FOUND\r\n
113
+ DELETED\r\n
114
+
115
+ #### Retrival Responses
116
+
117
+ END\r\n
118
+ VALUE <key> <flags> <datalen> [<cas>]\r\n<data>\r\nEND\r\n
119
+ VALUE <key> <flags> <datalen> [<cas>]\r\n<data>\r\n[VALUE <key> <flags> <datalen> [<cas>]\r\n<data>]+\r\nEND\r\n
120
+
121
+ #### Arithmetic Responses
122
+
123
+ NOT_FOUND\r\n
124
+ <value>\r\n
125
+
126
+ Where,
127
+ - <value> - uint64_t : new key value after incr or decr operation
128
+
129
+ #### Touch Command Responses
130
+
131
+ NOT_FOUND\r\n
132
+ TOUCHED\r\n
133
+
134
+ #### Statistics Response
135
+
136
+ [STAT <name> <value>\r\n]+END\r\n
137
+
138
+ #### Misc Responses
139
+
140
+ OK\r\n
141
+ VERSION <version>\r\n
142
+
143
+ ### Notes
144
+
145
+ - set always creates mapping irrespective of whether it is present on not.
146
+ - add, adds only if the mapping is not present
147
+ - replace, only replaces if the mapping is present
148
+ - append and prepend command ignore flags and expiry values
149
+ - noreply instructs the server to not send the reply even if there is an error.
150
+ - decr of 0 is 0, while incr of UINT64_MAX is 0
151
+ - maximum length of the key is 250 characters
152
+ - expiry of 0 means that item never expires, though it could be evicted from the cache
153
+ - non-zero expiry is either unix time (# seconds since 01/01/1970) or,
154
+ offset in seconds from the current time (< 60 x 60 x 24 x 30 seconds = 30 days)
155
+ - expiry time is with respect to the server (not client)
156
+ - <datalen> can be zero and when it is, the <data> block is empty.
157
+ - Thoughts:
158
+ - ascii protocol is easier to debug - think using strace or tcpdump to see
159
+ protocol on the wire, Or using telnet or netcat or socat to build memcache
160
+ requests and responses
161
+ http://stackoverflow.com/questions/2525188/are-binary-protocols-dead
162
+ - http://news.ycombinator.com/item?id=1712788