X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperltodo.pod;h=3c7243254ef7ba6086af40e281287cb6cb85f247;hb=a2efc82216efc10377cf26fd4aff1aa5e66c6687;hp=8c94a29c9a8ce236091b49047ed1ef90a9cfc129;hpb=cbb3fa723f207c2682ac39fe6db5bab0af992649;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perltodo.pod b/pod/perltodo.pod index 8c94a29..3c72432 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -28,6 +28,29 @@ always be set to true, but it needs to be set to false when F is being compiled. (To stop Perl trying to autoload the C pragma...) +=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, it should @@ -59,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/ @@ -68,6 +92,11 @@ They have some tricks Perl doesn't yet implement. Artur Bergman's C module is a start on this, but needs to be more mature. +=head2 make perl_clone optionally clone ops + +So that pseudoforking, mod_perl, iThreads and nvi will work properly +(but not as efficiently) until the regex engine is fixed to be threadsafe. + =head2 Work out exit/die semantics for threads =head2 Typed lexicals for compiler @@ -300,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 @@ -418,9 +453,9 @@ There are a few suggestions for what to do with C: maybe a full-text search, an index function, locating pages on a particular high-level subject, and so on. -=head2 Install .3p man pages +=head2 Install .3p manpages -This is a bone of contention; we can create C<.3p> man pages for each +This is a bone of contention; we can create C<.3p> manpages for each built-in function, but should we install them by default? Tcl does this, and it clutters up C. @@ -429,6 +464,7 @@ and it clutters up C. Simon Cozens promises to do this before he gets old. =head2 Update POSIX.pm for 1003.1-2 + =head2 Retargetable installation Allow C<@INC> to be changed after Perl is built. @@ -468,7 +504,9 @@ code. There is a patch for this, but it may require Unicodification. =head2 Compile to real threaded code + =head2 Structured types + =head2 Modifiable $1 et al. ($x = "elephant") =~ /e(ph)/; @@ -690,11 +728,13 @@ This would break old code; use C instead. Not needed now we have lexical IO handles. =head2 format BOTTOM + =head2 report HANDLE Damian Conway's text formatting modules seem to be the Way To Go. =head2 Generalised want()/caller()) + =head2 Named prototypes These both seem to be delayed until Perl 6. @@ -760,3 +800,13 @@ done manually, with C. (However, MJD has found that C introduces a performance penalty, so maybe there should be a way to do this after all: C is better.) + +=head2 Make "use utf8" the default + +There is a patch available for this, search p5p archives for +the Subject "[EXPERIMENTAL PATCH] make unicode (utf8) default" +but this would be unacceptable because of backward compatibility: +scripts could not contain B. Also would +introduce a measurable slowdown of at least few percentages since all +regular expression operations would be done in full UTF-8. +