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.
- checksums.yaml +4 -4
- data/Rakefile +3 -3
- data/ext/nutcracker/ChangeLog +33 -8
- data/ext/nutcracker/Makefile.in +34 -21
- data/ext/nutcracker/README.md +61 -26
- data/ext/nutcracker/aclocal.m4 +34 -31
- data/ext/nutcracker/autom4te.cache/output.0 +1875 -1330
- data/ext/nutcracker/autom4te.cache/output.1 +1875 -1330
- data/ext/nutcracker/autom4te.cache/requests +232 -451
- data/ext/nutcracker/autom4te.cache/traces.0 +2256 -2129
- data/ext/nutcracker/autom4te.cache/traces.1 +73 -59
- data/ext/nutcracker/config.h.in +1 -2
- data/ext/nutcracker/config.h.in~ +333 -0
- data/ext/nutcracker/config/compile +1 -1
- data/ext/nutcracker/config/config.guess +13 -160
- data/ext/nutcracker/config/config.sub +25 -11
- data/ext/nutcracker/config/depcomp +1 -1
- data/ext/nutcracker/config/install-sh +170 -196
- data/ext/nutcracker/config/ltmain.sh +3509 -2018
- data/ext/nutcracker/config/missing +1 -1
- data/ext/nutcracker/configure +1874 -1329
- data/ext/nutcracker/configure.ac +3 -2
- data/ext/nutcracker/contrib/Makefile.in +18 -5
- data/ext/nutcracker/contrib/yaml-0.1.4/LICENSE +19 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.am +20 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.in +832 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/README +27 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/aclocal.m4 +1157 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +13342 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +14611 -0
- data/ext/nutcracker/{autom4te.cache → contrib/yaml-0.1.4/autom4te.cache}/output.2 +3465 -8761
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +516 -0
- data/ext/nutcracker/{autom4te.cache/traces.2 → contrib/yaml-0.1.4/autom4te.cache/traces.0} +662 -698
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +577 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +2721 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in +79 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/compile +347 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/config.guess +1421 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/config.sub +1807 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/depcomp +791 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/install-sh +501 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/ltmain.sh +11147 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/missing +215 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/test-driver +148 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/configure +14611 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/configure.ac +75 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/doxygen.cfg +222 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/include/yaml.h +1971 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/libtool.m4 +8369 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltoptions.m4 +437 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltsugar.m4 +124 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltversion.m4 +23 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/lt~obsolete.m4 +99 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.am +4 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.in +600 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/api.c +1392 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.c +394 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.c +2329 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.c +432 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.c +1374 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.c +465 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.c +3570 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.c +141 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/yaml_private.h +640 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.am +8 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.in +1083 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.c +800 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.c +1130 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.c +217 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.c +202 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.c +311 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.c +327 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.c +63 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.c +63 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.c +63 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-reader.c +354 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-version.c +29 -0
- data/ext/nutcracker/m4/libtool.m4 +1474 -1087
- data/ext/nutcracker/m4/ltoptions.m4 +90 -37
- data/ext/nutcracker/m4/ltsugar.m4 +4 -3
- data/ext/nutcracker/m4/ltversion.m4 +6 -6
- data/ext/nutcracker/m4/lt~obsolete.m4 +4 -3
- data/ext/nutcracker/man/nutcracker.8 +1 -1
- data/ext/nutcracker/notes/memcache.md +162 -0
- data/ext/nutcracker/notes/recommendation.md +10 -5
- data/ext/nutcracker/notes/redis.md +23 -9
- data/ext/nutcracker/scripts/nutcracker.init +10 -0
- data/ext/nutcracker/scripts/nutcracker.init.debian +83 -0
- data/ext/nutcracker/scripts/nutcracker.spec +36 -2
- data/ext/nutcracker/scripts/redis-check.sh +4 -0
- data/ext/nutcracker/src/Makefile.am +6 -1
- data/ext/nutcracker/src/Makefile.in +26 -12
- data/ext/nutcracker/src/event/Makefile.in +19 -6
- data/ext/nutcracker/src/hashkit/Makefile.in +19 -6
- data/ext/nutcracker/src/hashkit/nc_jenkins.c +1 -1
- data/ext/nutcracker/src/hashkit/nc_ketama.c +3 -3
- data/ext/nutcracker/src/nc.c +1 -1
- data/ext/nutcracker/src/nc_conf.c +67 -19
- data/ext/nutcracker/src/nc_conf.h +9 -4
- data/ext/nutcracker/src/nc_connection.c +35 -2
- data/ext/nutcracker/src/nc_connection.h +53 -47
- data/ext/nutcracker/src/nc_core.c +8 -1
- data/ext/nutcracker/src/nc_message.c +23 -7
- data/ext/nutcracker/src/nc_message.h +24 -1
- data/ext/nutcracker/src/nc_proxy.c +14 -3
- data/ext/nutcracker/src/nc_rbtree.c +1 -5
- data/ext/nutcracker/src/nc_request.c +58 -10
- data/ext/nutcracker/src/nc_response.c +27 -4
- data/ext/nutcracker/src/nc_server.c +33 -5
- data/ext/nutcracker/src/nc_server.h +10 -9
- data/ext/nutcracker/src/nc_string.h +17 -0
- data/ext/nutcracker/src/nc_util.c +5 -1
- data/ext/nutcracker/src/proto/Makefile.in +19 -6
- data/ext/nutcracker/src/proto/nc_memcache.c +76 -12
- data/ext/nutcracker/src/proto/nc_proto.h +9 -0
- data/ext/nutcracker/src/proto/nc_redis.c +400 -18
- data/lib/nutcracker.rb +1 -1
- data/lib/nutcracker/version.rb +1 -1
- metadata +61 -6
- 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
|
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
|
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
|
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
|
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
|
-
|
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
|
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
|
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
|
161
|
-
#
|
162
|
-
# DEFAULT is either
|
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
|
177
|
+
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
|
176
178
|
for pkg in $enableval; do
|
177
|
-
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
|
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
|
215
|
-
#
|
216
|
-
# DEFAULT is either
|
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
|
231
|
+
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
|
230
232
|
for pkg in $enableval; do
|
231
|
-
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
|
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
|
269
|
-
# and
|
270
|
-
# DEFAULT is either
|
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
|
285
|
+
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
|
284
286
|
for pkg in $enableval; do
|
285
|
-
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
|
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
|
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
|
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
|
379
|
+
# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
|
325
380
|
# LT_INIT options.
|
326
|
-
# MODE is either
|
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
|
392
|
+
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
|
338
393
|
for lt_pkg in $withval; do
|
339
|
-
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
|
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
|
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
|
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
|
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
|
12
|
+
# serial 4179 ltversion.m4
|
13
13
|
# This file is part of GNU Libtool
|
14
14
|
|
15
|
-
m4_define([LT_PACKAGE_VERSION], [2.4.
|
16
|
-
m4_define([LT_PACKAGE_REVISION], [
|
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.
|
20
|
-
macro_revision='
|
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
|
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 ", " \-\-
|
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
|