=item *
+Implement L</state variables> (mostly done currently)
+
+=item *
+
Review assertions. Review syntax to combine assertions. Assertions could take
advantage of the lexical pragmas work. L</What hooks would assertions need?>
=item *
-C<encoding::warnings> should be turned into a lexical pragma.
-C<encoding> should, too (probably).
+C<encoding> should be turned into a lexical pragma (probably).
=back
=over
=item *
+
Implement L</_ prototype character>
=item *
-Implement L</state variables>
+
+Review smart match semantics in light of Perl 6 developments.
=back
=head2 Make Schwern poorer
-We should have for everything. When all the core's modules are tested,
+We should have tests for everything. When all the core's modules are tested,
Schwern has promised to donate to $500 to TPF. We may need volunteers to
hold him upside down and shake vigorously in order to actually extract the
cash.
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>)
export list is correct, and to build a perl that does not pollute the global
namespace with private symbols.
+=head2 Cross-compile support
+
+Currently 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 should be done litle differently. Namely C<miniperl> should be built for
+HOST and then full C<perl> with extensions should be compiled for TARGET.
could shrink the interpreter structure; a size saving which is multiplied by
the number of threads running.
-=head2 am I hot or not?
+=head2 Profile Perl - am I hot or not?
+
+The Perl source code is stable enough that it makes sense to profile it,
+identify and optimise the hotspots. It would be good to measure the
+performance of the Perl interpreter using free tools such as cachegrind,
+gprof, and dtrace, and work to reduce the bottlenecks they reveal.
-The idea of F<pp_hot.c> is that it contains the I<hot> ops, the ops that are
-most commonly used. The idea is that by grouping them, their object code will
-be adjacent in the executable, so they have a greater chance of already being
-in the CPU cache (or swapped in) due to being near another op already in use.
+As part of this, the idea of F<pp_hot.c> is that it contains the I<hot> ops,
+the ops that are most commonly used. The idea is that by grouping them, their
+object code will be adjacent in the executable, so they have a greater chance
+of already being in the CPU cache (or swapped in) due to being near another op
+already in use.
Except that it's not clear if these really are the most commonly used ops. So
-anyone feeling like exercising their skill with coverage and profiling tools
-might want to determine what ops I<really> are the most commonly used. And in
-turn suggest evictions and promotions to achieve a better F<pp_hot.c>.
+as part of exercising your skills with coverage and profiling tools you might
+want to determine what ops I<really> are the most commonly used. And in turn
+suggest evictions and promotions to achieve a better F<pp_hot.c>.
=head2 Shrink struct context
the various OP structures from arenas. The SV arena code can probably be
re-used for this.
+=head2 Improve win32/wince.c
+Currently, numerous functions look virtually, if not completely,
+identical in both C<win32/wince.c> and C<win32/win32.c> files, which can't be good.
=head1 Tasks that need a knowledge of XS
tokeniser ignores the UTF-8-ness of C<PL_rsfp>, or any SVs returned from
source filters. All this could be fixed.
+=head2 Integrate Russ Allbery's strlcat/strlcpy implementation
-
-
+And remove the last remaining uses of strcat() and strcpy(). Also, add
+my_strlcat() and my_strlcpy() to Devel::PPPort so previous versions of Perl can
+use these APIs.
=head1 Big projects