memcached 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data.tar.gz.sig CHANGED
Binary file
data/BUG ADDED
@@ -0,0 +1,22 @@
1
+ Program received signal SIGINT, Interrupt.
2
+ 0x00007fff86ec39c6 in read ()
3
+ (gdb) bt
4
+ #0 0x00007fff86ec39c6 in read ()
5
+ #1 0x00000001001b043b in memcached_io_read (ptr=0x208915a00, buffer=0x7fff5fbfbc80, length=1, nread=0x7fff5fbfbb58) at memcached_io.c:108
6
+ #2 0x00000001001b0d9c in memcached_io_readline (ptr=0x208915a00, buffer_ptr=0x7fff5fbfbc80 "???_?", size=1024) at memcached_io.c:482
7
+ #3 0x00000001001b2fcc in textual_read_one_response (ptr=0x208915a00, buffer=0x7fff5fbfbc80 "???_?", buffer_length=1024, result=0x7fff5fbfc080) at memcached_response.c:208
8
+ #4 0x00000001001b2a2b in memcached_read_one_response (ptr=0x208915a00, buffer=0x7fff5fbfbc80 "???_?", buffer_length=1024, result=0x7fff5fbfc080) at memcached_response.c:31
9
+ #5 0x00000001001b1100 in memcached_purge (ptr=0x208915a00) at memcached_purge.c:56
10
+ #6 0x00000001001b0aa6 in io_flush (ptr=0x208915a00, error=0x7fff5fbfc2bc) at memcached_io.c:340
11
+ #7 0x00000001001b07bb in memcached_io_write (ptr=0x208915a00, buffer=0x1001bcee9, length=0, with_flush=1 '\001') at memcached_io.c:241
12
+ #8 0x00000001001ac8db in memcached_do (ptr=0x208915a00, command=0x1001bcee9, command_length=6, with_flush=1 '\001') at memcached_do.c:26
13
+ #9 0x00000001001b2516 in memcached_quit_server (ptr=0x208915a00, io_death=0 '\0') at memcached_quit.c:30
14
+ #10 0x00000001001b2673 in memcached_quit (ptr=0x102b1bb50) at memcached_quit.c:73
15
+ #11 0x00000001001aa704 in memcached_free (ptr=0x102b1bb50) at memcached.c:43
16
+ #12 0x0000000100038557 in rb_gc_call_finalizer_at_exit () at gc.c:2738
17
+ #13 0x000000010001be60 in ruby_finalize_1 () at eval.c:1603
18
+ #14 0x000000010002a09a in ruby_cleanup (exArg=<value temporarily unavailable, due to optimizations>) at eval.c:1641
19
+ #15 0x000000010002a1f9 in ruby_stop (ex=<value temporarily unavailable, due to optimizations>) at eval.c:1696
20
+ #16 0x00000001000319f4 in ruby_run () at eval.c:1717
21
+ #17 0x0000000100000994 in main (argc=<value temporarily unavailable, due to optimizations>, argv=<value temporarily unavailable, due to optimizations>, envp=<value temporarily unavailable, due to optimizations>) at main.c:48
22
+
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v1.2.2. Work around tcmalloc bug on OS X. Avoid circular reference in memcached_server_by_key().
2
+
1
3
  v1.2.1. Fix large allocation on error bug.
2
4
 
3
5
  v1.2. Clean up duplicated set_prefix_key API. Pipeline deletes and remove dead replication code. Apply prefix_key to binary protocol properly (tarrall). Add Memcached::Rails#exist? (ssoroka).
data/Manifest CHANGED
@@ -1,4 +1,5 @@
1
1
  BENCHMARKS
2
+ BUG
2
3
  CHANGELOG
3
4
  LICENSE
4
5
  Manifest
@@ -8,13 +9,15 @@ TODO
8
9
  ext/extconf-make.rb
9
10
  ext/extconf.rb
10
11
  ext/libmemcached-0.32.tar.gz
12
+ ext/libmemcached-1.patch
11
13
  ext/libmemcached-2.patch
12
14
  ext/libmemcached-3.patch
13
15
  ext/libmemcached-4.patch
14
16
  ext/libmemcached-5.patch
15
17
  ext/libmemcached-6.patch
