In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/730c15e1bf81c0756abe6ced655e8e5699dd5249?hp=16f6a273412ea24870f58e8b808cc3359e20abce>

- Log -----------------------------------------------------------------
commit 730c15e1bf81c0756abe6ced655e8e5699dd5249
Merge: 16f6a27 4e1c905
Author: Nicholas Clark <[email protected]>
Date:   Tue Apr 24 11:02:15 2012 +0200

    Remove outdated todo items, and update and clarify others.

commit 4e1c9055653807d67ddf8150141c61843161ffc5
Author: Nicholas Clark <[email protected]>
Date:   Fri Apr 20 10:51:54 2012 +0200

    In the todo list, note who is already working on various suggestions.

M       Porting/todo.pod
M       t/porting/known_pod_issues.dat

commit 09948bca5b53f66ecd93fddd9ff077e6c129c82d
Author: Nicholas Clark <[email protected]>
Date:   Fri Apr 20 10:47:24 2012 +0200

    Remove (?{...}) closures in regexps from the todo list.
    
    Dave has this substantially done, and is working on finishing it off.

M       Porting/todo.pod

commit caf782b722e539acb99f154c67f3c7693c0ca9af
Author: Nicholas Clark <[email protected]>
Date:   Wed Apr 18 21:06:21 2012 +0200

    Remove "Properly Unicode safe tokeniser and pads" from the todo
    
    Brian Fraser (during GSoC), Father Chrysostomos, Zefram and others have done
    most of the tasks suggested in this todo, so remove it from consideration as
    it's clearly stale. The only possible work outstanding is how toke.c behaves
    when PL_rsfp is marked as returning UTF-8, and when source filters return
    SVs with SvUTF8() true. So leave this in as a comment in the Pod so that it
    does not get lost, pending proper investigation.

M       Porting/todo.pod

commit 40dcd09a053029dc06affd98acdd9882867ed6fd
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 21:50:28 2012 +0200

    Remove 2 microperl suggestions from the todo list.
    
    The --regen option added to Porting/checkcfgvar.pl makes creating uconfig.sh
    pretty much automatic.
    
    Whilst maintaining Makefile.micro could be made more automatic by templating
    it based on MANIFEST, the benefits are probably never going to pay back the
    cost of doing it, as we add (or remove) C and header files so rarely.
    It would only really make sense as part of a system that did the same for
    Makefile.SH, vms/descrip_mms.template and the multitude of Win* Makefiles.

M       Porting/todo.pod
M       t/porting/known_pod_issues.dat

commit 45a81a9081d13333a5a8c17ca61f6435b797dbad
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 21:35:23 2012 +0200

    Drop the iCOW plan from the todo.
    
    Dave has detailed reasons why he doesn't think that this would work. So it's
    a bad idea to suggest it as something people should work on.

M       Porting/todo.pod

commit db1070bec96fc0ff63cd42e3675f6f102d66afd0
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 21:23:25 2012 +0200

    Switching entersub ops from "XS" to "Perl" and back likely won't help.
    
    Switching OPs goes against the grain of immutable optrees under ithreads -
    it could probably be made to work, but the amount of extra effort would be
    non-trivial.
    
    Secondly, cache misses are the overriding speed hit on modern CPUs.
    The code switching proposed would add complexity but only be able to change
    the number of branch instructions encountered, which come a distant second
    to cache misses as a speed hit. The code switching would not change the data
    lookups needed, and hence not the cache misses they cause.

M       Porting/todo.pod

commit e12cb30b0275e9b3bbf93f5bd609730d429cddca
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 21:14:08 2012 +0200

    Minor tweaks to the todo.
    
    5.14 is long past - 5.18.0 is now the future stable release to aim for.
    Correct the title of one entry to 0*o*ddd.
    Add a missing close parenthesis.

M       Porting/todo.pod

commit a8751bc2557c3829c087af4a3e222b03fc5f3bad
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 18:55:37 2012 +0200

    Remove two specific smartmatch suggestions from the todo list.
    
    As smartmatch is "subject to review" these are unlikely to be appropriate.

M       Porting/todo.pod

