1.29 2014-03-24 Dave Oswald * Fixed set operations examples in POD (Xaerxess via GitHub). 1.28 2014-02-24 Dave Oswald * Fix POD example showing power_set() method returning an iterator. Now it correctly demonstrates power_set_iterator() returning an iterator. (Response to report from vagabonding_electron on PerlMonks.) 1.27 2013-12-31 Dave Oswald * Merge pull request for typo fix in POD. * Merge pull request for adding meta-data via Makefile.PL. * ChangeLog is more standards compliant. * Module POD now mentions current maintainer, and GitHub repo. 1.26 2013-06-15 Jarkko Hietaniemi * Fixed "Set::Scalar::Valued" [rt.cpan.org #69037], bug reported and fix supplied by Kiran Mukhyala, the problem was in null() not being defined for valued set universes. * Fixed qq[More whitespace in examples could show "picture" of operations] [rt.cpan.org #54172 and #54173], bug reported and fix supplied by MichaelRWolf. (ASCII art, so relies on fixed-width font.) 1.25 2009-12-27 Jarkko Hietaniemi * Fixed "trying to add an element twice prevents further adds to the set" [rt.cpan.org #52559], bug reported by Eduard Wulff. * Removed unused and deprecated (Perl 5.12?) "use UNIVERSAL 'isa'" from Set/Scalar/Virtual.pm. * Add tests for the copy overload. 1.24 2009-06-02 Jarkko Hietaniemi * Fixed "The intersection method does not like references in the set." [rt.cpan.org #46589], bug reported and fix provided by Father Chrysostomos. * Cosmetics: removed trailing whitespace. * Renamed README as README.old. It has been close to ten years. * Added new README. * Updated copyright years. 1.23 2009-01-16 Jarkko Hietaniemi * Add overload for '@{}' as suggested by John Loverso, meaning that you can now do @$set and get the members of the set (unordered, mind) * Add overload for '=' (how did we manage so long without?) [rt.cpan.org #42449] * Remove explicit import of UNIVERSAL::isa() [rt.cpan.org #42451] * Modernize META.yml. 1.22 2007-10-23 Jarkko Hietaniemi * Add cartesian_product() and power_set(), both as full constructors and as iterators. * Add empty_clone(). * Makefile.PL not requiring Test::More since we are not using it. 1.21 2007-10-04 Jarkko Hietaniemi * Made to work with the upcoming Perl 5.005_05 (yes, you read that right), most importantly Scalar::Util made optional (we fall back to pure Perl emulations for blessed() and refaddr() if necessary). Everything else already worked. 1.20 2005-08-06 Jarkko Hietaniemi * [cpan #13816] Set::Scalar blesses unblessed refs A genuine bug, the suggested fix used, but then again Set::Scalar was never designed or tested be used with references as the set members. I would not recommend doing that unless much more testing has been conducted. A test added to misc.t for that, and a warning about using references as the set members added to the pod. * [cpan #13856] funny behavior in Set::Scalar::Base::intersection and Set::Scalar::Base::union A genuine bug, but the suggested fix as-is would break the special cases of intersecting with the null set and unioning with the universal set. A slightly enhanced version of the fix used instead, tests added to intersection.t and union.t. * [cpan #13857] Set::Scalar::Base::_binary_underload bug Not really a bug. The _binary_underload() method is only ever going to be called by Set::Scalar itself, or by classes derived from Set::Scalar, so the assumption that all references are object and that they are capable of calling the new() method (i.e. being instance of Set::Scalar) is completely valid. Trying to use the suggested fix also badly breaks the laws.t when the universal and null sets are present. 1.19 2004-03-28 Jarkko Hietaniemi * [cpan #5829] When is_disjoint() was called in list context, and the result was disjoint (not disjoint universes), the return value was a list with one undef element, from Alexei. 1.18 2003-10-04 Jarkko Hietaniemi * Removed a cut-and-paste bug from symmetric_difference(); from frederik. 1.17 2001-12-08 Jarkko Hietaniemi * Added is_empty() and empty() aliases for is_null() and null(); from Peter Oliver. * In the display callback discussion show by example that one can use the same callback for several sets (instead of generating a new anonymous subroutine each time), and clarify the class versus object method wording. 1.16 2001-10-23 Jarkko Hietaniemi * Allow customising the set display: as_string_callback(). * Got the acknoledgement about the clear() idea wrong: it was Dave Lewis, not Dan Berger. * Document that the clear() does not really release the memory. 1.15 2001-10-22 Jarkko Hietaniemi * Documentation and whitespace nits. 1.14 2001-10-20 Jarkko Hietaniemi * Changed has() and contains() to return boolean, not the member, as pointed out by Mark Dilger. * Add clear() method to remove all the elements, as suggested by Dave Lewis. Doesn't release the memory to the operating system, though (in general, Perl doesn't), just releases the memory to be reused by Perl, so don't expect your memory footprint go down when you clear your gigaset. 1.12 2001-10-13 Jarkko Hietaniemi * Add each() as a lighter weight way of iterating over sets, as suggested by Dave Lewis. 1.11 Wed 2001-10-10 Jarkko Hietaniemi * In boolean contexts the string representation of sets is not the best possible one, reported by Dan Berger. Now the size of the set is returned in boolean contexts. 1.10 2001-08-03 Jarkko Hietaniemi * Added COPYRIGHT and LICENSE. 1.09 2001-05-07 Jarkko Hietaniemi * Annotation mixup: The fix known as 1.08 by Mark Dilger, not Joy Koenig. 1.08 2001-05-07 Jarkko Hietaniemi * Set::Scalar()->new() - Set::Scalar()->new() didn't equal Set::Scalar()->new(), thanks to wrong inheritance order. Spotted and most graciously fixed by Joy Koenig. 1.07 2001-05-05 Jarkko Hietaniemi * Union could end up returning a true universe, from which one cannot delete elements (e.g. using difference), bug reported by Malcolm Purvis. The fix (which was applied to all of the union+intersection+difference+symmetric_difference) was to 'downgrade' results of the same size as the first argument. * Set::Scalar called itself Set::Scalar::Base. 1.06 2001-02-10 Jarkko Hietaniemi * Make the code Perl 5.00404-proof, patch from Ed Grimm. 1.04 2001-01-18 Jarkko Hietaniemi * Add examples of the set differences. * NOTE: unique now returns a set, not a list of elements, as it was documented and intended. * unique() was rather broken, reported by Malcolm Purvis. 1.03 2000-10-31 Jarkko Hietaniemi * Use a custom overloaded data stringification routine instead of overload::StrVal(). This solves the memory leak reported by Joshua Richardson _and_ speeds up the code by about 40%! (make test timings) 1.02 2000-09-15 Jarkko Hietaniemi * Null sets weren't subsets of every set in comparisons. Noticed by Gerard Vreeswijk . 1.01 2000-04-15 Jarkko Hietaniemi * Make to work with perl 5.6.0. * Release as 1.01 as no bug reports have been seen for many moons. 0.901 1999-09-24 Jarkko Hietaniemi * Paul Schinder reported that the set_set.t subtest #5 produces "(a (b (a (c ...) ...)) (c ...))" for him, not "(a (b (a ...)) (c ...))" as expected. Nondeterminism in stringification. Not yet resolved but the test hacked to allow either (for subtests #5 and #6). * Timothy Kimball reported that Set::Scalar 0.9 had the super/subsetness the wrong way round. Fixed.