16
18
  ext/libmemcached-7.patch
17
- ext/libmemcached.patch
19
+ ext/libmemcached-8.patch
20
+ ext/libmemcached-9.patch
18
21
  ext/rlibmemcached.i
19
22
  ext/rlibmemcached_wrap.c
20
23
  ext/sasl.patch
@@ -25,6 +28,7 @@ lib/memcached/exceptions.rb
25
28
  lib/memcached/experimental.rb
26
29
  lib/memcached/memcached.rb
27
30
  lib/memcached/rails.rb
31
+ lib/rlibmemcached.bundle.dSYM/Contents/Info.plist
28
32
  test/profile/benchmark.rb
29
33
  test/profile/c_profiler.rb
30
34
  test/profile/exercise.rb
@@ -47,13 +47,13 @@ def check_libmemcached
47
47
  $DEFLIBPATH = [] unless SOLARIS_32
48
48
 
49
49
  Dir.chdir(HERE) do
50
- if File.exist?("lib")
51
- puts "Libmemcached already configured; run 'rake clean' first if you need to reconfigure."
50
+ if File.exist?("libmemcached-0.32")
51
+ puts "Libmemcached already unpacked; run 'rake clean' first if you need to start from scratch."
52
52
  else
53
53
  system("rm -rf #{BUNDLE_PATH}") unless ENV['DEBUG'] or ENV['DEV']
54
54
  run("#{TAR_CMD} xzf #{BUNDLE} 2>&1", "Building libmemcached.")
55
55
 
56
- patch("libmemcached", "mark-dead behavior")
56
+ patch("libmemcached-1", "mark-dead behavior")
57
57
  patch("sasl", "SASL")
58
58
  patch("libmemcached-2", "get_from_last method")
59
59
  patch("libmemcached-3", "pipelined prepend and append")
@@ -61,12 +61,14 @@ def check_libmemcached
61
61
  patch("libmemcached-5", "get_len method")
62
62
  patch("libmemcached-6", "failure count bug")
63
63
  patch("libmemcached-7", "pipelined delete and unused replica code")
64
+ patch("libmemcached-8", "avoid strdup() to work around tcmalloc on OS X bug")
65
+ patch("libmemcached-9", "don't clone server_st by reference server_by_key()")
64
66
 
65
67
  run("touch -r #{BUNDLE_PATH}/m4/visibility.m4 #{BUNDLE_PATH}/configure.ac #{BUNDLE_PATH}/m4/pandora_have_sasl.m4", "Touching aclocal.m4 in libmemcached.")
68
+ end
66
69
 
67
- Dir.chdir(BUNDLE_PATH) do
68
- run("env CFLAGS='-fPIC #{$CFLAGS}' LDFLAGS='-fPIC #{$LDFLAGS}' ./configure --prefix=#{HERE} --without-memcached --disable-shared --disable-utils --disable-dependency-tracking #{$EXTRA_CONF} 2>&1", "Configuring libmemcached.")
69
- end
70
+ Dir.chdir(BUNDLE_PATH) do
71
+ run("env CFLAGS='-fPIC #{$CFLAGS}' LDFLAGS='-fPIC #{$LDFLAGS}' ./configure --prefix=#{HERE} --without-memcached --disable-shared --disable-utils --disable-dependency-tracking #{$EXTRA_CONF} 2>&1", "Configuring libmemcached.")
70
72
  end
71
73
 
72
74
  Dir.chdir(BUNDLE_PATH) do