commit 14e37db5fb93f7380f545f8bf22bfa8715e4f344
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 18:35:52 2012 +0200

    5.12.0 and later permit -C on the #! line with similar rules to -T
    
    Whilst this isn't as totally flexible as it might be, it's good enough to
    remove the todo entry, which was added when -C was forbidden on the #! line.
    However, making -C parsing on the #! more flexible probably requires
    removing the "feature" that a C<#line 1> directive triggers re-processing
    of #! directives.

M       Porting/todo.pod

commit 2a930eeaa11a10dc2ffcb200563ba5641ac15840
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 18:22:50 2012 +0200

    Remove the reference to -fstack-protector, which is done.
    
    Exploring the use of -D_FORTIFY_SOURCE=2 remains to be done.

M       Porting/todo.pod

commit 03548f30e402504a7edba200e0bcb3605798d0c8
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 18:07:34 2012 +0200

    Remove the "POD -> HTML conversion in the core still sucks" todo entry.
    
    Thanks to GSoC 2011, Pod::HTML has been refactored to use 
Pod::Simple::XHTML.

M       Porting/todo.pod

commit 8c422da5418e4ef5c4c9bb634fc7c518d97f0b8c
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 17:01:39 2012 +0200

    Update the todo entry for makedef.pl duplicating C conditional compilation.
    
    makedef.pl has been refactored to read from embed.fnc directly, cutting out
    the embed.pl middleman. Correct the header filename - it's "intrpvar.h",
    not "interpvar.h".

M       Porting/todo.pod

commit 5ca9d8f086c5569a14a792ee55c75478496f2a8f
Author: Nicholas Clark <[email protected]>
Date:   Fri Mar 30 15:54:00 2012 +0200

    Remove "Remove duplication of test setup" from the todo list.
    
    It's no longer obvious which files in t/ contain significant amounts of
    setup code which is duplicated. Common cases of skip logic have already been
    moved into t/test.pl. The suggestion of replacing $Is_Foo checks with %Is is
    not a clear-cut win - each $Is_Foo eliminated is only a 1 line saving, at 
the
    cost of another testing idiom the future maintenance programmer has to 
become
    familiar with.
    
    The related suggestion "Migrate t/ from custom TAP generation" remains
    something to do. There are still various files in t/ which could use be
    converted to use the comparison functions of t/test.pl reducing code size,
    improving failure diagnostics and where this eliminates manual test 
counters,
    increasing flexibility for adding tests in the logically correct location
    within the file.

M       Porting/todo.pod

commit 78b489b0bf183e0178ccbd0309917683110d8aa3
Author: Nicholas Clark <[email protected]>
Date:   Thu Mar 29 22:46:17 2012 +0200

    Refine the todo entry for install.html
    
    Update the description of what needs doing. The splitting code exists, but
    it's sub-optimal and not re-usable. Correct the name of the Makefile target 
-
    it's 'install.html' with a period, not 'installhtml'.

M       Porting/todo.pod

commit 0b162fb0c0e5535a6a3f60c929ca435e34130b3f
Author: Nicholas Clark <[email protected]>
Date:   Thu Mar 29 22:24:23 2012 +0200

    5.14.0 adds Perl_cv_set_call_checker(), but no guide to inlining XSUBs.
    
    Being able to inline simple XSUBs was listed as a TODO. 5.14.0 now provides
    functionality for a compile-time "fixup" function for an XSUB, added using
    Perl_cv_set_call_checker(). This has API-level documentation, but there is
    no guide or tutorial on how to exploit this API to actually implement an
    XSUB which can inline.

M       Porting/todo.pod

commit d88c463faf29475d923b1de3579f19ee79cc77a6
Author: Nicholas Clark <[email protected]>
Date:   Thu Mar 29 18:19:29 2012 +0200

    @INC order was improved in a series of commits ending with e37778c28ba4f703.
    
    Belatedly remove it from the TODO list.

M       Porting/todo.pod

commit 93e0679bc6bb150a9708317078930a563d0ecf76
Author: Nicholas Clark <[email protected]>
Date:   Thu Mar 29 18:07:31 2012 +0200

    PADTMP hash pessimisation was fixed with commit 38bb37b9aa18dbe6.
    
    Remove it from the TODO list.

