sfh 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -1
- data/Manifest.txt +1 -1
- data/README.txt +0 -8
- data/Rakefile +4 -4
- data/bin/sfhsum +1 -2
- data/{sfh.rb → lib/sfh.rb} +4 -5
- data/test/test_sfh.rb +14 -0
- data/test/test_sfh_swig.rb +14 -0
- metadata +8 -6
data/History.txt
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
== 0.0.3 / 2008-02-29
|
2
|
+
* Fixed issue with native .so version vs RubyInline version
|
3
|
+
* The two used a slightly different interface which was lame. Using
|
4
|
+
Inline.c_singleton instead of Inline.c now.
|
5
|
+
|
1
6
|
== 0.0.2 / 2008-02-29
|
2
7
|
* Updated to use hoe for releases
|
3
|
-
* Fixed missing dependency (RubyInline)
|
8
|
+
* Fixed missing dependency (RubyInline)
|
4
9
|
|
5
10
|
== 0.0.1 / 2008-02-17
|
6
11
|
* Initial release
|
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -10,14 +10,6 @@ This is just a gem for it.
|
|
10
10
|
* No known issues, let me know if you find any.
|
11
11
|
|
12
12
|
== SYNOPSIS:
|
13
|
-
For inline version
|
14
|
-
require 'sfh'
|
15
|
-
|
16
|
-
h1 = Sfh.new
|
17
|
-
text1 = "The quick brown fox"
|
18
|
-
puts "Text '#{text1}': #{h1.hash(text1, text1.length)}"
|
19
|
-
|
20
|
-
The SWIG version is used like this:
|
21
13
|
require 'sfh'
|
22
14
|
|
23
15
|
text1 = "The quick brown fox"
|
data/Rakefile
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'hoe'
|
3
|
-
require '
|
3
|
+
require 'lib/sfh.rb'
|
4
4
|
|
5
5
|
Hoe.new('sfh', Sfh::VERSION) do |p|
|
6
6
|
p.rubyforge_name = 'sfh'
|
7
7
|
p.author = 'Jonathan Wilkins'
|
8
8
|
p.email = 'jwilkins[at]bitland[dot]net'
|
9
|
-
p.summary = 'SuperFastHash is a hash designed by Paul Hsieh '
|
10
|
-
'(http://www.azillionmonkeys.com/qed/hash.html).
|
9
|
+
p.summary = 'SuperFastHash is a hash designed by Paul Hsieh '\
|
10
|
+
'(http://www.azillionmonkeys.com/qed/hash.html). '\
|
11
11
|
'This is just a gem for it.'
|
12
12
|
p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
|
13
13
|
p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
|
@@ -21,7 +21,7 @@ Rake::Task[:test].prerequisites << :extension
|
|
21
21
|
kind = Config::CONFIG["DLEXT"]
|
22
22
|
|
23
23
|
desc "Build native version"
|
24
|
-
task :extension => ["ext/
|
24
|
+
task :extension => ["ext/sfh_native.#{kind}"]
|
25
25
|
|
26
26
|
file "ext/Makefile" => "ext/extconf.rb" do
|
27
27
|
Dir.chdir("ext") { ruby "extconf.rb" }
|
data/bin/sfhsum
CHANGED
@@ -3,11 +3,10 @@ require 'rubygems'
|
|
3
3
|
require 'sfh'
|
4
4
|
|
5
5
|
if ARGV.size > 0 then
|
6
|
-
h = Sfh.new
|
7
6
|
ARGV.each do |filename|
|
8
7
|
if FileTest::exists?(filename) then
|
9
8
|
filedata = open(filename).read
|
10
|
-
puts
|
9
|
+
puts Sfh.hash(filedata, filedata.length)
|
11
10
|
else
|
12
11
|
puts "error: can't find '#{filename}'"
|
13
12
|
end
|
data/{sfh.rb → lib/sfh.rb}
RENAMED
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'inline'
|
3
3
|
|
4
|
-
|
5
|
-
VERSION = '1.0.
|
4
|
+
module Sfh
|
5
|
+
VERSION = '1.0.2'
|
6
6
|
|
7
7
|
inline(:C) do |builder|
|
8
8
|
builder.include '<stdio.h>'
|
9
9
|
builder.include '<sys/types.h>'
|
10
10
|
builder.include '<stdint.h>'
|
11
11
|
|
12
|
-
builder.
|
12
|
+
builder.c_singleton '
|
13
13
|
unsigned int hash(const char * data, int len)
|
14
14
|
{
|
15
15
|
unsigned int hash = len, tmp;
|
@@ -60,9 +60,8 @@ class Sfh
|
|
60
60
|
end
|
61
61
|
|
62
62
|
if $0 == __FILE__
|
63
|
-
h = Sfh.new()
|
64
63
|
puts "hashing 'asdf' a million times"
|
65
64
|
1000000.times {
|
66
|
-
|
65
|
+
Sfh.hash('asdf', 4)
|
67
66
|
}
|
68
67
|
end
|
data/test/test_sfh.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require '../lib/sfh.rb'
|
2
|
+
|
3
|
+
str = 'asdf'
|
4
|
+
times = 1000000
|
5
|
+
|
6
|
+
puts "hashing #{str} #{times} times"
|
7
|
+
times.times { Sfh.hash(str, str.length) }
|
8
|
+
puts "done"
|
9
|
+
|
10
|
+
times = 1000
|
11
|
+
puts "hashing #{str}*1000000 #{times} times"
|
12
|
+
str = str*1000000
|
13
|
+
times.times { Sfh.hash(str, str.length) }
|
14
|
+
puts "done"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require '/usr/lib/ruby/gems/1.8/gems/sfh-1.0.2/lib/sfh.so'
|
2
|
+
|
3
|
+
str = 'asdf'
|
4
|
+
times = 1000000
|
5
|
+
|
6
|
+
puts "hashing #{str} #{times} times"
|
7
|
+
times.times { Sfh.hash(str, str.length) }
|
8
|
+
puts "done"
|
9
|
+
|
10
|
+
times = 1000
|
11
|
+
puts "hashing #{str}*1000000 #{times} times"
|
12
|
+
str = str*1000000
|
13
|
+
times.times { Sfh.hash(str, str.length) }
|
14
|
+
puts "done"
|
metadata
CHANGED
@@ -3,15 +3,16 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: sfh
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
6
|
+
version: 1.0.2
|
7
7
|
date: 2008-02-29 00:00:00 -08:00
|
8
|
-
summary: SuperFastHash is a hash designed by Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html).
|
8
|
+
summary: SuperFastHash is a hash designed by Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html). This is just a gem for it.
|
9
9
|
require_paths:
|
10
|
+
- lib
|
10
11
|
- ext
|
11
12
|
email: jwilkins[at]bitland[dot]net
|
12
13
|
homepage: " by Jonathan Wilkins"
|
13
14
|
rubyforge_project: sfh
|
14
|
-
description: "== FEATURES/PROBLEMS: * No known issues, let me know if you find any. == SYNOPSIS:
|
15
|
+
description: "== FEATURES/PROBLEMS: * No known issues, let me know if you find any. == SYNOPSIS: require 'sfh' text1 = \"The quick brown fox\" puts \"Text '#{text1}': #{Sfh.hash(text1, text1.length)}\" == REQUIREMENTS: RubyInline"
|
15
16
|
autorequire:
|
16
17
|
default_executable:
|
17
18
|
bindir: bin
|
@@ -33,15 +34,16 @@ files:
|
|
33
34
|
- Manifest.txt
|
34
35
|
- README.txt
|
35
36
|
- Rakefile
|
36
|
-
- sfh.rb
|
37
|
+
- lib/sfh.rb
|
37
38
|
- bin/sfhsum
|
38
39
|
- ext/extconf.rb
|
39
40
|
- ext/sfh.c
|
40
41
|
- ext/sfh.i
|
41
42
|
- ext/sfh_wrap.c
|
42
43
|
- ext/test_sfh_swig.rb
|
43
|
-
test_files:
|
44
|
-
|
44
|
+
test_files:
|
45
|
+
- test/test_sfh_swig.rb
|
46
|
+
- test/test_sfh.rb
|
45
47
|
rdoc_options:
|
46
48
|
- --main
|
47
49
|
- README.txt
|