@@ -0,0 +1,137 @@
1
+ diff -ru a/libmemcached-0.32/libmemcached/memcached_response.c b/libmemcached-0.32/libmemcached/memcached_response.c
2
+ --- a/libmemcached-0.32/libmemcached/memcached_response.c 2011-03-08 13:07:36.000000000 -0800
3
+ +++ b/libmemcached-0.32/libmemcached/memcached_response.c 2011-03-08 13:02:11.000000000 -0800
4
+ @@ -239,32 +239,19 @@
5
+ }
6
+ else if (buffer[1] == 'E') /* SERVER_ERROR */
7
+ {
8
+ - char *rel_ptr;
9
+ - char *startptr= buffer + 13, *endptr= startptr;
10
+ -
11
+ - while (*endptr != '\r' && *endptr != '\n') endptr++;
12
+ + memcached_server_error_reset(ptr);
13
+
14
+ - /*
15
+ - Yes, we could make this "efficent" but to do that we would need
16
+ - to maintain more state for the size of the buffer. Why waste
17
+ - memory in the struct, which is important, for something that
18
+ - rarely should happen?
19
+ - */
20
+ - rel_ptr= (char *)ptr->root->call_realloc(ptr->root,
21
+ - ptr->cached_server_error,
22
+ - (size_t) (endptr - startptr + 1));
23
+ -
24
+ - if (rel_ptr == NULL)
25
+ - {
26
+ - /* If we happened to have some memory, we just null it since we don't know the size */
27
+ - if (ptr->cached_server_error)
28
+ - ptr->cached_server_error[0]= 0;
29
+ - return MEMCACHED_SERVER_ERROR;
30
+ - }
31
+ - ptr->cached_server_error= rel_ptr;
32
+ + char *startptr= buffer + 13, *endptr= startptr;
33
+ + while (*endptr != '\r' && *endptr != '\n')
34
+ + endptr++;
35
+ + size_t err_len = (endptr - startptr + 1);
36
+ +
37
+ + ptr->cached_server_error = malloc(err_len);
38
+ + if (ptr->cached_server_error == NULL)
39
+ + return MEMCACHED_SERVER_ERROR;
40
+
41
+ - memcpy(ptr->cached_server_error, startptr, (size_t) (endptr - startptr));
42
+ - ptr->cached_server_error[endptr - startptr]= 0;
43
+ + strncpy(ptr->cached_server_error, startptr, err_len);
44
+ + ptr->cached_server_error[err_len - 1]= 0;
45
+ return MEMCACHED_SERVER_ERROR;
46
+ }
47
+ else if (buffer[1] == 'T')
48
+ diff -ru a/libmemcached-0.32/libmemcached/memcached_server.c b/libmemcached-0.32/libmemcached/memcached_server.c
49
+ --- a/libmemcached-0.32/libmemcached/memcached_server.c 2009-07-15 03:34:17.000000000 -0700
50
+ +++ b/libmemcached-0.32/libmemcached/memcached_server.c 2011-03-08 13:02:11.000000000 -0800
51
+ @@ -16,14 +16,14 @@
52
+ }
53
+ else
54
+ memset(ptr, 0, sizeof(memcached_server_st));
55
+ -
56
+ +
57
+ ptr->root= memc;
58
+
59
+ return ptr;
60
+ }
61
+
62
+ -memcached_server_st *memcached_server_create_with(memcached_st *memc, memcached_server_st *host,
63
+ - const char *hostname, unsigned int port,
64
+ +memcached_server_st *memcached_server_create_with(memcached_st *memc, memcached_server_st *host,
65
+ + const char *hostname, unsigned int port,
66
+ uint32_t weight, memcached_connection type)
67
+ {
68
+ host= memcached_server_create(memc, host);
69
+ @@ -52,9 +52,7 @@
70
+ void memcached_server_free(memcached_server_st *ptr)
71
+ {
72
+ memcached_quit_server(ptr, 0);
73
+ -
74
+ - if (ptr->cached_server_error)
75
+ - free(ptr->cached_server_error);
76
+ + memcached_server_error_reset(ptr);
77
+
78
+ if (ptr->address_info)
79
+ freeaddrinfo(ptr->address_info);
80
+ @@ -76,21 +74,24 @@
81
+ if (ptr == NULL)
82
+ return NULL;
83
+
84
+ - rv = memcached_server_create_with(ptr->root, clone,
85
+ + rv = memcached_server_create_with(ptr->root, clone,
86
+ ptr->hostname, ptr->port, ptr->weight,
87
+ ptr->type);
88
+ if (rv != NULL)
89
+ {
90
+ rv->cached_errno= ptr->cached_errno;
91
+ - if (ptr->cached_server_error)
92
+ - rv->cached_server_error= strdup(ptr->cached_server_error);
93
+ + if (ptr->cached_server_error) {
94
+ + size_t err_len = strlen(ptr->cached_server_error) + 1;
95
+ + rv->cached_server_error = malloc(err_len);
96
+ + strncpy(rv->cached_server_error, ptr->cached_server_error, err_len);
97
+ + }
98
+ }
99
+
100
+ return rv;
101
+
102
+ }
103
+
104
+ -memcached_return memcached_server_cursor(memcached_st *ptr,
105
+ +memcached_return memcached_server_cursor(memcached_st *ptr,
106
+ memcached_server_function *callback,
107
+ void *context,
108
+ unsigned int number_of_callbacks)
109
+ @@ -119,7 +120,7 @@
110
+ {
111
+ uint32_t server_key;
112
+
113
+ - *error= memcached_validate_key_length(key_length,
114
+ + *error= memcached_validate_key_length(key_length,
115
+ ptr->flags & MEM_BINARY_PROTOCOL);
116
+ unlikely (*error != MEMCACHED_SUCCESS)
117
+ return NULL;
118
+ @@ -144,13 +145,16 @@
119
+
120
+ const char *memcached_server_error(memcached_server_st *ptr)
121
+ {
122
+ - if (ptr)
123
+ + if (ptr->cached_server_error)
124
+ return ptr->cached_server_error;
125
+ - else
126
+ + else
127
+ return NULL;
128
+ }
129
+
130
+ void memcached_server_error_reset(memcached_server_st *ptr)
131
+ {
132
+ - ptr->cached_server_error[0]= 0;
133
+ + if (ptr->cached_server_error) {
134
+ + free(ptr->cached_server_error);
135
+ + ptr->cached_server_error = 0;
136
+ + }
137
+ }
@@ -0,0 +1,13 @@
1
+ diff -uwr a/libmemcached-0.32/libmemcached/memcached_server.c b/libmemcached-0.32/libmemcached/memcached_server.c
2
+ --- a/libmemcached-0.32/libmemcached/memcached_server.c 2011-03-13 11:49:57.000000000 -0700
3
+ +++ b/libmemcached-0.32/libmemcached/memcached_server.c 2011-03-13 21:35:17.000000000 -0700
4
+ @@ -139,8 +139,7 @@
5
+
6
+ server_key= memcached_generate_hash(ptr, key, key_length);
7
+
8
+ - return memcached_server_clone(NULL, &ptr->hosts[server_key]);
9
+ -
10
+ + return &ptr->hosts[server_key];
11
+ }
12
+
13
+ const char *memcached_server_error(memcached_server_st *ptr)
@@ -25,7 +25,6 @@
25
25
  %newobject memcached_clone;
26
26
  %newobject memcached_stat_get_value;
27
27
  // %newobject memcached_stat;
28
- %newobject memcached_server_by_key;
29
28
 
30
29
  // %trackobjects; // Doesn't fix any interesting leaks
31
30
 
@@ -11987,7 +11987,7 @@ _wrap_memcached_server_by_key(int argc, VALUE *argv, VALUE self) {
11987
11987
  arg3 = (size_t) RSTRING_LEN(argv[1]);
11988
11988
  }
11989
11989
  result = (memcached_server_st *)memcached_server_by_key(arg1,(char const *)arg2,arg3,arg4);
11990
- vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_memcached_server_st, SWIG_POINTER_OWN | 0 );
11990
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_memcached_server_st, 0 | 0 );
11991
11991
  if (SWIG_IsTmpObj(res4)) {
11992
11992
  vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_unsigned_SS_short((*arg4)));
11993
11993
  } else {
@@ -13,7 +13,7 @@ class Memcached
13
13
  BEHAVIORS = load_constants("MEMCACHED_BEHAVIOR_")
14
14
 
15
15
  BEHAVIOR_VALUES = {
16
- false => 0,
16
+ false => 0,
17
17
  true => 1
18
18
  }
19
19
 
@@ -66,13 +66,12 @@ class Memcached
66
66
  # Scoped values; still annoying
67
67
  when :hash then HASH_VALUES.invert[value]
68
68
  when :distribution then DISTRIBUTION_VALUES.invert[value]
69
- when *DIRECT_VALUE_BEHAVIORS then value
70
69
  else
71
- BEHAVIOR_VALUES.invert[value]
70
+ value
72
71
  end
73
72
  else
74
73
  value
75
74
  end
76
75
  end
77
-
78
- end
76
+
77
+ end
@@ -121,9 +121,13 @@ Please note that when <tt>:no_block => true</tt>, update methods do not raise on
121
121
 
122
122
  instance_eval { send(:extend, Experimental) } if options[:experimental_features]
123
123
 
124
+ # SASL requires binary protocol
124
125
  options[:binary_protocol] = true if options[:credentials]
125
126
 
126
- # Force :buffer_requests to use :no_block
127
+ # UDP requires noreply
128
+ options[:noreply] = true if options[:use_udp]
129
+
130
+ # Buffering requires non-blocking
127
131
  # FIXME This should all be wrapped up in a single :pipeline option.
128
132
  options[:no_block] = true if options[:buffer_requests]
129
133
 
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>English</string>
7
+ <key>CFBundleIdentifier</key>
8
+ <string>com.apple.xcode.dsym.rlibmemcached.bundle</string>
9
+ <key>CFBundleInfoDictionaryVersion</key>
10
+ <string>6.0</string>
11
+ <key>CFBundlePackageType</key>
12
+ <string>dSYM</string>
13
+ <key>CFBundleSignature</key>
14
+ <string>????</string>
15
+ <key>CFBundleShortVersionString</key>
16
+ <string>1.0</string>
17
+ <key>CFBundleVersion</key>
18
+ <string>1</string>
19
+ </dict>
20
+ </plist>
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{memcached}
5
- s.version = "1.2.1"
5
+ s.version = "1.2.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Evan Weaver"]
9
9
  s.cert_chain = ["/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem"]
10
- s.date = %q{2011-03-07}
10
+ s.date = %q{2011-03-14}
11
11
  s.description = %q{An interface to the libmemcached C client.}
12
12
  s.email = %q{}
13
13
  s.extensions = ["ext/extconf.rb"]
14
14
  s.extra_rdoc_files = ["BENCHMARKS", "CHANGELOG", "LICENSE", "README", "TODO", "lib/memcached.rb", "lib/memcached/behaviors.rb", "lib/memcached/exceptions.rb", "lib/memcached/experimental.rb", "lib/memcached/memcached.rb", "lib/memcached/rails.rb"]
15
- s.files = ["BENCHMARKS", "CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "TODO", "ext/extconf-make.rb", "ext/extconf.rb", "ext/libmemcached-0.32.tar.gz", "ext/libmemcached-2.patch", "ext/libmemcached-3.patch", "ext/libmemcached-4.patch", "ext/libmemcached-5.patch", "ext/libmemcached-6.patch", "ext/libmemcached-7.patch", "ext/libmemcached.patch", "ext/rlibmemcached.i", "ext/rlibmemcached_wrap.c", "ext/sasl.patch", "lib/memcached.rb", "lib/memcached/auth.rb", "lib/memcached/behaviors.rb", "lib/memcached/exceptions.rb", "lib/memcached/experimental.rb", "lib/memcached/memcached.rb", "lib/memcached/rails.rb", "test/profile/benchmark.rb", "test/profile/c_profiler.rb", "test/profile/exercise.rb", "test/profile/rb_profiler.rb", "test/profile/valgrind.rb", "test/setup.rb", "test/teardown.rb", "test/test_helper.rb", "test/unit/binding_test.rb", "test/unit/memcached_experimental_test.rb", "test/unit/memcached_test.rb", "test/unit/rails_test.rb", "memcached.gemspec"]
15
+ s.files = ["BENCHMARKS", "BUG", "CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "TODO", "ext/extconf-make.rb", "ext/extconf.rb", "ext/libmemcached-0.32.tar.gz", "ext/libmemcached-1.patch", "ext/libmemcached-2.patch", "ext/libmemcached-3.patch", "ext/libmemcached-4.patch", "ext/libmemcached-5.patch", "ext/libmemcached-6.patch", "ext/libmemcached-7.patch", "ext/libmemcached-8.patch", "ext/libmemcached-9.patch", "ext/rlibmemcached.i", "ext/rlibmemcached_wrap.c", "ext/sasl.patch", "lib/memcached.rb", "lib/memcached/auth.rb", "lib/memcached/behaviors.rb", "lib/memcached/exceptions.rb", "lib/memcached/experimental.rb", "lib/memcached/memcached.rb", "lib/memcached/rails.rb", "lib/rlibmemcached.bundle.dSYM/Contents/Info.plist", "test/profile/benchmark.rb", "test/profile/c_profiler.rb", "test/profile/exercise.rb", "test/profile/rb_profiler.rb", "test/profile/valgrind.rb", "test/setup.rb", "test/teardown.rb", "test/test_helper.rb", "test/unit/binding_test.rb", "test/unit/memcached_experimental_test.rb", "test/unit/memcached_test.rb", "test/unit/rails_test.rb", "memcached.gemspec"]
16
16
  s.homepage = %q{http://fauna.github.com/fauna/memcached/}
17
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Memcached", "--main", "README"]
18
18
  s.require_paths = ["lib", "ext"]
@@ -147,6 +147,13 @@ class Worker
147
147
  @i.times do
148
148
  @cache.server_by_key(@key1)
149
149
  end
150
+ when "server_error"
151
+ @i.times do
152
+ begin
153
+ @cache.set @key1, "I'm big" * 1000000
154
+ rescue
155
+ end
156
+ end
150
157
  else
151
158
  raise "No such method"
152
159
  end
@@ -1,3 +1,3 @@
1
1
  require "#{File.dirname(__FILE__)}/../setup"
2
2
 
3
- exec("valgrind --tool=memcheck --error-limit=no --undef-value-errors=no --leak-check=full --show-reachable=no --num-callers=15 --track-fds=yes --workaround-gcc296-bugs=yes --leak-resolution=med --max-stackframe=7304328 --dsymutil=yes ruby -r#{File.dirname(__FILE__)}/exercise.rb -e \"Worker.new(ENV['TEST'] || 'everything', 50, 'true').work\"")
3
+ exec("valgrind --tool=memcheck --error-limit=no --undef-value-errors=no --leak-check=full --show-reachable=no --num-callers=15 --track-fds=yes --workaround-gcc296-bugs=yes --leak-resolution=med --max-stackframe=7304328 --dsymutil=yes ruby -r#{File.dirname(__FILE__)}/exercise.rb -e \"Worker.new(ENV['TEST'] || 'everything', (ENV['LOOPS'] || 50).to_i, 'true').work\"")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memcached
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
- - 1
10
- version: 1.2.1
9
+ - 2
10
+ version: 1.2.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Evan Weaver
@@ -36,7 +36,7 @@ cert_chain:
36
36
  yZ0=
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2011-03-07 00:00:00 -08:00
39
+ date: 2011-03-14 00:00:00 -07:00
40
40
  default_executable:
41
41
  dependencies: []
42
42
 
@@ -60,6 +60,7 @@ extra_rdoc_files:
60
60
  - lib/memcached/rails.rb
61
61
  files:
62
62
  - BENCHMARKS
63
+ - BUG
63
64
  - CHANGELOG
64
65
  - LICENSE
65
66
  - Manifest
@@ -69,13 +70,15 @@ files:
69
70
  - ext/extconf-make.rb
70
71
  - ext/extconf.rb
71
72
  - ext/libmemcached-0.32.tar.gz
73
+ - ext/libmemcached-1.patch
72
74
  - ext/libmemcached-2.patch
73
75
  - ext/libmemcached-3.patch
74
76
  - ext/libmemcached-4.patch
75
77
  - ext/libmemcached-5.patch
76
78
  - ext/libmemcached-6.patch
77
79
  - ext/libmemcached-7.patch
78
- - ext/libmemcached.patch
80
+ - ext/libmemcached-8.patch
81
+ - ext/libmemcached-9.patch
79
82
  - ext/rlibmemcached.i
80
83
  - ext/rlibmemcached_wrap.c
81
84
  - ext/sasl.patch
@@ -86,6 +89,7 @@ files:
86
89
  - lib/memcached/experimental.rb
87
90
  - lib/memcached/memcached.rb
88
91
  - lib/memcached/rails.rb
92
+ - lib/rlibmemcached.bundle.dSYM/Contents/Info.plist
89
93
  - test/profile/benchmark.rb
90
94
  - test/profile/c_profiler.rb
91
95
  - test/profile/exercise.rb
metadata.gz.sig CHANGED
Binary file