The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.



1.42, 2022-01-21

  • Fix %h={} warning, by Pauwel Coppieters

  • add examples/ see RT #90070

1.41, 2021-01-17

  • Use meta-spec 2, Moose -> dev.requires not runtime.recommends (GH #6, RT #134034) by mohawk

1.40, 2020-01-19

  • Fixed perl5.28 regressions (not cperl), for @$set args to other set functions. (RT #131345). Fixed by adding missing SvGETMAGIC expansions to all args.

  • Bumped minimal required perl version to 5.8 for arrayref @$set behavior.

  • Fixed the smokers and some author tests.

1.39, 2018-01-08

  • Skip installing Changes.pod (PR #5, kentfredric)

1.38, 2017-11-11

  • Add test_cover and release targets

1.37, 2017-11-11

  • Test fixes for -Ddefault_inc_excludes_dot, RT #120540

  • Skip failing threads test <= 5.10.0

  • Add CI hooks

1.36, 2017-11-10

1.35, 2015-06-10

  • Change to Artistic License 2.0

  • Add more misc tests. Add use strict to Set::Object::Weak

1.34, 2013-12-25

  • Make synopsis examples work (tadzik)

1.33, 2013-12-13

  • Fix RT #90070: Improve pod for sorted @$set in list context vs unsorted ->elements (ftobin)

  • Fix RT #87658: Typo in pod (dsteinbrunner)

1.32, 2013-05-15 rurban (released 2013-12-13)

  • Reverts Changes.pod patch RT#85244 as it conflicts with the Set::Object pod on metacpan. Also RT #85246

1.31, 2013-05-13 rurban

  • Changes.pod patch by Gregor Hermann, debian perl group - RT#85244

1.30, 2013-04-04 rurban (new maintainer)

  • Fixes for 5.16 and newer - RT#83426 Sort by member names, not the refs. Fix wrong weak test with globals. Changed to lexicals and use strict/warnings.

  • Fix t/misc/segfault.t, check SvMAGICAL before doing mg_find

  • Fixed wrong C format types in warnings and SET_OBJECT_MAGIC_backref. Added PREREQ_PMs, make Test::LeakTrace and Moose an optional dependency for t/misc/more_leaks.t

  • Improve thread-safety (forbid concurrent writes), but still dealing with Attempt to free non-existent shared string and Unbalanced string table refcount: (1) for "8" during global destruction. - RT #22760

  • Add missing typemap entry const char * for 5.6

1.29, 13 Feb 2013

  • Fixed a typo in a function which really shouldn't exist - RT#79653

  • Marked a couple of functions as deprecated for removal (including the above function).

  • Fixed the magic cleanup code to use the appropriate macro/function to clean up the magic list instead of trying to do it itself. Unsurprisingly, fixes a memory leak. (RT#69967, also RT#67289)

1.28, 22 Jul 2010

  • Fixed a portability concern for some platforms' C compilers (that do not support //-style comments) - RT#52690

  • Valid SIGNATURE file - RT#50492

1.27, 15 Jan 2009

  • Fix a typo that affected building against Perls with debugging enabled.

  • A minor #define refactor (Yuval).

  • Squash some long-standing warnings I had been ignoring for ages and Havard Eidnes prompted me to fix by logging an RT ticket for it.

  • Squash some global clean-up warnings.

1.26, 13 Oct 2008

  • Methods which destroyed $@ due to internal use of eval now properly call local($@) (Yuval)

  • Fix a leak and a corner case with weak set magic, and squash some warnings (Yuval)

  • Define behaviour when dealing with return values from operations on weak sets. No longer hard-coded "Set::Object" - may affect Set::Object sub-classes (Sam).

  • (post-release changelog entry) related to the previous change, Set::Object::Weak::set did not use to shift the invocant off the stack, which caused result sets to have the inserted sets as members. It now does, fixing this bug.

1.25, 22 Jul 2008

  • Portability: support Perls before 5.7.3, and make this dependency explicit in the Makefile.PL

1.24, 20 Jul 2008

  • Remove threads test which had inadvertantly slipped into the MANIFEST from source control, and add comprehensive documentation on the state of thread support in this module.

  • Correct other silly MANIFEST mistakes.

1.23, 18 Jul 2008

  • Make behaviour when dealing with items which were undef defined. Previously it might segfault (or Bus Error on Mac OS X) on some operations and Perl versions, or result in an empty string being inserted.

  • Fix a minor compile problem on IRIX, reported by David Cantrell.

1.22, 8 Oct 2007

  • Sub-classing interface added; it is now much easier to make Set::Object subclasses that return objects other than more Set::Objects when subclassing. From Brían Mach Aon Innéirghthe.

1.21, 17 Feb 2007

  • Fix false negative when Test::Pod::Coverage isn't installed. Reported by Anna Bernathova of SuSE.

1.20, 16 Feb 2007

  • The ->compare function was returning "disjoint" for empty sets. RT#24965. (Nigel Metheringham)

  • Document lots of methods that were previously not documented.

  • Fix Set::Object::Weak::set(). It was not passing its arguments to Set::Object::Weak->new(), which was very broken.

1.19, 23 Jan 2007

  • remove bogus inclusions of Data::Dumper and Devel::Peek

  • New class Set::Object::Weak, which all weak sets should get re-blessed into when you call ->weaken. Also added alternative methods of constructing weak sets.

  • Fix a memory leak with scalar members (the internal hash used to store the items was never being freed). RT#24508.

1.18, 14 Sep 2006

  • We could only build on gcc due to the use of variadic macros. use #ifdef to hide this GCC-specific extension (used only for debugging) from non-GCC compilers.

  • Add note to man page on compatibility of Storable serializations of Set::Objects between revisions.

1.17, 1 Aug 2006

  • fix compile problem affecting some platforms

1.16, 18 Jul 2006

  • weak reference support

1.15, 21 Jun 2006

  • Dumping sets with scalars in them via Storable now works.


  • Fix build problem on Win32 (thanks Steffen Goeldner)


  • Fix Makefile.PL so this Changes.pod is not delivered as Set::Changes :-}

  • Restore compatibility with 5.6.0

  • Remove some compile-time warnings, please let me know if this version does not build on any platform!

1.12, 30 Aug 2005

  • added patch from Sergey Skvortsov for backwards compatibility with Perl versions before 5.8 (include >100k ppport.h!)

  • removed 'set()' constructor from default export list, as its name conflicts with too many other modules.

1.11, 27 Apr 2005

  • removed debugging &_ func (was causing strange errors on 5.9.1)

1.10, 2 Apr 2005

  • added 'set()' constructor and use-as-array-ref interface

1.09, 26 Mar 2005

  • added 'bool' overload operator to Set::Object. For backwards compatibility, always returns true.

1.08_02, 14 Jan 2005

  • Cutting out the "Universe" representation; this module gives plain sets only.

  • documentation fixes

1.08_01, 12 Jan 2005

  • First attempt at adding support for scalars. This version tries to work as closely to Set::Scalar as possible.

    This approach will not be continued unless there are a lot of requests for it to be implemented. I think it's overly complicated, and not what people expect when they want a Set.

1.08, 14 Oct 2004

  • another segfault bites the dust; this time, avoids a segfault when taking a difference between sets of exactly 31 and 0 size. Same root fault as the previous bug, this time I have a test case for it, too.

1.07, 16 Aug 2004

  • yet another segfault fix, this time due to incorrect use of PUSHs vs XPUSHs. There is no test case for this bug unfortunately.

1.06, 1 May 2004

  • Fixed segfault when attempting to remove items from an empty set (fix from Richard Sterling Cox)

1.05, 5 Jan 2004

  • some segfault fixes with Storable and Perl 5.6.1 (Perl 5.8.1 should be OK)

1.04, 3 Aug 2003

  • added various functions similar to some found in Scalar::Util, but with an extra one that performs a function that lays some groundwork for Container::Object (ish_int).

    Some of these functions were in the XS code anyway, and they are extremely small, so I didn't see a problem with duplicating them - saves an extra dependency. Plus, Graham Barr won't let me put ish_int or is_key in his module.

    Knowing that they are available will also assist in fixing some longer standing bugs in Tangram (eg, using $obj + 0 to get a unique ID when refaddr($obj) would be better)

  • lots more input marshalling; if you ever end up doing funny things to a Set::Object, then at least now you'll get a clearer error message.

  • more tests; Devel::Cover test coverage now at 91% (stmt), 67% (branch)

  • erroneously putting scalars into Set::Objects now no longer dumps core.

  • serialisation of Set::Object objects is now possible via the Storable module (Data::Dumper still does the wrong thing, but there is nothing I can do about that).

1.03, 24 Jan 2003

  • fixed overload related bug


From original Changes file.

 Revision history for Perl extension Set::Object.
 0.01  Sat Jun  6 13:36:56 1998
         - original version; created by h2xs 1.18
 0.02  Sun Jul  12 1998
         - fixed refcount bug that leaked object when hash was
         - ensured compatibility with Perl 5.004_71
 1.00 mid-99
         - fixed some bug (related to subsets?)
         - first mature release
 1.01 8 Nov 1999
         - no longer use Perl arrays internally, now compatible with
           Perl 5.005_62
 1.02 8 May 08 2000
         - fixed bug that miscomputed new bucket while reindexing