M       Porting/todo.pod
-----------------------------------------------------------------------

Summary of changes:
 Porting/todo.pod               |  276 ++++++++++++++--------------------------
 t/porting/known_pod_issues.dat |    2 +-
 2 files changed, 94 insertions(+), 184 deletions(-)

diff --git a/Porting/todo.pod b/Porting/todo.pod
index ddc8ae0..6d2d51a 100644
--- a/Porting/todo.pod
+++ b/Porting/todo.pod
@@ -56,25 +56,6 @@ automated with a bit of perl, specifically the generation of
 
 See F<Porting/how_to_write_a_perldelta.pod> for details.
 
-=head2 Remove duplication of test setup.
-
-Schwern notes, that there's duplication of code - lots and lots of tests have
-some variation on the big block of C<$Is_Foo> checks.  We can safely put this
-into a file, change it to build an C<%Is> hash and require it.  Maybe just put
-it into F<test.pl>. Throw in the handy tainting subroutines.
-
-=head2 POD -E<gt> HTML conversion in the core still sucks
-
-Which is crazy given just how simple POD purports to be, and how simple HTML
-can be. It's not actually I<as> simple as it sounds, particularly with the
-flexibility POD allows for C<=item>, but it would be good to improve the
-visual appeal of the HTML generated, and to avoid it having any validation
-errors. See also L</make HTML install work>, as the layout of installation tree
-is needed to improve the cross-linking.
-
-The addition of C<Pod::Simple> and its related modules may make this task
-easier to complete.
-
 =head2 Make Schwern poorer
 
 We should have tests for everything. When all the core's modules are tested,
@@ -98,7 +79,8 @@ would be useful to have a reasonable general benchmarking 
suite that roughly
 represented what current perl programs do, and measurably reported whether
 tweaks to the core improve, degrade or don't really affect performance, to
 guide people attempting to optimise the guts of perl. Gisle would welcome
-new tests for perlbench.
+new tests for perlbench. Steffen Schwingon would welcome help with
+L<Benchmark::Perl::Formance>
 
 =head2 fix tainting bugs
 
@@ -121,17 +103,16 @@ Ilya observed that use POSIX; eats memory like there's no 
tomorrow, and at
 various times worked to cut it down. There is probably still fat to cut out -
 for example POSIX passes Exporter some very memory hungry data structures.
 
-=head2 embed.pl/makedef.pl
+=head2 makedef.pl and conditional compilation
 
-There is a script F<embed.pl> that generates several header files to prefix
-all of Perl's symbols in a consistent way, to provide some semblance of
-namespace support in C<C>. Functions are declared in F<embed.fnc>, variables
-in F<interpvar.h>. Quite a few of the functions and variables
-are conditionally declared there, using C<#ifdef>. However, F<embed.pl>
-doesn't understand the C macros, so the rules about which symbols are present
-when is duplicated in F<makedef.pl>. Writing things twice is bad, m'kay.
-It would be good to teach C<embed.pl> to understand the conditional
-compilation, and hence remove the duplication, and the mistakes it has caused.
+The script F<makedef.pl> that generates the list of exported symbols on
+platforms which need this. Functions are declared in F<embed.fnc>, variables
+in F<intrpvar.h>. Quite a few of the functions and variables are conditionally
+declared there, using C<#ifdef>. However, F<makedef.pl> doesn't understand the
+C macros, so the rules about which symbols are present when is duplicated in
+the Perl code. Writing things twice is bad, m'kay. It would be good to teach
+F<.pl> to understand the conditional compilation, and hence remove the
+duplication, and the mistakes it has caused.
 
 =head2 use strict; and AutoLoad
 
@@ -176,7 +157,7 @@ base...
 
 =head2 make HTML install work
 
-There is an C<installhtml> target in the Makefile. It's marked as
+There is an C<install.html> target in the Makefile. It's marked as
 "experimental". It would be good to get this tested, make it work reliably, and
 remove the "experimental" tag. This would include
 
@@ -190,19 +171,23 @@ and the core documentation (files in F<pod/>)
 
 =item 2
 
