| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
perl.pod already contained virtually all the information in pod.lst. Add
the remainder as =begin and =for Pod blocks.
As perl.pod no longer needs to be regenerated, remove the redundant code from
Porting/pod_rules.pl. Update (nearly) all references to pod.lst.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test that was added in 95cf23680e tickled another bug in the same
code in Perl_hv_copy_hints_hv than the one it fixed, but not on the
committer’s machine.
Not only can a HE from a tied hash have a null entry, but it can also
have an SV for its key. Treating it as a hek and trying to read flags
from it may result in other code being told to free something it
shouldn’t because the SV, when looked at as a hek, appeared to have
the HVhek_FREEKEY flag.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
‘open bareword’ compiles down to
open
`--+--pushmark
`--gv
whereas ‘open "string"’ compiles down to
open
`--+--pushmark
`--rv2gv
`----gv
the same as ‘open *glob’.
B::Deparse was deparsing the child of the rv2gv, in order to deparse
things like open(my $fh...) as they were entered, instead of
open(*my $fh), which wouldn’t work. gvops were being deparsed as
the name. But this meant that ‘open "open"’ would be deparsed as
‘open open’, which does something different, ‘open’ being a keyword.
It also did that with ‘open '%^$^$%'’, which would deparse without the
quotation marks.
This commit changes the deparsing of filehandle-op -> rv2gv -> gv,
by keeping the explicit * present if the name of the gv is a valid
identifier (so open("foo") and open(*foo), which compile identi-
cally, both come out as open(*foo)), or by using quotation marks if
it is not.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This autoloads charnames.pm when needed. It uses the :full and :short
options. :loose is not used because of its relative unfamiliarity in
the Perl community, and is slower. (If someone later added a typical
"use charnames qw(:full)", things that previously matched under :loose
would start to fail, causing confustion. If :loose does become more
common, we can change this in the future to use it; the converse isn't
true.)
The callable functions in the module are not automatically loaded. To
access them, an explicity "use charnames" must be provided.
Thanks to Tony Cook for doing a code inspection and finding a missing
SPAGAIN.
|
|
|
|
| |
This is in preparation for a later commit
|
| |
|
|
|
|
|
|
|
| |
This takes the source and splits it into two modules with the only
changes those that are required to get them to work together.
This is in preparation for future commits
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When hv_iternext_flags is called on a tied hash, the hash entry (HE)
that it returns has no value. Perl_hv_copy_hints_hv, added in commit
5b9c067131, was assuming that it would have a value and calling
sv_magic on it, resulting in a crash.
Commit b50b205 made namespace::clean’s test suite crash, because
strict.pm started using %^H. It was already possible to crash
namespace::clean with other hh-using pragmata, like sort:
# namespace::clean 0.21 only uses ties in the absence of B:H:EOS
use Devel::Hide 'B::Hooks::EndOfScope';
use sort "stable";
use namespace::clean;
use sort "stable";
{;}
It was possible to trigger the crash with no modules like this:
package namespace::clean::_TieHintHash;
sub TIEHASH { bless[] }
sub STORE { $_[0][0]{$_[1]} = $_[2] }
sub FETCH { $_[0][0]{$_[1]} }
sub FIRSTKEY { my $a = scalar keys %{$_[0][0]}; each %{$_[0][0]} }
sub NEXTKEY { each %{$_[0][0]} }
package main;
BEGIN {
$^H{foo} = "bar";
tie( %^H, 'namespace::clean::_TieHintHash' );
$^H{foo} = "bar";
}
{ ; }
This commit puts in a simple null check before calling sv_magic. Tied
hint hashes still do not work, but they now only work as badly as in
5.8 (i.e., they don’t crash).
I don’t think tied hint hashes can ever be made to work properly, even
if we do make Perl_hv_copy_hints_hv copy the hash properly, because in
the scope where %^H is tied, the tie magic takes precedence over hint
magic, preventing the underlying he chain from being updated. So
hints set in that scope will just not stick.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
- copy edited for clarity & typos
- standardized on two spaces after a period
- detabified
- ran it through a spellchecker
- ran it through podtidy one last time
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Removed all the empty sections
- Ran it through podtidy
Still need to resolve some open questions/missing changes and run it through a
spellchecker.
|
| |
| |
| |
| |
| |
| |
| | |
The bug was introduced by commit b78c110439167132, which split
Porting/pod_rules.pl out from pod/buildtoc. The previous code in buildtoc
would correctly honour the command line options, and only (re)build the
requested files.
|
| |
| |
| |
| |
| |
| | |
Also bumps the version of all contained modules to 3.39_01, which is the
version of a new PathTools CPAN release (and the code is in sync with
this commit).
|
|/
|
|
|
|
|
|
|
| |
[DELTA]
Changes for 0.9114 Mon Dec 19 21:15:38 2011
================================================
* Fail earlier on unresolvable prereqs as per
[rt.cpan.org #73310]
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Using =cut as the heredoc terminator makes the whole file parse as
(reasonably) sane Pod as-is to anything that attempts to brute-force treat
it as such. The content is already useful - this just makes it tidier, by
stopping anything doing this mistaking the rest of the Perl code for Pod.
|
|
|
|
|
| |
This stops search.cpan.org mistaking its stub contents for the (full,
generated) perlapi manpage.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
Eliminate the file-scoped lexical %Readmepods. Use slurp_or_die() instead of
coding it longhand.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This ensures that perlfaq*, perlglossary, perlxs, perlxstut and perldoc's
man pages are installed in man1, not man3, along with any future dual-life
pods. This is an improvement on commit 0beff067932254cd which only dealt with
perlfaq* and perlglossary, and had the unfortunate side effect of also
causing these 11 files to be installed to bin/
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Eliminate the C<use File::Copy> and various $Is_* vars, unneeded since
commit 9e6fc21fcd859351 moved the code that uses them into install_lib.pl
Move the filename-based skip code into the callback for File::Find::find(),
as this saves ever storing them in %$modpods.
Eliminate @to_process, which has been mostly redundant since commit
a274383458745101, and completely redundant since commits 02bc0c09b2a02ba6^
and 02bc0c09b2a02ba6.
Eliminate the batchlimit command line option, which has been redundant since
commit a274383458745101.
|
| |
| |
| |
| |
| |
| | |
Avoid needless splitting and joining of paths when processing the "scripts"
from utils.lst. Remove the unused lexical $where2. Remove an inaccurate
comment about nochdir.
|
| |
| |
| |
| |
| | |
This doesn't change the order of processing (Pod pathnames all in lib/ sort
in the same order as module names), but will make future refactoring easier.
|
| |
| |
| |
| |
| |
| | |
Like XS::APItest, we don't install the module anyway, so there's no need
to have confusing documentation installed. (See commit ae5391ad3eac0349,
which made the analogous change for XS::APItest*)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's no need to use an intermediate array to store the results from
calling File::Find::find() as its only use is to build a hash of work to do,
by looping over it once.
Standardise on !! for the regex delimiter, and convert ^ and $ to \A and \z.
The temporary variable $pod can be eliminated, because it doesn't matter
whether $_ ends '.pod' or '.pm' in the code that follows.
|
| | |
|