libscalar-list-utils-perl/Changes

733 lines
22 KiB
Plaintext

1.63 -- 2022-08-08
[BUGFIXES]
* Fix off-by-one in stack handling of head() / tail() (RT143905)
* Fix documentation copy-paste error about builtin::reftype
* Ensure exotic_names.t will work on EBCDIC platforms
* Add basic Github CI workflow
1.62 -- 2022-03-17
[CHANGES]
* Prepare for perl 5.35.10 release:
+ Skip the tainted tests if your perl was built without taint
support
+ Document the existence of the `builtin::` equivalents for
several Scalar::Util functions
1.61 -- 2022-02-16
[BUGFIXES]
* Fix some more signed comparison warnings (Perl5 #19429)
1.60 -- 2021-10-08
[BUGFIXES]
* Quiet some -Wsign-compare warnings by using `int` instead of `UV`
(RT136985)
* Quiet a -Wmaybe-uninitialized warning by ensuring a variable is
always initialised, because the compiler can't always determine this
is safe (RT139356)
* Avoid SIGFPE in product(-1, ...) (RT139601)
1.59 -- 2021-09-12
[CHANGES]
* Removed Scalar::Util::isbool() as the API design for older perls
isn't quite clear, and it doesn't do anything useful on any
currently-released perl version
* Tidy up the unnecessary bits of @EXPORT_FAIL
* Use the new G_LIST constant rather than G_ARRAY
1.58 -- 2021-09-12
(bad release because I forgot to `git push`)
1.57 -- 2021-09-11
[CHANGES]
* Added Scalar::Util::isbool() to track new core-supported boolean
value nature on scalars
* Fix various typoes in docs, code comments, etc...
* Removed code conditional on whether SvWEAKREF is supported, as
every perl since v5.6 supports it
[BUGFIXES]
* Fix segfaults when an undefined subroutine is passed to
block-taking subs (thanks ilmari)
* Correct refcount handling on hv_store_ent to PL_DBsub in
set_subname() (thanks nwc10)
* Don't rely on Scalar::Util functions when unit-testing List::Util
ones (thanks haarg)
1.56 -- 2021-03-30
[CHANGES]
* Added `List::Util::zip`, `List::Util::mesh` and related functions
(RT129479)
* Updated embedded ppport.h for Devel::PPPort v3.62
1.55 -- 2020-04-09
[CHANGES]
* Added List::Util::uniqint
* Improvements to List::Util::uniqnum handling of floating-point
values on odd platform configurations (thanks sisyphus)
* Improvements to $RAND-based unit tests
1.54 -- 2020-02-02 15:47
[CHANGES]
* Added List::Util::reductions (RT128237)
* Added List::Util::sample (RT131535)
* Recognise $List::Util::RAND as a source of randomness for sampling
functions (RT131536)
[BUGFIXES]
* Document the difference between ref() and reftype() on precompiled
qr// regexps (RT127963)
* Various improvements to List::Util::uniqnum() to handle stringified
Inf and NaN, negative zero
* Detect platform NV size and number of digits required to calculate
uniqueness
1.53 -- 2019-10-24 10:41:12
[BUGFIXES]
* Handle Unicode package names in Scalar::Util::blessed (GH #81)
1.52 -- 2019-08-17 19:08:18
[BUGFIXES]
* Fix uniqnum() on large stringified integers on long- and
quad-double perls (thanks ilmari)
1.51 -- 2019-08-08 14:31:32
[CHANGES]
* Add TO_JSON to List::Util::_Pair (thanks ilmari)
* Various minor docs fixes
[BUGFIXES]
* Don't segfault in subname() on deleted stashes (thanks ilmari)
* Fix uniqnum for large floats and numeric strings (thanks ilmari)
1.50 -- 2018-02-20 19:13:27
[CHANGES]
* Added head() and tail() functions (thanks preaction)
* Support binary and Unicode in symbol names for set_subname()
[BUGFIXES]
* Fix building with C++ and C89 compilers
* Fix uniq() test for old Test::More
* Fix example get_code_info for unnamed subs (RT#116962)
* Fixes for symbol names containing ' characters
* Don't leak SVs from sum0/product1 when called with zero args
(RT#124017)
* Use sv_rvunweaken() in Scalar::Util::unweaken() (thanks ilmari)
* Misc. fixes for perl 5.6
1.49 -- 2017-09-08 12:25:54
[CHANGES]
* Fixes for unit tests to pass on perl 5.6.2
* Fix typo in documentation
1.48 -- 2017/06/23 17:29:42
[CHANGES]
* Note in documentation that outer function's @_ can be accessed in
some blocks, but ought not be (thanks wchristian)
[BUGFIXES]
* Ensure pairmap extends its stack correctly (thanks davem)
* Fix name of List::Util::unpairs in its error messages
1.47 -- 2016/12/22 18:54:45
[CHANGES]
* Make XS code ppport.h-free when in core
[BUGFIXES]
* Fix compliling on C++11
* Perform taint checks using $^X instead of some %ENV key because of
the Test::Simple vars (RT119169)
1.46 -- 2016/09/28 23:17:07
[CHANGES]
* Remember to add unpairs and uniq to SYNOPSIS
* Document the behaviour of uniqnum() on NaN
[BUGFIXES]
* C89 fixes
* Various internal bugfixes backported from perl core
1.45 -- 2016/03/25 16:09:40
[CHANGES]
* Renamed existing uniq() to uniqstr()
* Canonicalise undef to {empty string,zero} in uniq{str,num}()
* Add a new uniq() with more DWIMish semantics around undef
[BUGFIXES]
* Fix uses of GET magic by the uniq*() family of functions. GET magic
is now always invoked exactly once if it exists.
1.44 -- 2016/03/17 23:08:46
[CHANGES]
* Added List::Util::uniq() and uniqnum()
(with thanks to randir and ilmari for assistance writing code and
tests)
1.43 -- 2016/02/08 15:05:23
[CHANGES]
* Updated documentation
* Added MIN_PERL_VERSION to Makefile.PL
* Added "use warnings" to all tests
* Added MANIEST.SKIP patterns for common editor backup/swapfiles
* Test product(0,0) (RT105415)
[BUGFIXES]
* Fix build on non-C99 compilers
* Avoid divide-by-zero exception if product()'s accumulator is IV zero
(RT105415)
* Possible fix for SvTEMP issues in first and any/all/none/notall
(RT96343)
1.42 -- 2015/04/32 01:25:55
[CHANGES]
* Added List::Util::unpairs() - the inverse of pairs()
* Documentation to pre-warn users about the possible behaviour in a
later version where the pair* higher-order functionals are no longer
transparent to $_
[BUGFIXES]
* Silence some warnings at test time
* Ensure that the List::Util we're loading the XS via is a sufficient
version when Scalar::Util or Sub::Util load it (RT100863)
1.41 -- 2014/09/05 15:49:50
[BUGFIXES]
* Avoid pre-C99 declaration after statements (RT98624)
* Fix use of GetMagic in List::Util::reduce (RT63211)
1.40 -- 2014/08/30 11:36:36
[CHANGES]
* Added entire new module, Sub::Util to contain functions related
to CODE refs
* Added subname inspired by Sub::Identify
* Added set_subname copied and renamed from Sub::Name
* Also moved set_prototype into Sub::Name, with back-compat wrapper
in Scalar::Util
* Added prototype wrapper of CODE::prototype, for completeness
* Nicer module documentation format, allows neater use of L</...>
[THANKS]
* This change was written at the YAPC::EU 2014 Hackathon hosted by
Liz Mattijsen and Wendy van Dijk; much thanks to them for being its
catalyst.
1.39 -- 2014/06/05 15:54:59
[CHANGES]
* Have pairs() return blessed objects that recognise ->key and
->value as well as being two-element ARRAYs
* Booleanise the result of looks_like_number() so as not to
accidentally leak abstraction (RT94806)
* Document the version each function was added in (RT96220)
[BUGFIXES]
* Try to preserve UV precision in sum() where possible (RT95902)
* Document known lexical capture in pairmap bug RT95409
* SvGETMAGIC() in set_prototype() (RT72080)
1.38 -- 2014/01/22 15:33:24
[BUGFIXES]
* Avoid Perl_ckwarn() in unweaken() because it's missing on older
perls; ckWARN() like the rest of the code (RT92363)
1.37 -- 2014/01/21 14:44:34
[BUGFIXES]
* Fix unweaken() for perls < 5.14; need to use sv_setsv() to undef
rather than sv_clear() (RT92226)
1.36 -- 2014/01/16 15:40:47
[CHANGES]
* Added Scalar::Util::unweaken()
* Various documentation changes/updates
[BUGFIXES]
* Correct uses of overload operators in unit tests (RT91969)
1.35 -- Sat Oct 19 01:35 UTC 2013
* Added List::Util::product()
* Ensure that List::Util::{any,all,none,notall} return PL_sv_{yes,no}
* Implement reduce() and first() even in the absence of MULTICALL
1.34 -- Wed Oct 16 13:04 UTC 2013
* Avoid C99/C++-style comments in XS code
* Fix dualvar tests for perl 5.6; fix skip() test counts in dualvar.t
* Neater documentation examples of other functions that can be built using
reduce
1.33 -- Sun Oct 13 01:35 UTC 2013
* Added any, all, none, notall list reduction functions
(inspired by List::MoreUtils)
1.32 -- Sun Aug 31 23:48 UTC 2013
* Skip pairmap()'s MULTICALL implementation 5.8.9 / 5.10.0 as it doesn't
work (RT87857)
* Comment on the fact that package "0" is defined but false (RT88201)
* TODO test in t/readonly.t now passes since 5.19.3 (RT88223)
1.31 -- Wed Aug 14 20:38 UTC 2013
* Bugfix pairmap to return list length in scalar context
* Added "Odd number of elements" warnings to all pair* functions
1.30 -- Mon Aug 05 13:09 UTC 2013
* Added pairfirst
* Added MULTICALL implementations to pairmap/pairgrep/pairfirst
* Fix declaration-after-code for C99-challenged compilers
* Documentation updates to List::Util
1.29 -- Thu Aug 01 13:40 UTC 2013
* Bugfix to pairmap/pairgrep when stack moves beneath them during operation
1.28 -- Thu Aug 01 12:19 UTC 2013
-- BROKEN; do not use. See 1.29
* Added pairgrep, pairmap, pairs (inspired by List::Pairwise)
* Added pairkeys and pairvalues
1.26_001 -- Sun Dec 23 15:58
* Fix multicall refcount bug RT#80646
1.26 -- Sun Dec 16 19:39
* Merge patch from JDHEDDEN - Add Scalar::Util::isdual() RT#76150
1.25_01 -- Wed Nov 21 09:47
* Fix a hash order dependency bug t/tainted.t
(Currently this is a core only version to fix perl5 smokes)
1.25 -- Sat Mar 24 13:10:13 UTC 2012
* Restore back-compat. to perl 5.6 (thanks to Zefram)
1.24 -- Thu Mar 22 18:10:10 UTC 2012
* Update to 1.24 release version (no other changes since 1.23_04).
1.23_04 -- Sat Mar 10 00:16:16 UTC 2012
* RT#72700 Fix off-by-two on string literal length
1.23_03 -- Tue Sep 14 10:09:59 CDT 2010
* Min perl version supported for build is not 5.008
* Dropped the pure-Perl implementation of both Scalar::- and List::Util.
* RT#61118 Fix assumption in sum() that once magic, always magic
1.23_02 -- Tue Mar 30 11:09:15 CDT 2010
* Fix first() and reduce() to check the callback first; &first(1) is now illigal. [gfx]
* Fix reduce() to allow XSUB callbacks [gfx]
* Fix first() to allow XSUB callbacks [gfx]
* Resolve RT #55763: tainted() doesn't do SvGETMAGIC(sv) [gfx]
* define CvISXSUB so older perl versions will still compile
1.23_01 -- Mon Mar 22 08:24:11 CDT 2010
* Add failing tests; SVt_RV is not directly SvROK [gfx]
* Implement openhandle() in XS (with extra tests) [gfx]
* Modernize *.pm [gfx]
* Modernize ListUtil.xs [gfx]
* Add ppport.h [gfx]
* Fix an overloading issue on sum(), and add tests for overloading [gfx]
* Small tweaks for minstr()/maxstr() [gfx]
* Optimize dualvar() [gfx]
* Use sv_copypv() instead of SvPV() and sv_setpv() [gfx]
* avoid non-portable warnings
1.23 -- Wed Mar 10 20:50:00 CST 2010
* Add a test file to ensure 'GETMAGIC' called once [gfx]
* "GETMAGIC" should be called only once [gfx]
* Use PERL_NO_GET_CONTEXT for efficiency (see perlguts) [gfx]
* Don't care about dVAR. ExtUtils::ParseXS deals with it. [gfx]
* t/p_max.t, t/p_min.t fail on perl5.8.1. [tokuhirom]
* avoid non-portable warnings
* Fix PP::reftype in edge cases [gfx]
1.22 -- Sat Nov 14 09:26:15 CST 2009
* silence a compiler warning about an unreferenced local variable [Steve Hay]
* RT#51484 Preserve utf8 flag of string passed to dualvar()
* RT#51454 Check first argument to first/reduce is a code reference
* RT#50528 [PATCH] p_tainted.t fix for VMS [Craig A. Berry]
* RT#48550 fix pure perl looks_like_number not to match non-ascii digits
1.21 -- Mon May 18 10:32:14 CDT 2009
* Change build system for perl-only install not to need to modify blib
* When building inside perl, tests for weaken should be always run (Alexandr Ciornii)
1.20 -- Wed May 13 16:42:53 CDT 2009
*** NOTE***
This distribution now requires perl 5.6 or greater
Bug Fixes
* Fixed stack pop issue in POP_MULTICALL
* Fixed error reporting in import when XS not compiled
* Check first argument to reduce is a CODE reference to avoid segfault
* Handle overloaded and tied values
* Fix tainted test to run on Win32
Enhancements
* Added List::Util::XS so authors can depend on XS version
* Removed need for dummy methods in UNIVERSAL for perl-only code
1.19 -- Sun Dec 10 09:58:03 CST 2006
Bug Fixes
* Fix invalid conversion from `const char*' to `char*' warnings
* Avoid Makefile error when building on Win32
* Fix undefined symbol error for perl < 5.9.0
* Fix hardcoded "/" in a filepath that causes p_tainted.t to fail on VMS
Documentation
* Document that reduce calls BLOCK in a scalar context
* Add SEE ALSO sections to docs
Enhancements
* A new regression test for readonly, taking a reference to a constant passed to a sub
1.18 -- Fri Nov 25 09:30:29 CST 2005
Bug Fixes
* Fix pure-perl version of refaddr to avoid blessing an un-blessed reference
* Fix memory leak in first() and reduce()
* Pure perl version of looks_like_number now matches XS version for
references and undef. It will now return undef
Enhancements
* Support for using XSLoader instead of DynaLoader
* Use new multicall API
1.17 -- Mon May 23 08:55:26 CDT 2005
Bug Fixes
* Update XS code to declare PERL_UNUSED_DECL conditionally
1.16 -- Fri May 20 10:22:49 CDT 2005
Bug Fixes
* Change to refaddr.t test to avoid false errors on some 64 bit platforms
* Fix all perl only tests to work when in the core build environment
* Fix looks like number test to work for 5.8.5 and above
1.15 -- Fri May 13 11:01:15 CDT 2005
Bug Fixes
* Fixed memory leak in first()
Enhancements
* Converted tests to use Test::More
* Improved test coverage
* Changed Makefile.PL to use Module::Install
* Refactor use of Sv..X() macros to be Sv.._set()
* Changes from Jarkko for Symbian port of Perl
* Documentation updates to weaken()
1.14 -- Sat May 22 08:01:19 BST 2004
Bug Fixes
* Fixed memory leak in reduce()
* Added tests to check passing a reference to a constant to weaken() in perl >= 5.008003
* Fixed looks_like_number(undef) to return false for perl >= 5.009002
* Fixed bug in refaddr() when passed a tied variable
Switch to svn repository at http://svn.mutatus.co.uk/wsvn/Scalar-List-Utils/trunk/
Old perforce revision log below
Change 827 on 2003/09/25 by <gbarr@pobox.com> (Graham Barr)
Release 1.13
Change 826 on 2003/09/25 by <gbarr@pobox.com> (Graham Barr)
Fix NV casting issue with some compilers
Change 825 on 2003/08/14 by <gbarr@pobox.com> (Graham Barr)
Release 1.12
Change 824 on 2003/08/14 by <gbarr@pobox.com> (Graham Barr)
Don't directly use the SV returned as $a in the next iteration,
take a copy instead. Fixes problem if the code block result was from
an eval or sub call
Change 823 on 2003/08/14 by <gbarr@pobox.com> (Graham Barr)
Install into the 'perl' installdirs for >= 5.008
Change 822 on 2003/08/14 by <gbarr@pobox.com> (Graham Barr)
Fix test for EBCDIC portability
Change 771 on 2003/03/03 by <gbarr@pobox.com> (Graham Barr)
Get path for make from $Config
Change 770 on 2003/02/14 by <gbarr@pobox.com> (Graham Barr)
Release 1.11
Change 769 on 2003/02/14 by <gbarr@pobox.com> (Graham Barr)
Add t/proto.t to MANIFEST
Change 768 on 2003/02/14 by <gbarr@pobox.com> (Graham Barr)
Add set_prototype from Rafael Garcia-Suarez
Change 767 on 2003/02/14 by <gbarr@pobox.com> (Graham Barr)
Fix t/isvstring.t so it does not cause perl5.004 to segv
because of the exit from within BEGIN
Change 766 on 2003/02/14 by <gbarr@pobox.com> (Graham Barr)
Change how patchlevel.h is included and check we got what we wanted (from Jarkko)
Change 765 on 2003/02/14 by <gbarr@pobox.com> (Graham Barr)
Add -DPERL_EXT to DEFINEs, requested by Jarkko for 5.8.1
Change 764 on 2003/02/04 by <gbarr@pobox.com> (Graham Barr)
Release 1.10
Change 763 on 2003/02/04 by <gbarr@pobox.com> (Graham Barr)
Fix linking error for older perls
Change 762 on 2003/02/04 by <gbarr@pobox.com> (Graham Barr)
Make lln tests and perl implementation mimic changes to looks_like_number
in different perl versions
Change 761 on 2003/02/04 by <gbarr@pobox.com> (Graham Barr)
Add looks_like_number
Change 760 on 2003/02/04 by <gbarr@pobox.com> (Graham Barr)
Ensure PERL_DL_NONLAZY is false so we don't catch link errors during
bootstrap and then test the perl only version
Change 759 on 2002/12/12 by <gbarr@pobox.com> (Graham Barr)
Release 1.09
Change 758 on 2002/12/12 by <gbarr@pobox.com> (Graham Barr)
Use UV to return refaddr
Change 757 on 2002/11/03 by <gbarr@pobox.com> (Graham Barr)
Add XS_VERSION
Change 756 on 2002/11/03 by <gbarr@pobox.com> (Graham Barr)
Use PAD_* macros in 5.9
Reuse our own target when calling pp_rand in shuffle() so we dont need to create a fake pad
Change 751 on 2002/10/18 by <gbarr@pobox.com> (Graham Barr)
Fix context so that sub for reduce/first is always in a scalar context
Fix sum/min/max so that they don't upgrade their arguments to NVs
if they are IV or UV
Change 750 on 2002/10/14 by <gbarr@pobox.com> (Graham Barr)
Add isvstring()
Change 745 on 2002/09/23 by <gbarr@pobox.com> (Graham Barr)
Scalar::Util
- Add refaddr()
Change 722 on 2002/04/29 by <gbarr@pobox.com> (Graham Barr)
Release 1.0701
Change 721 on 2002/04/29 by <gbarr@pobox.com> (Graham Barr)
Add comment to README about failing tests on perl5.6.0
Change 714 on 2002/03/18 by <gbarr@pobox.com> (Graham Barr)
Release 1.07
Change 713 on 2002/03/18 by <gbarr@pobox.com> (Graham Barr)
Add Scalar::Util::openhandle()
Change 647 on 2001/09/18 by <gbarr@pobox.com> (Graham Barr)
Release 1.06
Change 645 on 2001/09/07 by <gbarr@pobox.com> (Graham Barr)
Some platforms require the main executable to export symbols
needed by modules. In 5.7.2 and prior releases of perl
Perl_cxinc was not exported so we need to duplicate its
functionality
Change 644 on 2001/09/07 by <gbarr@pobox.com> (Graham Barr)
Generate a typemap for NV for all perl version up to and
including 5.006
Change 643 on 2001/09/07 by <gbarr@pobox.com> (Graham Barr)
Document problems known with specific versions of perl
Change 642 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr)
Release 1.05
Change 641 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr)
Fix shuffle() to compile with threaded perl
Change 640 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr)
Release 1.04
Change 639 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr)
Fix context type (caused a core on Tru64)
Call pp_rand via *(PL_ppaddr[OP_RAND])
Change 638 on 2001/09/05 by <gbarr@pobox.com> (Graham Barr)
Documentation updates
Change 637 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr)
Release 1.03
Change 636 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr)
More changes to help merging with core dist
Change 635 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr)
Added List::Util::shuffle() similar to that described in
the perl FAQ except it returns a shuffled list instead of
modifying an array passed by reference
Change 632 on 2001/09/03 by <gbarr@pobox.com> (Graham Barr)
Handle tied variables passed for the number to dualvar()
Preserve number type (IV/UV/NV) in dualvar()
Change 631 on 2001/08/31 by <gbarr@pobox.com> (Graham Barr)
Handle eval{} inside of the code blocks for first and reduce
Change 629 on 2001/08/22 by <gbarr@pobox.com> (Graham Barr)
perl5.004 does not like exit from within a BEGIN, it core dumps
Change 628 on 2001/08/22 by <gbarr@pobox.com> (Graham Barr)
Fix stack problem in first() and reduce()
Align with core dist
Change 483 on 2000/04/10 by <gbarr@pobox.com> (Graham Barr)
Release 1.02
Change 482 on 2000/04/10 by <gbarr@pobox.com> (Graham Barr)
Check for SvMAGICAL on argument for reftype and blessed
Change 366 on 2000/03/03 by <gbarr@pobox.com> (Graham Barr)
Release 1.01
Change 365 on 2000/03/03 by <gbarr@pobox.com> (Graham Barr)
- Added auto-detection for a compiler and install the perl version
if not found
- Better perl implemenation of reftype, should be thread-safe now
Change 364 on 2000/03/03 by <gbarr@pobox.com> (Graham Barr)
- Added some examples of simple subs that have been requested
but not added
- Updated copyright dates
Change 344 on 1999/11/10 by <gbarr@pobox.com> (Graham Barr)
- Better testcase for reftype
Change 343 on 1999/11/10 by <gbarr@pobox.com> (Graham Barr)
- Modules are now called List::Util & Scalar::Util
- Supports non-XS install
- perl version of reftype now returns "REF" when it should
Change 311 on 1999/06/01 by <gbarr@pobox.com> (Graham Barr)
Updated README
Change 275 on 1999/03/22 by <gbarr@pobox.com> (Graham Barr)
Removed forall as it is very broken
Change 274 on 1999/03/22 by <gbarr@pobox.com> (Graham Barr)
Added List::Util::forall
Change 273 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr)
Added weaken and isweak to Ref::Util
Change 272 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr)
Add new .pm files to repository
Change 271 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr)
- Split into three packages Ref::Util, List::Util and Scalar::DualVar
- readonly and clock were removed in favor of other modules
Change 270 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr)
Rename package
Change 269 on 1999/03/21 by <gbarr@pobox.com> (Graham Barr)
- Added reftype
- improved reduce by not doing a sub call
- reduce now uses $a and $b
- now compiles with 5.005_5x
Change 178 on 1998/07/26 by <gbarr@pobox.com> (Graham Barr)
Modified XS code so it will compile with 5.004 and 5.005
Change 115 on 1998/02/21 by <gbarr@pobox.com> (Graham Barr)
Fri Feb 20 1998 Graham Barr <gbarr@pobox.com>
t/min.t, t/max.t
- Change sor to do a numerical sort
Fri Dec 19 1997 Graham Barr <gbarr@pobox.com>
- Added readonly()
Wed Nov 19 1997 Graham Barr <gbarr@pobox.com>
- Initial release