-Work out how to split C<perlfunc> into chunks, preferably one per function
-group, preferably with general case code that could be used elsewhere.
+Improving the code that split C<perlfunc> into chunks, preferably with
+general case code added to L<Pod::Functions> that could be used elsewhere.
+
 Challenges here are correctly identifying the groups of functions that go
 together, and making the right named external cross-links point to the right
-page. Things to be aware of are C<-X>, groups such as C<getpwnam> to
-C<endservent>, two or more C<=items> giving the different parameter lists, such
-as
-
-    =item substr EXPR,OFFSET,LENGTH,REPLACEMENT
-    =item substr EXPR,OFFSET,LENGTH
-    =item substr EXPR,OFFSET
-
-and different parameter lists having different meanings. (eg C<select>)
+page. Currently this works reasonably well in the general case, and correctly
+parses two or more C<=items> giving the different parameter lists for the
+same function, such used by C<substr>. However it fails completely where
+I<different> functions are listed as a sequence of C<=items> but share the
+same description. All the functions from C<getpwnam> to C<endprotoent> have
+individual stub pages, with only the page for C<endservent> holding the
+description common to all. Likewise C<q>, C<qq> and C<qw> have stub pages,
+instead of sharing the body of C<qx>.
+
+Note also the current code isn't ideal with the two forms of C<select>, mushing
+them both into one F<select.html> with the two descriptions run together.
+Fixing this may well be a special case.
 
 =back
 
@@ -294,33 +279,48 @@ installed machine differs from the build machine in some 
significant way.
 
 Some platforms mandate that you provide a list of a shared library's external
 symbols to the linker, so the core already has the infrastructure in place to
-do this for generating shared perl libraries. My understanding is that the
-GNU toolchain can accept an optional linker specification file, and restrict
-visibility just to symbols declared in that file. It would be good to extend
-F<makedef.pl> to support this format, and to provide a means within
-C<Configure> to enable it. This would allow Unix users to test that the
+do this for generating shared perl libraries. Florian Ragwitz has been working
+to offer this for the GNU toolchain, to  allow Unix users to test that the
 export list is correct, and to build a perl that does not pollute the global
 namespace with private symbols, and will fail in the same way as msvc or mingw 
-builds or when using PERL_DL_NONLAZY=1.
+builds or when using PERL_DL_NONLAZY=1. See the branch smoke-me/rafl/ld_export
 
 =head2 Cross-compile support
 
-Currently C<Configure> understands C<-Dusecrosscompile> option. This option
+We get requests for "how to cross compile Perl". The vast majority of these
+seem to be for a couple of scenarios:
+
+=over 4
+
+=item *
+
+Platforms that could build natively using F<./Configure> (I<e.g.> Linux or
+NetBSD on MIPS or ARM) but people want to use a beefier machine (and on the
+same OS) to build more easily.
+
+=item *
+
+Platforms that can't build natively, but no (significant) porting changes
+are needed to our current source code. Prime example of this is Android.
+
+=back
+
+There are several scripts and tools for cross-compiling perl for other
+platforms. However, these are somewhat inconsistent and scattered across the
+codebase, none are documented well, none are clearly flexible enough to
+be confident that they can support any TARGET/HOST plaform pair other than
+that which they were developed on, and it's not clear how bitrotted they are.
+
+For example, C<Configure> understands C<-Dusecrosscompile> option. This option
 arranges for building C<miniperl> for TARGET machine, so this C<miniperl> is
-assumed then to be copied to TARGET machine and used as a replacement of full
-C<perl> executable.
-
-This could be done little differently. Namely C<miniperl> should be built for
-HOST and then full C<perl> with extensions should be compiled for TARGET.
-This, however, might require extra trickery for %Config: we have one config
-first for HOST and then another for TARGET.  Tools like MakeMaker will be
-mightily confused.  Having around two different types of executables and
-libraries (HOST and TARGET) makes life interesting for Makefiles and
-shell (and Perl) scripts.  There is $Config{run}, normally empty, which
-can be used as an execution wrapper.  Also note that in some
-cross-compilation/execution environments the HOST and the TARGET do
-not see the same filesystem(s), the $Config{run} may need to do some
-file/directory copying back and forth.
+assumed then to be copied to TARGET machine and used as a replacement of
+full C<perl> executable. This code is almost 10 years old. Meanwhile, the
+F<Cross/> directory contains two different approaches for cross compiling to
+ARM Linux targets, relying on hand curated F<config.sh> files, but that code
+is getting on for 5 years old, and requires insider knowledge of perl's
+build system to draft a F<config.sh> for a new platform.
+
+Jess Robinson has sumbitted a grant to TPF to work on cleaning this up.
 
 =head2 Split "linker" from "compiler"
 
