<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,8 @@
+= 1.5.0.5
+
+* Remove native C CRC32_ITU_T extension in favor of Zlib's crc32 method.
+  memcache-client is now pure Ruby again and will work with JRuby and Rubinius.
+
 = 1.5.0.4
 
 * Get test suite working again (packagethief)</diff>
      <filename>History.txt</filename>
    </modified>
    <modified>
      <diff>@@ -4,38 +4,7 @@ require 'socket'
 require 'thread'
 require 'timeout'
 require 'rubygems'
-
-class String
-
-  ##
-  # Uses the ITU-T polynomial in the CRC32 algorithm.
-  begin
-    require 'crc32'
-    def crc32_ITU_T
-      CRC32.itu_t(self)
-    end
-  rescue LoadError =&gt; e
-    puts &quot;Loading with slow CRC32 ITU-T implementation: #{e.message}&quot;
-    
-    def crc32_ITU_T
-      r = 0xFFFFFFFF
-
-      each_byte do |i|
-        r ^= i
-        8.times do
-          if (r &amp; 1) != 0 then
-            r = (r&gt;&gt;1) ^ 0xEDB88320
-          else
-            r &gt;&gt;= 1
-          end
-        end
-      end
-
-      r ^ 0xFFFFFFFF
-    end
-  end
-  
-end
+require 'zlib'
 
 ##
 # A Ruby client library for memcached.
@@ -500,7 +469,7 @@ class MemCache
   # sketchy for down servers).
 
   def hash_for(key)
-    (key.crc32_ITU_T &gt;&gt; 16) &amp; 0x7fff
+    (Zlib.crc32(key) &gt;&gt; 16) &amp; 0x7fff
   end
 
   ##</diff>
      <filename>lib/memcache.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,14 @@
 Gem::Specification.new do |s|
 	s.name = 'memcache-client'
-	s.version = '1.5.0.4'
+	s.version = '1.5.0.5'
 	s.authors = ['Eric Hodel', 'Robert Cottrell', 'Mike Perham']
 	s.email = 'mperham@gmail.com'
 	s.homepage = 'http://github.com/fiveruns/memcache-client'
 	s.summary = 'A Ruby-based memcached client library'
 	s.description = s.summary
-	s.extensions &lt;&lt; 'ext/crc32/extconf.rb'
 
 	s.require_path = 'lib'
 
-	s.files = [&quot;README.txt&quot;, &quot;License.txt&quot;, &quot;History.txt&quot;, &quot;Rakefile&quot;, &quot;lib/memcache.rb&quot;, &quot;lib/memcache_util.rb&quot;, &quot;ext/crc32/crc32.c&quot;]
+	s.files = [&quot;README.txt&quot;, &quot;License.txt&quot;, &quot;History.txt&quot;, &quot;Rakefile&quot;, &quot;lib/memcache.rb&quot;, &quot;lib/memcache_util.rb&quot;]
 	s.test_files = [&quot;test/test_mem_cache.rb&quot;]
 end</diff>
      <filename>memcache-client.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -164,17 +164,6 @@ class TestMemCache &lt; Test::Unit::TestCase
     assert_match /get my_namespace:key\r\n/, server.socket.written.string
   end
 
-  def test_crc32_ITU_T
-    assert_equal 0, ''.crc32_ITU_T
-    # First value is the fast C version, last value is the pure Ruby version
-    assert_in [-886631737, 1260851911], 'my_namespace:key'.crc32_ITU_T
-    assert_in [-224284233, 870540390], 'my_name&#8730;space:key'.crc32_ITU_T
-  end
-  
-  def assert_in(possible_values, value)
-    assert possible_values.include?(value), &quot;#{possible_values.inspect} should contain #{value}&quot;
-  end
-
   def test_initialize
     cache = MemCache.new :namespace =&gt; 'my_namespace', :readonly =&gt; true
 </diff>
      <filename>test/test_mem_cache.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>ext/crc32/crc32.c</filename>
    </removed>
    <removed>
      <filename>ext/crc32/extconf.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>9c291ad44e255e46896b9c4ec39f259a427a6476</id>
    </parent>
  </parents>
  <author>
    <name>Mike Perham</name>
    <email>mperham@gmail.com</email>
  </author>
  <url>http://github.com/fiveruns/memcache-client/commit/9f81841bbb4fc6a3dfe5525a285a045d3da1a589</url>
  <id>9f81841bbb4fc6a3dfe5525a285a045d3da1a589</id>
  <committed-date>2008-11-24T17:54:04-08:00</committed-date>
  <authored-date>2008-11-24T17:54:04-08:00</authored-date>
  <message>Use Zlib.crc32 instead of native extension. Prepare for 1.5.0.5 release.</message>
  <tree>e5aa1d58bf9de0e83743b8b2a73572cc3542e1cf</tree>
  <committer>
    <name>Mike Perham</name>
    <email>mperham@gmail.com</email>
  </committer>
</commit>
