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