@@ -410,21 +410,13 @@ macro used can be changed.
 
 =back
 
-=head2 Modernize the order of directories in @INC
-
-The way @INC is laid out by default, one cannot upgrade core (dual-life)
-modules without overwriting files. This causes problems for binary
-package builders.  One possible proposal is laid out in this
-message:
-L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-04/msg02380.html>
-
 =head2 -Duse32bit*
 
 Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall.
 On these systems, it might be the default compilation mode, and there
 is currently no guarantee that passing no use64bitall option to the
 Configure process will build a 32bit perl. Implementing -Duse32bit*
-options would be nice for perl 5.14.
+options would be nice for perl 5.18.0.
 
 =head2 Profile Perl - am I hot or not?
 
@@ -524,14 +516,13 @@ ever creep back to libperl.a.
 Note, of course, that this will only tell whether B<your> platform
 is using those naughty interfaces.
 
-=head2 -D_FORTIFY_SOURCE=2, -fstack-protector
+=head2 -D_FORTIFY_SOURCE=2
 
-Recent glibcs support C<-D_FORTIFY_SOURCE=2> and recent gcc
-(4.1 onwards?) supports C<-fstack-protector>, both of which give
+Recent glibcs support C<-D_FORTIFY_SOURCE=2> which gives
 protection against various kinds of buffer overflow problems.
-These should probably be used for compiling Perl whenever available,
+It should probably be used for compiling Perl whenever available,
 Configure and/or hints files should be adjusted to probe for the
-availability of these features and enable them as appropriate.
+availability of these feature and enable it as appropriate.
 
 =head2 Arenas for GPs? For MAGIC?
 
@@ -577,55 +568,21 @@ bootstrap a cookbook.  (List::Util? Class::XSAccessor? 
Tree::Ternary_XS?)
 Another option could be deconstructing the implementation of some simpler
 functions in op.c.
 
-=head2 Allow XSUBs to inline themselves as OPs
+=head2 Document how XSUBs can use C<cv_set_call_checker> to inline themselves 
as OPs
 
 For a simple XSUB, often the subroutine dispatch takes more time than the
