GithubHelp home page GithubHelp logo

arthurnn / memcached Goto Github PK

View Code? Open in Web Editor NEW
431.0 12.0 124.0 14.79 MB

A Ruby interface to the libmemcached C client

License: Academic Free License v3.0

Ruby 77.22% C 21.36% Dockerfile 1.42%
memcached ruby

memcached's Introduction

memcached

An interface to the libmemcached C client. Build Status

License

Copyright 2009-2013 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file. Portions copyright 2007-2009 TangentOrg, Brian Aker, licensed under the BSD license, and used with permission.

Features

  • clean API
  • robust access to all memcached features
  • SASL support for the binary protocol
  • multiple hashing modes, including consistent hashing
  • ludicrous speed, including optional pipelined IO with no_reply

The memcached library wraps the pure-C libmemcached client via SWIG.

Installation

You need Ruby 1.8.7 or Ruby 1.9.2. Other versions may work, but are not guaranteed. You also need the libsasl2-dev and gettext libraries, which should be provided through your system's package manager.

Install the gem: sudo gem install memcached --no-rdoc --no-ri

Usage

Start a local networked memcached server: $ memcached -p 11211 &

Now, in Ruby, require the library and instantiate a Memcached object at a global level:

require 'memcached'
$cache = Memcached::Client.new("localhost:11211")

Now you can set things and get things:

value = 'hello'
$cache.set 'test', value
$cache.get 'test' #=> "hello"

You can set with an expiration timeout:

value = 'hello'
$cache.set 'test', value, 1
sleep(2)
$cache.get 'test' #=> nil

You can get multiple values at once:

value = 'hello'
$cache.set 'test', value
$cache.set 'test2', value
$cache.get ['test', 'test2', 'missing']
  #=> {"test" => "hello", "test2" => "hello"}

You can set a counter and increment it. Note that you must initialize it with an integer, encoded as an unmarshalled ASCII string:

start = 1
$cache.set 'counter', start.to_s, 0, false
$cache.increment 'counter' #=> 2
$cache.increment 'counter' #=> 3
$cache.get('counter', false).to_i #=> 3

You can get some server stats:

$cache.stats #=> {..., :bytes_written=>[62], :version=>["1.2.4"] ...}

Rails 3 and 4

Use memcached_store gem to integrate ActiveSupport cache store and memcached gem

Pipelining

Pipelining updates is extremely effective in memcached, leading to more than 25x write throughput than the default settings. Use the following options to enable it:

:no_block => true,
:buffer_requests => true,
:noreply => true,
:binary_protocol => false

Currently #append, #prepend, #set, and #delete are pipelined. Note that when you perform a read, all pending writes are flushed to the servers.

Threading

memcached is threadsafe, but each thread requires its own Memcached instance. Create a global Memcached, and then call Memcached#clone each time you spawn a thread.

thread = Thread.new do
  cache = $cache.clone
  # Perform operations on cache, not $cache
  cache.set 'example', 1
  cache.get 'example'
end

# Join the thread so that exceptions don't get lost
thread.join

Legacy applications

There is a compatibility wrapper for legacy applications called Memcached::Rails.

Benchmarks

memcached, correctly configured, is at least twice as fast as memcache-client and dalli. See link:BENCHMARKS for details.

Reporting problems

The support forum is here.

Patches and contributions are very welcome. Please note that contributors are required to assign copyright for their additions to Cloudburst, LLC.

Further resources

memcached's People

Contributors

arthurnn avatar avsej avatar bierbaum avatar bitbckt avatar casperisfine avatar ccocchi avatar defunkt avatar dylanahsmith avatar evan avatar evanphx avatar fbogsany avatar gcampbell avatar grosser avatar ianroddis avatar jason-o-matic avatar kostya avatar mistydemeo avatar mmozuras avatar nicolasleger avatar packagethief avatar rgbenson avatar ryancrum avatar silvamerica avatar ssoroka avatar tmm1 avatar tomhughes avatar vandrijevik avatar vmg avatar wadey avatar yury avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

memcached's Issues

Memcached#stats problem with binary protocol

We're running memcached 1.4.4 and connecting with Memcached 0.18.0 on Ubuntu Server 9.04. We're experiencing an issue with the Memcached#stats call and the binary protocol.

When we construct the the connection with the binary protocol enabled and attempt a stats call an exception is raised:

# servers is a list of 6 servers
cache = Memcached.new(servers, :binary_protocol => true)
cache.stats
# => Memcached::SomeErrorsWereReported: Error getting stats

stat_struct, ret = Lib.memcached_stat(@struct, "") on line 385 is returning the error code 19.

However, without the :binary_protocol => true option the stats for all 6 servers are returned as expected.

Install fails on RHEL6, v1.2.7

Version 1.2.7 fails to install on RHEL6.1. Version 1.2.6 installs fine. Output of build failure and gem_make.out at https://gist.github.com/868793135b0d8db77c70

Libraries and devel headers are installed for sasl, libmemcache, and memcache:

[vstsbx01:~] root# rpm -qa|egrep 'sasl|memcac'|sort
cyrus-sasl-2.1.23-8.el6.x86_64
cyrus-sasl-devel-2.1.23-8.el6.x86_64
cyrus-sasl-gssapi-2.1.23-8.el6.x86_64
cyrus-sasl-lib-2.1.23-8.el6.x86_64
cyrus-sasl-plain-2.1.23-8.el6.x86_64
libmemcached-0.31-1.1.el6.x86_64
libmemcached-devel-0.31-1.1.el6.x86_64
memcached-1.4.4-3.el6.x86_64
memcached-devel-1.4.4-3.el6.x86_64

random jumps in private memory usage with 0.19.x and passenger

We're seeing a very strange memory characteristics in memcached 0.19.x releases with Passenger. The private memory of passenger processes will randomly jump in large increments (dozens of megabytes), while the total VMSize only grows slightly.

Here's a graph showing how rolling back to 0.18.0 drastically reduced memory usage of our Passenger processes.

annotated memory usage chart

