Revision history for Judy
0.20 - Fri Mar 26 11:24:00 2010
Releasing a new version purely to deal with some PAUSE.cpan.org issue
0.19 - Fri Mar 26 7:52:00 2010
18f75f7cfdc0e866061a054687910e68d7b2141a Clean up types for debugger statements
39c24a4296829573374395621ef07dd1712e5191 Minor reformatting
bbd73c6272c897a78092d0cbb304f770c157138a Remove some less useful comments
1f7b4e6fa2d37e20e2c9ca65cc1b95dd6f7fed64 Use PWord_t_, not Word_t*
0.18 - Thu Mar 25 13:42:00 2010
Bug fixes:
* The char* allocated by String2Ptr now have a trailing null. I
noticed that a common strcpy() of my allocated strings pulled in
random garbage because apparently all my initial work had just
accidentally worked right.
Without this bug fix, this can be worked around by appending
your own null:
my $ptr = Judy::Mem::String2Ptr( "hello world\0" )
0bc65322391f5a402c7fe523badd9582e51c3405 Add a terminating null to String2Ptr allocated strings
07d1f01575e7e1273c7aca53b618f59d5a35dec9 Remove unused variable from String2Ptr
0.17 - Wed Mar 24 23:28:00 2010
1e07c856ab39017fedb133590c664eaf0b5490bf Adjust tests to accomodate extra FETCH requests on behalf of perl-5.8.7
0.16 - Wed Mar 24 23:10:00 2010
f1a58a728fde2fe568f0d63411fe28af42a8aef7 Use Test::Deep to work-around perl-5.8.7 which would FETCH *many* times against a tied value and would break t/41typemap.t for no good reason
0.15 - Wed Mar 24 21:55:00 2010
322dbba36177b6892511bacf2a93f8c48ab7b773 Inline::C accepts a *string* in TYPEMAP, not array
0.14 - Wed Mar 24 16:25:00 2010
Bug fixes:
* The functions Judy::SL::Get and ::Set were clobbering the
contents of the index keys. These variables weren't supposed to
be writable.
These functions should not be used prior to this release.
* The functions Judy::1::Free, ::NextEmpty, ::LastEmpty, ::PrevEmpty
all accidentally used the wrong functions for JudyL arrays instead
of Judy1 arrays. It seems like a copy/paste error.
These functions should not be used prior to this release.
* My Judy API normally writes the object's pointer to a in/out
variable. There was a potential memory leak if your original object
pointer was undef instead of 0. The newly allocated value is now
mortalized.
This can be worked around by initializing the Judy object. Do:
my $judy = 0;
Set( $judy, ... )
Instead of:
my $judy;
Set( $judy, ... )
* The commit 0f5f24c appears to fix something about lifting undef
values to real values. I don't recall the substance of what happened
incorrectly without this.
33a86ab42895c22b42f0e04b9b97c0b2f9e04258 Adding tied and object interfaces
8a99855d8da7a2e53fac283caa51f93231205984 Expand tabs
8aca5f37ae1e09b753db35d3d0ff0c345e815789 Add comments
c743f6269187baf969841dbb6d0d68e7099efac1 Add debugging interface
e17d8ff7e849c04b36fa53d4bd2a274246671471 Everyone wants debugging symbols
34f79959ba649f879c818f479666947d2043d827 Be clearer about writing a null char to strings requiring null termination
54f31540268b8eb7966da7a8034a113ca13c0019 Cast Index to char* Judy::SL::(First,Next,Last,Prev)
728fae7e2e3094b00342564196dd6257099d7000 Judy::SL::Get was setting the key's C value by accident
9df3be3646b7bb261011d7d8a1b9723095fb1048 Judy::SL::Set was setting the key's C value by accident
ae661a371f86457ae62b9cffe720a654b7be8947 Judy::1:: Free, NextEmpty, LastEmpty, PrevEmpty used completely wrong APIs
f8263552fbb84dd5372f6be1c1145e4fc6654403 Lowercase deadbeef
51b10fac28e49e82d93c894e73b143d01841044c Mortalize the output when creating a judy pointer
4e0245d2a81a1e695ed370c750a7c9c1a259b318 Word_t* -> PWord_t for conciseness
8a92184856b014cd043653c34960d40f554368b9 t/41typemap.t has 23 tests
0f5f24c85568fa781ad05145caff12f2454d6609 Instantiate target SVs before calling sv_set{iv,pvn}
0.13 - Sun Apr 5 14:28:00 2009
Bug fixes:
* The functions Judy::SL::First, ::Next, ::Last, ::Prev were
clobbering the contents of the index keys. These variables weren't
supposed to be writable.
These functions should not be used prior to this release.
897dc7a7b3f7b0c83bc8d56461e8ced83b0f0b13 Removed (char*) typecast from Index - wasn't needed
96e01701727ffcc93525525e5f8146a66992ae68 Removed accidental Safefree from Judy::SL::Last
bfd975011f2b2b444369edb3783deff75a516ec3 Judy::SL::Next copies Index like I thought I committed previously
39494e19dcb530d09400773e09f37642d414bfd9 added blank space between packages in XS to make it easier to scan
163a8281f4f580d6b20b249bcddce85c51a221b1 add PWord_t type for more conciseness
1cabdcb08efb4f4e7b50635bfdb8a6aac4e6654c Judy::SL First, Next, Last, Pref don't clobber SvPV now
0.12 - Sun Jan 4 02:06:00 2009
50d6c6ac4862d77e53d4791ada9a3fba1ca76bb4 Updating documentation
bb13e254151eccd773168771b310463ce50060be Use perl's croak() on error instead of Judy's fprintf(stderr,..);exit(1).
2d77ac9de985ab64b210b4fa9b06602b255671c5 More careful checking for data truncation
0.11 - Sat Jan 3 19:22:00 2009
Bug fixes:
* Handles "set" magic. Previously, if something being written to were
tied, the right thing wouldn't happen.
5d26deb1395bea994f7a8157634e5b6ed53328e7 Adding several files
0bede2d8ad33c03e5e29a3496b45c95f48978819 Ignore _Inline
2272efcf967c5eba430a31f381280b296fb0b834 Remove const-c.inc, const-xs.inc harder
ff9139907fc84a76844210930bbc37d9f502c9bc Allow Str.length=0 for easy use of null terminated strings
241532e026a6496dc209fb256c2b7fa2c4e1d4b0 Removing const-{c,xs}.inc
8b4ed49a13382c553d7d6cae3bbc091dc1ecd293 Adding Inline::C
01a5464fd759fe4aae61413ced8d3da5de619fde Introduce typedef Str for uniform SV*->((char*),STRLEN) capture Silence warning, casting from (char*) to (uint8_t*) and
ae3d809744caf37986d2ef164834c25a388350a3 Use PUSHp to get SV-set magic
a28db4ae8179dc3ecfd540ad997b8dec2227e8ec Silence warning, casting from (char*) to (uint8_t*) and (const uint8_t*)
07caf7318a41389fff5c7096865ed4b5125e1650 Starter test
7497b8d674b4004a11c21b058f10fa86ee2aeeb0 Dox
f08a2639b73f37d4c2c6814485267d370abf6135 Rename t/40l.t to t/40trunc.t
93e82fc25e593e705abec167b685fae273b36500 syntax
31f1eaba97aef0ec4efecae1a1c186113dda6168 Don' invoke set magic twice
87f96b8fd57bd690bf732de925d73d48afad3477 Allow utf8 perl strings Refactored a smidge of XS so string handling is now strictly in the typemap Typemap handles SET
0.10 - Sat Dec 26 15:06:00 2008
0061f4e2792a48f3bb1ea83e98ca54beafcf2e2b Require Alien::Judy 0.06
0.09 - Sat Dec 26 12:59:00 2008
API changes:
Moved PJERR and JLAP_INVALID from Judy::Mem to Judy
Removed PeekI, PokeI, PeekU, PokeU using IV and UV
Added Peek and Poke using Word_t
Moved XS from Judy::HS to Judy.
Added Judy.pm, Judy.pod
Release script checks a -Duse64bitint perl.
Added notes to XS
DEADBEEF is sized to UVSIZE
Switched from PPCODE-style XS to CODE/OUTPUT-style XS to use implicit TARG.
Added typedefs for Pvoid_t, Word_t*, Word_t
Throw warning when UV/IV integers discard data when being truncated
for storage into native sized Word_t.
Require at least Alien-Judy 0.05
Removed const-c.inc, const-xs.inc from the dist since they're generated
Stop assigning 0 to $judy objects in example code - undef suffices
Moved PJERR and JLAP_INVALID to Judy from Judy::Mem
Judy::1, Judy::L, Judy::SL, Judy::HS all load Judy
Judy loads all of Judy::1, Judy::L, Judy::S, Judy::HS
Added test t/40l.t which checks for data loss on machines with
-Duse64bitint that don't have 64-bit words.
0.08 - Tue Dec 22 00:07:00 2008
Add -L and -I build parameters to find Alien::Judy
Adding docs
0.07 - Sun Dec 21 09:46:00 2008
Added Judy::1 and Judy::L
Changed API. Renamed search functions to be in line with the C library
SearchForward -> First
ContinueForward -> Next
SearchBackward -> Last
ContinueBackward -> Prev
Removed vestigial PeekPoke from tests
Added constants PJERR, PJLAP_INVALID
0.06 - Sat Dec 20 01:20:00 2008
Depends on Alien::Judy to auto-install Judy
0.05 - Fri Dec 19 00:35:34 2008
Added Judy::Mem
Added t/20sl.t
Renamed t/10basic.t to t/10hs.t
Removed PeekPoke dependency. Re-implemented in Judy::Mem.
Stop using sv_2pvbyte, use SvPVbyte instead.
Using ppport.h at its own recommendation. Possibly incompatible with 5.6.1. See comment in HS.xs
Changed C comment syntax from // to /**/
Fixed README, now it autogenerates from README.pod
Git ignores Judy-*
Cleaned MANIFEST
0.04 - Fri Dec 20 12:02:00 2008
Added Judy::SL
Fixed documentation in Judy::HS
0.03 - Thu Dec 19 02:00:00 2008
Rewrote API
0.02 - Thu Dec 18 00:05:27 2008
Rewrote API
Moving pod to a separate file, minimally rewriting docs for new API
Rendered pod to README
Removed boilerplate from Changes
Author tests skipped unless AUTHOR_TEST
0.01 - Wed Dec 17 13:31:03 2008
Initial upload.
Provided "raw" HS macros, some tests failing