Revision history for Perl extension UUID.
next TBD
- Removed bundled e2fsprogs UUID code.
- Added :mac=random/unique to hide real MAC.
- Switched to ChaCha20 as RNG when /dev/urandom not available.
- Added version 6 UUIDs.
- Added uuid1(), uuid4() to return strings directly.
- Added generate_v1() and generate_v4() for binaries.
- Fixed duplicate Win32 random UUIDs when more than 1K/sec.
- Fixed Win32 v1 throttling when more than 10K/sec.
- Fixed duplicate v1 UUIDs everywhere when more than 10M/sec.
- Exposed persistent state function.
- Added :persist to make state path configurable.
- Fixed possible symlink attack on persistent file.
- Added benchmarks in tests.
> make test TEST_VERBOSE=1 TEST_FILES=t/zbench*.t
- Added benchmark comparing version speeds and calling styles.
> make compare
- Now believed to be thread safe.
ToDo:
- Remove old old tests.
- Builds twice under nmake.
- nmake has data type conversion warnings. (3 in perl inline.h)
- Expose variant_string().
- Fallback for generate() should be a v1 with random mac.
- Generate uuid7?
- New funcs?:
- generate_v7() (time + rand)
- generate_v8() (all custom)
- Configurable v4 fallback.
- should this really be RNG fallback?
- :fallback=PRNG (xoshiro?)
- :fallback=CSPRNG (ChaCha?)
- :fallback=warn
- :fallback=croak
- run-time load option?
- :fallback=v1 (legacy)
- :fallback=v3 (md5 deprecated)
- :fallback=v5 (sha1 deprecated))
- :fallback=v6
- :fallback=v7
- :fallback=weak (use xoshiro)
- :fallback=strong (use ChaCha)
- :fallback=warn
- :fallback=croak (just die)
- :fallback=warn,weak
- Tests for time. (v1, etc)
- Compare persistance vs. bareback.
0.32 Tue Dec 12 23:23:51 EST 2023
- Expose uuid_type().
- Expose uuid_variant().
- Expose uuid_time().
- Remove dependence on system libraries.
- Update POD.
0.31 Mon Nov 6 23:43:58 EST 2023
- Make generated metafiles authoritative and test.
- Thanks to twata. [rt.cpan.org #150311]
- Re-enable warnings, per Kwalitee.
- Rename License to LICENSE, per Kwalitee.
- Add 'provides' info to metafiles, per Kwalitee.
- Add test deps, per Kwalitee.
- Switch to non-system types.
- Fix make order.
- Fix misguided config.h.
- Fix missing prototypes.
- Fix missing patch.
- Split to two level diff utils.
0.30 Tue Oct 31 17:16:50 EDT 2023
- Bump ExtUtils::MakeMaker prereq to 6.64 (first version supporting
TEST_REQUIRES).
- Better support for older Win32.
- Fix trivial build warnings.
0.29 Wed Oct 25 01:15:57 EDT 2023
- Bump prereq version for Devel::CheckLib to 1.14 to fix problems with
Strawberry versions 5.18 to 5.28. Earlier Strawberry did not ship
Devel::CheckLib. Newer versions shipped 1.14 or later.
- Thanks to twata. [rt.cpan.org #143841]
0.28 Sat Dec 29 00:59:25 EST 2018
- Add OSSP variant of libuuid. CentOS7 (and presumably other RedHat
derivatives) have packages for both OSSP and e2fs. Favor e2fs, if
found, since our implementation of OSSP is probably slower.
- Thanks to Greg Cox. [rt.cpan.org #128122]
0.27 Fri Sep 23 01:52:00 EDT 2016
- Update SYNOPSIS to remove ":all". Indiscriminate exports could cause
problems with other modules, such as File::Copy::copy().
- Thanks to Slaven Rezic. [rt.cpan.org #118033]
0.26 Sat May 7 02:32:52 EDT 2016
- Fix broken @ARGV handling in Makefile.PL regarding debug flag.
- Also changed DEBUG flag to UUID_DEBUG
- Thanks to gregor herrmann. [rt.cpan.org #114213]
0.25 Mon Mar 14 10:15:55 EDT 2016
- Changed all prints in Makefile.PL to warns and made both
unbuffered to match Devel::CheckLib
- Remove uuid_unparse_lower/upper() calls which don't exist
on SunOS
- Ignore TEST_REQUIRES on EUMM < 6.64
- Try to find correct link lib (-lrpcrt4, -luuid, -lc, in order)
- Make string argument a char** for uuid_to_string()
- Add note on Linux UUID packages
- Moved test.pl to t/test.t and updated to Test::More
- Changed debug() to emit to stderr to match Devel::CheckLib
- Removed Makefile.PL verbosity
- Added switch to Makefile.PL to incite verbosity
- Become verbose for smokers only on dev releases
- Added build notice for missing header/libraries
- Bail out of build if uuid_t size == 0
- Reorganized header/library search to find wayward OSX
- Thanks to David Wheeler and William Faulk for pointers and
lots of patience in testing. [rt.cpan.org #104394]
0.24 Mon Jan 19 01:05:14 EST 2015
- Add 'extern "C"' for g++
0.23 Sun Dec 28 18:58:04 EST 2014
- Reverse order of rpc.h and rpcdce.h in UUID.xs (rpc.h first)
0.22 Sun Dec 28 08:42:23 EST 2014
- Ugh! Forgot to include rpcdce.h in UUID.xs
0.21 Sun Dec 28 08:35:23 EST 2014
- Instead of unistd.h, try rpcdce.h on Win
- Minor cleanup in test.pl
0.20 Sat Dec 27 19:27:28 EST 2014
- Also include unistd.h when using Rpc.h (Win)
- Fix pointer problem in -luuid search on Win
- Fix minor header propagation problem in Makefile.PL
0.19 Fri Dec 26 17:09:12 EST 2014
- Fix pointer confusion in do_uuid() on BSD [rt.cpan.org #101137]
0.18 Fri Dec 26 08:20:06 EST 2014
- Allow for non-true/false return from uuid_from_string() on BSD
- Remove unused dependency on Config.pm
- Added yet more debug info for 'make test' time
- Change -DPERL__UUID__UUID_BUF_SZ to -DPERL__UUID__STRUCT_SZ
0.17 Fri Dec 26 05:05:13 EST 2014
- Removed two nested comments on BSD /* sigh */
- Let e2fs machines use sv_cmp too (let's see if OSX Frankenbox works)
- Changed warns in Makefile.PL to prints
0.16 Thu Dec 25 18:24:23 EST 2014
- Typo on Windows/BSD
- Trying sv_cmp() instead of uuid_compare() on RPC-based machines
0.15 Thu Dec 25 05:55:13 EST 2014
- REALLY fix do_uuid() typo. Really.
- Fix pointer problems on BSD
- Removed uuid_copy() from BSD. How did that get there? =)
- Added yet another test for OSX segfault!
- Check and set -DPERL__UUID__UUID_BUF_SZ=?? in Makefile.PL
(Should be the same everywhere, right? Right?)
0.14 Wed Dec 24 22:39:42 EST 2014
- Fix typo in Windows do_uuid() for compiler fail on strawberry
- Now checking for all header files instead of taking first
- Added more detail for failed interface search
- Added check for uuid struct size
0.13 Wed Dec 24 07:45:49 EST 2014
- Split -luuid search into header file and interface type stages
- Removed SvPV_nolen everywhere (buffer overflows)
0.12 Wed Dec 24 03:07:50 EST 2014
- Added support for non-e2fs systems (BSD, OSX, Win)
0.11_01 Tue Dec 23 20:23:29 EST 2014
- Modified test.pl to hopefully catch where MacOSX fails
- Heavy mods to Makefile.PL to differentiate between interfaces
- Makefile.PL *lots* more verbose
- Lots of #ifdefs added in XS
- First shot at code that works for BSD style interface
0.11 Mon Dec 22 19:03:09 EST 2014
- Looks like I've managed to cut the failure reports down a little TOO
far, so now splitting the search for -luuid into two separate
phases. The first, which I don't want to deal with right now, tests
for usability of the -luuid flag by itself. The second, tests for
usability of individual functions. We'll deal with platforms that
actually find libuuid first, then MAYBE revisit others.
0.10 Mon Dec 22 11:55:30 EST 2014
- Added clear() and is_null()
- Added copy() and compare()
- Added unparse_lower() and unparse_upper()
- Added generate_random() and generate_time()
0.09 Mon Dec 22 04:31:26 EST 2014
- Drag test.pl into this century using Test.pm
- Add postamble to Makefile to generate README
- Overhaul POD
- Fix MacOS warning "unsigned char* <--> char*"
0.08 Sun Dec 21 06:06:21 EST 2014
- Added README with pod2text UUID.pm README
- Switched libuuid search to Devel::CheckLib
0.07 Sat Dec 20 21:12:17 EST 2014
- Updated Makefile.PL
- Added search for -luuid at Makefile.PL time
- Updated license and POD to Artistic 2.0
0.06 Thu Dec 18 08:01:44 EST 2014
- Took over maintaining (Rick Myers - JRM)
- Added uuid()
0.05 Fri Dec 14 20:00:00 GMT 2012
- Took over maintaining (Lukas Zapletal - LZAP)
- Version bump (no changes)
- Releasing in the original location
0.04 Wed Jul 22 20:17:26 PDT 2009
- Seems to be abandoned (again)
- Bump version number and upload to PAUSE
0.03 Fri Jan 12 15:24:24 MST 2007
- Added Artistic license
- Took over maintaining (Colin Faber - CFABER)
0.02 Unknown
- unknown changes
0.01 Thu Feb 8 06:07:59 2001
- original version; created by h2xs 1.20 with options -A -n UUID