Change existing uses of strlcpy()/strlcat() to use new my_strlcpy()/
[p5sagit/p5-mst-13.2.git] / pod / perltodo.pod
index 3ff9942..9ffb628 100644 (file)
@@ -31,13 +31,16 @@ TODO are completed.
 
 =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
 
@@ -46,10 +49,12 @@ C<encoding> should, too (probably).
 =over
 
 =item *
+
 Implement L</_ prototype character>
 
 =item *
-Implement L</state variables>
+
+Review smart match semantics in light of Perl 6 developments.
 
 =back
 
@@ -107,7 +112,7 @@ Pugs already does parallel testing - can their approach be re-used?
 
 =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.
@@ -202,9 +207,7 @@ 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>)
@@ -307,6 +310,15 @@ C<Configure> to enable it. This would 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.
 
+=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.
 
 
 
@@ -368,17 +380,23 @@ become C<char>s. Finding variables to downsize coupled with rearrangement
 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
 
@@ -405,7 +423,10 @@ custom allocates so it would both use less memory and less CPU to allocate
 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
@@ -599,9 +620,11 @@ 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.
 
+=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