2009-12-27 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.25.
2009-06-02 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.24.
2009-01-16 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.23.
2007-10-23 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.22.
2007-10-04 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.21.
Sat Aug 6 12:39:43 2005 Jarkko Hietaniemi <jhi@iki.fi>
* [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.
* Released as 1.20.
Sun Mar 28 17:16:26 2004 Jarkko Hietaniemi <jhi@iki.fi>
* [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.
* Released as 1.19.
Sat Oct 4 17:56:24 2003 Jarkko Hietaniemi <jhi@iki.fi>
* Removed a cut-and-paste bug from symmetric_difference();
from frederik.
* Released as 1.18.
Sat Dec 8 01:48:35 2001 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.17.
Tue Oct 23 17:20:32 2001 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.16.
Mon Oct 22 20:18:56 2001 Jarkko Hietaniemi <jhi@iki.fi>
* Documentation and whitespace nits: 1.14.
* Released as 1.15.
Sat Oct 20 02:56:21 2001 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.13.
Sat Oct 13 17:40:28 2001 Jarkko Hietaniemi <jhi@iki.fi>
* Add each() as a lighter weight way of iterating
over sets, as suggested by Dave Lewis.
* Released as 1.12.
Wed Oct 10 17:31:12 2001 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.11.
Fri Aug 3 15:42:38 2001 Jarkko Hietaniemi <jhi@iki.fi>
* 1.10: Added COPYRIGHT and LICENSE.
Mon May 7 17:53:18 2001 Jarkko Hietaniemi <jhi@iki.fi>
* Annotation mixup: The fix known as 1.08 by Mark Dilger,
not Joy Koenig.
* Released as 1.09.
* 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.
* Released as 1.08.
Mon Mar 5 16:31:32 2001 Jarkko Hietaniemi <jhi@iki.fi>
* 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.
* Released as 1.07.
Sat Feb 10 00:54:29 2001 Jarkko Hietaniemi <jhi@iki.fi>
* Make the code Perl 5.00404-proof, patch from Ed Grimm.
* Released as 1.06.
Thu Jan 18 08:24:20 2001 Jarkko Hietaniemi <jhi@iki.fi>
* Add examples of the set differences.
* NOTE: unique now returns a set, not a list of elements,
as it was documented and intended.
* Released as 1.05.
* unique() was rather broken, reported by Malcolm Purvis.
* Released as 1.04.
Tue Oct 31 03:09:03 2000 Jarkko Hietaniemi <jhi@iki.fi>
* Use a custom overloaded data stringification routine
instead of overload::StrVal(). This solves the memory
leak reported by Joshua Richardson <jric@yahoo-inc.com>
_and_ speeds up the code by about 40%! (make test timings)
* Released as 1.03.
Fri Sep 15 18:56:08 2000 Jarkko Hietaniemi <jhi@iki.fi>
* Null sets weren't subsets of every set in comparisons.
Noticed by Gerard Vreeswijk <gv@cs.uu.nl>.
* Released as 1.02.
2000-04-15 Jarkko Hietaniemi <jhi@iki.fi>
* Make to work with perl 5.6.0.
* Release as 1.01 as no bug reports have been seen for many moons.
1999-09-24 Jarkko Hietaniemi <jhi@iki.fi>
* Paul Schinder <schinder@pobox.com> 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 <kimball@stsci.edu> reported that Set::Scalar 0.9
had the super/subsetness the wrong way round. Fixed.
* Set::Scalar 0.901 released.