(The rise and fall of memory usage you see in the app servers running 0.19.2 in that graph is a result of a reaper script we're using to kill passenger processes that leak too much memory)

I'm wondering if anyone is seeing similar behavior, or if this is specific to my environment. We're running:

  • Ubuntu 8.10
  • ruby 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2010.01
  • memcached 1.4.2-1
  • libsasl2-dev 2.1.22.dfsg1-21ubuntu2.1
  • Passenger 2.2.11

I'm planning to take a hard look at this today, as I'd love to get the retry behavior included in 0.19.3. Initial tests of 0.19.3 show that it has the same strange memory characteristics. Bummer.

A couple questions:

  • Are there any changes that know of between 0.18.0 and 0.19.2 that would have affected COW-friendly ruby interpreters?
  • If you're not seeing these memory characteristics in your environment, what version of the sasl headers are you using? The sasl-related commits are an initial suspect in this hunt because they amount for a good chunk of the changes between 0.18.0 and 0.19.2.

Anyway, I'll be staring here for most of the rest of the day, trying to track this down. :) Thanks for any help/insight you might have.

Passing a float ttl value results in undefined method `tv_sec'

Float ttl values result from using Time math to produce a ttl value representing a fixed point in time. Sometimes this is necessary when two related keys, generated at different times, should expire at the same time. It's unlikely that anyone would ever intend to pass a float so converting it to an int seems to preserve the user's intention without requiring a lot of guard logic in the calling application.

I can understand if the reaction is to preserve 1:1 mapping between the ruby and C lib as strictly as possible but I've prepared a patch anyway. Perhaps there's a better approach than checking directly for Float-yness but I wasn't sure if it was safe to blindly call #to_i.
http://github.com/Viximo/memcached/commit/6a7d473018fe13084376c180474452b880a38160

if gem install fails once, it will continue to fail, even if the problem is fixed

If gem install fails on this gem (e.g. missing sasl2 devel libraries), correcting the original problem and reinstalling the gem will always fail because the patches against memcached don't apply cleanly and extconf.rb barfs. You have to delete the entire partially-build gem directory and reinstall for things to work. It would be better if extconf.rb either didn't try to apply the patches again, or detected the already-applied case and didn't abort.

0.19 broken on ubuntu

When installing the latest gem (0.19) on ubuntu 9.04 (32bits)

make
cc -I. -I/usr/lib/ruby/1.8/i486-linux -I/usr/lib/ruby/1.8/i486-linux -I. -fPIC -I/usr/lib/ruby/gems/1.8/gems/memcached-0.19/ext/include -L/usr/lib/ruby/gems/1.8/gems/memcached-0.19/ext/lib -fno-strict-aliasing -g -g -O2 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -c rlibmemcached_wrap.c
rlibmemcached_wrap.c: In function โ€˜_wrap_MemcachedSt_sasl_callbacks_setโ€™:
rlibmemcached_wrap.c:6700: error: โ€˜sasl_callback_tโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:6700: error: (Each undeclared identifier is reported only once
rlibmemcached_wrap.c:6700: error: for each function it appears in.)
rlibmemcached_wrap.c:6700: error: โ€˜arg2โ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:6700: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c:6718: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c:6719: error: โ€˜struct memcached_stโ€™ has no member named โ€˜sasl_callbacksโ€™
...
rlibmemcached_wrap.c:12153: error: โ€˜sasl_callback_tโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:12153: error: โ€˜resultโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:12164: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c: In function โ€˜Init_rlibmemcachedโ€™:
rlibmemcached_wrap.c:13316: error: โ€˜SASL_OKโ€™ undeclared (first use in this function)
make: *** [rlibmemcached_wrap.o] Error 1

It works fine on openSUSE 11.1 & on Snow Leopard.

Older versions of the gem (0.18) don't have the problem.

Suggestion for README

It would be helpful to point people to the COMPATIBILITY file for figuring out which version of libmemcached to install instead of having it in the README. The current suggestion in the README is to use libmemcached 0.25, but the most recent gem doesn't work with it.

Just a suggestion to DRY up the documentation and help prevent installation issues. :)

Different identification of Snow Leopard

My SL doesn't say its Darwin is 10.0 but only 10:

irb(main):004:0> Config::CONFIG['host_os']
=> "darwin10"

Therefore your regex in extconf.rb won't match it; therefore it'll compile for the wrong platform.

Fixed the regex into /darwin10*/ and then it worked.

Install fails on FreeBSD8

Installation is failing on FreeBSD, as it seems there are some "linuxisms" in the build instructions.

The -Z option to patch is not understood on any of the BSD systems -- this is a linux only extension. In general, if the system is BSD, the core tools and libraries are not linux versions. Generic arguments should be used, or in the case of issues like 'make', the appropriate alternative checked for -- e.g. on FreeBSD make is BSD make, and GNU make is called 'gmake'.

"sudo gem install memcache" starts out with a failure here:

sudo gem install memcache
Password:
Building native extensions. This could take a while...
ERROR: Error installing memcache:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb
Building libmemcached.

After which the configure runs and all the 'checking' lines are printed.. then towards the end we come to:

make all-recursive
Making all in docs
(a bunch of symlinks are created)
make: don't know how to make .pop. Stop
*** Error code 1

Personally I think it would have been better to leave libmemcached out of this -- the version already on the system (0.44_1) works fine, and having it in a gem simply defeats the "purpose" behind all the system package managers like FreeBSD's ports, yum, gentoo's emerge, etc.

Build libmemcached without memcached dependency

It would be useful to build libmemcached without the memached dependency, since it is not strictly required.

To do so, we would just append --without-memcached to the list of configure options in extconf.rb.

syntax error in memcached-0.14/lib/memcached/exceptions.rb:64

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'memcached'
Warning: libmemcached 0.26 suggested; you have 0.30.
SyntaxError: (eval):1: compile error
(eval):1: syntax error, unexpected '<', expecting tCOLON2 or '[' or '.'
class GibberishReturned! < Error; self; end
                      ^
(eval):1: syntax error, unexpected kEND, expecting $end
class GibberishReturned! < Error; self; end
                                       ^
    from /usr/lib/ruby/gems/1.8/gems/memcached-0.14/lib/memcached/exceptions.rb:64
    from /usr/lib/ruby/gems/1.8/gems/memcached-0.14/lib/memcached/exceptions.rb:62:in `eval'
    from /usr/lib/ruby/gems/1.8/gems/memcached-0.14/lib/memcached/exceptions.rb:64
    from /usr/lib/ruby/gems/1.8/gems/memcached-0.14/lib/memcached/exceptions.rb:62:in `times'
    from /usr/lib/ruby/gems/1.8/gems/memcached-0.14/lib/memcached/exceptions.rb:62
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /usr/lib/ruby/gems/1.8/gems/memcached-0.14/lib/memcached.rb:29
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
    from (irb):2

I fixed this editing memcached-0.14/lib/memcached/exceptions.rb on the line 64
before:

exception_class = eval("class #{camelize(description)} < Error; self; end")

after:

exception_class = eval("class #{camelize(description).chomp("!")} < Error; self; end")

hope it helps.

1.2.6 fails to build with rubinius HEAD

$ rvm list

rvm rubies

=> rbx-head-nhydra [ x86_64 ]

$ ruby -v
rubinius 2.0.0dev (1.8.7 3586083f yyyy-mm-dd JI) [x86_64-apple-darwin10.7.0]

'bundle install' output:

Installing memcached (1.2.6) with native extensions An exception occurred running /Users/ralph/.rvm/gems/rbx-head-nhydra/bin/bundle
ERROR: Failed to build gem native extension.

    /Users/ralph/.rvm/rubies/rbx-head-nhydra/bin/rbx extconf.rb 

Libmemcached already unpacked; run 'rake clean' first if you need to start from scratch.
creating Makefile

make
gcc -I. -I/Users/ralph/.rvm/rubies/rbx-head-nhydra/include -I/Users/ralph/.rvm/rubies/rbx-head-nhydra/include -I. -fPIC -I/Users/ralph/.rvm/gems/rbx-head-nhydra/gems/memcached-1.2.6/ext/include -L/Users/ralph/.rvm/gems/rbx-head-nhydra/gems/memcached-1.2.6/ext/lib -ggdb3 -O2 -fPIC -ggdb3 -O2 -fPIC -Os -c rlibmemcached_wrap.c
rlibmemcached_wrap.c: In function โ€˜rb_str_new_by_refโ€™:
rlibmemcached_wrap.c:2258: error: โ€˜strโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:2258: error: (Each undeclared identifier is reported only once
rlibmemcached_wrap.c:2258: error: for each function it appears in.)
rlibmemcached_wrap.c:2258: error: expected expression before โ€˜structโ€™
make: *** [rlibmemcached_wrap.o] Error 1

SASL support should be optional

I don't want to have to install Cyrus SASL on each of my servers just to support a Ruby memcache gem. It doesn't make sense, especially since memcache's big advantage is its simplicity and its light weight.

Symbol not found: _memcached_free (LoadError)

Getting the following error on load:

/Users/scott/.rvm/gems/ruby-1.8.7-p352@global/gems/memcached-1.2.7.1/lib/rlibmemcached.bundle: dlopen(/Users/scott/.rvm/gems/ruby-1.8.7-p352@global/gems/memcached-1.2.7.1/lib/rlibmemcached.bundle, 9): Symbol not found: _memcached_free (LoadError) Referenced from: /Users/scott/.rvm/gems/ruby-1.8.7-p352@global/gems/memcached-1.2.7.1/lib/rlibmemcached.bundle Expected in: flat namespace in /Users/scott/.rvm/gems/ruby-1.8.7-p352@global/gems/memcached-1.2.7.1/lib/rlibmemcached.bundle - /Users/scott/.rvm/gems/ruby-1.8.7-p352@global/gems/memcached-1.2.7.1/lib/rlibmemcached.bundle

As you can see, this is using ruby-1.8.7-p352 with rvm on OS X 10.7 (Lion).

memcached 1.4.5 is installed via homebrew. Tried with and without --enable-sasl.

:expires_in

Does this in the rails view cache "a_key", :expires_in => 10.minutes do ... end work properly in memcached?

Memcached#stats problem with binary protocol together with no_block options

bug which is described by by codyfauser in July 27, 2010 still alive.

Just installed memcached 1.0.2. The following causes memcached to block forever:

m = Memcached.new("localhost:11211", :no_block => true, :binary_protocol => true)
m.stats

The stats call works correctly with either :no_block => true or :binary_protocol => true, but it hangs forever when both are enabled.

Marshal vs Yajl

Hey Evan,
Based on some benchmarks I've done, and the Yajl page, it seems that Yajl is considerably faster than Marshal. Have you looked at replacing Marshal with Yajl? If so, what are your thoughts on that?

(the Yajl gem can be found here: https://github.com/brianmario/yajl-ruby)

Thanks,
Paul

Bump libmemcached

It hasn't been upgraded in a year, and some of the stuff in their changelog looks compelling.

Won't link against sasl

http://gist.github.com/583325

I originally tried with cyrus-sasl-2.1.23 with the same result. Some package versions:

app-shells/bash: 4.0_p37
dev-java/java-config: 2.1.10
dev-lang/python: 2.6.5-r3, 3.1.2-r4
sys-apps/baselayout: 2.0.1
sys-apps/openrc: 0.6.3
sys-apps/sandbox: 1.6-r2
sys-devel/autoconf: 2.65
sys-devel/automake: 1.7.9-r2, 1.11.1
sys-devel/binutils: 2.20.1-r1
sys-devel/gcc: 4.3.4, 4.4.3-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool: 2.2.6b
sys-devel/make: 3.81-r2
virtual/os-headers: 2.6.30-r1

compile error in memcached gem

Greetings Even,

We are looking to use the memcached ruby gem that you wrote to help with performance. We encountered this compilation bug when we attempted to install the gem.

Thoughts / ideas?

Actions taken:

  1. clean EC2 instance US-West: ami-e32273a6 (CentOS 5.4) m1.small (32 bit)
  2. compiled and installed: libevent-1.4.13-stable
  3. compiled and installed: memcached-1.4.5
  4. created /etc/ld.so.conf.d/memcached.conf 1 line of content: /usr/local/lib
  5. gem install memcached

Skipping a lot of compiling information; this was the error we received:

creating Makefile

make
gcc -I. -I/usr/lib/ruby/1.8/i386-linux -I/usr/lib/ruby/1.8/i386-linux -I. -fPIC -I/usr/lib/ruby/gems/1.8/gems/memcached-0.19.2/ext/include -L/usr/lib/ruby/gems/1.8/gems/memcached-0.19.2/ext/lib -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -fno-strict-aliasing -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -fno-strict-aliasing -fPIC -c rlibmemcached_wrap.c
rlibmemcached_wrap.c: In function '_wrap_MemcachedSt_sasl_callbacks_set':
rlibmemcached_wrap.c:6669: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: (Each undeclared identifier is reported only once
rlibmemcached_wrap.c:6669: error: for each function it appears in.)
rlibmemcached_wrap.c:6669: error: 'arg2' undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: expected expression before ')' token
rlibmemcached_wrap.c:6687: error: expected expression before ')' token
rlibmemcached_wrap.c:6688: error: 'struct memcached_st' has no member named 'sasl_callbacks'
rlibmemcached_wrap.c:6688: error: expected ')' before 'const'
rlibmemcached_wrap.c:6688: error: expected ';' before 'arg2'
rlibmemcached_wrap.c: In function '_wrap_MemcachedSt_sasl_callbacks_get':
rlibmemcached_wrap.c:6700: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:6700: error: 'result' undeclared (first use in this function)
rlibmemcached_wrap.c:6711: error: expected expression before ')' token
rlibmemcached_wrap.c:6711: error: 'struct memcached_st' has no member named 'sasl_callbacks'
rlibmemcached_wrap.c: In function '_wrap_memcached_set_sasl_callbacks':
rlibmemcached_wrap.c:12021: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: 'arg2' undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: expected expression before ')' token
rlibmemcached_wrap.c:12039: error: expected expression before ')' token
rlibmemcached_wrap.c:12040: warning: implicit declaration of function 'memcached_set_sasl_callbacks'
rlibmemcached_wrap.c:12040: error: expected ')' before 'const'
rlibmemcached_wrap.c:12040: error: expected ')' before 'arg2'
rlibmemcached_wrap.c: In function '_wrap_memcached_set_sasl_auth_data':
rlibmemcached_wrap.c:12081: warning: implicit declaration of function 'memcached_set_sasl_auth_data'
rlibmemcached_wrap.c: In function '_wrap_memcached_destroy_sasl_auth_data':
rlibmemcached_wrap.c:12109: warning: implicit declaration of function 'memcached_destroy_sasl_auth_data'
rlibmemcached_wrap.c: In function '_wrap_memcached_get_sasl_callbacks':
rlibmemcached_wrap.c:12122: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:12122: error: 'result' undeclared (first use in this function)
rlibmemcached_wrap.c:12133: error: expected expression before ')' token
rlibmemcached_wrap.c: In function '_wrap_memcached_sasl_authenticate_connection':
rlibmemcached_wrap.c:12157: warning: implicit declaration of function 'memcached_sasl_authenticate_connection'
rlibmemcached_wrap.c: In function 'Init_rlibmemcached':
rlibmemcached_wrap.c:13285: warning: implicit declaration of function 'sasl_client_init'
rlibmemcached_wrap.c:13285: error: 'SASL_OK' undeclared (first use in this function)
make: *** [rlibmemcached_wrap.o] Error 1

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/memcached-0.19.2 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/memcached-0.19.2/ext/gem_make.out
[root@ip-10-160-255-245 ~]# exit

get_multi bug with prefix_key, v.1.2.5

s = Memcached.new "localhost:11211", {:binary_protocol => true, :prefix_key => "app-"}
s.set "key", 1, 0
s.set "key2", 2, 0

s.get(["key", "key2"])
=> {"app-key2"=>2, "app-key"=>1}

incr bug with prefix_key, v.1.2.5

s = Memcached.new "localhost:11211", {:binary_protocol => true, :prefix_key => "app-"}
s.set 'key', '1', 0, false

s.get 'key', false
=> "1"

s.incr 'key'
Memcached::NotFound: Memcached::NotFound

s.incr 'app-key'
=> 2

unclear about memcached::rails version compatibility and use with session_store

Running Rails 2.3.4 and our team ran into issues trying use Memcached::Rails. It looks like it was working with cache_store but not with session_store.

Could you document 2 things in the readme:

  1. What version of rails is Memcached::Rails compatible with? 2.3.5 only? any 2.3.x? etc.
  2. Could you provide an example of using it with both cache_store and session_store? It takes a few minutes of digging around to even find good examples on using it with cache_store since there aren't any examples in your RDocs that I saw for this.

Thank you.

Memcached 1.1 breaks compatability with Interlock 1.4

Hi,
I'm running into an issue where the interlock gem no longer works with the memcached gem starting with memcached 1.1.

Here's the error I'm getting:

Expected argument 5 of type time_t, but got ActiveSupport::Duration 600 seconds
    in SWIG method 'memcached_set'

And the view code that caused this looks like:

     -view_cache :tag => :recent_comments_sites, :ttl => 10.minutes do
       =render :partial => 'frontend/sidebar/comment', :collection => @recent_comments

This issue goes away as soon as I downgrade to memcached 1.0.6.

Just by looking at the change history, it looks like this commit was the culprit:

https://github.com/fauna/memcached/commit/6ea7af86e1a6141847ff1cc9100a93644223d517

Any tips on how to fix this would be greatly appreciated.

:prefix_key ignored when :binary_protocol => true

Setting the :prefix_key has no effect if you use binary_protocol:

c1 = Memcached.new("127.0.0.1",:prefix_key=>"test-ONE",:binary_protocol=>true)
c1.set "foo","bar"
=> nil
c1.get "foo"
=> "bar"
c2 = Memcached.new("127.0.0.1",:prefix_key=>"test-TWO",:binary_protocol=>true)
c2.get "foo"
=> "bar"

I believe the issue might be that libmemcached doesn't null-terminate the key for you:
andreiz/php-memcached@6abbe4b

ext/libmemcached-0.32.tar.gz missing?

Wasn't it supposed to be in ext/? It's required by Manifest, and sure as hell required by extconf.rb

I just did a git clone and it's not in there anymore.

Stats fails when one server is down

When one out of two memcached servers are down the #stats method raises an exception.

I think it'd be better if it still returned the stats for the server which is up.

0.19.3 broken in Ubuntu 9.10

Hi

I have found issue with 0.19.3 in ubuntu 9.10, the libs are installed (I just install 0.19.2 and works ok)

ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]

Regards ...

sudo gem install memcached --no-rdoc --no-ri
Building native extensions. This could take a while...
ERROR: Error installing memcached:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
Libmemcached already built; run 'rake clean' first if you need to rebuild.
creating Makefile

make
gcc -I. -I/usr/lib/ruby/1.8/i486-linux -I/usr/lib/ruby/1.8/i486-linux -I. -fPIC -I/usr/lib/ruby/gems/1.8/gems/memcached-0.19.3/ext/include -L/usr/lib/ruby/gems/1.8/gems/memcached-0.19.3/ext/lib -fno-strict-aliasing -g -g -O2 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -c rlibmemcached_wrap.c
rlibmemcached_wrap.c: In function โ€˜_wrap_MemcachedSt_sasl_callbacks_setโ€™:
rlibmemcached_wrap.c:6669: error: โ€˜sasl_callback_tโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: (Each undeclared identifier is reported only once
rlibmemcached_wrap.c:6669: error: for each function it appears in.)
rlibmemcached_wrap.c:6669: error: โ€˜arg2โ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c:6687: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c:6688: error: โ€˜struct memcached_stโ€™ has no member named โ€˜sasl_callbacksโ€™
rlibmemcached_wrap.c:6688: error: expected โ€˜)โ€™ before โ€˜constโ€™
rlibmemcached_wrap.c:6688: error: expected โ€˜;โ€™ before โ€˜arg2โ€™
rlibmemcached_wrap.c: In function โ€˜_wrap_MemcachedSt_sasl_callbacks_getโ€™:
rlibmemcached_wrap.c:6700: error: โ€˜sasl_callback_tโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:6700: error: โ€˜resultโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:6711: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c:6711: error: โ€˜struct memcached_stโ€™ has no member named โ€˜sasl_callbacksโ€™
rlibmemcached_wrap.c: In function โ€˜_wrap_memcached_set_sasl_callbacksโ€™:
rlibmemcached_wrap.c:12021: error: โ€˜sasl_callback_tโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: โ€˜arg2โ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c:12039: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c:12040: error: expected โ€˜)โ€™ before โ€˜constโ€™
rlibmemcached_wrap.c:12040: error: expected โ€˜)โ€™ before โ€˜arg2โ€™
rlibmemcached_wrap.c: In function โ€˜_wrap_memcached_get_sasl_callbacksโ€™:
rlibmemcached_wrap.c:12122: error: โ€˜sasl_callback_tโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:12122: error: โ€˜resultโ€™ undeclared (first use in this function)
rlibmemcached_wrap.c:12133: error: expected expression before โ€˜)โ€™ token
rlibmemcached_wrap.c: In function โ€˜Init_rlibmemcachedโ€™:
rlibmemcached_wrap.c:13285: error: โ€˜SASL_OKโ€™ undeclared (first use in this function)
make: *** [rlibmemcached_wrap.o] Error 1

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/memcached-0.19.3 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/memcached-0.19.3/ext/gem_make.out

ActiveSupport Cache::MemCacheStore#write always returns false when using Memcached::Rails

ActiveSupport Cache::MemCacheStore#write always returns false when using Memcached::Rails

The MemCacheStore#write method calls either the Memcached::Rails #set or #add method depending on whether or not the "unless_exist" option is specified. The #set method returns nil and #add returns true or false based upon if the value was written or not.

The MemCacheStore #write method appears to expect a value from a predefined set, checking explicitly for Response::Stored, returned from these method calls.

code snippet from MemCacheStore#write:
method = options && options[:unless_exist] ? :add : :set
value = value.to_s if raw?(options)
response = @data.send(method, key, value, expires_in(options), raw?(options))
response == Response::STORED

Currently - since nil, true, or false is always returned this evaluation is always resulting in false.

Defined Response values in ActiveSupport Cache::MemCacheStore:

module Response # :nodoc:
  STORED      = "STORED\r\n"
  NOT_STORED  = "NOT_STORED\r\n"
  EXISTS      = "EXISTS\r\n"
  NOT_FOUND   = "NOT_FOUND\r\n"
  DELETED     = "DELETED\r\n"
end

We have an application that utilizes memcached and since it has multiple threads across multiple Ruby processes that may be attempting to update the objects in the cache, it is also relying on memcache as a locking mechanism. This mechanism depends on knowing if the write of a lock key succeeded or not. The lock is set as follows:

Rails.cache.write( self.lock_key( key ), lock_object, {:unless_exist => true, :expires_in => duration_seconds} )

Previously this would return true or false based upon the write succeeding. Now, since this always returns false, our application behaves as though it can never write and thus obtain a lock.

We are hosted by Heroku and want to support their upgrade to the latest version of memcached but are unable to do so until we can resolve this issue.

Rails layer: any performance penalty?

Since you're benchmark-prone, is there any significant performance penalty for using the rails layer? I imagine not, but just wanted to be sure before using this to replace dalli..

charset problems on install

DB:~/ruby/backend $ sudo gem install memcached
Fetching: memcached-1.2.7.gem (100%)
Building native extensions.  This could take a while...
Successfully installed memcached-1.2.7
1 gem installed
Installing ri documentation for memcached-1.2.7...
unable to convert "\xCF" from ASCII-8BIT to UTF-8 for ext/bin/memcat, skipping
(... lots more similar lines issues; same for rdocs)

Also, when trying it with --pre, it tries to install 1.2.6:

DB:~/ruby/backend $ sudo gem install memcached --pre
Password:
Fetching: memcached-1.2.6.pre2.gem (100%)
Building native extensions.  This could take a while...
^CERROR:  Interrupted

Doesn't build on ubuntu 11.04

This gem doesn't install on ubuntu 11.04.

I think the relavant part of the error is:
extconf.rb:56:in check_libmemcached': 'patch -p1 -Z < sasl.patch' failed (RuntimeError) from extconf.rb:34:inchdir'
from extconf.rb:34:in `check_libmemcached'
from extconf.rb:101

Tell me if you need more details.

Memcached::Rails#delete does not work with Rails (2.3.x and possibly earlier)

ActiveSupport's Cache::Store defines #delete such that it takes two arguments: the key, and an expiration.

ActiveSupport's Cache::MemCacheStore class, which contains the following guide:

# Instead of addresses one can pass in a MemCache-like object. For example:
#
# require 'memcached' # gem install memcached; uses C bindings to libmemcached
# ActiveSupport::Cache::MemCacheStore.new(Memcached::Rails.new("localhost:11211"))

does not actually work due to the fact that Cache::MemCacheStore#delete calls the underlying imlpementation with 2 arguments, but Memcached::Rails#delete accepts only one argument (the key to delete). Thus, Rails.cache.delete "foo" in the scenario above results in:

ArgumentError: wrong number of arguments (2 for 1)
  from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/cache/mem_cache_store.rb:91:in `delete'
  from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/cache/mem_cache_store.rb:91:in `delete'
  from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/cache/strategy/local_cache.rb:56:in `delete'
  from (irb):1

In contrast, the memcache-client gem's interface accepts 2 arguments but provides a default value for and ignores the second one (since expirations on delete operations are no longer supported in memcached), so MemCacheStore works with it.

I've submitted a patch to Rails that calls the MemCache-like object with only one argument which works with both the memcache-client and memcached gems, but it has been sitting ignored for 2 months now.

As such, here's a patch for Memcached::Rails#delete, which fixes the ArgumentError with Cache::MemCacheStore and only passes the first argument (the key to delete) onto Memcached#delete, making it work as advertised with Rails.

http://github.com/vandrijevik/memcached/commit/da73b57bf5d2a75d0509b86341d7d74b053eec98

Problem with the Rails compatibility layer

From Dan MAyer (devver):

When using Memcached::Rails with mem_cache_store:

Rails.cache.delete("some_key")

Raises:

ArgumentError (wrong number of arguments (2 for 1)):
vendor/bundler_gems/gems/activesupport-2.3.4/lib/active_support/cache/mem_cache_store.rb:86:in delete'
vendor/bundler_gems/gems/activesupport-2.3.4/lib/active_support/cache/strategy/local_cache.rb:56:in delete'

The cause seems to be Rails thinks the delete method takes a second argument. From active_support/cache/mem_cache_store.rb:

 def delete(key, options = nil) # :nodoc:
    super
    response = @data.delete(key, expires_in(options))
    response == Response::DELETED
 rescue MemCache::MemCacheError => e
    logger.error("MemCacheError (#{e}): #{e.message}")
    false
 end

Here's a patch to fix it - unless I'm missing something it seems pretty straight forward:
http://github.com/pedro/memcache-auth/commit/921546498a59b538f2454eca91fafb3f4deee74e

Invalid arch flags on Snow Leopard cause compilation issues

This line:
"#{RbConfig::CONFIG['CFLAGS']} #{$CFLAGS}".split(" ").uniq.join(" ").gsub("$(cflags)", "").gsub("ppc", "")

results in the following line for Snow Leopard:
gcc -arch i386 x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE

This is not valid, because it has to be -arch i386 -arch x86_64 in order to compile it for both architectures. With these flags, the compilations fails with the following error:

i686-apple-darwin10-gcc-4.2.1: x86_64: No such file or directory

Request to tag versions

Hey, was just wondering if there was any particular reason for not tagging versions when they are released?

I've just discovered that neat, one year old feature that github does to allow you to get a nice list of the commits between two points in a projects history, which I've found useful in actually seeing what's changed between versions when deciding whether or not to upgrade.

I think the tool can be used to compare between commit SHAs, but it's a heck of a lot easier to compare between named branches or tags.

Just a thought,

thanks

S

Rlibmemcached.memcached_mget + Memcache.get_multi() / get_orig() -> invalid args (2 for 4)

Hi; getting an exception when using get_multi():

ArgumentError: wrong # of arguments(2 for 4)
from /usr/local/lib/ruby/gems/1.8/gems/memcache-auth-1.0.1/lib/memcached/memcached.rb:384:in memcached_mget' from /usr/local/lib/ruby/gems/1.8/gems/memcache-auth-1.0.1/lib/memcached/memcached.rb:384:inget_orig'
from /usr/local/lib/ruby/gems/1.8/gems/memcache-auth-1.0.1/lib/memcached/rails.rb:40:in `get_multi'

I noticed that memcached_get.h defines memcached_mget as:

memcached_return memcached_mget(memcached_st *ptr,
const char * const *keys,
const size_t *key_length,
size_t number_of_keys);

So, it would seem key_length and number_of_keys are missing (my C is a bit rusty, but I'm presuming those would be required arguments).

Any ideas?

-Kyle

Errno 115: "Operation now in progress"

We just pushed some code that imposed quite a bit more load on our
memcached cluster (3 servers @ 2GB each) and we started seeing a lot
of this in writer processes:

Errno 115: "Operation now in progress"

Any ideas as to what might be causing that?

fails to install on MacOS X Snow Leopard

DB:~ $ cat /opt/local/lib/ruby1.9/gems/1.9.1/gems/memcached-1.3.5/ext/gem_make.out
/opt/local/bin/ruby extconf.rb
Touching aclocal.m4 in libmemcached.
touch -r libmemcached-0.32/m4/visibility.m4 libmemcached-0.32/configure.ac libmemcached-0.32/m4/pandora_have_sasl.m4 libmemcached-0.32/m4/aclocal.m4
Configuring libmemcached.
env CFLAGS='-fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64 ' LDFLAGS='-fPIC -L. -L/opt/local/lib -arch x86_64 -L/usr/local/lib -L. -L/opt/local/lib -arch x86_64 -L/usr/local/lib -L/opt/local/lib' ./configure --prefix=/opt/local/lib/ruby1.9/gems/1.9.1/gems/memcached-1.3.5/ext --without-memcached --disable-shared --disable-utils --disable-dependency-tracking CC="/usr/bin/gcc-4.2"  2>&1
checking build system type... i386-apple-darwin10.8.0
checking host system type... i386-apple-darwin10.8.0
checking target system type... i386-apple-darwin10.8.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... /usr/bin/gcc-4.2
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/gcc-4.2 accepts -g... yes
checking for /usr/bin/gcc-4.2 option to accept ISO C89... none needed
checking dependency style of /usr/bin/gcc-4.2... none
checking for isainfo... no
checking whether /usr/bin/gcc-4.2 and cc understand -c and -o together... yes
checking how to run the C preprocessor... /usr/bin/gcc-4.2 -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking how to print strings... printf
checking for a sed that does not truncate output... /opt/local/bin/gsed
checking for fgrep... /usr/bin/grep -F
checking for ld used by /usr/bin/gcc-4.2... /usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld
checking if the linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm
checking the name lister (/usr/bin/nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert i386-apple-darwin10.8.0 file names to i386-apple-darwin10.8.0 format... func_convert_file_noop
checking how to convert i386-apple-darwin10.8.0 file names to toolchain format... func_convert_file_noop
checking for /usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm output from /usr/bin/gcc-4.2 object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking for objdir... .libs
checking if /usr/bin/gcc-4.2 supports -fno-rtti -fno-exceptions... no
checking for /usr/bin/gcc-4.2 option to produce PIC... -fno-common -DPIC
checking if /usr/bin/gcc-4.2 PIC flag -fno-common -DPIC works... yes
checking if /usr/bin/gcc-4.2 static flag -static works... no
checking if /usr/bin/gcc-4.2 supports -c -o file.o... yes
checking if /usr/bin/gcc-4.2 supports -c -o file.o... (cached) yes
checking whether the /usr/bin/gcc-4.2 linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin10.8.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld
checking if the linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) is GNU ld... no
checking whether the g++ linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fno-common -DPIC
checking if g++ PIC flag -fno-common -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin10.8.0 dyld
checking how to hardcode library paths into programs... immediate
checking if g++ supports C++0x features without additional flags... no
checking if g++ supports C++0x features with -std=c++0x... no
checking if g++ supports C++0x features with -std=gnu++0x... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking dependency style of g++... (cached) none
checking how to run the C preprocessor... /usr/bin/gcc-4.2 -E
checking whether __SUNPRO_C is declared... no
checking whether __ICC is declared... no
checking for ISO C++ 98 include files... yes
checking memory usability... yes
checking memory presence... yes
checking for memory... yes
checking tr1/memory usability... yes
checking tr1/memory presence... yes
checking for tr1/memory... yes
checking boost/shared_ptr.hpp usability... no
checking boost/shared_ptr.hpp presence... no
checking for boost/shared_ptr.hpp... no
checking the location of shared_ptr header file... 
checking whether byte ordering is bigendian... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for working volatile... yes
checking for C/C++ restrict keyword... __restrict
checking whether time.h and sys/time.h may both be included... yes
checking for size_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking "C Compiler version--yes"... "i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)"
checking "C++ Compiler version"... "i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)"
checking for simple visibility declarations... yes
checking whether to enable assertions... yes
checking assert.h usability... yes
checking assert.h presence... yes
checking for assert.h... yes
checking whether it is safe to use -fdiagnostics-show-option... yes
checking whether it is safe to use -Wconversion... no
checking whether it is safe to use -Wmissing-declarations from C++... no
checking whether it is safe to use -Wlogical-op... no
checking whether it is safe to use -Wredundant-decls from C++... yes
checking for doxygen... no
checking for perl... perl
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... -D_THREAD_SAFE
checking for library containing getopt_long... none required
checking for library containing socket... none required
checking for library containing gethostbyname... none required
checking for library containing floorf... none required
checking for htonll... no
checking byteorder... little endian
checking for pod2man... /opt/local/bin/pod2man
checking for ld used by GCC... /usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld
checking if the linker (/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld) is GNU ld... no
checking for shared library run path origin... done
checking for libsasl... no
checking for libsasl2... yes
checking how to link with libsasl2... -lsasl2 -ldl -lresolv
configure: creating ./config.status
config.status: creating Makefile
config.status: creating clients/Makefile
config.status: creating tests/Makefile
config.status: creating docs/Makefile
config.status: creating libmemcached/Makefile
config.status: creating libmemcached/memcached_configure.h
config.status: creating libmemcachedutil/Makefile
config.status: creating support/Makefile
config.status: creating support/libmemcached.pc
config.status: creating support/libmemcached.spec
config.status: creating support/libmemcached-fc.spec
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

---
Configuration summary for libmemcached version 0.32

   * Installation prefix:       /opt/local/lib/ruby1.9/gems/1.9.1/gems/memcached-1.3.5/ext
   * System type:               apple-darwin10.8.0
   * Host CPU:                  i386
   * C Compiler:                i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
   * Assertions enabled:        yes
   * Debug enabled:             no
   * Warnings as failure:       no
   * With SASL support:         -lsasl2 -ldl -lresolv

---
Making libmemcached.
GMAKE_CMD='make' CXXFLAGS='-pipe -O2 -arch x86_64 -std=gnu++98 -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64 ' SOURCE_DIR='libmemcached-0.32' HERE='/opt/local/lib/ruby1.9/gems/1.9.1/gems/memcached-1.3.5/ext' ruby ../extconf-make.rb
make CXXFLAGS='-pipe -O2 -arch x86_64 -std=gnu++98 -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64 ' || true 2>&1
make  all-recursive
Making all in docs
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/libmemcached.pod > libmemcached.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/libmemcached_examples.pod > libmemcached_examples.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memcat.pod > memcat.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memcp.pod > memcp.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memerror.pod > memerror.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memflush.pod > memflush.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memdump.pod > memdump.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memrm.pod > memrm.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memslap.pod > memslap.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 1 ../docs/memstat.pod > memstat.1
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_add.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_add_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_append.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_append_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_analyze.pod > memcached_analyze.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_behavior.pod > memcached_behavior_get.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_behavior.pod > memcached_behavior_set.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_callback.pod > memcached_callback_get.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_callback.pod > memcached_callback_set.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_cas.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_cas_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_create.pod > memcached_clone.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_create.pod > memcached_create.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_auto.pod > memcached_decrement.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_auto.pod > memcached_decrement_with_initial.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_delete.pod > memcached_delete.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_delete.pod > memcached_delete_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_get.pod > memcached_fetch.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_get.pod > memcached_fetch_execute.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_get.pod > memcached_fetch_result.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_create.pod > memcached_free.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_get.pod > memcached_get.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_get.pod > memcached_get_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_auto.pod > memcached_increment.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_auto.pod > memcached_increment_with_initial.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_get.pod > memcached_mget.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_get.pod > memcached_mget_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_prepend.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_prepend_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_replace.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_replace_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_servers.pod > memcached_server_add.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_servers.pod > memcached_server_count.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_servers.pod > memcached_server_list.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_server_st.pod > memcached_server_list_append.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_server_st.pod > memcached_server_list_count.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_server_st.pod > memcached_server_list_free.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_servers.pod > memcached_server_push.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_server_st.pod > memcached_servers_parse.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_set.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_set.pod > memcached_set_by_key.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_stats.pod > memcached_stat.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_stats.pod > memcached_stat_get_keys.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_stats.pod > memcached_stat_get_value.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_stats.pod > memcached_stat_servername.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_strerror.pod > memcached_strerror.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_quit.pod > memcached_quit.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_verbosity.pod > memcached_verbosity.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_version.pod  > memcached_lib_version.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_version.pod > memcached_version.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_flush_buffers.pod  > memcached_flush_buffers.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_dump.pod > memcached_dump.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_generate_hash_value.pod > memcached_generate_hash_value.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_memory_allocators.pod > memcached_set_memory_allocators.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_memory_allocators.pod > memcached_get_memory_allocators.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_user_data.pod > memcached_set_user_data.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_user_data.pod > memcached_get_user_data.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_sasl.pod > memcached_destroy_sasl_auth_data.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_sasl.pod > memcached_get_sasl_callbacks.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_sasl.pod > memcached_set_sasl_auth_data.3
/opt/local/bin/pod2man -c "libmemcached" -r "" -s 3 ../docs/memcached_sasl.pod > memcached_set_sasl_callbacks.3
Making all in libmemcached
make  all-am
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-crc.lo `test -f 'crc.c' || echo './'`crc.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c crc.c -o libmemcached_la-crc.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from crc.c:7:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached.lo `test -f 'memcached.c' || echo './'`memcached.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached.c -o libmemcached_la-memcached.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached.c:4:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_auto.lo `test -f 'memcached_auto.c' || echo './'`memcached_auto.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_auto.c -o libmemcached_la-memcached_auto.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_auto.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_analyze.lo `test -f 'memcached_analyze.c' || echo './'`memcached_analyze.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_analyze.c -o libmemcached_la-memcached_analyze.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_analyze.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_behavior.lo `test -f 'memcached_behavior.c' || echo './'`memcached_behavior.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_behavior.c -o libmemcached_la-memcached_behavior.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_behavior.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_connect.lo `test -f 'memcached_connect.c' || echo './'`memcached_connect.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_connect.c -o libmemcached_la-memcached_connect.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_connect.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_delete.lo `test -f 'memcached_delete.c' || echo './'`memcached_delete.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_delete.c -o libmemcached_la-memcached_delete.o
memcached_delete.c:1: warning: ISO C forbids an empty source file
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_do.lo `test -f 'memcached_do.c' || echo './'`memcached_do.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_do.c -o libmemcached_la-memcached_do.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_do.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_dump.lo `test -f 'memcached_dump.c' || echo './'`memcached_dump.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_dump.c -o libmemcached_la-memcached_dump.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_dump.c:9:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_fetch.lo `test -f 'memcached_fetch.c' || echo './'`memcached_fetch.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_fetch.c -o libmemcached_la-memcached_fetch.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_fetch.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_flush.lo `test -f 'memcached_flush.c' || echo './'`memcached_flush.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_flush.c -o libmemcached_la-memcached_flush.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_flush.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_get.lo `test -f 'memcached_get.c' || echo './'`memcached_get.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_get.c -o libmemcached_la-memcached_get.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_get.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
memcached_get.c: In function 'memcached_get_from_last':
memcached_get.c:335: warning: unused variable 'rc' [-Wunused-variable]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_touch.lo `test -f 'memcached_touch.c' || echo './'`memcached_touch.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_touch.c -o libmemcached_la-memcached_touch.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_touch.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_hash.lo `test -f 'memcached_hash.c' || echo './'`memcached_hash.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_hash.c -o libmemcached_la-memcached_hash.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_hash.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_hosts.lo `test -f 'memcached_hosts.c' || echo './'`memcached_hosts.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_hosts.c -o libmemcached_la-memcached_hosts.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_hosts.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_io.lo `test -f 'memcached_io.c' || echo './'`memcached_io.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_io.c -o libmemcached_la-memcached_io.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_io.c:5:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_purge.lo `test -f 'memcached_purge.c' || echo './'`memcached_purge.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_purge.c -o libmemcached_la-memcached_purge.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_purge.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_flush_buffers.lo `test -f 'memcached_flush_buffers.c' || echo './'`memcached_flush_buffers.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_flush_buffers.c -o libmemcached_la-memcached_flush_buffers.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_flush_buffers.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-md5.lo `test -f 'md5.c' || echo './'`md5.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c md5.c -o libmemcached_la-md5.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from md5.c:33:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_key.lo `test -f 'memcached_key.c' || echo './'`memcached_key.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_key.c -o libmemcached_la-memcached_key.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_key.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_quit.lo `test -f 'memcached_quit.c' || echo './'`memcached_quit.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_quit.c -o libmemcached_la-memcached_quit.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_quit.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_parse.lo `test -f 'memcached_parse.c' || echo './'`memcached_parse.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_parse.c -o libmemcached_la-memcached_parse.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_parse.c:8:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_response.lo `test -f 'memcached_response.c' || echo './'`memcached_response.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_response.c -o libmemcached_la-memcached_response.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_response.c:8:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_result.lo `test -f 'memcached_result.c' || echo './'`memcached_result.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_result.c -o libmemcached_la-memcached_result.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_result.c:7:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_server.lo `test -f 'memcached_server.c' || echo './'`memcached_server.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_server.c -o libmemcached_la-memcached_server.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_server.c:4:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_storage.lo `test -f 'memcached_storage.c' || echo './'`memcached_storage.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_storage.c -o libmemcached_la-memcached_storage.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_storage.c:9:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_string.lo `test -f 'memcached_string.c' || echo './'`memcached_string.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_string.c -o libmemcached_la-memcached_string.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_string.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_stats.lo `test -f 'memcached_stats.c' || echo './'`memcached_stats.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_stats.c -o libmemcached_la-memcached_stats.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_stats.c:4:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_strerror.lo `test -f 'memcached_strerror.c' || echo './'`memcached_strerror.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_strerror.c -o libmemcached_la-memcached_strerror.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_strerror.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_verbosity.lo `test -f 'memcached_verbosity.c' || echo './'`memcached_verbosity.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_verbosity.c -o libmemcached_la-memcached_verbosity.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_verbosity.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_version.lo `test -f 'memcached_version.c' || echo './'`memcached_version.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_version.c -o libmemcached_la-memcached_version.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_version.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-murmur_hash.lo `test -f 'murmur_hash.c' || echo './'`murmur_hash.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c murmur_hash.c -o libmemcached_la-murmur_hash.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from murmur_hash.c:18:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-jenkins_hash.lo `test -f 'jenkins_hash.c' || echo './'`jenkins_hash.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c jenkins_hash.c -o libmemcached_la-jenkins_hash.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from jenkins_hash.c:14:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-memcached_allocators.lo `test -f 'memcached_allocators.c' || echo './'`memcached_allocators.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wformat=2 -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings -D_THREAD_SAFE -fPIC -pipe -O2 -arch x86_64 -pipe -O2 -arch x86_64 -c memcached_allocators.c -o libmemcached_la-memcached_allocators.o
In file included from ../libmemcached/memcached_sasl.h:13,
                 from ../libmemcached/memcached.h:31,
                 from common.h:52,
                 from memcached_allocators.c:1:
/opt/local/include/sasl/sasl.h:349: warning: function declaration isn't a prototype [-Wstrict-prototypes]
/bin/sh ../libtool  --tag=CC   --mode=compile /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H   -I.. -I.. -ggdb3  -I/opt/local/include -O3  -pedantic -Wall -Wextra -Wundef -Wshadow  -fdiagnostics-show-option -fvisibility=hidden -Wformat=2  -Wstrict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align -Wswitch-default -Wswitch-enum -Wwrite-strings     -D_THREAD_SAFE  -fPIC -pipe -O2 -arch x86_64  -pipe -O2 -arch x86_64  -c -o libmemcached_la-byteorder.lo `test -f 'byteorder.c' || echo './'`byteorder.c
libtool: compile:  /usr/bin/gcc-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.. -I.. -ggdb3 -I/opt/local/include -O3 -pedantic -Wall -Wextra -Wundef -Wshadow -fdiagnostics-show-option -fvisibility=hidden -Wf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.