- append a "..." to the produced string if the maximum length is exceeded
- really fancy: print unicode characters as \N{...}
+NOTE: pv_display(), pv_uni_display(), sv_uni_display() are doing
+something like the above.
+
=head2 Overloadable regex assertions
This may or may not be possible with the current regular expression
=item *
+Allow for long form of the General Category Properties, e.g
+C<\p{IsOpenPunctuation}>, not just the abbreviated form, e.g.
+C<\p{IsPs}>.
+
+=item *
+
+Allow for the metaproperties: C<XID Start>, C<XID Continue>,
+C<NF*_NO>, C<NF*_MAYBE> (require the DerivedCoreProperties and
+DerviceNormalizationProperties files).
+
+There are also multiple value properties still unimplemented:
+C<Numeric Type>, C<East Asian Width>.
+
+=item *
+
Case Mappings? http://www.unicode.org/unicode/reports/tr21/
-lc(), uc(), lcfirst(), and ucfirst() work only for simple cases, where
-the mapping goes from a single Unicode character to another single
-Unicode character. See lib/unicore/SpecCase.txt (and CaseFold.txt).
+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).
=item *
=back
See L<perlunicode/UNICODE REGULAR EXPRESSION SUPPORT LEVEL> for what's
-there and what's missing.
+there and what's missing. Almost all of Levels 2 and 3 is missing,
+and as of 5.8.0 not even all of Level 1 is there.
=head2 use Thread for iThreads
=head2 POSIX Unicode character classes
-([=a=] for equivalance classes, [.ch.] for collation.)
+(C<[=a=]> for equivalance classes, C<[.ch.]> for collation.)
These are dependent on Unicode normalization and collation.
=head2 Factoring out common suffices/prefices in regexps (trie optimization)
overhead of an XSUB; the user should be able to create PP code. Simon
Cozens has some ideas on this.
-=head2 spawnvp() on Win32
-
-Win32 has problems spawning processes, particularly when the arguments
-to the child process contain spaces, quotes or tab characters.
-
=head2 DLL Versioning
-Windows needs a way to know what version of a XS or C<libperl> DLL it's
+Windows needs a way to know what version of an XS or C<libperl> DLL it's
loading.
=head2 Introduce @( and @)
(no metaconfig units yet for these). Don't forget finitel(), fp_classl(),
fp_class_l(), (yes, both do, unfortunately, exist), and unorderedl().)
-As of Perl 5.6.1 is a Perl macro, Perl_isnan().
+As of Perl 5.6.1, there is a Perl macro, Perl_isnan().
=head2 IV/UV preservation
Alan notes that: The basic idea was to extend the parser token stack
(C<YYSTYPE>) to include a type field so we knew what sort of thing each
-element of the stack was. The F<<perly.c> code would then have to be
+element of the stack was. The F<perly.c> code would then have to be
postprocessed to record the type of each entry on the stack as it was
created, and the parser patched so that it could unroll the stack
properly on error.
=head2 Cross compilation
Make Perl buildable with a cross-compiler. This will play havoc with
-Configure, which needs to how how the target system will respond to
+Configure, which needs to know how the target system will respond to
its tests; maybe C<microperl> will be a good starting point here.
(Indeed, Bart Schuller reports that he compiled up C<microperl> for
the Agenda PDA and it works fine.) A really big spanner in the works
=head2 Using POSIX calls internally
-When faced with a BSD vs. SySV -style interface to some library or
+When faced with a BSD vs. SysV -style interface to some library or
system function, perl's roots show in that it typically prefers the BSD
interface (but falls back to the SysV one). One example is getpgrp().
Other examples include C<memcpy> vs. C<bcopy>. There are others, mostly in
-F<<pp_sys.c>.
+F<pp_sys.c>.
Mostly, this item is a suggestion for which way to start a journey into
an C<#ifdef> forest. It is not primarily a suggestion to eliminate any of
=head2 All ARGV input should act like E<lt>E<gt>
+eg C<read(ARGV, ...)> doesn't currently read across multiple files.
+
=head2 Support for rerunning debugger
There should be a way of restarting the debugger on demand.
Currently, indirect object syntax bypasses prototype checks.
-=head2 Install HMTL
+=head2 Install HTML
HTML versions of the documentation need to be installed by default; a
call to C<installhtml> from C<installperl> may be all that's necessary.
This has been done in places, but needs a thorough code review.
Also fchdir is available in some platforms.
+=head2 Make v-strings overloaded objects
+
+Instead of having to guess whether a string is a v-string and thus
+needs to be displayed with %vd, make v-strings (readonly) objects
+(class "vstring"?) with a stringify overload.
+
=head1 Vague ideas
Ideas which have been discussed, and which may or may not happen.
=head2 gettimeofday
-C<Time::Hires> has been integrated into the core.
+C<Time::HiRes> has been integrated into the core.
=head2 setitimer and getimiter
-Adding C<Time::Hires> got us this too.
+Adding C<Time::HiRes> got us this too.
=head2 Testing __DIE__ hook
Collation? http://www.unicode.org/unicode/reports/tr10/
Normalization? http://www.unicode.org/unicode/reports/tr15/
+=head2 Create debugging macros
+
+Debugging macros (like printsv, dump) can make debugging perl inside a
+C debugger much easier. A good set for gdb comes with mod_perl.
+Something similar should be distributed with perl.
+
+The proper way to do this is to use and extend Devel::DebugInit.
+Devel::DebugInit also needs to be extended to support threads.
+
+See p5p archives for late May/early June 2001 for a recent discussion
+on this topic.
+
=cut