-XSUB itself. The tokeniser already has the ability to inline constant
-subroutines - it would be good to provide a way to inline other subroutines.
-
-Specifically, simplest approach looks to be to allow an XSUB to provide an
-alternative implementation of itself as a custom OP. A new flag bit in
-C<CvFLAGS()> would signal to the peephole optimiser to take an optree
-such as this:
-
-    b  <@> leave[1 ref] vKP/REFC ->(end)
-    1     <0> enter ->2
-    2     <;> nextstate(main 1 -e:1) v:{ ->3
-    a     <2> sassign vKS/2 ->b
-    8        <1> entersub[t2] sKS/TARG,1 ->9
-    -           <1> ex-list sK ->8
-    3              <0> pushmark s ->4
-    4              <$> const(IV 1) sM ->5
-    6              <1> rv2av[t1] lKM/1 ->7
-    5                 <$> gv(*a) s ->6
-    -              <1> ex-rv2cv sK ->-
-    7                 <$> gv(*x) s/EARLYCV ->8
-    -        <1> ex-rv2sv sKRM*/1 ->a
-    9           <$> gvsv(*b) s ->a
-
-perform the symbol table lookup of C<rv2cv> and C<gv(*x)>, locate the
-pointer to the custom OP that provides the direct implementation, and re-
-write the optree something like:
-
-    b  <@> leave[1 ref] vKP/REFC ->(end)
-    1     <0> enter ->2
-    2     <;> nextstate(main 1 -e:1) v:{ ->3
-    a     <2> sassign vKS/2 ->b
-    7        <1> custom_x -> 8
-    -           <1> ex-list sK ->7
-    3              <0> pushmark s ->4
-    4              <$> const(IV 1) sM ->5
-    6              <1> rv2av[t1] lKM/1 ->7
-    5                 <$> gv(*a) s ->6
-    -              <1> ex-rv2cv sK ->-
-    -                 <$> ex-gv(*x) s/EARLYCV ->7
-    -        <1> ex-rv2sv sKRM*/1 ->a
-    8           <$> gvsv(*b) s ->a
-
-I<i.e.> the C<gv(*)> OP has been nulled and spliced out of the execution
-path, and the C<entersub> OP has been replaced by the custom op.
-
-This approach should provide a measurable speed up to simple XSUBs inside
+XSUB itself. v5.14.0 now allows XSUBs to register a function which will be
+called when the parser is finished building an C<entersub> op which calls
+them.
+
+Registration is done with C<Perl_cv_set_call_checker>, is documented at the
+API level in L<perlapi>, and L<perl5140delta/Custom per-subroutine check hooks>
+notes that it can be used to inline a subroutine, by replacing it with a
+custom op. However there is no further detail of the code needed to do this.
+It would be useful to add one or more annotated examples of how to create
+XSUBs that inline.
+
+This should provide a measurable speed up to simple XSUBs inside
 tight loops. Initially one would have to write the OP alternative
 implementation by hand, but it's likely that this should be reasonably
 straightforward for the type of XSUB that would benefit the most. Longer
@@ -831,14 +788,6 @@ readlink().
 
 See also L</"Virtualize operating system access">.
 
-=head2 -C on the #! line
-
-It should be possible to make -C work correctly if found on the #! line,
-given that all perl command line options are strict ASCII, and -C changes
-only the interpretation of non-ASCII characters, and not for the script file
-handle. To make it work needs some investigation of the ordering of function
-calls during startup, and (by implication) a bit of tweaking of that order.
-
 =head2 Organize error messages
 
 Perl's diagnostics (error messages, see L<perldiag>) could use
@@ -886,13 +835,6 @@ bareword expressions after a "goto" as a label and never 
as a keyword.
 The prototype of truncate() is currently C<$$>. It should probably
 be C<*$> instead. (This is changed in F<opcode.pl>)
 
-=head2 decapsulation of smart match argument
-
-Currently C<$foo ~~ $object> will die with the message "Smart matching a
-non-overloaded object breaks encapsulation". It would be nice to allow
-to bypass this by using explicitly the syntax C<$foo ~~ %$object> or
-C<$foo ~~ @$object>.
-
 =head2 error reporting of [$a ; $b]
 
 Using C<;> inside brackets is a syntax error, and we don't propose to change
@@ -934,14 +876,16 @@ candidates.  The whole Unicode database could be placed 
in-core for a
 huge speed-up.  Only minimal work was done on the optimizer when utf8
 was added, with the result that the synthetic start class often will
 fail to narrow down the possible choices when given non-Latin1 input.
+Karl Williamson has been working on this - talk to him.
+
+=begin todo
 
-=head2 Properly Unicode safe tokeniser and pads.
+Many things are fixed, but is these still true?
 
-The tokeniser isn't actually very UTF-8 clean. C<use utf8;> is a hack -
-variable names are stored in stashes as raw bytes, without the utf-8 flag
-set. The pad API only takes a C<char *> pointer, so that's all bytes too. The
-tokeniser ignores the UTF-8-ness of C<PL_rsfp>, or any SVs returned from
-source filters.  All this could be fixed.
+    The tokeniser ignores the UTF-8-ness of C<PL_rsfp>, or any SVs
+    returned from source filters.
+
+=end
 
 =head2 state variable initialization in list context
 
@@ -956,11 +900,6 @@ implement the necessary code in Perl 5. There are comments 
in
 C<Perl_newASSIGNOP()> that show the code paths taken by various assignment
 constructions involving state variables.
 
-=head2 Implement $value ~~ 0 .. $range
-
-It would be nice to extend the syntax of the C<~~> operator to also
-understand numeric (and maybe alphanumeric) ranges.
-
 =head2 A does() built-in
 
 Like ref(), only useful. It would call the C<DOES> method on objects; it
@@ -1027,14 +966,7 @@ as a module on CPAN.
 
 =head2 lexical aliases
 
-Allow lexical aliases (maybe via the syntax C<my \$alias = \$foo>.
-
-=head2 entersub XS vs Perl
-
-At the moment pp_entersub is huge, and has code to deal with entering both
-perl and XS subroutines. Subroutine implementations rarely change between 
-perl and XS at run time, so investigate using 2 ops to enter subs (one for
-XS, one for perl) and swap between if a sub is redefined.
+Allow lexical aliases (maybe via the syntax C<my \$alias = \$foo>).
 
 =head2 Self-ties
 
@@ -1081,13 +1013,6 @@ implement per-thread working directories: Win32 already 
does this.
 
 See also L</"Extend PerlIO and PerlIO::Scalar">.
 
-=head2 Investigate PADTMP hash pessimisation
-
-The peephole optimiser converts constants used for hash key lookups to shared
-hash key scalars. Under ithreads, something is undoing this work.
-See
-L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2007-09/msg00793.html>
-
 =head2 Store the current pad in the OP slab allocator
 
 =for clarification
@@ -1199,7 +1124,7 @@ combines the code in pp_entersub, pp_leavesub.  This 
should probably
 be done 1st in XS, and using B::Generate to patch the new OP into the
 optrees.
 
-=head2 Add C<00dddd>
+=head2 Add C<0odddd>
 
 It has been proposed that octal constants be specifiable through the syntax
 C<0oddddd>, parallel to the existing construct to specify hex constants
@@ -1208,11 +1133,11 @@ C<0xddddd>
 =head1 Big projects
 
 Tasks that will get your name mentioned in the description of the "Highlights
-of 5.14"
+of 5.18.0"
 
 =head2 make ithreads more robust
 
-Generally make ithreads more robust. See also L</iCOW>
+Generally make ithreads more robust.
 
 This task is incremental - even a little bit of work on it will help, and
 will be greatly appreciated.
@@ -1222,16 +1147,6 @@ without a C<fchdir> function (in sv.c:Perl_dirp_dup).
 
 Fix Perl_sv_dup, et al so that threads can return objects.
 
-=head2 iCOW
-
-Sarathy and Arthur have a proposal for an improved Copy On Write which
-specifically will be able to COW new ithreads. If this can be implemented
-it would be a good thing.
-
-=head2 (?{...}) closures in regexps
-
-Fix (or rewrite) the implementation of the C</(?{...})/> closures.
-
 =head2 Add class set operations to regexp engine
 
 Apparently these are quite useful. Anyway, Jeffery Friedl wants them.
@@ -1245,11 +1160,6 @@ demerphq has this on his todo list, but right at the 
bottom.
 [ Each and every one of these may be obsolete, but they were listed
   in the old Todo.micro file]
 
-
-=head2 make creating uconfig.sh automatic 
-
-=head2 make creating Makefile.micro automatic
-
 =head2 do away with fork/exec/wait?
 
 (system, popen should be enough?)
diff --git a/t/porting/known_pod_issues.dat b/t/porting/known_pod_issues.dat
index 4779e23..34ae776 100644
--- a/t/porting/known_pod_issues.dat
+++ b/t/porting/known_pod_issues.dat
@@ -294,8 +294,8 @@ porting/how_to_write_a_perldelta.pod        Verbatim line 
length including indents exce
 porting/pumpkin.pod    Verbatim line length including indents exceeds 79 by    
9
 porting/release_managers_guide.pod     Verbatim line length including indents 
exceeds 79 by    7
 porting/release_schedule.pod   There is no NAME        1
+porting/todo.pod       Apparent broken link    1
 porting/todo.pod       Verbatim line length including indents exceeds 79 by    
7
-porting/todo.pod       empty section in previous paragraph     2
 symbian/perlutil.pod   Verbatim line length including indents exceeds 79 by    
4
 utils/c2ph     Verbatim line length including indents exceeds 79 by    44
 utils/libnetcfg        Apparent broken link    1

--
Perl5 Master Repository

Reply via email to