X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperltodo.pod;h=0dbff75e5cfb2072b88ebd89caca7a4d0024b94a;hb=f3f8427d8eb74488a7768102783b300690126cdc;hp=0a6b8e15961942d7b9f8bb901abd1ce78f7d0d30;hpb=cbda53d5630fb826c2d06e07763221ee90547c7b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perltodo.pod b/pod/perltodo.pod index 0a6b8e1..0dbff75 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -87,10 +87,8 @@ C, C. Case Mappings? http://www.unicode.org/unicode/reports/tr21/ -lc(), uc(), lcfirst(), and ucfirst() work only for some of the -simplest cases, where the mapping goes from a single Unicode character -to another single Unicode character. See lib/unicore/SpecCase.txt -(and CaseFold.txt). +Mostly implemented (all of 1:1, 1:N, N:1), only the "final sigma" +and locale-specific rules of SpecCase are not implemented. =item * @@ -100,7 +98,25 @@ UTF-8 identifier names should probably be canonicalized: NFC? UTF-8 in package names and sub names? The first is problematic because of the mapping to pathnames, ditto for the second one if -one does autosplitting, for example. +one does autosplitting, for example. Some of this works already +in 5.8.0, but essentially it is unsupported. Constructs to consider, +at the very least: + + use utf8; + package UnicodePackage; + sub new { bless {}, shift }; + sub UnicodeMethod1 { ... $_[0]->UnicodeMethod2(...) ... } + sub UnicodeMethod2 { ... } # in here caller(0) should contain Unicode + ... + package main; + my $x = UnicodePackage->new; + print ref $x, "\n"; # should be Unicode + $x->UnicodeMethod1(...); + my $y = UnicodeMethod3 UnicodePackage ...; + +In the above all I contain (identifier-worthy) characters +beyond the code point 255, for example 256. Wherever package/class or +subroutine names can be returned needs to be checked for Unicodeness. =back @@ -112,17 +128,37 @@ class subtraction. http://www.unicode.org/unicode/reports/tr18/ -=head2 use Thread for iThreads +=head2 Work out exit/die semantics for threads -Artur Bergman's C module is a start on this, but needs to -be more mature. +There are some suggestions to use for example something like this: +default to "(thread exiting first will) wait for the other threads +until up to 60 seconds". Other possibilities: -=head2 make perl_clone optionally clone ops + use threads wait => 0; -So that pseudoforking, mod_perl, iThreads and nvi will work properly -(but not as efficiently) until the regex engine is fixed to be threadsafe. +Do not wait. -=head2 Work out exit/die semantics for threads + use threads wait_for => 10; + +Wait up to 10 seconds. + + use threads wait_for => -1; + +Wait for ever. + +http://archive.develooper.com/perl5-porters@perl.org/msg79618.html + +=head2 Better support for nonpreemptive threading systems like GNU pth + +To better support nonpreemptive threading systems, perhaps some of the +blocking functions internally in Perl should do a yield() before a +blocking call. (Now certain threads tests ({basic,list,thread.t}) +simply do a yield() before they sleep() to give nonpreemptive thread +implementations a chance). + +In some cases, like the GNU pth, which has replacement functions that +are nonblocking (pth_select instead of select), maybe Perl should be +using them instead when built for threading. =head2 Typed lexicals for compiler @@ -170,17 +206,13 @@ One possible solution would be to adopt/support ICU: http://oss.software.ibm.com/developerworks/opensource/icu/project/ -=head2 Thread-safe regexes - -The regular expression engine is currently non-threadsafe. - =head2 Arithmetic on non-Arabic numerals C<[1234567890]> aren't the only numerals any more. =head2 POSIX Unicode character classes -(C<[=a=]> for equivalance classes, C<[.ch.]> for collation.) +(C<[=a=]> for equivalence classes, C<[.ch.]> for collation.) These are dependent on Unicode normalization and collation. =head2 Factoring out common suffices/prefices in regexps (trie optimization) @@ -247,7 +279,7 @@ C<&>, C, C and C. =head2 Replace pod2html with something using Pod::Parser The CPAN module C may be a more suitable basis for a -C convertor; the current one duplicates the functionality +C converter; the current one duplicates the functionality abstracted in C, which makes updating the POD language difficult. @@ -404,12 +436,6 @@ This is to speed up C already gives us a way of saving compiled regexps, but it should be done automatically. -=head2 Re-entrant functions - -Add configure probes for C<_r> forms of system calls and fit them to the -core. Unfortunately, calling conventions for these functions and not -standardised. - =head2 Cross-compilation support Bart Schuller reports that using C and a cross-compiler, he @@ -652,13 +678,13 @@ This emulation should also go near pp_sys.pp_truncate(). =head2 Unicode in Filenames -chdir, chmod, chown, chroot, exec, glob, link, lstat, mkdir, open, qx, -readdir, readlink, rename, rmdir, stat, symlink, sysopen, system, -truncate, unlink, utime. All these could potentially accept Unicode -filenames either as input or output (and in the case of system and qx -Unicode in general, as input or output to/from the shell). Whether a -filesystem - an operating system pair understands Unicode in filenames -varies. +chdir, chmod, chown, chroot, exec, glob, link, lstat, mkdir, open, +opendir, qx, readdir, readlink, rename, rmdir, stat, symlink, sysopen, +system, truncate, unlink, utime. All these could potentially accept +Unicode filenames either as input or output (and in the case of system +and qx Unicode in general, as input or output to/from the shell). +Whether a filesystem - an operating system pair understands Unicode in +filenames varies. Known combinations that have some level of understanding include Microsoft NTFS, Apple HFS+ (In Mac OS 9 and X) and Apple UFS (in Mac @@ -784,7 +810,8 @@ http://lists.perl.org/ , http://archive.develooper.com/ =head2 Bug tracking -Richard Foley has written the bug tracking system at http://bugs.perl.org/ +Since 5.8.0 perl uses the RT bug tracking system from Jesse Vincent, +implemented by Robert Spier at http://bugs.perl.org/ =head2 Integrate MacPerl