Pluggable optimizer
[p5sagit/p5-mst-13.2.git] / pod / perltodo.pod
index 5d280e6..3c72432 100644 (file)
@@ -28,12 +28,29 @@ always be set to true, but it needs to be set to false when F<utf8.pm>
 is being compiled. (To stop Perl trying to autoload the C<utf8>
 pragma...)
 
-=head2 Create a char *sv_printify(sv, STRLEN *lenp, UV flags) function
+=head2 Create a char *sv_pvprintify(sv, STRLEN *lenp, UV flags)
 
 For displaying PVs with control characters, embedded nulls, and Unicode.
 This would be useful for printing warnings, or data and regex dumping,
 not_a_number(), and so on.
 
+Requirements: should handle both byte and UTF8 strings.  isPRINT()
+characters printed as-is, character less than 256 as \xHH, Unicode
+characters as \x{HHH}.  Don't assume ASCII-like, either, get somebody
+on EBCDIC to test the output.
+
+Possible options, controlled by the flags:
+- whitespace (other than ' ' of isPRINT()) printed as-is
+- use isPRINT_LC() instead of isPRINT()
+- print control characters like this: "\cA"
+- print control characters like this: "^A"
+- non-PRINTables printed as '.' instead of \xHH
+- use \OOO instead of \xHH
+- use the C/Perl-metacharacters like \n, \t
+- have a maximum length for the produced string (read it from *lenp)
+- append a "..." to the produced string if the maximum length is exceeded
+- really fancy: print unicode characters as \N{...}
+
 =head2 Autoload byte.pm
 
 When the lexer sees, for instance, C<bytes::length>, it should
@@ -65,7 +82,8 @@ Simon Cozens promises to work on this.
 
 =head2 Unicode regular expression character classes
 
-They have some tricks Perl doesn't yet implement.
+They have some tricks Perl doesn't yet implement like character
+class subtraction.
 
        http://www.unicode.org/unicode/reports/tr18/
 
@@ -311,6 +329,12 @@ has changed. Detecting a change is perhaps the difficult bit.
 
 There should be a way of restarting the debugger on demand.
 
+=head2 Test Suite for the Debugger
+
+The debugger is a complex piece of software and fixing something
+here may inadvertently break something else over there.  To tame
+this chaotic behaviour, a test suite is necessary. 
+
 =head2 my sub foo { }
 
 The basic principle is sound, but there are problems with the semantics