Father Chrysostomos [Sat, 20 Nov 2010 13:39:05 +0000 (05:39 -0800)]
Increase Unicode'UCD::s version
Karl Williamson [Fri, 19 Nov 2010 19:23:25 +0000 (12:23 -0700)]
UCD.pm: Add info about named sequence alternatives
The namedseq function is essentially obsolete, as the core has better
incorporated its abilities. This adds documentation as to the
alternatives.
Karl Williamson [Fri, 19 Nov 2010 19:04:53 +0000 (12:04 -0700)]
UCD.pm: Don't use CompositionExclusions.txt
The motiviation for this patch was to remove dependence of UCD on
another Unicode DB .txt file.
But the subroutine that uses it is out-of-date, now that this property,
and an even more convenient one are accessible from the core. So the
documentation is also updated to educate people.
Instead of using the file, the routine just uses the core's access
method
Karl Williamson [Fri, 19 Nov 2010 18:59:05 +0000 (11:59 -0700)]
UCD.pm: Don't use NamedSequences.txt, saves disk
This changes UCD to not use this file. Instead it takes advantage of
the recent addition of named sequences being accessible through the \N{}
construct. In one case where it returns a hash of all the named
sequences, it uses the same .pl file that \N{} does. My guess is that
this routine's usefulness is now past, as named sequences are now
incorporated into the core.
Father Chrysostomos [Sat, 20 Nov 2010 19:20:07 +0000 (11:20 -0800)]
Eliminate the newname param from mro_package_moved
Nothing is using this any more, as of the previous commit.
Father Chrysostomos [Sat, 20 Nov 2010 19:33:59 +0000 (11:33 -0800)]
Make hv_undef leave HvENAME alone
unless called from sv_clear.
This is necessary as and undeffed stash, though it nominally becomes
just a plain hash and is not a stash any more, is still to be found
in the symbol table. It may even be in multiple places. HvENAME’s
raison d’être is to keep track of this. If the effective name is
deleted, then things can get out of sync as the test in the commit
demonstrates. This can cause problems if the hash is turned back
into a stash.
This does not change the deletion of the HvNAME, which is the only
difference between hv_clear and hv_undef on stashes that is visible
from Perl. caller still returns (unknown) or __ANON__::....
I tried to make this into several small commits, but each part of it
breaks things without the other parts, so this is one big commit.
These are the various parts:
• hv_undef no longer calls mro_package_named directly, as it deletes
the effective name of the stash. It must only be called on sub-
stashes, so hfreeentries has been modified to do that.
• hv_name_set, which has erased the HvENAME when passed a null arg
for the value ever since effective names were added (a special case
put it just for hv_undef), now leaves the HvENAME alone, unless the
new HV_NAME_SETALL flag (set to 2 to allow for UTF8 in future)
is passed.
• hv_undef does not delete the name before the call to hfreeentries
during global destruction. That extra name deletion was added when
hfreeentries stopped hiding the name, as CVs won’t be anonymised
properly if they see it. It does not matter where the CVs point if
they are to be freed shortly. This is just a speed optimisation, as
it allows the name and effective name to be deleted in one fell
swoop. Deleting just the name (not the effective name) can require a
memory allocation.
• hv_undef calls mro_isa_changed_in as it used to (before it started
using mro_package_moved), but now it happens after the entries are
freed. Calling it first, as 5.13.6 and earlier versions did, was
simply wrong.
• Both names are deleted from PL_stashcache. I inadvertently switched
it back and forth between the two names in previous commits. Since
it needed to be accounted for, it made no omit it, as that would
just complicate things. (I think PL_stashcache is buggy, though I
have yet to come up with a test case.)
• sv_clear now calls Perl_hv_undef_flags with the HV_NAME_SETALL
flag, which is passed through to the second hv_name_set call,
after hfreeentries. That determines whether the effective names
are deleted.
• The changes at the end of hv_undef consist of pussyfooting to avoid
unnecessary work. They make sure that everything is freed that needs
to be and nothing is freed that must not be.
Father Chrysostomos [Fri, 19 Nov 2010 05:30:52 +0000 (21:30 -0800)]
hv_undef .= _flags
Add flags param to hv_undef.
There is no mathom, as the changes that this will support
are by no means suitable for maint.
Father Chrysostomos [Fri, 19 Nov 2010 02:28:08 +0000 (18:28 -0800)]
Fix hv_name_set when there is an HvENAME
This code was completely wrong and could even crash. This is not cur-
rently reached.
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 02:10:19 +0000 (02:10 +0000)]
Add the new shiny perldelta file I neglected to add.
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 01:51:40 +0000 (01:51 +0000)]
Update TOC for perl5.13.8
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 01:46:44 +0000 (01:46 +0000)]
Created perldelta for v5.13.8
Chris 'BinGOs' Williams [Sun, 21 Nov 2010 01:36:25 +0000 (01:36 +0000)]
v5.13.7 epigram added.
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 21:44:28 +0000 (21:44 +0000)]
Update the totals in perldelta with the last few commits
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 21:37:41 +0000 (21:37 +0000)]
Add QNX Neutrino RTOS to list of platforms in perlport
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 20:06:31 +0000 (20:06 +0000)]
Update Module::CoreList for v5.13.7
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 19:10:36 +0000 (19:10 +0000)]
make regen; make regen_perly
Father Chrysostomos [Sat, 20 Nov 2010 18:01:20 +0000 (10:01 -0800)]
Ahem. *Final* finalisation.
There was still an XXX section.
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 17:16:54 +0000 (17:16 +0000)]
Finalisationtion of perldelta with updates for committers and stats
Florian Ragwitz [Sat, 20 Nov 2010 16:21:38 +0000 (17:21 +0100)]
Fix a perldelta typo
Florian Ragwitz [Sat, 20 Nov 2010 16:18:25 +0000 (17:18 +0100)]
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 15:57:43 +0000 (15:57 +0000)]
First pass at finalising perldelta, removing unrequired boilerplate
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 14:37:14 +0000 (14:37 +0000)]
Bump the perl version in various places for v5.13.7
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 14:27:08 +0000 (14:27 +0000)]
Bump Data::Dumper version as previous commit made a change
Rafael Garcia-Suarez [Sat, 20 Nov 2010 14:00:46 +0000 (15:00 +0100)]
Typo in perldelta
Nicholas Clark [Sat, 20 Nov 2010 11:58:07 +0000 (11:58 +0000)]
Fix the test fix for older perls (
5499dc3d6e47ea78). We're still on 5.13.6
Father Chrysostomos [Sat, 20 Nov 2010 04:23:07 +0000 (20:23 -0800)]
Skip [perl #72332] DD test on 5.10.1
$ perl5.10.1 -le 'print *{*STDERR{IO}}'
Bus error
That crash is beyond DD’s control, so the test should be skipped.
Steffen Mueller [Sat, 20 Nov 2010 00:44:57 +0000 (01:44 +0100)]
Compare to lib.pm 0.63 on CPAN
Chris 'BinGOs' Williams [Sat, 20 Nov 2010 01:08:40 +0000 (01:08 +0000)]
Update mailing list and website for cpantesters in perlport
Steffen Mueller [Sat, 20 Nov 2010 00:34:41 +0000 (01:34 +0100)]
Update Maintainers.pl with new releases
Steffen Mueller [Sat, 20 Nov 2010 00:25:18 +0000 (01:25 +0100)]
'Upgrade' to AutoLoader 5.71
That release was a core => CPAN sync, so this is just a version bump.
Steffen Mueller [Fri, 19 Nov 2010 23:53:35 +0000 (00:53 +0100)]
Fix Data::Dumper test on old perls
Chris 'BinGOs' Williams [Fri, 19 Nov 2010 23:44:20 +0000 (23:44 +0000)]
Bump Math::BigInt::FastCalc to dev release as per Florian's request
Chris 'BinGOs' Williams [Fri, 19 Nov 2010 23:41:50 +0000 (23:41 +0000)]
Bump Math::BigRat to dev release as per Florian's request
Chris 'BinGOs' Williams [Fri, 19 Nov 2010 23:38:47 +0000 (23:38 +0000)]
Sync version of dist/Math-BigInt modules to 1.99_01 as per Florian's request
Karl Williamson [Fri, 19 Nov 2010 16:46:54 +0000 (09:46 -0700)]
Add Unicode's minor 6.0 correction
Unicode just released a minor correction to 6.0. This patch adds that.
Unfortunately, a test thought the old behavior was correct, and so had
to be modified as well.
Karl Williamson [Fri, 19 Nov 2010 04:01:26 +0000 (21:01 -0700)]
mktables: Leave Unicode1 BELL name alone
It occurred to me that I was changing both the name and Unicode 1 name
fields, and only the name field is in conflict. So change just it.
Karl Williamson [Fri, 19 Nov 2010 03:57:59 +0000 (20:57 -0700)]
perluniprops.pod: nits
It is generated by mktables
Jesse Vincent [Mon, 8 Nov 2010 17:54:25 +0000 (17:54 +0000)]
Update to perlpolicy.pod to clarify that minor updates to dual-life
modules to fix build/install/test issues are ok
Father Chrysostomos [Fri, 19 Nov 2010 16:42:19 +0000 (08:42 -0800)]
perdleta tpo fxies
Nicholas Clark [Fri, 19 Nov 2010 15:30:43 +0000 (15:30 +0000)]
Update the perldelta for ExtUtils::Constant.
Also note the size shrinkage of B's shared object, which is partly due to now
using code generated by ExtUtils::Constant.
Chris 'BinGOs' Williams [Fri, 19 Nov 2010 14:16:22 +0000 (14:16 +0000)]
Update perlhist, adding Miyagawa to 'THE KEEPERS OF THE PUMPKIN' and updates for v5.13.7
Father Chrysostomos [Thu, 18 Nov 2010 22:53:55 +0000 (14:53 -0800)]
perldelta up to
f869c5854
All I did was review the changes and add
249534c34 to the list of
unrecorded commits.
The most recent MRO changes are not noteworthy.
Father Chrysostomos [Thu, 18 Nov 2010 22:31:53 +0000 (14:31 -0800)]
perldelta: clarify tie $glob
Father Chrysostomos [Thu, 18 Nov 2010 22:29:40 +0000 (14:29 -0800)]
perldelta for custom ops
Karl Williamson [Wed, 17 Nov 2010 01:29:07 +0000 (18:29 -0700)]
Work-around Uni 6.0 issues with 'BELL'
Unicode version 6.0 has co-opted the name BELL for a different character
than traditionally used in Perl. This patch works around that by adding
ALERT as a synonym for BELL, and causing a deprecated warning for uses
of the old name.
The new Unicode character will be nameless in Perl 5.14, unless I can
(unlikely) get Unicode to grant a synonym that they will support.
Karl Williamson [Wed, 17 Nov 2010 01:24:55 +0000 (18:24 -0700)]
charnames.t: indent newly formed block
This is a white-space only patch to indent the code that was put into an
if block by the previous commit
Karl Williamson [Wed, 17 Nov 2010 01:21:44 +0000 (18:21 -0700)]
charnames.t: PERL_RUN_SLOW_TESTS runs more tests
This patch makes this .t look for this environment variable, and if set
run more tests. There are two levels of setting, as explained in the
comments
Karl Williamson [Wed, 13 Oct 2010 15:27:38 +0000 (09:27 -0600)]
More updates to point to Unicode 6.0
Karl Williamson [Wed, 13 Oct 2010 04:45:26 +0000 (22:45 -0600)]
Unicode 6.0 DB
Karl Williamson [Tue, 12 Oct 2010 23:58:13 +0000 (17:58 -0600)]
mktables: Upgrade to handle new Unicode 6.0 tables
Chris 'BinGOs' Williams [Thu, 18 Nov 2010 19:23:38 +0000 (19:23 +0000)]
Update Archive-Tar to CPAN version 1.72
[DELTA]
This merely brings the core and CPAN versions into sync.
No code changes apart from version update.
Steve Hay [Thu, 18 Nov 2010 18:14:35 +0000 (18:14 +0000)]
Note that support for building with VC++ 2010 is not yet complete
Craig A. Berry [Thu, 18 Nov 2010 17:05:02 +0000 (11:05 -0600)]
Nicholas Clark [Thu, 18 Nov 2010 14:54:44 +0000 (14:54 +0000)]
Refactor newATTRSUB()'s logic for grafting a sub definition to an existing stub
Previously it was using cv_undef() to (partially) free the target CV (the
pre-existing stub), before donating it the padlist and outside pointers from
the source CV (the definition, just compiled), and then freeing up the remains
of the source CV.
Instead, explicitly exchange padlist and outside pointers, explicitly assign
other fields that need changing (file and stash), and assert that various
CvFLAGS are as we expect them.
Nicholas Clark [Thu, 18 Nov 2010 14:14:57 +0000 (14:14 +0000)]
Test that the stash and file of a sub's definition overrides those of its stub.
This is the current behaviour for Perl_newATTRSUB(), and it turns out that we
have no test for it.
Nicholas Clark [Thu, 18 Nov 2010 13:50:28 +0000 (13:50 +0000)]
Test that lack of prototype on a sub's definition overrides any on its stub.
This is the current behaviour for Perl_newATTRSUB(), and it turns out that we
have no test for it.
Chris 'BinGOs' Williams [Thu, 18 Nov 2010 14:25:48 +0000 (14:25 +0000)]
Update Changes file ahead of v5.13.7 release
Chris 'BinGOs' Williams [Thu, 18 Nov 2010 11:23:55 +0000 (11:23 +0000)]
Update perldelta to note the Visual C++ 2010 support
Steve Hay [Thu, 18 Nov 2010 10:46:01 +0000 (10:46 +0000)]
Support Visual C++ 2010
Also add a couple of things to win32/makefile.mk which were only previously
applied to win32/Makefile
Craig A. Berry [Thu, 18 Nov 2010 04:10:57 +0000 (22:10 -0600)]
Make perlio line buffer VMS record-oriented files on output.
When perlio flushes down to the unix layer, it can introduce a
spurious record boundary when writing to a record-oriented file.
Perl may create such files when doing edit-in-place or any other
context where the file format is inherited from a previous
version of the file.
The problem can be eliminated by enabling line buffering on such
files when they are opened. This was a regression in 5.10.0 since
before that stdio's buffering performed the same function.
N.B. Lines longer than the size of the perlio buffer will still
result in multiple records -- a larger buffer may be necessary.
For more details and discussion see:
http://www.nntp.perl.org/group/perl.vmsperl/2010/11/msg15419.html
Thanks to Martin Zinser for the problem report.
David Golden [Wed, 17 Nov 2010 20:03:18 +0000 (15:03 -0500)]
Don't install unnecessary unicore files
Many of the files in lib/unicore are no longer needed
after testing. This patches installperl to skip those
files, cutting down the installed size of unicore
from about 17M to about 7M.
Nicholas Clark [Wed, 17 Nov 2010 11:39:06 +0000 (11:39 +0000)]
In Perl_cv_undef(), only check potential pads against PL_comppad
Don't even try checking the address of the pad name AV against PL_comppad, and
don't try checking the address of pad AVs against PL_comppad_name. Neither will
ever match.
Nicholas Clark [Wed, 17 Nov 2010 10:58:46 +0000 (10:58 +0000)]
In S_pad_check_dup(), no need to check the 0th name entry.
The 0th entry in a pad is for @_, and the name corresponding to it is NULL,
so save a check.
Nicholas Clark [Wed, 17 Nov 2010 08:34:52 +0000 (08:34 +0000)]
Convert newSUB() to a macro wrapping Perl_newATTRSUB()
Provide a Perl_newSUB() function in mathoms.c for anyone referencing it by its
full name.
Rafael Garcia-Suarez [Wed, 17 Nov 2010 08:28:30 +0000 (09:28 +0100)]
Spelling/grammar nits
Jerry D. Hedden [Tue, 16 Nov 2010 15:44:02 +0000 (10:44 -0500)]
Create proper Cygwin $ENV{PATH} in test.pl
For Cygwin, runperl() in test.pl adds ':/bin' to $ENV{PATH}. However, if
$ENV{PATH} is initially empty, the leading colon causes the following error:
Insecure directory in $ENV{PATH} while running with -T switch at ./test.pl line 566.
This fix sets $ENV{PATH} to just '/bin' when it's intially empty.
Father Chrysostomos [Wed, 17 Nov 2010 04:23:24 +0000 (20:23 -0800)]
Get cpan/CGI/t/http.t working on VMS again
This stopped working with the
84601d63a (the 3.50 upgrade).
This patch was not applied to the CGI.pm repository until
after the new release.
Craig A. Berry [Wed, 17 Nov 2010 01:52:30 +0000 (19:52 -0600)]
Clean up multiplying perldelta deletions.
Only the one copied as part of the build should be removed in the
clean target. TODO: buildtoc is probably busted.
Father Chrysostomos [Wed, 17 Nov 2010 00:31:37 +0000 (16:31 -0800)]
Remove unnecessary check in mro_package_moved
This was supposed to have been removed by 80ebaca, when negative val-
ues for the newname_len argument stopped being used.
Father Chrysostomos [Wed, 17 Nov 2010 00:29:27 +0000 (16:29 -0800)]
Don’t skip mro_package_moved if the parent stash is renamed
This stops S_hv_delete_common from skipping the call to
mro_package_moved if the HvNAME of the stash containing the deleted
glob is no longer valid, but the stash is still attached to some other
part of the symbol table.
Nicholas Clark [Tue, 16 Nov 2010 16:28:28 +0000 (16:28 +0000)]
Inline Perl_pad_undef() into its only caller, Perl_cv_undef().
Perl_pad_undef was never in the API, and has no users (elsewhere in core,
on CPAN, or anywhere else visible to Google codesearch).
Nicholas Clark [Tue, 16 Nov 2010 16:05:58 +0000 (16:05 +0000)]
Move Perl_cv_undef() from op.c to pad.c
This will allow the non-API function Perl_pad_undef to be inlined into it.
Nicholas Clark [Tue, 16 Nov 2010 17:05:48 +0000 (18:05 +0100)]
Add Grant McLean to AUTHORS, following commit
a27417a027da2da0.
Grant McLean [Tue, 16 Nov 2010 14:21:27 +0000 (14:21 +0000)]
Update references to targrep to ptargrep in ptargrep
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
brian d foy [Tue, 16 Nov 2010 14:08:39 +0000 (16:08 +0200)]
Note in perlfaq2 that perl.com is no longer part of O'Reilly
Nicholas Clark [Tue, 16 Nov 2010 11:42:01 +0000 (11:42 +0000)]
In Perl_pad_new(), allocate a 2 element array for padlist.
Most subroutines never recurse, hence only need 2 entries in the padlist
array - names, and depth=1. The default for av_store() is to allocate 0..3,
and even an explicit call to av_extend() with <3 will be rounded up, so we
inline the allocation of the array here.
Running ./installman allocates 7K less with this change.
Nicholas Clark [Tue, 16 Nov 2010 10:51:26 +0000 (10:51 +0000)]
In Perl_pad_new(), avoid calling av_fetch() for something we already know.
We've just stored padname and pad as the first two elements in padlist - so
calling av_fetch() is makework.
The code was the way it was because
dd2155a49b710f23 moved the two halves from
disjoint locations into the same function adjacent to each other, but didn't
spot this subsequent optimisation.
Florian Ragwitz [Tue, 16 Nov 2010 06:14:04 +0000 (07:14 +0100)]
Check for deleted stashes when reporting var names
The stash of the GV is what's being used to look up a global variables name. If
the GV has no stash, we might as well give up early. This fixes a segfault
because S_varname would later assume gv_fullname4 has resolved the glob's full
name and try to use the svu_pv slot of the scalar returned, while all it got
back was undef.
Father Chrysostomos [Tue, 16 Nov 2010 01:00:52 +0000 (17:00 -0800)]
Fix memory leak introduced by
2d0d1eccfcfe
If HvENAME was set by a destructor, it needs to be freed as well.
hv_name_set(whatever, NULL, ...) does that.
Father Chrysostomos [Tue, 16 Nov 2010 00:45:15 +0000 (16:45 -0800)]
Keep MRO caches around during hv_clear
This allows it to delete PL_isarev entries.
mro_isa_changed_in only deletes items mentioned in HvMROMETA(hv)->isa,
so it must be present.
Karl Williamson [Mon, 15 Nov 2010 22:52:59 +0000 (15:52 -0700)]
mktables: Fix subtraction that should be an add
Fortunately, this bug has not affected the output of mktables so far.
Father Chrysostomos [Tue, 16 Nov 2010 00:10:45 +0000 (16:10 -0800)]
perldelta: Remove a misleading reference
[perl #79024] was a very specific case of part of this entry, which
was only broken temporarily.
Father Chrysostomos [Tue, 16 Nov 2010 00:08:14 +0000 (16:08 -0800)]
perldelta: Something else I missed
Father Chrysostomos [Tue, 16 Nov 2010 00:05:40 +0000 (16:05 -0800)]
perldelta for [perl #79208]
Chris 'BinGOs' Williams [Mon, 15 Nov 2010 23:50:40 +0000 (23:50 +0000)]
Update Archive-Tar to CPAN version 1.70
[DELTA]
* important changes in version 1.70 15/11/2010
- Add ptargrep utility courtesy of Grant McLean
** I think I found everywhere that needed updating
by grepping for 'ptardiff' and adding where needed.
This stuff is definitively not intuitive.
Father Chrysostomos [Mon, 15 Nov 2010 22:41:46 +0000 (14:41 -0800)]
stash.t: The [perl #58530] test should not be skipped
Father Chrysostomos [Mon, 15 Nov 2010 22:39:32 +0000 (14:39 -0800)]
Correct an anonymisation test in stash.t
Father Chrysostomos [Mon, 15 Nov 2010 22:36:17 +0000 (14:36 -0800)]
Correct skip count in stash.t
Father Chrysostomos [Mon, 15 Nov 2010 22:30:07 +0000 (14:30 -0800)]
[perl #79208] %stash:: = () anonymises CVs
This keeps stash names visible during %foo:: = ().
This fixes @ISA assignment inside a DESTROY method triggered by
%foo:: = () and also lets existing CVs retain their pointers to
the stash.
So
%foo:: = ()
is now equivalent to
delete $foo::{$_} for keys %foo::
Father Chrysostomos [Mon, 15 Nov 2010 21:06:58 +0000 (13:06 -0800)]
I only mentioned half of [perl #79138]
Chris 'BinGOs' Williams [Mon, 15 Nov 2010 19:36:02 +0000 (19:36 +0000)]
Update perldelta with Dave Mitchell's contributions
Abigail [Mon, 15 Nov 2010 16:17:00 +0000 (17:17 +0100)]
Mention Filter::cpp as alternative for -P
Rafael Garcia-Suarez [Mon, 15 Nov 2010 10:47:53 +0000 (11:47 +0100)]
Doc fix for [perl #78642] Logical defined or not equivalent to ternary operator with defined
The ternary operator can be used in lvalue context; $a // $b cannot.
Florian Ragwitz [Mon, 15 Nov 2010 09:06:01 +0000 (10:06 +0100)]
Zero new XOPs xop_desc will never be invalid
Even if the xop description couldn't be fetched from PL_custom_op_descs.
Father Chrysostomos [Mon, 15 Nov 2010 05:13:48 +0000 (21:13 -0800)]
perldelta: something I missed
Florian Ragwitz [Mon, 15 Nov 2010 04:55:26 +0000 (05:55 +0100)]
The various Math::BigInt changes aren't relevant
They're mostly small bugfixes here and there. Nothing of particular interest
when upgrading to a new version of perl, I'd say.
Florian Ragwitz [Mon, 15 Nov 2010 04:55:16 +0000 (05:55 +0100)]
Update perldelta entry for Math::BigInt
Florian Ragwitz [Mon, 15 Nov 2010 04:52:09 +0000 (05:52 +0100)]
Upgrade Math::BigInt from version 1.98 to 1.99
Father Chrysostomos [Mon, 15 Nov 2010 01:43:36 +0000 (17:43 -0800)]
perldelta up to 518a985
Father Chrysostomos [Mon, 15 Nov 2010 01:37:51 +0000 (17:37 -0800)]
perldelta: remove another commit from the to-do list