@@ -1,5 +1,10 @@
Revision history for Perl extension Digest::JHash.
+0.09 2015-05-30
+ - Convert to Dist-Zilla.
+ - This implies several enhancements including links to the VCS
+ repositories in META.yml/META.json.
+
0.08 2014-01-27
- Add a minimal version on perl-5.8.0.
- For CPANTS Kwalitee.
@@ -0,0 +1,41 @@
+Revision history for Perl extension Digest::JHash.
+
+0.08 2014-01-27
+ - Add a minimal version on perl-5.8.0.
+ - For CPANTS Kwalitee.
+ - Add t/cpan-changes.t
+ - Add a LICENSE file (for CPANTS Kwalitee).
+
+0.07 2010-09-04
+ - Got rid of the SIGNATURE file which was out-of-date.
+ - https://rt.cpan.org/Ticket/Display.html?id=61053
+
+0.06 2010-07-26
+ - Reuploading to get rid of the world-writable files and directories
+ in the archive.
+
+0.05 2008-06-06
+ - Patched to make algorithm compatible with unwanted 64 bit int in U32
+
+0.04 2008-06-04
+ - Moved developer only tests kwalitee.t and spelling.t to misc/ to
+ stop kwalitee from demanding they be listed as build pre-reqs in META.yml
+
+0.03 2008-06-04
+ - Repackaged into Kwalitee compliant package
+
+0.02 2003-04-07
+ - Changed untar dir structure to standard one
+ - Modified JHash.pm @EXPORT_OK so jhash() function can be exported on demand
+ - A small clean up to handle undef and null string input cases
+ - Added tests for the undef and null string input cases
+ - finished POD
+ - Added speed note to pod and demo script to misc/oo_vs_func.pl
+ - Added DEBUG const to C code for conveneience and to conform
+ with coding conventions of PHB
+ - Cleaned up Makefile.PL to minimal case
+
+0.01 2003-04-06
+ - original version; created by h2xs 1.21 with options
+ -An Digest::JHash
+
@@ -1,21 +1,30 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.031.
Changes
+Changes~
JHash.xs
LICENSE
MANIFEST
META.yml
Makefile.PL
README
+dist.ini
+dist.ini~
examples/jhash.pl
examples/oo_vs_func.pl
html/JHash.html
html/docs.css
lib/Digest/JHash.pm
+lib/Digest/JHash.pm~
misc/kwalitee.t
misc/make_manifest.pl
misc/mkdist.bat
misc/spelling.t
+t/00-compile.t
t/cpan-changes.t
t/jhash.t
t/pod.t
t/pod_coverage.t
-META.json Module JSON meta-data (added by MakeMaker)
+xt/release/cpan-changes.t
+xt/release/pod-coverage.t
+xt/release/pod-syntax.t
+xt/release/trailing-space.t
@@ -1,45 +0,0 @@
-{
- "abstract" : "Perl extension for 32 bit Jenkins Hashing Algorithm",
- "author" : [
- "Dr James Freeman"
- ],
- "dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.78, CPAN::Meta::Converter version 2.132830",
- "license" : [
- "artistic_2"
- ],
- "meta-spec" : {
- "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
- },
- "name" : "Digest-JHash",
- "no_index" : {
- "directory" : [
- "t",
- "inc"
- ]
- },
- "prereqs" : {
- "build" : {
- "requires" : {
- "ExtUtils::MakeMaker" : "0"
- }
- },
- "configure" : {
- "requires" : {
- "ExtUtils::MakeMaker" : "0"
- }
- },
- "runtime" : {
- "requires" : {
- "DynaLoader" : "0",
- "Exporter" : "0",
- "perl" : "5.008",
- "strict" : "0",
- "warnings" : "0"
- }
- }
- },
- "release_status" : "stable",
- "version" : "0.08"
-}
@@ -1,26 +1,36 @@
---
abstract: 'Perl extension for 32 bit Jenkins Hashing Algorithm'
author:
- - 'Dr James Freeman'
+ - 'Shlomi Fish <shlomif@cpan.org>'
build_requires:
- ExtUtils::MakeMaker: 0
+ Cwd: '0'
+ File::Spec: '0'
+ File::Temp: '0'
+ IO::Handle: '0'
+ IPC::Open3: '0'
+ Test: '0'
+ Test::More: '0'
configure_requires:
- ExtUtils::MakeMaker: 0
-dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.78, CPAN::Meta::Converter version 2.132830'
+ ExtUtils::MakeMaker: '0'
+dynamic_config: 0
+generated_by: 'Dist::Zilla version 5.031, CPAN::Meta::Converter version 2.142060'
license: artistic_2
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Digest-JHash
-no_index:
- directory:
- - t
- - inc
+provides:
+ Digest::JHash:
+ file: lib/Digest/JHash.pm
+ version: '0.09'
requires:
- DynaLoader: 0
- Exporter: 0
- perl: 5.008
- strict: 0
- warnings: 0
-version: 0.08
+ DynaLoader: '0'
+ Exporter: '0'
+ perl: '5.008'
+ strict: '0'
+ vars: '0'
+ warnings: '0'
+resources:
+ bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Digest-JHash
+ repository: https://github.com/shlomif/perl-Digest-JHash.git
+version: '0.09'
@@ -1,20 +1,81 @@
+# This Makefile.PL for Digest-JHash was generated by
+# Dist::Zilla::Plugin::MakeMaker::Awesome 0.24
+# and Dist::Zilla::Plugin::MakeMaker::Awesome 0.24.
+# Don't edit it but the dist.ini and plugins used to construct it.
+
+use strict;
+use warnings;
+
+use 5.008;
+
use ExtUtils::MakeMaker;
-WriteMakefile(
- 'NAME' => 'Digest::JHash',
- 'VERSION_FROM' => 'lib/Digest/JHash.pm',
- ($] >= 5.005 ?
- (ABSTRACT_FROM => 'lib/Digest/JHash.pm',
- AUTHOR => 'Dr James Freeman') :
- ()
- ),
- PREREQ_PM => {
- 'DynaLoader' => 0,
- 'Exporter' => 0,
- perl => '5.008',
- strict => 0,
- warnings => 0,
- },
- LICENSE => 'artistic_2',
- realclean => { FILES => 'Digest-JHash* *.tmp *.bak *.c' },
+
+
+my %WriteMakefileArgs = (
+ "ABSTRACT" => "Perl extension for 32 bit Jenkins Hashing Algorithm",
+ "AUTHOR" => "Shlomi Fish <shlomif\@cpan.org>",
+ "CONFIGURE_REQUIRES" => {
+ "ExtUtils::MakeMaker" => 0
+ },
+ "DISTNAME" => "Digest-JHash",
+ "EXE_FILES" => [],
+ "LICENSE" => "artistic_2",
+ "NAME" => "Digest::JHash",
+ "PREREQ_PM" => {
+ "DynaLoader" => 0,
+ "Exporter" => 0,
+ "strict" => 0,
+ "vars" => 0,
+ "warnings" => 0
+ },
+ "TEST_REQUIRES" => {
+ "Cwd" => 0,
+ "File::Spec" => 0,
+ "File::Temp" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Test" => 0,
+ "Test::More" => 0
+ },
+ "VERSION" => "0.09",
+ "test" => {
+ "TESTS" => "t/*.t"
+ }
+);
+
+%WriteMakefileArgs = (
+ %WriteMakefileArgs,
+ 'OBJECT' => 'JHash.o',
+);
+
+my %FallbackPrereqs = (
+ "Cwd" => 0,
+ "DynaLoader" => 0,
+ "Exporter" => 0,
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
+ "File::Temp" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Test" => 0,
+ "Test::More" => 0,
+ "strict" => 0,
+ "vars" => 0,
+ "warnings" => 0
);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
+}
+
+delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
+ unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+WriteMakefile(%WriteMakefileArgs);
+
+
+
@@ -0,0 +1,31 @@
+name = Digest-JHash
+author = Shlomi Fish <shlomif@cpan.org>
+license = Artistic_2_0
+copyright_holder = Dr James Freeman
+copyright_year = 2003
+
+[@Filter]
+-bundle = @Basic
+-remove = MakeMaker
+-remove = ExtraTests
+-remove = License
+-remove = Readme
+[AutoPrereqs]
+[MetaProvides::Package]
+[PodSyntaxTests]
+[PodCoverageTests]
+[Test::CPAN::Changes]
+[Test::Compile]
+fake_home = 1
+[PruneCruft]
+[VersionFromModule]
+[RunExtraTests]
+[MakeMaker::Awesome]
+WriteMakefile_arg = 'OBJECT' => 'JHash.o'
+[MetaResources]
+bugtracker.web = https://rt.cpan.org/Public/Dist/Display.html?Name=Digest-JHash
+bugtracker.mailto = bug-digest-jhash@rt.cpan.org
+repository.url = https://github.com/shlomif/perl-Digest-JHash.git
+repository.web = https://github.com/shlomif/perl-Digest-JHash
+repository.type = git
+[Test::TrailingSpace]
@@ -0,0 +1,32 @@
+name = Digest-JHash
+author = Shlomi Fish <shlomif@cpan.org>
+license = Artistic_2_0
+copyright_holder = Dr James Freeman
+copyright_year = 2003
+
+[@Filter]
+-bundle = @Basic
+-remove = MakeMaker
+-remove = ExtraTests
+-remove = License
+-remove = Readme
+[AutoPrereqs]
+[MetaProvides::Package]
+[PodSyntaxTests]
+[PodCoverageTests]
+[Test::CPAN::Changes]
+[Test::Compile]
+fake_home = 1
+[PruneCruft]
+[VersionFromModule]
+[RunExtraTests]
+[MakeMaker::Awesome]
+WriteMakefile_arg = 'OBJECT' => 'JHash.o'
+[MetaResources]
+bugtracker.web = https://rt.cpan.org/Public/Dist/Display.html?Name=Digest-JHash
+bugtracker.mailto = bug-digest-jhash@rt.cpan.org
+repository.url = https://github.com/shlomif/perl-Digest-JHash.git
+repository.web = https://github.com/shlomif/perl-Digest-JHash
+repository.type = git
+[PodWeaver]
+[Test::TrailingSpace]
@@ -12,7 +12,7 @@ use vars qw(@ISA @EXPORT_OK $VERSION);
@ISA = qw(Exporter DynaLoader);
@EXPORT_OK = qw( jhash );
-$VERSION = '0.08';
+$VERSION = '0.09';
bootstrap Digest::JHash $VERSION;
@@ -20,9 +20,6 @@ bootstrap Digest::JHash $VERSION;
__END__
-=pod
-
-=for stopwords JHash burtleburtle bigpond Jenkins
=head1 NAME
@@ -94,4 +91,6 @@ This package is free software and is provided "as is" without express or
implied warranty. It may be used, redistributed and/or modified under the
terms of the Artistic License 2.0. A copy is include in this distribution.
+=for stopwords JHash burtleburtle bigpond Jenkins
+
=cut
@@ -0,0 +1,96 @@
+package Digest::JHash;
+
+use strict;
+use warnings;
+
+require 5.008;
+
+require Exporter;
+require DynaLoader;
+use vars qw(@ISA @EXPORT_OK $VERSION);
+
+@ISA = qw(Exporter DynaLoader);
+
+@EXPORT_OK = qw( jhash );
+$VERSION = '0.08';
+
+bootstrap Digest::JHash $VERSION;
+
+1;
+
+__END__
+
+
+=head1 NAME
+
+Digest::JHash - Perl extension for 32 bit Jenkins Hashing Algorithm
+
+=head1 SYNOPSIS
+
+ use Digest::JHash qw(jhash);
+
+ $digest = jhash($data);
+
+ # note that calling jhash() directly like this is the fastest way:
+
+ $digest = Digest::JHash::jhash($data);
+
+=head1 DESCRIPTION
+
+The C<Digest::JHash> module allows you to use the fast JHash hashing algorithm
+developed by Bob Jenkins from within Perl programs. The algorithm takes as
+input a message of arbitrary length and produces as output a 32-bit
+"message digest" of the input in the form of an unsigned long integer.
+
+Call it a low calorie version of MD5 if you like.
+
+See http://burtleburtle.net/bob/hash/doobs.html for more information.
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item jhash($data)
+
+This function will calculate the JHash digest of the "message" in $data
+and return a 32 bit integer result (an unsigned long in the C)
+
+=back
+
+=head1 EXPORTS
+
+None by default but you can have the jhash() function if you ask nicely.
+See below for reasons not to use Exporter (it is slower than a direct call)
+
+=head1 SPEED NOTE
+
+If speed is a major issue it is roughly twice as fast to do call the jhash()
+function like Digest::JHash::jhash('message') than it is to import the
+jhash() method using Exporter so you can call it as simply jhash('message').
+There is a short script that demonstrates the speed of different calling
+methods (direct, OO and Imported) in examples/oo_vs_func.pl
+
+=head1 AUTHORS
+
+The JHash implementation was written by Bob Jenkins
+<bob_jenkins [at] burtleburtle [dot] net>.
+
+This perl extension was written by Andrew Towers
+<mariofrog [at] bigpond [dot] com>.
+
+A few mods were added by James Freeman
+<airmedical [at] gmail [dot] com>).
+
+=head1 SEE ALSO
+
+http://burtleburtle.net/bob/hash/doobs.html
+
+=head1 LICENSE
+
+This package is free software and is provided "as is" without express or
+implied warranty. It may be used, redistributed and/or modified under the
+terms of the Artistic License 2.0. A copy is include in this distribution.
+
+=for stopwords JHash burtleburtle bigpond Jenkins
+
+=cut
@@ -0,0 +1,53 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.046
+
+use Test::More tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+
+
+my @module_files = (
+ 'Digest/JHash.pm'
+);
+
+
+
+# fake home for cpan-testers
+use File::Temp;
+local $ENV{HOME} = File::Temp::tempdir( CLEANUP => 1 );
+
+
+my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
+
+use File::Spec;
+use IPC::Open3;
+use IO::Handle;
+
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
+my @warnings;
+for my $lib (@module_files)
+{
+ # see L<perlfaq8/How can I capture STDERR from an external command?>
+ my $stderr = IO::Handle->new;
+
+ my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
+ binmode $stderr, ':crlf' if $^O eq 'MSWin32';
+ my @_warnings = <$stderr>;
+ waitpid($pid, 0);
+ is($?, 0, "$lib loaded ok");
+
+ if (@_warnings)
+ {
+ warn @_warnings;
+ push @warnings, @_warnings;
+ }
+}
+
+
+
+is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', explain \@warnings if $ENV{AUTHOR_TESTING};
+
+
@@ -0,0 +1,11 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More 0.96 tests => 2;
+use_ok('Test::CPAN::Changes');
+subtest 'changes_ok' => sub {
+ changes_file_ok('Changes');
+};
+done_testing();
@@ -0,0 +1,7 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
+
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
+
+all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -0,0 +1,6 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();
@@ -0,0 +1,30 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval "use Test::TrailingSpace";
+if ($@)
+{
+ plan skip_all => "Test::TrailingSpace required for trailing space test.";
+}
+else
+{
+ plan tests => 1;
+}
+
+# TODO: add .pod, .PL, the README/Changes/TODO/etc. documents and possibly
+# some other stuff.
+my $finder = Test::TrailingSpace->new(
+ {
+ root => '.',
+ filename_regex => qr#(?:\.(?:t|pm|pl|xs|c|h|txt|pod|PL)|README|Changes|TODO|LICENSE)\z#,
+ },
+);
+
+# TEST
+$finder->no_trailing_space(
+ "No trailing space was found."
+);